diff options
Diffstat (limited to 'epan/dissectors/packet-rsvp.c')
-rw-r--r-- | epan/dissectors/packet-rsvp.c | 1424 |
1 files changed, 825 insertions, 599 deletions
diff --git a/epan/dissectors/packet-rsvp.c b/epan/dissectors/packet-rsvp.c index f47582f68c..c52b75f810 100644 --- a/epan/dissectors/packet-rsvp.c +++ b/epan/dissectors/packet-rsvp.c @@ -101,6 +101,7 @@ #include <epan/conversation_table.h> #include <epan/tap.h> #include <epan/addr_resolv.h> +#include <wsutil/utf8_entities.h> #include "packet-rsvp.h" #include "packet-ip.h" #include "packet-diffserv-mpls-common.h" @@ -111,526 +112,541 @@ void proto_register_rsvp(void); void proto_reg_handoff_rsvp(void); - -static int proto_rsvp = -1; -static int proto_rsvp_e2e1 = -1; - -static int hf_rsvp_error_flags = -1; -static int hf_rsvp_error_flags_path_state_removed = -1; -static int hf_rsvp_error_flags_not_guilty = -1; -static int hf_rsvp_error_flags_in_place = -1; -static int hf_rsvp_eth_tspec_tlv_color_mode = -1; -static int hf_rsvp_eth_tspec_tlv_coupling_flag = -1; -static int hf_rsvp_sender_tspec_standard_contiguous_concatenation = -1; -static int hf_rsvp_sender_tspec_arbitrary_contiguous_concatenation = -1; -static int hf_rsvp_sender_tspec_regenerator_section = -1; -static int hf_rsvp_sender_tspec_multiplex_section = -1; -static int hf_rsvp_sender_tspec_J0_transparency = -1; -static int hf_rsvp_sender_tspec_SOH_RSOH_DCC_transparency = -1; -static int hf_rsvp_sender_tspec_LOH_MSOH_DCC_transparency = -1; -static int hf_rsvp_sender_tspec_LOH_MSOH_extended_DCC_transparency = -1; -static int hf_rsvp_sender_tspec_K1_K2_transparency = -1; -static int hf_rsvp_sender_tspec_E1_transparency = -1; -static int hf_rsvp_sender_tspec_F1_transparency = -1; -static int hf_rsvp_sender_tspec_E2_transparency = -1; -static int hf_rsvp_sender_tspec_B1_transparency = -1; -static int hf_rsvp_sender_tspec_B2_transparency = -1; -static int hf_rsvp_sender_tspec_M0_transparency = -1; -static int hf_rsvp_sender_tspec_M1_transparency = -1; -static int hf_rsvp_flowspec_standard_contiguous_concatenation = -1; -static int hf_rsvp_flowspec_arbitrary_contiguous_concatenation = -1; -static int hf_rsvp_flowspec_regenerator_section = -1; -static int hf_rsvp_flowspec_multiplex_section = -1; -static int hf_rsvp_flowspec_J0_transparency = -1; -static int hf_rsvp_flowspec_SOH_RSOH_DCC_transparency = -1; -static int hf_rsvp_flowspec_LOH_MSOH_DCC_transparency = -1; -static int hf_rsvp_flowspec_LOH_MSOH_extended_DCC_transparency = -1; -static int hf_rsvp_flowspec_K1_K2_transparency = -1; -static int hf_rsvp_flowspec_E1_transparency = -1; -static int hf_rsvp_flowspec_F1_transparency = -1; -static int hf_rsvp_flowspec_E2_transparency = -1; -static int hf_rsvp_flowspec_B1_transparency = -1; -static int hf_rsvp_flowspec_B2_transparency = -1; -static int hf_rsvp_flowspec_M0_transparency = -1; -static int hf_rsvp_flowspec_M1_transparency = -1; -static int hf_rsvp_integrity_flags_handshake = -1; -static int hf_rsvp_sa_flags_local = -1; -static int hf_rsvp_sa_flags_label = -1; -static int hf_rsvp_sa_flags_se_style = -1; -static int hf_rsvp_sa_flags_bandwidth = -1; -static int hf_rsvp_sa_flags_node = -1; -static int hf_rsvp_rro_flags_local_avail = -1; -static int hf_rsvp_rro_flags_local_in_use = -1; -static int hf_rsvp_rro_flags_bandwidth = -1; -static int hf_rsvp_rro_flags_node = -1; -static int hf_rsvp_rro_flags_node_address = -1; -static int hf_rsvp_rro_flags_backup_tunnel_bandwidth = -1; -static int hf_rsvp_rro_flags_backup_tunnel_hop = -1; -static int hf_rsvp_rro_flags_global_label = -1; -static int hf_rsvp_lsp_attr = -1; -static int hf_rsvp_lsp_attr_e2e = -1; -static int hf_rsvp_lsp_attr_boundary = -1; -static int hf_rsvp_lsp_attr_segment = -1; -static int hf_rsvp_lsp_attr_integrity = -1; -static int hf_rsvp_lsp_attr_contiguous = -1; -static int hf_rsvp_lsp_attr_stitching = -1; -static int hf_rsvp_lsp_attr_preplanned = -1; -static int hf_rsvp_lsp_attr_nophp = -1; -static int hf_rsvp_lsp_attr_oobmap = -1; -static int hf_rsvp_lsp_attr_entropy = -1; -static int hf_rsvp_lsp_attr_oammep = -1; -static int hf_rsvp_lsp_attr_oammip = -1; -static int hf_rsvp_lsp_attr_loopback = -1; -static int hf_rsvp_lsp_attr_p2mp = -1; -static int hf_rsvp_lsp_attr_rtm = -1; -static int hf_rsvp_lsp_attr_lsi = -1; -static int hf_rsvp_lsp_attr_lsids2e = -1; -static int hf_rsvp_lsp_attr_telinklabel = -1; -static int hf_rsvp_lsp_attr_srlgcollect = -1; -static int hf_rsvp_gen_uni_direction = -1; -static int hf_rsvp_protection_info_flags_secondary_lsp = -1; -static int hf_rsvp_pi_link_flags_extra_traffic = -1; -static int hf_rsvp_pi_link_flags_unprotected = -1; -static int hf_rsvp_pi_link_flags_shared = -1; -static int hf_rsvp_pi_link_flags_dedicated1_1 = -1; -static int hf_rsvp_pi_link_flags_dedicated1plus1 = -1; -static int hf_rsvp_pi_link_flags_enhanced = -1; -static int hf_rsvp_pi_link_flags_extra = -1; -static int hf_rsvp_pi_link_flags_dedicated_1_1 = -1; -static int hf_rsvp_pi_link_flags_dedicated_1plus1 = -1; -static int hf_rsvp_rfc4872_secondary = -1; -static int hf_rsvp_rfc4872_protecting = -1; -static int hf_rsvp_rfc4872_notification_msg = -1; -static int hf_rsvp_rfc4872_operational = -1; -static int hf_rsvp_pi_lsp_flags_full_rerouting = -1; -static int hf_rsvp_pi_lsp_flags_rerouting_extra = -1; -static int hf_rsvp_pi_lsp_flags_1_n_protection = -1; -static int hf_rsvp_pi_lsp_flags_1plus1_unidirectional = -1; -static int hf_rsvp_pi_lsp_flags_1plus1_bidirectional = -1; -static int hf_rsvp_protection_info_in_place = -1; -static int hf_rsvp_protection_info_required = -1; -static int hf_rsvp_pi_seg_flags_full_rerouting = -1; -static int hf_rsvp_pi_seg_flags_rerouting_extra = -1; -static int hf_rsvp_pi_seg_flags_1_n_protection = -1; -static int hf_rsvp_pi_seg_flags_1plus1_unidirectional = -1; -static int hf_rsvp_pi_seg_flags_1plus1_bidirectional = -1; -static int hf_rsvp_frr_flags_one2one_backup = -1; -static int hf_rsvp_frr_flags_facility_backup = -1; -static int hf_rsvp_type = -1; -static int hf_rsvp_3gpp_obj_tid = -1; -static int hf_rsvp_3gpp_obj_ie_len = -1; -static int hf_rsvp_3gpp_obj_ie_type = -1; -static int hf_rsvp_3gpp_obj_ue_ipv4_addr = -1; -static int hf_rsvp_3gpp_obj_ue_ipv6_addr = -1; -static int hf_rsvp_3gpp_obj_tft_d = -1; -static int hf_rsvp_3gpp_obj_tft_ns = -1; -static int hf_rsvp_3gpp_obj_tft_sr_id = -1; -static int hf_rsvp_3gpp_obj_tft_p = -1; -static int hf_rsvp_3gpp_obj_tft_opcode = -1; -static int hf_rsvp_3gpp_obj_tft_n_pkt_flt = -1; -static int hf_rsvp_3gpp_obj_flow_id = -1; -static int hf_rsvp_3gpp_obj_pf_ev_prec = -1; -static int hf_rsvp_3gpp_obj_pf_len = -1; -static int hf_rsvp_3gpp_obj_pf_type = -1; -static int hf_rsvp_3gpp_obj_pf_cont_len = -1; -static int hf_rsvp_3gpp_obj_pf_comp_type_id = -1; -static int hf_rsvp_3gpp_obj_pf_src_ipv4 = -1; -static int hf_rsvp_3gpp_obj_pf_dst_ipv4 = -1; -static int hf_rsvp_3gpp_obj_pf_ipv4_mask = -1; -static int hf_rsvp_3gpp_obj_pf_src_ipv6 = -1; -static int hf_rsvp_3gpp_obj_pf_dst_ipv6 = -1; -static int hf_rsvp_3gpp_obj_pf_ipv6_prefix_length = -1; -static int hf_rsvp_3gpp_obj_pf_prot_next = -1; -static int hf_rsvp_3gpp_obj_pf_dst_port = -1; -static int hf_rsvp_3gpp_obj_pf_src_port = -1; -static int hf_rsvp_3gpp_obj_pf_ipsec_spi = -1; -static int hf_rsvp_3gpp_obj_pf_tos_tc = -1; -static int hf_rsvp_3gpp_obj_pf_flow_lbl = -1; -static int hf_rsvp_3gpp_obj_pf_ipv6 = -1; -static int hf_rsvp_3gpp_obj_pf_treatment = -1; -static int hf_rsvp_3gpp_obj_pf_hint = -1; -static int hf_rsvp_3gpp_obj_tft_qos_list_len = -1; -static int hf_rsvp_3gpp_r_qos_blob_len = -1; -static int hf_rsvp_3gpp_r_qos_blob_flow_pri = -1; -static int hf_rsvp_3gpp_r_qos_blob_num_qos_att_set = -1; -static int hf_rsvp_3gpp_qos_att_set_len = -1; -static int hf_rsvp_3gpp_qos_attribute_set_id = -1; -static int hf_rsvp_3gpp_qos_attribute_verbose = -1; -static int hf_rsvp_3gpp_qos_attribute_prof_id = -1; -static int hf_rsvp_3gpp_qos_attribute_traff_cls = -1; -static int hf_rsvp_3gpp_qos_attribute_peak_rate = -1; -static int hf_rsvp_3gpp_qos_attribute_bucket_size = -1; -static int hf_rsvp_3gpp_qos_attribute_token_rate = -1; -static int hf_rsvp_3gpp_qos_attribute_max_latency = -1; -static int hf_rsvp_3gpp_qos_attribute_max_loss_rte = -1; -static int hf_rsvp_3gpp_qos_attribute_delay_var_sensitive = -1; -static int hf_rsvp_3gpp_qos_attribute_reserved = -1; -static int hf_rsvp_3gpp_r_qos_blob = -1; -static int hf_rsvp_3gpp_qos_result = -1; -static int hf_rsvp_xro_sobj_lbit = -1; -static int hf_rsvp_rro_sobj_dbit = -1; -static int hf_rsvp_xro_sobj_len = -1; -static int hf_rsvp_xro_sobj_ipv4_addr = -1; -static int hf_rsvp_xro_sobj_ipv4_prefix = -1; -static int hf_rsvp_xro_sobj_ipv4_attr = -1; -static int hf_rsvp_xro_sobj_ipv6_attr = -1; -static int hf_rsvp_xro_sobj_srlg_id = -1; -static int hf_rsvp_xro_sobj_srlg_res = -1; -static int hf_rsvp_private_data = -1; -static int hf_rsvp_juniper_numtlvs = -1; -static int hf_rsvp_juniper_padlength = -1; -static int hf_rsvp_juniper_type = -1; -static int hf_rsvp_juniper_length = -1; -static int hf_rsvp_juniper_attrib_cos = -1; -static int hf_rsvp_juniper_attrib_metric1 = -1; -static int hf_rsvp_juniper_attrib_metric2 = -1; -static int hf_rsvp_juniper_attrib_ccc_status = -1; -static int hf_rsvp_juniper_attrib_path = -1; -static int hf_rsvp_juniper_attrib_unknown = -1; -static int hf_rsvp_juniper_unknown = -1; -static int hf_rsvp_juniper_pad = -1; -static int hf_rsvp_unknown_data = -1; -static int hf_rsvp_ctype = -1; -static int hf_rsvp_ctype_session = -1; -static int hf_rsvp_ctype_scope = -1; -static int hf_rsvp_ctype_label_request = -1; -static int hf_rsvp_ctype_integrity = -1; -static int hf_rsvp_ctype_adspec = -1; -static int hf_rsvp_ctype_tspec = -1; -static int hf_rsvp_ctype_call_id = -1; -static int hf_rsvp_ctype_template = -1; -static int hf_rsvp_ctype_style = -1; -static int hf_rsvp_ctype_policy = -1; -static int hf_rsvp_ctype_error = -1; -static int hf_rsvp_ctype_attribute = -1; -static int hf_rsvp_ctype_explicit_route = -1; -static int hf_rsvp_ctype_flowspec = -1; -static int hf_rsvp_ctype_hop = -1; -static int hf_rsvp_ctype_confirm = -1; -static int hf_rsvp_ctype_time_values = -1; -static int hf_rsvp_ctype_record_route = -1; -static int hf_rsvp_ctype_exclude_route = -1; -static int hf_rsvp_ctype_message_id = -1; -static int hf_rsvp_ctype_message_id_ack = -1; -static int hf_rsvp_ctype_message_id_list = -1; -static int hf_rsvp_ctype_hello = -1; -static int hf_rsvp_ctype_dclass = -1; -static int hf_rsvp_ctype_admin_status = -1; -static int hf_rsvp_ctype_lsp_attributes = -1; -static int hf_rsvp_ctype_label_set = -1; -static int hf_rsvp_ctype_association = -1; -static int hf_rsvp_ctype_tunnel_if_id = -1; -static int hf_rsvp_ctype_3gpp_object = -1; -static int hf_rsvp_ctype_restart_cap = -1; -static int hf_rsvp_ctype_link_cap = -1; -static int hf_rsvp_ctype_protection_info = -1; -static int hf_rsvp_ctype_fast_reroute = -1; -static int hf_rsvp_ctype_detour = -1; -static int hf_rsvp_ctype_diffserv = -1; -static int hf_rsvp_ctype_diffserv_aware_te = -1; -static int hf_rsvp_ctype_vendor = -1; -static int hf_rsvp_ctype_juniper = -1; -static int hf_rsvp_ctype_unknown = -1; -static int hf_rsvp_ctype_label = -1; -static int hf_rsvp_ctype_notify_request = -1; -static int hf_rsvp_ctype_generalized_uni = -1; -static int hf_rsvp_parameter = -1; -static int hf_rsvp_parameter_flags = -1; -static int hf_rsvp_parameter_length = -1; -static int hf_rsvp_error_value = -1; -static int hf_rsvp_class = -1; -static int hf_rsvp_class_length = -1; -static int hf_rsvp_reserved = -1; -static int hf_rsvp_switching_granularity = -1; -static int hf_rsvp_callid_srcaddr_ether = -1; -static int hf_rsvp_callid_srcaddr_bytes = -1; -static int hf_rsvp_loose_hop = -1; -static int hf_rsvp_data_length = -1; - -static int hf_rsvp_ctype_s2l_sub_lsp = -1; -static int hf_rsvp_s2l_sub_lsp_destination_ipv4_address = -1; -static int hf_rsvp_s2l_sub_lsp_destination_ipv6_address = -1; -static int hf_rsvp_s2l_sub_lsp_data = -1; +static dissector_handle_t rsvp_handle, rsvpe2ei_handle; + +static int proto_rsvp; +static int proto_rsvp_e2e1; + +static int hf_rsvp_error_flags; +static int hf_rsvp_error_flags_path_state_removed; +static int hf_rsvp_error_flags_not_guilty; +static int hf_rsvp_error_flags_in_place; +static int hf_rsvp_eth_tspec_tlv_color_mode; +static int hf_rsvp_eth_tspec_tlv_coupling_flag; +static int hf_rsvp_sender_tspec_standard_contiguous_concatenation; +static int hf_rsvp_sender_tspec_arbitrary_contiguous_concatenation; +static int hf_rsvp_sender_tspec_regenerator_section; +static int hf_rsvp_sender_tspec_multiplex_section; +static int hf_rsvp_sender_tspec_J0_transparency; +static int hf_rsvp_sender_tspec_SOH_RSOH_DCC_transparency; +static int hf_rsvp_sender_tspec_LOH_MSOH_DCC_transparency; +static int hf_rsvp_sender_tspec_LOH_MSOH_extended_DCC_transparency; +static int hf_rsvp_sender_tspec_K1_K2_transparency; +static int hf_rsvp_sender_tspec_E1_transparency; +static int hf_rsvp_sender_tspec_F1_transparency; +static int hf_rsvp_sender_tspec_E2_transparency; +static int hf_rsvp_sender_tspec_B1_transparency; +static int hf_rsvp_sender_tspec_B2_transparency; +static int hf_rsvp_sender_tspec_M0_transparency; +static int hf_rsvp_sender_tspec_M1_transparency; +static int hf_rsvp_flowspec_standard_contiguous_concatenation; +static int hf_rsvp_flowspec_arbitrary_contiguous_concatenation; +static int hf_rsvp_flowspec_regenerator_section; +static int hf_rsvp_flowspec_multiplex_section; +static int hf_rsvp_flowspec_J0_transparency; +static int hf_rsvp_flowspec_SOH_RSOH_DCC_transparency; +static int hf_rsvp_flowspec_LOH_MSOH_DCC_transparency; +static int hf_rsvp_flowspec_LOH_MSOH_extended_DCC_transparency; +static int hf_rsvp_flowspec_K1_K2_transparency; +static int hf_rsvp_flowspec_E1_transparency; +static int hf_rsvp_flowspec_F1_transparency; +static int hf_rsvp_flowspec_E2_transparency; +static int hf_rsvp_flowspec_B1_transparency; +static int hf_rsvp_flowspec_B2_transparency; +static int hf_rsvp_flowspec_M0_transparency; +static int hf_rsvp_flowspec_M1_transparency; +static int hf_rsvp_integrity_flags_handshake; +static int hf_rsvp_sa_flags_local; +static int hf_rsvp_sa_flags_label; +static int hf_rsvp_sa_flags_se_style; +static int hf_rsvp_sa_flags_bandwidth; +static int hf_rsvp_sa_flags_node; +static int hf_rsvp_rro_flags_local_avail; +static int hf_rsvp_rro_flags_local_in_use; +static int hf_rsvp_rro_flags_bandwidth; +static int hf_rsvp_rro_flags_node; +static int hf_rsvp_rro_flags_node_address; +static int hf_rsvp_rro_flags_backup_tunnel_bandwidth; +static int hf_rsvp_rro_flags_backup_tunnel_hop; +static int hf_rsvp_rro_flags_global_label; +static int hf_rsvp_lsp_attr; +static int hf_rsvp_lsp_attr_e2e; +static int hf_rsvp_lsp_attr_boundary; +static int hf_rsvp_lsp_attr_segment; +static int hf_rsvp_lsp_attr_integrity; +static int hf_rsvp_lsp_attr_contiguous; +static int hf_rsvp_lsp_attr_stitching; +static int hf_rsvp_lsp_attr_preplanned; +static int hf_rsvp_lsp_attr_nophp; +static int hf_rsvp_lsp_attr_oobmap; +static int hf_rsvp_lsp_attr_entropy; +static int hf_rsvp_lsp_attr_oammep; +static int hf_rsvp_lsp_attr_oammip; +static int hf_rsvp_lsp_attr_loopback; +static int hf_rsvp_lsp_attr_p2mp; +static int hf_rsvp_lsp_attr_rtm; +static int hf_rsvp_lsp_attr_lsi; +static int hf_rsvp_lsp_attr_lsids2e; +static int hf_rsvp_lsp_attr_telinklabel; +static int hf_rsvp_lsp_attr_srlgcollect; +static int hf_rsvp_gen_uni_direction; +static int hf_rsvp_protection_info_flags_secondary_lsp; +static int hf_rsvp_pi_link_flags_extra_traffic; +static int hf_rsvp_pi_link_flags_unprotected; +static int hf_rsvp_pi_link_flags_shared; +static int hf_rsvp_pi_link_flags_dedicated1_1; +static int hf_rsvp_pi_link_flags_dedicated1plus1; +static int hf_rsvp_pi_link_flags_enhanced; +static int hf_rsvp_pi_link_flags_extra; +static int hf_rsvp_pi_link_flags_dedicated_1_1; +static int hf_rsvp_pi_link_flags_dedicated_1plus1; +static int hf_rsvp_rfc4872_secondary; +static int hf_rsvp_rfc4872_protecting; +static int hf_rsvp_rfc4872_notification_msg; +static int hf_rsvp_rfc4872_operational; +static int hf_rsvp_pi_lsp_flags_full_rerouting; +static int hf_rsvp_pi_lsp_flags_rerouting_extra; +static int hf_rsvp_pi_lsp_flags_1_n_protection; +static int hf_rsvp_pi_lsp_flags_1plus1_unidirectional; +static int hf_rsvp_pi_lsp_flags_1plus1_bidirectional; +static int hf_rsvp_protection_info_in_place; +static int hf_rsvp_protection_info_required; +static int hf_rsvp_pi_seg_flags_full_rerouting; +static int hf_rsvp_pi_seg_flags_rerouting_extra; +static int hf_rsvp_pi_seg_flags_1_n_protection; +static int hf_rsvp_pi_seg_flags_1plus1_unidirectional; +static int hf_rsvp_pi_seg_flags_1plus1_bidirectional; +static int hf_rsvp_frr_flags_one2one_backup; +static int hf_rsvp_frr_flags_facility_backup; +static int hf_rsvp_type; +static int hf_rsvp_3gpp_obj_tid; +static int hf_rsvp_3gpp_obj_ie_len; +static int hf_rsvp_3gpp_obj_ie_type; +static int hf_rsvp_3gpp_obj_ue_ipv4_addr; +static int hf_rsvp_3gpp_obj_ue_ipv6_addr; +static int hf_rsvp_3gpp_obj_tft_d; +static int hf_rsvp_3gpp_obj_tft_ns; +static int hf_rsvp_3gpp_obj_tft_sr_id; +static int hf_rsvp_3gpp_obj_tft_p; +static int hf_rsvp_3gpp_obj_tft_opcode; +static int hf_rsvp_3gpp_obj_tft_n_pkt_flt; +static int hf_rsvp_3gpp_obj_flow_id; +static int hf_rsvp_3gpp_obj_pf_ev_prec; +static int hf_rsvp_3gpp_obj_pf_len; +static int hf_rsvp_3gpp_obj_pf_type; +static int hf_rsvp_3gpp_obj_pf_cont_len; +static int hf_rsvp_3gpp_obj_pf_comp_type_id; +static int hf_rsvp_3gpp_obj_pf_src_ipv4; +static int hf_rsvp_3gpp_obj_pf_dst_ipv4; +static int hf_rsvp_3gpp_obj_pf_ipv4_mask; +static int hf_rsvp_3gpp_obj_pf_src_ipv6; +static int hf_rsvp_3gpp_obj_pf_dst_ipv6; +static int hf_rsvp_3gpp_obj_pf_ipv6_prefix_length; +static int hf_rsvp_3gpp_obj_pf_prot_next; +static int hf_rsvp_3gpp_obj_pf_dst_port; +static int hf_rsvp_3gpp_obj_pf_src_port; +static int hf_rsvp_3gpp_obj_pf_ipsec_spi; +static int hf_rsvp_3gpp_obj_pf_tos_tc; +static int hf_rsvp_3gpp_obj_pf_flow_lbl; +static int hf_rsvp_3gpp_obj_pf_ipv6; +static int hf_rsvp_3gpp_obj_pf_treatment; +static int hf_rsvp_3gpp_obj_pf_hint; +static int hf_rsvp_3gpp_obj_tft_qos_list_len; +static int hf_rsvp_3gpp_r_qos_blob_len; +static int hf_rsvp_3gpp_r_qos_blob_flow_pri; +static int hf_rsvp_3gpp_r_qos_blob_num_qos_att_set; +static int hf_rsvp_3gpp_qos_att_set_len; +static int hf_rsvp_3gpp_qos_attribute_set_id; +static int hf_rsvp_3gpp_qos_attribute_verbose; +static int hf_rsvp_3gpp_qos_attribute_prof_id; +static int hf_rsvp_3gpp_qos_attribute_traff_cls; +static int hf_rsvp_3gpp_qos_attribute_peak_rate; +static int hf_rsvp_3gpp_qos_attribute_bucket_size; +static int hf_rsvp_3gpp_qos_attribute_token_rate; +static int hf_rsvp_3gpp_qos_attribute_max_latency; +static int hf_rsvp_3gpp_qos_attribute_max_loss_rte; +static int hf_rsvp_3gpp_qos_attribute_delay_var_sensitive; +static int hf_rsvp_3gpp_qos_attribute_reserved; +static int hf_rsvp_3gpp_r_qos_blob; +static int hf_rsvp_3gpp_qos_result; +static int hf_rsvp_xro_sobj_lbit; +static int hf_rsvp_rro_sobj_dbit; +static int hf_rsvp_xro_sobj_len; +static int hf_rsvp_xro_sobj_ipv4_addr; +static int hf_rsvp_xro_sobj_ipv4_prefix; +static int hf_rsvp_xro_sobj_ipv4_attr; +static int hf_rsvp_xro_sobj_ipv6_attr; +static int hf_rsvp_xro_sobj_srlg_id; +static int hf_rsvp_xro_sobj_srlg_res; +static int hf_rsvp_private_data; +static int hf_rsvp_juniper_numtlvs; +static int hf_rsvp_juniper_padlength; +static int hf_rsvp_juniper_type; +static int hf_rsvp_juniper_length; +static int hf_rsvp_juniper_attrib_cos; +static int hf_rsvp_juniper_attrib_metric1; +static int hf_rsvp_juniper_attrib_metric2; +static int hf_rsvp_juniper_attrib_ccc_status; +static int hf_rsvp_juniper_attrib_path; +static int hf_rsvp_juniper_attrib_unknown; +static int hf_rsvp_juniper_unknown; +static int hf_rsvp_juniper_pad; +static int hf_rsvp_unknown_data; +static int hf_rsvp_ctype; +static int hf_rsvp_ctype_session; +static int hf_rsvp_ctype_scope; +static int hf_rsvp_ctype_label_request; +static int hf_rsvp_ctype_integrity; +static int hf_rsvp_ctype_adspec; +static int hf_rsvp_ctype_tspec; +static int hf_rsvp_ctype_call_id; +static int hf_rsvp_ctype_template; +static int hf_rsvp_ctype_style; +static int hf_rsvp_ctype_policy; +static int hf_rsvp_ctype_error; +static int hf_rsvp_ctype_attribute; +static int hf_rsvp_ctype_explicit_route; +static int hf_rsvp_ctype_secondary_explicit_route; +static int hf_rsvp_ctype_flowspec; +static int hf_rsvp_ctype_hop; +static int hf_rsvp_ctype_confirm; +static int hf_rsvp_ctype_time_values; +static int hf_rsvp_ctype_record_route; +static int hf_rsvp_ctype_secondary_record_route; +static int hf_rsvp_ctype_exclude_route; +static int hf_rsvp_ctype_message_id; +static int hf_rsvp_ctype_message_id_ack; +static int hf_rsvp_ctype_message_id_list; +static int hf_rsvp_ctype_hello; +static int hf_rsvp_ctype_dclass; +static int hf_rsvp_ctype_admin_status; +static int hf_rsvp_ctype_lsp_attributes; +static int hf_rsvp_ctype_label_set; +static int hf_rsvp_ctype_association; +static int hf_rsvp_ctype_tunnel_if_id; +static int hf_rsvp_ctype_3gpp_object; +static int hf_rsvp_ctype_restart_cap; +static int hf_rsvp_ctype_link_cap; +static int hf_rsvp_ctype_capability; +static int hf_rsvp_ctype_protection_info; +static int hf_rsvp_ctype_fast_reroute; +static int hf_rsvp_ctype_detour; +static int hf_rsvp_ctype_diffserv; +static int hf_rsvp_ctype_diffserv_aware_te; +static int hf_rsvp_ctype_vendor; +static int hf_rsvp_ctype_juniper; +static int hf_rsvp_ctype_unknown; +static int hf_rsvp_ctype_label; +static int hf_rsvp_ctype_notify_request; +static int hf_rsvp_ctype_generalized_uni; +static int hf_rsvp_parameter; +static int hf_rsvp_parameter_flags; +static int hf_rsvp_parameter_length; +static int hf_rsvp_error_value; +static int hf_rsvp_class; +static int hf_rsvp_class_length; +static int hf_rsvp_reserved; +static int hf_rsvp_switching_granularity; +static int hf_rsvp_callid_srcaddr_ether; +static int hf_rsvp_callid_srcaddr_bytes; +static int hf_rsvp_loose_hop; +static int hf_rsvp_data_length; + +static int hf_rsvp_ctype_s2l_sub_lsp; +static int hf_rsvp_s2l_sub_lsp_destination_ipv4_address; +static int hf_rsvp_s2l_sub_lsp_destination_ipv6_address; +static int hf_rsvp_s2l_sub_lsp_data; /* Generated from convert_proto_tree_add_text.pl */ -static int hf_rsvp_message_id_data = -1; -static int hf_rsvp_ero_rro_subobjects_length = -1; -static int hf_rsvp_fast_reroute_hop_limit = -1; -static int hf_rsvp_lsp_tunnel_if_id_router_id = -1; -static int hf_rsvp_ero_rro_subobjects_path_key = -1; -static int hf_rsvp_ifid_tlv_area = -1; -static int hf_rsvp_session_attribute_include_any = -1; -static int hf_rsvp_lsp_tunnel_if_id_sc_pc_scn_address = -1; -static int hf_rsvp_ero_rro_subobjects_ipv6_hop = -1; -static int hf_rsvp_lsp_tunnel_if_id_ipv6_interface_address = -1; -static int hf_rsvp_lsp_tunnel_if_id_component_link_identifier_ipv4 = -1; -static int hf_rsvp_ifid_tlvinterface_id = -1; -static int hf_rsvp_eth_tspec_cir = -1; -static int hf_rsvp_confirm_receiver_address_ipv6 = -1; -static int hf_rsvp_error_error_node_ipv6 = -1; -static int hf_rsvp_time_values_data = -1; -static int hf_rsvp_flowspec_rate = -1; -static int hf_rsvp_session_attribute_hold_priority = -1; -static int hf_rsvp_notify_request_notify_node_address_ipv4 = -1; -static int hf_rsvp_lsp_tunnel_if_id_action = -1; -static int hf_rsvp_scope_data = -1; -static int hf_rsvp_label_request_l3pid = -1; -static int hf_rsvp_eth_tspec_index = -1; -static int hf_rsvp_integrity_sequence_number = -1; -static int hf_rsvp_adspec_message_format_version = -1; -static int hf_rsvp_fast_reroute_setup_priority = -1; -static int hf_rsvp_eth_tspec_reserved = -1; -static int hf_rsvp_eth_tspec_el2cp = -1; -static int hf_rsvp_eth_tspec_il2cp = -1; -static int hf_rsvp_fast_reroute_include_all = -1; -static int hf_rsvp_association_routing_area_id = -1; -static int hf_rsvp_label_label = -1; -static int hf_rsvp_session_attribute_include_all = -1; -static int hf_rsvp_flowspec_token_bucket_rate = -1; -static int hf_rsvp_call_id_address_type = -1; -static int hf_rsvp_session_attribute_name_length = -1; -static int hf_rsvp_detour_data = -1; -static int hf_rsvp_association_node_id = -1; -static int hf_rsvp_ifid_tlv_length = -1; -static int hf_rsvp_flags = -1; -static int hf_rsvp_tspec_message_format_version = -1; -static int hf_rsvp_ifid_tlv_ipv4_address = -1; -static int hf_rsvp_hop_data = -1; -static int hf_rsvp_ifid_tlv_data = -1; -static int hf_rsvp_length = -1; -static int hf_rsvp_ero_rro_subobjects_pce_id_ipv6 = -1; -static int hf_rsvp_association_data = -1; -static int hf_rsvp_tspec_number_of_multiplexed_components = -1; -static int hf_rsvp_session_attribute_setup_priority = -1; -static int hf_rsvp_message_id_flags = -1; -static int hf_rsvp_hop_logical_interface = -1; -static int hf_rsvp_compression_factor = -1; -static int hf_rsvp_ero_rro_subobjects_private_data = -1; -static int hf_rsvp_lsp_attributes_tlv_data = -1; -static int hf_rsvp_flowspec_token_bucket_size = -1; -static int hf_rsvp_call_id_data = -1; -static int hf_rsvp_template_filter_source_address_ipv6 = -1; -static int hf_rsvp_message_id_ack_flags = -1; -static int hf_rsvp_flowspec_multiplier = -1; -static int hf_rsvp_tspec_token_bucket_size = -1; -static int hf_rsvp_admin_status_bits = -1; -static int hf_rsvp_admin_status_data = -1; -static int hf_rsvp_tspec_peak_data_rate = -1; -static int hf_rsvp_flowspec_number_of_virtual_components = -1; -static int hf_rsvp_hop_neighbor_address_ipv6 = -1; -static int hf_rsvp_flowspec_signal_type_sonet = -1; -static int hf_rsvp_ifid_tlv_autonomous_system = -1; -static int hf_rsvp_scope_ipv6_address = -1; -static int hf_rsvp_flowspec_service_header = -1; -static int hf_rsvp_tspec_hint = -1; -static int hf_rsvp_label_set_action = -1; -static int hf_rsvp_error_data = -1; -static int hf_rsvp_style_flags = -1; -static int hf_rsvp_g_pid = -1; -static int hf_rsvp_integrity_key_identifier = -1; -static int hf_rsvp_adspec_service_header = -1; -static int hf_rsvp_ifid_tlv_error_string = -1; -static int hf_rsvp_session_destination_address = -1; -static int hf_rsvp_ifid_tlv_node_id = -1; -static int hf_rsvp_lsp_tunnel_if_id_component_link_identifier = -1; -static int hf_rsvp_call_id_international_segment = -1; -static int hf_rsvp_fast_reroute_include_any = -1; -static int hf_rsvp_label_request_min_vci = -1; -static int hf_rsvp_tspec_profile = -1; -static int hf_rsvp_eth_tspec_length = -1; -static int hf_rsvp_exclude_route_data = -1; -static int hf_rsvp_record_route_data = -1; -static int hf_rsvp_confirm_receiver_address_ipv4 = -1; -static int hf_rsvp_message_id_list_message_id = -1; -static int hf_rsvp_template_filter_ipv4_tunnel_sender_address = -1; -static int hf_rsvp_template_filter_ipv6_tunnel_sender_address = -1; -static int hf_rsvp_template_filter_sub_group_originator_id = -1; -static int hf_rsvp_template_filter_sub_group_id = -1; -static int hf_rsvp_template_filter_data = -1; -static int hf_rsvp_notify_request_notify_node_address_ipv6 = -1; -static int hf_rsvp_message_id_ack_data = -1; -static int hf_rsvp_eth_tspec_profile = -1; -static int hf_rsvp_label_request_max_vpi = -1; -static int hf_rsvp_ero_rro_subobjects_private_length = -1; -static int hf_rsvp_fast_reroute_exclude_any = -1; -static int hf_rsvp_lsp_tunnel_if_id_data = -1; -static int hf_rsvp_hello_destination_instance = -1; -static int hf_rsvp_tspec_signal_type_g709 = -1; -static int hf_rsvp_call_id_reserved = -1; -static int hf_rsvp_version = -1; -static int hf_rsvp_association_source_ipv6 = -1; -static int hf_rsvp_ero_rro_subobjects_flags = -1; -static int hf_rsvp_lsp_tunnel_if_id_lsp_encoding_type = -1; -static int hf_rsvp_association_type = -1; -static int hf_rsvp_tspec_data = -1; -static int hf_rsvp_session_destination_port = -1; -static int hf_rsvp_association_id = -1; -static int hf_rsvp_integrity_hash = -1; -static int hf_rsvp_flowspec_number_of_contiguous_components = -1; -static int hf_rsvp_policy_data = -1; -static int hf_rsvp_tspec_token_bucket_rate = -1; -static int hf_rsvp_tspec_multiplier = -1; -static int hf_rsvp_dclass_dscp = -1; -static int hf_rsvp_tspec_number_of_contiguous_components = -1; -static int hf_rsvp_session_p2mp_id = -1; -static int hf_rsvp_session_data = -1; -static int hf_rsvp_lsp_tunnel_if_id_target_igp_instance = -1; -static int hf_rsvp_flowspec_profile = -1; -static int hf_rsvp_message_id_ack_epoch = -1; -static int hf_rsvp_hello_source_instance = -1; -static int hf_rsvp_scope_ipv4_address = -1; -static int hf_rsvp_label_request_lsp_encoding_type = -1; -static int hf_rsvp_fast_reroute_hold_priority = -1; -static int hf_rsvp_label_request_max_vci = -1; -static int hf_rsvp_fast_reroute_flags = -1; -static int hf_rsvp_flowspec_peak_data_rate = -1; -static int hf_rsvp_ero_rro_subobjects_label = -1; -static int hf_rsvp_notify_request_data = -1; -static int hf_rsvp_lsp_tunnel_if_id_connection_id = -1; -static int hf_rsvp_eth_tspec_ebs = -1; -static int hf_rsvp_fast_reroute_data = -1; -static int hf_rsvp_label_request_min_vpi = -1; -static int hf_rsvp_session_attribute_data = -1; -static int hf_rsvp_protection_info_data = -1; -static int hf_rsvp_tspec_transparency = -1; -static int hf_rsvp_ifid_tlv_label = -1; -static int hf_rsvp_session_extended_ipv4_address = -1; -static int hf_rsvp_diffserv_aware_te_data = -1; -static int hf_rsvp_lsp_tunnel_if_id_signal_type = -1; -static int hf_rsvp_ero_rro_subobjects_pce_id_ipv4 = -1; -static int hf_rsvp_error_error_node_ipv4 = -1; -static int hf_rsvp_session_protocol = -1; -static int hf_rsvp_tspec_signal_type_sonet = -1; -static int hf_rsvp_session_attribute_flags = -1; -static int hf_rsvp_ero_rro_subobjects_router_id = -1; -static int hf_rsvp_message_id_list_data = -1; -static int hf_rsvp_style_style = -1; -static int hf_rsvp_tspec_number_of_virtual_components = -1; -static int hf_rsvp_tspec_mtu = -1; -static int hf_rsvp_lsp_tunnel_if_id_length = -1; -static int hf_rsvp_ifid_tlv_ipv6_address = -1; -static int hf_rsvp_diffserv_data = -1; -static int hf_rsvp_session_flags = -1; -static int hf_rsvp_flowspec_transparency = -1; -static int hf_rsvp_dclass_data = -1; -static int hf_rsvp_lsp_tunnel_if_id_interface_id = -1; -static int hf_rsvp_lsp_tunnel_if_id_sc_pc_id = -1; -static int hf_rsvp_error_error_code = -1; -static int hf_rsvp_lsp_tunnel_if_id_ipv4_interface_address = -1; -static int hf_rsvp_session_attribute_exclude_any = -1; -static int hf_rsvp_sending_ttl = -1; -static int hf_rsvp_integrity_flags = -1; -static int hf_rsvp_message_id_ack_message_id = -1; -static int hf_rsvp_message_id_message_id = -1; -static int hf_rsvp_ero_rro_subobjects_interface_id = -1; -static int hf_rsvp_message_length = -1; -static int hf_rsvp_message_id_epoch = -1; -static int hf_rsvp_flowspec_signal_type_g709 = -1; -static int hf_rsvp_label_request_data = -1; -static int hf_rsvp_restart_cap_data = -1; -static int hf_rsvp_lsp_attributes_tlv = -1; -static int hf_rsvp_flowspec_mtu = -1; -static int hf_rsvp_flowspec_m = -1; -static int hf_rsvp_tspec_service_header = -1; -static int hf_rsvp_eth_tspec_cbs = -1; -static int hf_rsvp_call_id_national_segment = -1; -static int hf_rsvp_template_filter_source_port = -1; -static int hf_rsvp_eth_tspec_eir = -1; -static int hf_rsvp_ero_rro_subobjects_ipv4_hop = -1; -static int hf_rsvp_lsp_tunnel_if_id_switching_type = -1; -static int hf_rsvp_flowspec_number_of_multiplexed_components = -1; -static int hf_rsvp_label_request_switching_type = -1; -static int hf_rsvp_ero_rro_subobjects_prefix_length = -1; -static int hf_rsvp_explicit_route_data = -1; -static int hf_rsvp_association_source_ipv4 = -1; -static int hf_rsvp_call_id_local_identifier = -1; -static int hf_rsvp_flowspec_message_format_version = -1; -static int hf_rsvp_tspec_requested_concatenation = -1; -static int hf_rsvp_association_padding = -1; -static int hf_rsvp_hop_neighbor_address_ipv4 = -1; -static int hf_rsvp_flowspec_requested_concatenation = -1; -static int hf_rsvp_fast_reroute_bandwidth = -1; -static int hf_rsvp_message_id_list_epoch = -1; -static int hf_rsvp_style_data = -1; -static int hf_rsvp_session_dscp = -1; -static int hf_rsvp_confirm_data = -1; -static int hf_rsvp_protection_info_link_flags = -1; -static int hf_rsvp_message_id_list_flags = -1; -static int hf_rsvp_label_data = -1; -static int hf_rsvp_flowspec_slack_term = -1; -static int hf_rsvp_label_generalized_label = -1; -static int hf_rsvp_label_generalized_label_evpl_vlad_id = -1; -static int hf_rsvp_session_attribute_name = -1; -static int hf_rsvp_ifid_tlv_padding = -1; -static int hf_rsvp_max_dlci = -1; -static int hf_rsvp_minimum_policed_unit = -1; -static int hf_rsvp_dlci_length = -1; -static int hf_rsvp_label_request_m = -1; -static int hf_rsvp_detour_avoid_node_id = -1; -static int hf_rsvp_restart_cap_restart_time = -1; -static int hf_rsvp_nsap_length = -1; -static int hf_rsvp_message_checksum = -1; -static int hf_rsvp_ero_rro_autonomous_system = -1; -static int hf_rsvp_gen_uni_service_level = -1; -static int hf_rsvp_hf_rsvp_adspec_break_bit = -1; -static int hf_rsvp_extended_tunnel_id = -1; -static int hf_rsvp_extended_tunnel_ipv6 = -1; -static int hf_rsvp_maximum_packet_size = -1; -static int hf_rsvp_min_dlci = -1; -static int hf_rsvp_gen_uni_data = -1; -static int hf_rsvp_gen_uni_logical_port_id = -1; -static int hf_rsvp_refresh_interval = -1; -static int hf_rsvp_detour_plr_id = -1; -static int hf_rsvp_restart_cap_recovery_time = -1; -static int hf_rsvp_extended_tunnel = -1; -static int hf_rsvp_call_attributes_endpont_id = -1; -static int hf_rsvp_isis_area_id = -1; -static int hf_rsvp_adspec_type = -1; -static int hf_rsvp_adspec_len = -1; -static int hf_rsvp_adspec_uint = -1; -static int hf_rsvp_adspec_float = -1; -static int hf_rsvp_adspec_bytes = -1; -static int hf_rsvp_wavelength_grid = -1; -static int hf_rsvp_wavelength_cs1 = -1; -static int hf_rsvp_wavelength_cs2 = -1; -static int hf_rsvp_wavelength_cs3 = -1; -static int hf_rsvp_wavelength_channel_spacing = -1; -static int hf_rsvp_wavelength_n = -1; -static int hf_rsvp_wavelength_m = -1; -static int hf_rsvp_wavelength_freq = -1; -static int hf_rsvp_wavelength_wavelength = -1; -static int hf_rsvp_sonet_s = -1; -static int hf_rsvp_sonet_u = -1; -static int hf_rsvp_sonet_k = -1; -static int hf_rsvp_sonet_l = -1; -static int hf_rsvp_sonet_m = -1; -static int hf_rsvp_g709_t3 = -1; -static int hf_rsvp_g709_t2 = -1; -static int hf_rsvp_g709_t1 = -1; -static int hf_rsvp_label_set_type = -1; -static int hf_rsvp_label_set_subchannel = -1; -static int hf_rsvp_nsap_address = -1; -static int hf_rsvp_class_diversity = -1; -static int hf_rsvp_egress_label_type = -1; -static int hf_rsvp_egress_label = -1; -static int hf_rsvp_source_transport_network_addr = -1; -static int hf_rsvp_ie_data = -1; -static int hf_rsvp_3gpp_obj_pf_dst_port_range = -1; -static int hf_rsvp_3gpp_obj_pf_src_port_range = -1; - -static expert_field ei_rsvp_invalid_length = EI_INIT; -static expert_field ei_rsvp_packet_filter_component = EI_INIT; -static expert_field ei_rsvp_bundle_component_msg = EI_INIT; -static expert_field ei_rsvp_parameter = EI_INIT; -static expert_field ei_rsvp_adspec_type = EI_INIT; -static expert_field ei_rsvp_call_id_address_type = EI_INIT; -static expert_field ei_rsvp_session_type = EI_INIT; - -static int rsvp_tap = -1; +static int hf_rsvp_message_id_data; +static int hf_rsvp_ero_rro_subobjects_length; +static int hf_rsvp_fast_reroute_hop_limit; +static int hf_rsvp_lsp_tunnel_if_id_router_id; +static int hf_rsvp_ero_rro_subobjects_path_key; +static int hf_rsvp_ifid_tlv_area; +static int hf_rsvp_session_attribute_include_any; +static int hf_rsvp_lsp_tunnel_if_id_sc_pc_scn_address; +static int hf_rsvp_ero_rro_subobjects_ipv6_hop; +static int hf_rsvp_lsp_tunnel_if_id_ipv6_interface_address; +static int hf_rsvp_lsp_tunnel_if_id_component_link_identifier_ipv4; +static int hf_rsvp_ifid_tlvinterface_id; +static int hf_rsvp_eth_tspec_cir; +static int hf_rsvp_confirm_receiver_address_ipv6; +static int hf_rsvp_error_error_node_ipv6; +static int hf_rsvp_time_values_data; +static int hf_rsvp_flowspec_rate; +static int hf_rsvp_session_attribute_hold_priority; +static int hf_rsvp_notify_request_notify_node_address_ipv4; +static int hf_rsvp_lsp_tunnel_if_id_action; +static int hf_rsvp_scope_data; +static int hf_rsvp_label_request_l3pid; +static int hf_rsvp_eth_tspec_index; +static int hf_rsvp_integrity_sequence_number; +static int hf_rsvp_adspec_message_format_version; +static int hf_rsvp_fast_reroute_setup_priority; +static int hf_rsvp_eth_tspec_reserved; +static int hf_rsvp_eth_tspec_el2cp; +static int hf_rsvp_eth_tspec_il2cp; +static int hf_rsvp_fast_reroute_include_all; +static int hf_rsvp_association_routing_area_id; +static int hf_rsvp_label_label; +static int hf_rsvp_session_attribute_include_all; +static int hf_rsvp_flowspec_token_bucket_rate; +static int hf_rsvp_call_id_address_type; +static int hf_rsvp_session_attribute_name_length; +static int hf_rsvp_detour_data; +static int hf_rsvp_association_node_id; +static int hf_rsvp_ifid_tlv_length; +static int hf_rsvp_flags; +static int hf_rsvp_tspec_message_format_version; +static int hf_rsvp_ifid_tlv_ipv4_address; +static int hf_rsvp_hop_data; +static int hf_rsvp_ifid_tlv_data; +static int hf_rsvp_length; +static int hf_rsvp_ero_rro_subobjects_pce_id_ipv6; +static int hf_rsvp_association_data; +static int hf_rsvp_tspec_number_of_multiplexed_components; +static int hf_rsvp_session_attribute_setup_priority; +static int hf_rsvp_message_id_flags; +static int hf_rsvp_hop_logical_interface; +static int hf_rsvp_compression_factor; +static int hf_rsvp_ero_rro_subobjects_private_data; +static int hf_rsvp_lsp_attributes_tlv_data; +static int hf_rsvp_flowspec_token_bucket_size; +static int hf_rsvp_call_id_data; +static int hf_rsvp_template_filter_source_address_ipv6; +static int hf_rsvp_message_id_ack_flags; +static int hf_rsvp_flowspec_multiplier; +static int hf_rsvp_tspec_token_bucket_size; +static int hf_rsvp_admin_status_bits; +static int hf_rsvp_admin_status_data; +static int hf_rsvp_tspec_peak_data_rate; +static int hf_rsvp_flowspec_number_of_virtual_components; +static int hf_rsvp_hop_neighbor_address_ipv6; +static int hf_rsvp_flowspec_signal_type_sonet; +static int hf_rsvp_ifid_tlv_autonomous_system; +static int hf_rsvp_scope_ipv6_address; +static int hf_rsvp_flowspec_service_header; +static int hf_rsvp_tspec_hint; +static int hf_rsvp_label_set_action; +static int hf_rsvp_error_data; +static int hf_rsvp_style_flags; +static int hf_rsvp_g_pid; +static int hf_rsvp_integrity_key_identifier; +static int hf_rsvp_adspec_service_header; +static int hf_rsvp_ifid_tlv_error_string; +static int hf_rsvp_session_destination_address; +static int hf_rsvp_ifid_tlv_node_id; +static int hf_rsvp_lsp_tunnel_if_id_component_link_identifier; +static int hf_rsvp_call_id_international_segment; +static int hf_rsvp_fast_reroute_include_any; +static int hf_rsvp_label_request_min_vci; +static int hf_rsvp_tspec_profile; +static int hf_rsvp_eth_tspec_length; +static int hf_rsvp_exclude_route_data; +static int hf_rsvp_record_route_data; +static int hf_rsvp_secondary_record_route_data; +static int hf_rsvp_confirm_receiver_address_ipv4; +static int hf_rsvp_message_id_list_message_id; +static int hf_rsvp_template_filter_ipv4_tunnel_sender_address; +static int hf_rsvp_template_filter_ipv6_tunnel_sender_address; +static int hf_rsvp_template_filter_sub_group_originator_id; +static int hf_rsvp_template_filter_sub_group_id; +static int hf_rsvp_template_filter_data; +static int hf_rsvp_notify_request_notify_node_address_ipv6; +static int hf_rsvp_message_id_ack_data; +static int hf_rsvp_eth_tspec_profile; +static int hf_rsvp_label_request_max_vpi; +static int hf_rsvp_ero_rro_subobjects_private_length; +static int hf_rsvp_fast_reroute_exclude_any; +static int hf_rsvp_lsp_tunnel_if_id_data; +static int hf_rsvp_hello_destination_instance; +static int hf_rsvp_tspec_signal_type_g709; +static int hf_rsvp_call_id_reserved; +static int hf_rsvp_version; +static int hf_rsvp_association_source_ipv6; +static int hf_rsvp_ero_rro_subobjects_flags; +static int hf_rsvp_lsp_tunnel_if_id_lsp_encoding_type; +static int hf_rsvp_association_type; +static int hf_rsvp_tspec_data; +static int hf_rsvp_session_destination_port; +static int hf_rsvp_association_id; +static int hf_rsvp_integrity_hash; +static int hf_rsvp_flowspec_number_of_contiguous_components; +static int hf_rsvp_policy_data; +static int hf_rsvp_tspec_token_bucket_rate; +static int hf_rsvp_tspec_multiplier; +static int hf_rsvp_dclass_dscp; +static int hf_rsvp_tspec_number_of_contiguous_components; +static int hf_rsvp_session_p2mp_id; +static int hf_rsvp_session_data; +static int hf_rsvp_lsp_tunnel_if_id_target_igp_instance; +static int hf_rsvp_flowspec_profile; +static int hf_rsvp_message_id_ack_epoch; +static int hf_rsvp_hello_source_instance; +static int hf_rsvp_scope_ipv4_address; +static int hf_rsvp_label_request_lsp_encoding_type; +static int hf_rsvp_fast_reroute_hold_priority; +static int hf_rsvp_label_request_max_vci; +static int hf_rsvp_fast_reroute_flags; +static int hf_rsvp_flowspec_peak_data_rate; +static int hf_rsvp_ero_rro_subobjects_label; +static int hf_rsvp_notify_request_data; +static int hf_rsvp_lsp_tunnel_if_id_connection_id; +static int hf_rsvp_eth_tspec_ebs; +static int hf_rsvp_fast_reroute_data; +static int hf_rsvp_label_request_min_vpi; +static int hf_rsvp_session_attribute_data; +static int hf_rsvp_protection_info_data; +static int hf_rsvp_tspec_transparency; +static int hf_rsvp_ifid_tlv_label; +static int hf_rsvp_session_extended_ipv4_address; +static int hf_rsvp_diffserv_aware_te_data; +static int hf_rsvp_lsp_tunnel_if_id_signal_type; +static int hf_rsvp_ero_rro_subobjects_pce_id_ipv4; +static int hf_rsvp_error_error_node_ipv4; +static int hf_rsvp_session_protocol; +static int hf_rsvp_tspec_signal_type_sonet; +static int hf_rsvp_session_attribute_flags; +static int hf_rsvp_ero_rro_subobjects_router_id; +static int hf_rsvp_message_id_list_data; +static int hf_rsvp_style_style; +static int hf_rsvp_tspec_number_of_virtual_components; +static int hf_rsvp_tspec_mtu; +static int hf_rsvp_lsp_tunnel_if_id_length; +static int hf_rsvp_ifid_tlv_ipv6_address; +static int hf_rsvp_diffserv_data; +static int hf_rsvp_session_flags; +static int hf_rsvp_flowspec_transparency; +static int hf_rsvp_dclass_data; +static int hf_rsvp_lsp_tunnel_if_id_interface_id; +static int hf_rsvp_lsp_tunnel_if_id_sc_pc_id; +static int hf_rsvp_error_error_code; +static int hf_rsvp_lsp_tunnel_if_id_ipv4_interface_address; +static int hf_rsvp_session_attribute_exclude_any; +static int hf_rsvp_sending_ttl; +static int hf_rsvp_integrity_flags; +static int hf_rsvp_message_id_ack_message_id; +static int hf_rsvp_message_id_message_id; +static int hf_rsvp_ero_rro_subobjects_interface_id; +static int hf_rsvp_message_length; +static int hf_rsvp_message_id_epoch; +static int hf_rsvp_flowspec_signal_type_g709; +static int hf_rsvp_label_request_data; +static int hf_rsvp_restart_cap_data; +static int hf_rsvp_link_cap_data; +static int hf_rsvp_capability_flags; +static int hf_rsvp_capability_flags_reserved; +static int hf_rsvp_capability_flags_i; +static int hf_rsvp_capability_flags_f; +static int hf_rsvp_capability_flags_t; +static int hf_rsvp_capability_flags_r; +static int hf_rsvp_capability_flags_s; +static int hf_rsvp_capability_data; +static int hf_rsvp_lsp_attributes_tlv; +static int hf_rsvp_flowspec_mtu; +static int hf_rsvp_flowspec_m; +static int hf_rsvp_tspec_service_header; +static int hf_rsvp_eth_tspec_cbs; +static int hf_rsvp_call_id_national_segment; +static int hf_rsvp_template_filter_source_port; +static int hf_rsvp_eth_tspec_eir; +static int hf_rsvp_ero_rro_subobjects_ipv4_hop; +static int hf_rsvp_lsp_tunnel_if_id_switching_type; +static int hf_rsvp_flowspec_number_of_multiplexed_components; +static int hf_rsvp_label_request_switching_type; +static int hf_rsvp_ero_rro_subobjects_prefix_length; +static int hf_rsvp_explicit_route_data; +static int hf_rsvp_secondary_explicit_route_data; +static int hf_rsvp_association_source_ipv4; +static int hf_rsvp_call_id_local_identifier; +static int hf_rsvp_flowspec_message_format_version; +static int hf_rsvp_tspec_requested_concatenation; +static int hf_rsvp_association_padding; +static int hf_rsvp_hop_neighbor_address_ipv4; +static int hf_rsvp_flowspec_requested_concatenation; +static int hf_rsvp_fast_reroute_bandwidth; +static int hf_rsvp_message_id_list_epoch; +static int hf_rsvp_style_data; +static int hf_rsvp_session_dscp; +static int hf_rsvp_confirm_data; +static int hf_rsvp_protection_info_link_flags; +static int hf_rsvp_message_id_list_flags; +static int hf_rsvp_label_data; +static int hf_rsvp_flowspec_slack_term; +static int hf_rsvp_label_generalized_label; +static int hf_rsvp_label_generalized_label_evpl_vlad_id; +static int hf_rsvp_session_attribute_name; +static int hf_rsvp_ifid_tlv_padding; +static int hf_rsvp_max_dlci; +static int hf_rsvp_minimum_policed_unit; +static int hf_rsvp_dlci_length; +static int hf_rsvp_label_request_m; +static int hf_rsvp_detour_avoid_node_id; +static int hf_rsvp_restart_cap_restart_time; +static int hf_rsvp_nsap_length; +static int hf_rsvp_message_checksum; +static int hf_rsvp_ero_rro_autonomous_system; +static int hf_rsvp_gen_uni_service_level; +static int hf_rsvp_hf_rsvp_adspec_break_bit; +static int hf_rsvp_extended_tunnel_id; +static int hf_rsvp_extended_tunnel_ipv6; +static int hf_rsvp_maximum_packet_size; +static int hf_rsvp_min_dlci; +static int hf_rsvp_gen_uni_data; +static int hf_rsvp_gen_uni_logical_port_id; +static int hf_rsvp_refresh_interval; +static int hf_rsvp_detour_plr_id; +static int hf_rsvp_restart_cap_recovery_time; +static int hf_rsvp_extended_tunnel; +static int hf_rsvp_call_attributes_endpont_id; +static int hf_rsvp_isis_area_id; +static int hf_rsvp_adspec_type; +static int hf_rsvp_adspec_len; +static int hf_rsvp_adspec_uint; +static int hf_rsvp_adspec_float; +static int hf_rsvp_adspec_bytes; +static int hf_rsvp_wavelength_grid; +static int hf_rsvp_wavelength_cs1; +static int hf_rsvp_wavelength_cs2; +static int hf_rsvp_wavelength_cs3; +static int hf_rsvp_wavelength_channel_spacing; +static int hf_rsvp_wavelength_n; +static int hf_rsvp_wavelength_m; +static int hf_rsvp_wavelength_freq; +static int hf_rsvp_wavelength_wavelength; +static int hf_rsvp_sonet_s; +static int hf_rsvp_sonet_u; +static int hf_rsvp_sonet_k; +static int hf_rsvp_sonet_l; +static int hf_rsvp_sonet_m; +static int hf_rsvp_g709_t3; +static int hf_rsvp_g709_t2; +static int hf_rsvp_g709_t1; +static int hf_rsvp_label_set_type; +static int hf_rsvp_label_set_subchannel; +static int hf_rsvp_nsap_address; +static int hf_rsvp_class_diversity; +static int hf_rsvp_egress_label_type; +static int hf_rsvp_egress_label; +static int hf_rsvp_source_transport_network_addr; +static int hf_rsvp_ie_data; +static int hf_rsvp_3gpp_obj_pf_dst_port_range; +static int hf_rsvp_3gpp_obj_pf_src_port_range; + +static expert_field ei_rsvp_invalid_length; +static expert_field ei_rsvp_packet_filter_component; +static expert_field ei_rsvp_bundle_component_msg; +static expert_field ei_rsvp_parameter; +static expert_field ei_rsvp_adspec_type; +static expert_field ei_rsvp_call_id_address_type; +static expert_field ei_rsvp_session_type; + +static int rsvp_tap; /* * All RSVP packets belonging to a particular flow belong to the same - * conversation. The following structure definitions are for auxillary + * conversation. The following structure definitions are for auxiliary * structures which have all the relevant flow information to make up the * RSVP five-tuple. Note that the values of the five-tuple are determined * from the session object and sender template/filter spec for PATH/RESV @@ -801,6 +817,8 @@ enum { TT_BUNDLE_COMPMSG, TT_RESTART_CAP, TT_LINK_CAP, + TT_CAPABILITY, + TT_CAPABILITY_FLAGS, TT_PROTECTION_INFO, TT_PROTECTION_INFO_LINK, TT_PROTECTION_INFO_LSP, @@ -974,8 +992,9 @@ enum rsvp_classes { RSVP_CLASS_ACCEPTABLE_LABEL_SET, RSVP_CLASS_RESTART_CAP, RSVP_CLASS_LINK_CAP = 133, + RSVP_CLASS_CAPABILITY, - /* 132-160 Unassigned */ + /* 135-160 Unassigned */ /* 166-187 Unassigned */ @@ -992,7 +1011,9 @@ enum rsvp_classes { RSVP_CLASS_LSP_ATTRIBUTES, RSVP_CLASS_ALARM_SPEC, RSVP_CLASS_ASSOCIATION, - RSVP_CLASS_CALL_ATTRIBUTES = 202, + RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE, + RSVP_CLASS_SECONDARY_RECORD_ROUTE, + RSVP_CLASS_CALL_ATTRIBUTES, /* 203-204 Unassigned */ /* @@ -1103,6 +1124,7 @@ static const value_string rsvp_class_vals[] = { { RSVP_CLASS_ACCEPTABLE_LABEL_SET, "ACCEPTABLE-LABEL-SET object"}, { RSVP_CLASS_RESTART_CAP, "RESTART-CAPABILITY object"}, { RSVP_CLASS_LINK_CAP, "LINK-CAPABILITY object"}, + { RSVP_CLASS_CAPABILITY, "Capability object"}, { RSVP_CLASS_VENDOR_PRIVATE_5, "VENDOR PRIVATE object (10bbbbbb: " "ignore if unknown)"}, @@ -1125,6 +1147,9 @@ static const value_string rsvp_class_vals[] = { */ { RSVP_CLASS_ASSOCIATION, "ASSOCIATION object"}, + { RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE, "SECONDARY EXPLICIT ROUTE object"}, + { RSVP_CLASS_SECONDARY_RECORD_ROUTE, "SECONDARY RECORD ROUTE object"}, + { RSVP_CLASS_CALL_ATTRIBUTES, "CALL ATTRIBUTES object"}, { RSVP_CLASS_JUNIPER_PROPERTIES, "Juniper properties object"}, @@ -1294,7 +1319,7 @@ static const value_string rsvp_routing_error_vals[] = { { 5, "No route available toward destination"}, { 6, "Unacceptable label value"}, { 7, "RRO indicated routing loops"}, - { 8, "non-RSVP-capable router stands in the path"}, + { 8, "Non-RSVP-capable router stands in the path"}, { 9, "MPLS label allocation failure"}, { 10, "Unsupported L3PID"}, { 11, "Label Set"}, @@ -1538,7 +1563,7 @@ static value_string_ext adspec_params_ext = VALUE_STRING_EXT_INIT(adspec_params) /* * FF: please keep this list in sync with - * http://www.iana.org/assignments/gmpls-sig-parameters + * http://www.iana.org/assignments/gmpls-sig-parameters/gmpls-sig-parameters.xhtml * Registry Name: 'LSP Encoding Types' */ const range_string gmpls_lsp_enc_rvals[] = { @@ -1563,7 +1588,7 @@ const range_string gmpls_lsp_enc_rvals[] = { /* * FF: please keep this list in sync with - * http://www.iana.org/assignments/gmpls-sig-parameters + * http://www.iana.org/assignments/gmpls-sig-parameters/gmpls-sig-parameters.xhtml * Registry Name: 'Switching Types' */ const range_string gmpls_switching_type_rvals[] = { @@ -1593,7 +1618,7 @@ const range_string gmpls_switching_type_rvals[] = { /* * FF: please keep this list in sync with - * http://www.iana.org/assignments/gmpls-sig-parameters + * http://www.iana.org/assignments/gmpls-sig-parameters/gmpls-sig-parameters.xhtml * Registry Name: 'Generalized PID (G-PID)' */ static const range_string gmpls_gpid_rvals[] = { @@ -1850,6 +1875,7 @@ enum hf_rsvp_filter_keys { RSVPF_RESTART_CAP, RSVPF_LINK_CAP, + RSVPF_CAPABILITY, RSVPF_SESSION_ATTRIBUTE, RSVPF_DCLASS, @@ -1913,10 +1939,16 @@ enum hf_rsvp_filter_keys { /* EXCLUDE ROUTE object */ RSVPF_EXCLUDE_ROUTE, + /* S2L_SUB_LSP object */ + RSVPF_S2L_SUB_LSP, + /* Vendor Private objects */ RSVPF_PRIVATE_OBJ, RSVPF_ENT_CODE, + RSVPF_SECONDARY_EXPLICIT_ROUTE, + RSVPF_SECONDARY_RECORD_ROUTE, + RSVPF_JUNIPER, /* Sentinel */ @@ -1931,7 +1963,7 @@ static const true_false_string tfs_gen_uni_direction = { "U: 1 - Upstream label/ static const unit_name_string units_word_not_including_header = { " word, not including header", " words, not including header" }; -static int hf_rsvp_filter[RSVPF_MAX] = { -1 }; +static int hf_rsvp_filter[RSVPF_MAX]; /* RSVP Conversation related Hash functions */ @@ -2112,40 +2144,44 @@ static const char* rsvp_conv_get_filter_type(conv_item_t* conv, conv_filter_type static ct_dissector_info_t rsvp_ct_dissector_info = {&rsvp_conv_get_filter_type}; static tap_packet_status -rsvp_conversation_packet(void *pct, packet_info *pinfo, epan_dissect_t *edt _U_, const void *vip) +rsvp_conversation_packet(void *pct, packet_info *pinfo, epan_dissect_t *edt _U_, const void *vip, tap_flags_t flags) { conv_hash_t *hash = (conv_hash_t*) pct; + hash->flags = flags; + const rsvp_conversation_info *rsvph = (const rsvp_conversation_info *)vip; add_conversation_table_data(hash, &rsvph->source, &rsvph->destination, - 0, 0, 1, pinfo->fd->pkt_len, &pinfo->rel_ts, &pinfo->abs_ts, &rsvp_ct_dissector_info, ENDPOINT_NONE); + 0, 0, 1, pinfo->fd->pkt_len, &pinfo->rel_ts, &pinfo->abs_ts, &rsvp_ct_dissector_info, CONVERSATION_NONE); return TAP_PACKET_REDRAW; } -static const char* rsvp_host_get_filter_type(hostlist_talker_t* host, conv_filter_type_e filter) +static const char* rsvp_endpoint_get_filter_type(endpoint_item_t* endpoint, conv_filter_type_e filter) { - if ((filter == CONV_FT_ANY_ADDRESS) && (host->myaddress.type == AT_IPv4)) + if ((filter == CONV_FT_ANY_ADDRESS) && (endpoint->myaddress.type == AT_IPv4)) return "ip.addr"; return CONV_FILTER_INVALID; } -static hostlist_dissector_info_t rsvp_host_dissector_info = {&rsvp_host_get_filter_type}; +static et_dissector_info_t rsvp_endpoint_dissector_info = {&rsvp_endpoint_get_filter_type}; static tap_packet_status -rsvp_hostlist_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, const void *vip) +rsvp_endpoint_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, const void *vip, tap_flags_t flags) { conv_hash_t *hash = (conv_hash_t*) pit; + hash->flags = flags; + const rsvp_conversation_info *rsvph = (const rsvp_conversation_info *)vip; /* Take two "add" passes per packet, adding for each direction, ensures * that all packets are counted properly (even if address is sending to * itself). XXX - this could probably be done more efficiently inside - * hostlist_table + * endpoint_table */ - add_hostlist_table_data(hash, &rsvph->source, 0, TRUE, 1, pinfo->fd->pkt_len, &rsvp_host_dissector_info, ENDPOINT_NONE); - add_hostlist_table_data(hash, &rsvph->destination, 0, FALSE, 1, pinfo->fd->pkt_len, &rsvp_host_dissector_info, ENDPOINT_NONE); + add_endpoint_table_data(hash, &rsvph->source, 0, TRUE, 1, pinfo->fd->pkt_len, &rsvp_endpoint_dissector_info, ENDPOINT_NONE); + add_endpoint_table_data(hash, &rsvph->destination, 0, FALSE, 1, pinfo->fd->pkt_len, &rsvp_endpoint_dissector_info, ENDPOINT_NONE); return TAP_PACKET_REDRAW; } @@ -2192,6 +2228,9 @@ rsvp_class_to_filter_num(int classnum) case RSVP_CLASS_LINK_CAP : return RSVPF_LINK_CAP; + case RSVP_CLASS_CAPABILITY : + return RSVPF_CAPABILITY; + case RSVP_CLASS_DIFFSERV : return RSVPF_DIFFSERV; @@ -2224,6 +2263,14 @@ rsvp_class_to_filter_num(int classnum) case RSVP_CLASS_EXCLUDE_ROUTE: return RSVPF_EXCLUDE_ROUTE; + case RSVP_CLASS_S2L_SUB_LSP: + return RSVPF_S2L_SUB_LSP; + + case RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE: + return RSVPF_SECONDARY_EXPLICIT_ROUTE; + case RSVP_CLASS_SECONDARY_RECORD_ROUTE: + return RSVPF_SECONDARY_RECORD_ROUTE; + case RSVP_CLASS_JUNIPER_PROPERTIES : return RSVPF_JUNIPER; case RSVP_CLASS_VENDOR_PRIVATE_1: @@ -2306,6 +2353,8 @@ rsvp_class_to_tree_type(int classnum) return TT_RESTART_CAP; case RSVP_CLASS_LINK_CAP : return TT_LINK_CAP; + case RSVP_CLASS_CAPABILITY : + return TT_CAPABILITY; case RSVP_CLASS_DIFFSERV : return TT_DIFFSERV; case RSVP_CLASS_CLASSTYPE: @@ -2570,14 +2619,14 @@ summary_session(wmem_allocator_t *pool, tvbuff_t *tvb, int offset) break; case RSVP_SESSION_TYPE_P2MP_LSP_TUNNEL_IPV4: return wmem_strdup_printf(pool, - "SESSION: IPv4-P2MP LSP TUNNEL, PSMP ID %d, Tunnel ID %d, Ext Tunnel %s. ", + "SESSION: IPv4-P2MP LSP TUNNEL, P2MP ID %u, Tunnel ID %d, Ext Tunnel %s. ", tvb_get_ntohl(tvb, offset+4), tvb_get_ntohs(tvb, offset+10), tvb_ip_to_str(pool, tvb, offset+12)); break; case RSVP_SESSION_TYPE_P2MP_LSP_TUNNEL_IPV6: return wmem_strdup_printf(pool, - "SESSION: IPv6-P2MP LSP TUNNEL, PSMP ID %d, Tunnel ID %d, Ext Tunnel %s. ", + "SESSION: IPv6-P2MP LSP TUNNEL, P2MP ID %u, Tunnel ID %d, Ext Tunnel %s. ", tvb_get_ntohl(tvb, offset+4), tvb_get_ntohs(tvb, offset+10), tvb_ip6_to_str(pool, tvb, offset+12)); @@ -2715,7 +2764,7 @@ dissect_rsvp_session(packet_info *pinfo, proto_item *ti, proto_tree *rsvp_object break; case RSVP_SESSION_TYPE_IPV4_LSP: - proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype_session, tvb, offset+3, 1, ENC_BIG_ENDIAN);; + proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype_session, tvb, offset+3, 1, ENC_BIG_ENDIAN); proto_tree_add_item(rsvp_object_tree, hf_rsvp_filter[RSVPF_SESSION_IP], tvb, offset2, 4, ENC_BIG_ENDIAN); @@ -2785,7 +2834,7 @@ dissect_rsvp_session(packet_info *pinfo, proto_item *ti, proto_tree *rsvp_object case RSVP_SESSION_TYPE_AGGREGATE_IPV4: - proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype_session, tvb, offset+3, 1, ENC_BIG_ENDIAN);; + proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype_session, tvb, offset+3, 1, ENC_BIG_ENDIAN); proto_tree_add_item(rsvp_object_tree, hf_rsvp_filter[RSVPF_SESSION_IP], tvb, offset2, 4, ENC_BIG_ENDIAN); @@ -4049,9 +4098,9 @@ dissect_rsvp_tspec(proto_item *ti, packet_info* pinfo, proto_tree *rsvp_object_t proto_tree_add_item(rsvp_object_tree, hf_rsvp_tspec_multiplier, tvb, offset2 + 6, 2, ENC_BIG_ENDIAN); proto_item_append_text(ti, "Signal [%s], NMC %d, NVC %d, MT %d", - rval_to_str(signal_type, - gmpls_g709_signal_type_rvals, - "Unknown"), + rval_to_str_const(signal_type, + gmpls_g709_signal_type_rvals, + "Unknown"), tvb_get_ntohs(tvb, offset2 + 2), tvb_get_ntohs(tvb, offset2 + 4), tvb_get_ntohs(tvb, offset2 + 6)); @@ -4285,9 +4334,9 @@ dissect_rsvp_flowspec(proto_item *ti, packet_info* pinfo, proto_tree *rsvp_objec proto_tree_add_item(rsvp_object_tree, hf_rsvp_flowspec_multiplier, tvb, offset2 + 6, 2, ENC_BIG_ENDIAN); proto_item_append_text(ti, "Signal [%s], NMC %d, NVC %d, MT %d", - rval_to_str(signal_type, - gmpls_g709_signal_type_rvals, - "Unknown"), + rval_to_str_const(signal_type, + gmpls_g709_signal_type_rvals, + "Unknown"), tvb_get_ntohs(tvb, offset2 + 2), tvb_get_ntohs(tvb, offset2 + 4), tvb_get_ntohs(tvb, offset2 + 6)); @@ -4952,9 +5001,11 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_ switch(rsvp_class) { case RSVP_CLASS_EXPLICIT_ROUTE: + case RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE: tree_type = TREE(TT_EXPLICIT_ROUTE_SUBOBJ); break; case RSVP_CLASS_RECORD_ROUTE: + case RSVP_CLASS_SECONDARY_RECORD_ROUTE: tree_type = TREE(TT_RECORD_ROUTE_SUBOBJ); break; case RSVP_CLASS_EXCLUDE_ROUTE: @@ -4973,7 +5024,8 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_ for (i=1, l = 0; l < obj_length - 4; i++) { type = tvb_get_guint8(tvb, offset + l); if ((rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE) || - (rsvp_class == RSVP_CLASS_EXCLUDE_ROUTE)) + (rsvp_class == RSVP_CLASS_EXCLUDE_ROUTE) || + (rsvp_class == RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE)) type &= 0x7f; lbit = tvb_get_guint8(tvb, offset + l) & 0x80; dbit = tvb_get_guint8(tvb, offset + l + 2) & 0x80; @@ -4983,17 +5035,19 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_ offset+l, 8, tree_type, &ti2, "IPv4 Subobject - %s%s", tvb_ip_to_str(pinfo->pool, tvb, offset+l+2), - rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE ? + (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE || + rsvp_class == RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE) ? (lbit ? ", Loose" : ", Strict") : ""); - if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE) + if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE || rsvp_class == RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE) proto_tree_add_item(rsvp_ro_subtree, hf_rsvp_loose_hop, tvb, offset+l, 1, ENC_NA); if (rsvp_class == RSVP_CLASS_EXCLUDE_ROUTE){ proto_tree_add_item(rsvp_ro_subtree, hf_rsvp_xro_sobj_lbit, tvb, offset+l, 1, ENC_BIG_ENDIAN); } proto_tree_add_uint_format_value(rsvp_ro_subtree, hf_rsvp_type, tvb, offset+l, 1, type, "1 (IPv4)"); proto_tree_add_item(rsvp_ro_subtree, hf_rsvp_ero_rro_subobjects_length, tvb, offset+l+1, 1, ENC_BIG_ENDIAN); - if(rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE || rsvp_class == RSVP_CLASS_RECORD_ROUTE){ + if(rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE || rsvp_class == RSVP_CLASS_RECORD_ROUTE || + rsvp_class == RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE || rsvp_class == RSVP_CLASS_SECONDARY_RECORD_ROUTE){ proto_tree_add_item(rsvp_ro_subtree, hf_rsvp_ero_rro_subobjects_ipv4_hop, tvb, offset+l+2, 4, ENC_BIG_ENDIAN); proto_tree_add_item(rsvp_ro_subtree, hf_rsvp_ero_rro_subobjects_prefix_length, tvb, offset+l+6, 1, ENC_BIG_ENDIAN); } @@ -5007,7 +5061,7 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_ tvb_ip_to_str(pinfo->pool, tvb, offset+l+2), lbit ? " [L]" : ""); } - if (rsvp_class == RSVP_CLASS_RECORD_ROUTE) { + if (rsvp_class == RSVP_CLASS_RECORD_ROUTE || rsvp_class == RSVP_CLASS_SECONDARY_RECORD_ROUTE) { flags = tvb_get_guint8(tvb, offset+l+7); if (flags&0x20) { proto_item_append_text(ti, " (Node-id)"); @@ -5038,7 +5092,7 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_ rsvp_ro_subtree = proto_tree_add_subtree(rsvp_object_tree, tvb, offset+l, 20, tree_type, &ti2, "IPv6 Subobject"); - if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE){ + if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE || rsvp_class == RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE){ proto_tree_add_item(rsvp_ro_subtree, hf_rsvp_loose_hop, tvb, offset+l, 1, ENC_NA); } @@ -5059,7 +5113,7 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_ if (i < 4) { proto_item_append_text(ti, "IPv6 [...]%s", lbit ? " [L]":""); } - if (rsvp_class == RSVP_CLASS_RECORD_ROUTE) { + if (rsvp_class == RSVP_CLASS_RECORD_ROUTE || rsvp_class == RSVP_CLASS_SECONDARY_RECORD_ROUTE) { flags = tvb_get_guint8(tvb, offset+l+19); if (flags&0x20) { proto_item_append_text(ti, " (Node-id)"); @@ -5093,15 +5147,16 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_ offset+l, 8, tree_type, &ti2, "Label Subobject - %d, %s", tvb_get_ntohl(tvb, offset+l+4), - rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE ? + (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE || + rsvp_class == RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE) ? (lbit ? "Loose" : "Strict") : ""); - if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE) + if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE || rsvp_class == RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE) proto_tree_add_item(rsvp_ro_subtree, hf_rsvp_loose_hop, tvb, offset+l, 1, ENC_NA); proto_tree_add_uint_format_value(rsvp_ro_subtree, hf_rsvp_type, tvb, offset+l, 1, type, "3 (Label)"); proto_tree_add_item(rsvp_ro_subtree, hf_rsvp_ero_rro_subobjects_length, tvb, offset+l+1, 1, ENC_BIG_ENDIAN); - if (rsvp_class == RSVP_CLASS_RECORD_ROUTE) { + if (rsvp_class == RSVP_CLASS_RECORD_ROUTE || rsvp_class == RSVP_CLASS_SECONDARY_RECORD_ROUTE) { flags = tvb_get_guint8(tvb, offset+l+2); if (flags&0x01) proto_item_append_text(ti2, "The label will be understood if received on any interface"); ti2 = proto_tree_add_item(rsvp_ro_subtree, hf_rsvp_ero_rro_subobjects_flags, tvb, offset+l+2, 1, ENC_BIG_ENDIAN); @@ -5126,15 +5181,16 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_ "Unnumbered Interface-ID - %s, %d, %s", tvb_ip_to_str(pinfo->pool, tvb, offset+l+4), tvb_get_ntohl(tvb, offset+l+8), - rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE ? + (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE || + rsvp_class == RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE) ? (lbit ? "Loose" : "Strict") : ""); - if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE) + if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE || rsvp_class == RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE) proto_tree_add_item(rsvp_ro_subtree, hf_rsvp_loose_hop, tvb, offset+l, 1, ENC_NA); proto_tree_add_uint_format_value(rsvp_ro_subtree, hf_rsvp_type, tvb, offset+l, 1, type, "4 (Unnumbered Interface-ID)"); proto_tree_add_item(rsvp_ro_subtree, hf_rsvp_ero_rro_subobjects_length, tvb, offset+l+1, 1, ENC_BIG_ENDIAN); - if (rsvp_class == RSVP_CLASS_RECORD_ROUTE) { + if (rsvp_class == RSVP_CLASS_RECORD_ROUTE || rsvp_class == RSVP_CLASS_SECONDARY_RECORD_ROUTE) { flags = tvb_get_guint8(tvb, offset+l+2); if (flags&0x01) proto_item_append_text(ti2, ", Local Protection Available"); if (flags&0x02) proto_item_append_text(ti2, ", Local Protection In Use"); @@ -5159,7 +5215,8 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_ case 21: case 32: /* AS */ - if (rsvp_class == RSVP_CLASS_RECORD_ROUTE || rsvp_class == RSVP_CLASS_EXCLUDE_ROUTE) goto defaultsub; + if (rsvp_class == RSVP_CLASS_RECORD_ROUTE || rsvp_class == RSVP_CLASS_EXCLUDE_ROUTE || + rsvp_class == RSVP_CLASS_SECONDARY_RECORD_ROUTE) goto defaultsub; lbit = tvb_get_ntohs(tvb, offset+l+2); rsvp_ro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb, offset+l, 4, tree_type, &ti2, @@ -5177,8 +5234,8 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_ case 34: /* SRLG subobject RFC 4874 */ - if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE) goto defaultsub; - if (rsvp_class == RSVP_CLASS_RECORD_ROUTE){ + if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE || rsvp_class == RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE) goto defaultsub; + if (rsvp_class == RSVP_CLASS_RECORD_ROUTE || rsvp_class == RSVP_CLASS_SECONDARY_RECORD_ROUTE){ rsvp_ro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb, offset + l, 8, tree_type, NULL, "SRLG Subobject - %u", @@ -5225,7 +5282,8 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_ break; case 64: /* PKSv4 - RFC5520 */ - if (rsvp_class == RSVP_CLASS_RECORD_ROUTE || rsvp_class == RSVP_CLASS_EXCLUDE_ROUTE) goto defaultsub; + if (rsvp_class == RSVP_CLASS_RECORD_ROUTE || rsvp_class == RSVP_CLASS_EXCLUDE_ROUTE || + rsvp_class == RSVP_CLASS_SECONDARY_RECORD_ROUTE) goto defaultsub; path_key = tvb_get_ntohs(tvb, offset+l+2); rsvp_ro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb, offset+l, 8, tree_type, &ti2, @@ -5243,7 +5301,8 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_ break; case 65: /* PKSv6 - RFC5520 */ - if (rsvp_class == RSVP_CLASS_RECORD_ROUTE || rsvp_class == RSVP_CLASS_EXCLUDE_ROUTE) goto defaultsub; + if (rsvp_class == RSVP_CLASS_RECORD_ROUTE || rsvp_class == RSVP_CLASS_EXCLUDE_ROUTE || + rsvp_class == RSVP_CLASS_SECONDARY_RECORD_ROUTE) goto defaultsub; path_key = tvb_get_ntohs(tvb, offset+l+2); rsvp_ro_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb, offset+l, 8, tree_type, &ti2, @@ -5269,7 +5328,7 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_ * Private Use (see RFC 3936, Section 2.3.1) in case of * EXPLICIT_ROUTE (aka ERO). */ - if (rsvp_class == RSVP_CLASS_RECORD_ROUTE) + if (rsvp_class == RSVP_CLASS_RECORD_ROUTE || rsvp_class == RSVP_CLASS_SECONDARY_RECORD_ROUTE) goto defaultsub; else goto privatesub; @@ -6889,7 +6948,7 @@ dissect_rsvp_link_cap(proto_item *ti, packet_info* pinfo, proto_tree *rsvp_objec proto_item_set_text(ti, "LINK CAPABILITY: "); switch(type) { case 1: - proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype_link_cap, tvb, offset+3, 1, type); + proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype_link_cap, tvb, offset+3, 1, ENC_BIG_ENDIAN); dissect_rsvp_ro_subobjects(ti, pinfo, rsvp_object_tree, tvb, offset + 4, obj_length, rsvp_class); @@ -6897,7 +6956,55 @@ dissect_rsvp_link_cap(proto_item *ti, packet_info* pinfo, proto_tree *rsvp_objec default: proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype_link_cap, tvb, offset+3, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(rsvp_object_tree, hf_rsvp_record_route_data, tvb, offset+4, obj_length - 4, ENC_NA); + proto_tree_add_item(rsvp_object_tree, hf_rsvp_link_cap_data, tvb, offset+4, obj_length - 4, ENC_NA); + break; + } + +} + +/*------------------------------------------------------------------------------ + * Capability Object + *------------------------------------------------------------------------------*/ +static void +dissect_rsvp_capability(proto_item *ti, packet_info* pinfo _U_, proto_tree *rsvp_object_tree, + tvbuff_t *tvb, + int offset, int obj_length, + int rsvp_class _U_, int type) +{ + proto_tree *hidden_item; + + hidden_item = proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype, tvb, offset+3, 1, ENC_BIG_ENDIAN); + proto_item_set_hidden(hidden_item); + + proto_item_set_text(ti, "Capability: "); + + static int * const flags[] = { + &hf_rsvp_capability_flags_reserved, + &hf_rsvp_capability_flags_f, + &hf_rsvp_capability_flags_i, + &hf_rsvp_capability_flags_t, + &hf_rsvp_capability_flags_r, + &hf_rsvp_capability_flags_s, + NULL + }; + uint64_t cap_flags; + + switch(type) { + case 1: + proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype_capability, tvb, offset+3, 1, ENC_BIG_ENDIAN); + + proto_tree_add_bitmask_ret_uint64(rsvp_object_tree, tvb, offset+4, hf_rsvp_capability_flags, TREE(TT_CAPABILITY_FLAGS), flags, ENC_BIG_ENDIAN, &cap_flags); + proto_item_append_text(ti, "%s%s%s%s%s", + cap_flags&0x10 ? "F":UTF8_MIDDLE_DOT, + cap_flags&0x08 ? "I":UTF8_MIDDLE_DOT, + cap_flags&0x04 ? "T":UTF8_MIDDLE_DOT, + cap_flags&0x02 ? "R":UTF8_MIDDLE_DOT, + cap_flags&0x01 ? "S":UTF8_MIDDLE_DOT); + break; + + default: + proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype_capability, tvb, offset+3, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(rsvp_object_tree, hf_rsvp_capability_data, tvb, offset+4, obj_length - 4, ENC_NA); break; } @@ -7136,6 +7243,7 @@ dissect_rsvp_s2l_sub_lsp(proto_tree *ti, packet_info* pinfo _U_, proto_tree *rsv offset += 4; proto_tree_add_item(rsvp_object_tree, hf_rsvp_s2l_sub_lsp_destination_ipv4_address, tvb, offset, 4, ENC_BIG_ENDIAN); + proto_item_append_text(ti, "IPv4 %s", tvb_ip_to_str(pinfo->pool, tvb, offset)); break; case 2: /* IPv6 */ @@ -7143,6 +7251,7 @@ dissect_rsvp_s2l_sub_lsp(proto_tree *ti, packet_info* pinfo _U_, proto_tree *rsv offset += 4; proto_tree_add_item(rsvp_object_tree, hf_rsvp_s2l_sub_lsp_destination_ipv6_address, tvb, offset, 16, ENC_NA); + proto_item_append_text(ti, "IPv6 %s", tvb_ip6_to_str(pinfo->pool, tvb, offset)); break; default: @@ -7336,6 +7445,64 @@ dissect_rsvp_vendor_private_use(proto_tree *ti _U_, obj_length - 8, ENC_NA); } +/*------------------------------------------------------------------------------ + * SECONDARY EXPLICIT ROUTE OBJECT + *------------------------------------------------------------------------------*/ +static void +dissect_rsvp_secondary_explicit_route(proto_item *ti, packet_info* pinfo, proto_tree *rsvp_object_tree, + tvbuff_t *tvb, + int offset, int obj_length, + int rsvp_class, int type) +{ + proto_item *hidden_item; + + hidden_item = proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype, tvb, offset+3, 1, ENC_BIG_ENDIAN); + proto_item_set_hidden(hidden_item); + + proto_item_set_text(ti, "SECONDARY EXPLICIT ROUTE: "); + switch(type) { + case 2: // P2MP + proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype_secondary_explicit_route, tvb, offset+3, 1, ENC_BIG_ENDIAN); + + dissect_rsvp_ro_subobjects(ti, pinfo, rsvp_object_tree, tvb, offset + 4, obj_length, rsvp_class); + break; + + default: + proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype_secondary_explicit_route, tvb, offset+3, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(rsvp_object_tree, hf_rsvp_secondary_explicit_route_data, tvb, offset+4, obj_length - 4, ENC_NA); + break; + } +} + +/*------------------------------------------------------------------------------ + * SECONDARY RECORD ROUTE OBJECT + *------------------------------------------------------------------------------*/ +static void +dissect_rsvp_secondary_record_route(proto_item *ti, packet_info* pinfo, proto_tree *rsvp_object_tree, + tvbuff_t *tvb, + int offset, int obj_length, + int rsvp_class, int type) +{ + proto_item *hidden_item; + + hidden_item = proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype, tvb, offset+3, 1, ENC_BIG_ENDIAN); + proto_item_set_hidden(hidden_item); + + proto_item_set_text(ti, "SECONDARY RECORD ROUTE: "); + switch(type) { + case 2: // P2MP + proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype_secondary_record_route, tvb, offset+3, 1, ENC_BIG_ENDIAN); + + dissect_rsvp_ro_subobjects(ti, pinfo, rsvp_object_tree, tvb, offset + 4, obj_length, rsvp_class); + break; + + default: + proto_tree_add_item(rsvp_object_tree, hf_rsvp_ctype_secondary_record_route, tvb, offset+3, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(rsvp_object_tree, hf_rsvp_secondary_record_route_data, tvb, offset+4, obj_length - 4, ENC_NA); + break; + } +} + /*---------------------------------------------------------------------------- * CALL ATTRIBUTES *---------------------------------------------------------------------------*/ @@ -7750,6 +7917,10 @@ dissect_rsvp_msg_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, dissect_rsvp_link_cap(ti, pinfo, rsvp_object_tree, tvb, offset, obj_length, rsvp_class, type); break; + case RSVP_CLASS_CAPABILITY: + dissect_rsvp_capability(ti, pinfo, rsvp_object_tree, tvb, offset, obj_length, rsvp_class, type); + break; + case RSVP_CLASS_PROTECTION: dissect_rsvp_protection_info(ti, rsvp_object_tree, tvb, offset, obj_length, rsvp_class, type); break; @@ -7789,6 +7960,13 @@ dissect_rsvp_msg_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, dissect_rsvp_vendor_private_use(ti, rsvp_object_tree, tvb, offset, obj_length, rsvp_class, type); break; + case RSVP_CLASS_SECONDARY_EXPLICIT_ROUTE: + dissect_rsvp_secondary_explicit_route(ti, pinfo, rsvp_object_tree, tvb, offset, obj_length, rsvp_class, type); + break; + case RSVP_CLASS_SECONDARY_RECORD_ROUTE: + dissect_rsvp_secondary_record_route(ti, pinfo, rsvp_object_tree, tvb, offset, obj_length, rsvp_class, type); + break; + case RSVP_CLASS_CALL_ATTRIBUTES: dissect_rsvp_call_attributes(ti, pinfo, rsvp_object_tree, tvb, offset, obj_length, rsvp_class, type); break; @@ -8190,6 +8368,12 @@ proto_register_rsvp(void) NULL, HFILL } }, + {&hf_rsvp_ctype_capability, + { "C-type", "rsvp.ctype.capability", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + {&hf_rsvp_ctype_protection_info, { "C-type", "rsvp.ctype.protection_info", FT_UINT32, BASE_DEC, NULL, 0x0, @@ -8467,6 +8651,12 @@ proto_register_rsvp(void) NULL, HFILL } }, + {&hf_rsvp_filter[RSVPF_CAPABILITY], + { "Capability", "rsvp.capability", + FT_NONE, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + {&hf_rsvp_filter[RSVPF_LABEL_REQUEST], { "LABEL REQUEST", "rsvp.label_request", FT_NONE, BASE_NONE, NULL, 0x0, @@ -8587,6 +8777,18 @@ proto_register_rsvp(void) NULL, HFILL } }, + {&hf_rsvp_filter[RSVPF_SECONDARY_EXPLICIT_ROUTE], + { "SECONDARY EXPLICIT ROUTE", "rsvp.secondary_explicit_route", + FT_NONE, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + + {&hf_rsvp_filter[RSVPF_SECONDARY_RECORD_ROUTE], + { "SECONDARY RECORD ROUTE", "rsvp.secondary_record_route", + FT_NONE, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + {&hf_rsvp_filter[RSVPF_CALL_ATTRIBUTES], { "CALL ATTRIBUTES", "rsvp.call_attributes", FT_NONE, BASE_NONE, NULL, 0x0, @@ -8808,6 +9010,19 @@ proto_register_rsvp(void) NULL, HFILL } }, + {&hf_rsvp_filter[RSVPF_EXCLUDE_ROUTE], + { "Exclude Route", "rsvp.exclude_route", + FT_NONE, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + + /* S2L_SUB_LSP object */ + {&hf_rsvp_filter[RSVPF_S2L_SUB_LSP], + { "S2L_SUB_LSP", "rsvp.s2l_sub_lsp", + FT_NONE, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + /* * FF: Vendor Private object field, please see * http://www.iana.org/assignments/enterprise-numbers @@ -8868,85 +9083,85 @@ proto_register_rsvp(void) {&hf_rsvp_sender_tspec_regenerator_section, { "Section/Regenerator Section layer transparency", "rsvp.sender_tspec.regenerator_section", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0001, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000001, NULL, HFILL } }, {&hf_rsvp_sender_tspec_multiplex_section, { "Line/Multiplex Section layer transparency", "rsvp.sender_tspec.multiplex_section", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0002, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000002, NULL, HFILL } }, {&hf_rsvp_sender_tspec_J0_transparency, { "J0 transparency", "rsvp.sender_tspec.J0_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0004, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000004, NULL, HFILL } }, {&hf_rsvp_sender_tspec_SOH_RSOH_DCC_transparency, { "SOH/RSOH DCC transparency", "rsvp.sender_tspec.SOH_RSOH_DCC_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0008, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000008, NULL, HFILL } }, {&hf_rsvp_sender_tspec_LOH_MSOH_DCC_transparency, { "LOH/MSOH DCC transparency", "rsvp.sender_tspec.LOH_MSOH_DCC_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0010, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000010, NULL, HFILL } }, {&hf_rsvp_sender_tspec_LOH_MSOH_extended_DCC_transparency, { "LOH/MSOH Extended DCC transparency", "rsvp.sender_tspec.LOH_MSOH_extended_DCC_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0020, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000020, NULL, HFILL } }, {&hf_rsvp_sender_tspec_K1_K2_transparency, { "K1/K2 transparency", "rsvp.sender_tspec.K1_K2_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0040, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000040, NULL, HFILL } }, {&hf_rsvp_sender_tspec_E1_transparency, { "E1 transparency", "rsvp.sender_tspec.E1_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0080, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000080, NULL, HFILL } }, {&hf_rsvp_sender_tspec_F1_transparency, { "F1 transparency", "rsvp.sender_tspec.F1_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0100, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000100, NULL, HFILL } }, {&hf_rsvp_sender_tspec_E2_transparency, { "E2 transparency", "rsvp.sender_tspec.E2_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0200, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000200, NULL, HFILL } }, {&hf_rsvp_sender_tspec_B1_transparency, { "B1 transparency", "rsvp.sender_tspec.B1_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0400, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000400, NULL, HFILL } }, {&hf_rsvp_sender_tspec_B2_transparency, { "B2 transparency", "rsvp.sender_tspec.B2_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0800, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000800, NULL, HFILL } }, {&hf_rsvp_sender_tspec_M0_transparency, { "M0 transparency", "rsvp.sender_tspec.M0_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x1000, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00001000, NULL, HFILL } }, {&hf_rsvp_sender_tspec_M1_transparency, { "M1 transparency", "rsvp.sender_tspec.M1_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x2000, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00002000, NULL, HFILL } }, @@ -8964,85 +9179,85 @@ proto_register_rsvp(void) {&hf_rsvp_flowspec_regenerator_section, { "Section/Regenerator Section layer transparency", "rsvp.flowspec.regenerator_section", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0001, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000001, NULL, HFILL } }, {&hf_rsvp_flowspec_multiplex_section, { "Line/Multiplex Section layer transparency", "rsvp.flowspec.multiplex_section", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0002, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000002, NULL, HFILL } }, {&hf_rsvp_flowspec_J0_transparency, { "J0 transparency", "rsvp.flowspec.J0_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0004, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000004, NULL, HFILL } }, {&hf_rsvp_flowspec_SOH_RSOH_DCC_transparency, { "SOH/RSOH DCC transparency", "rsvp.flowspec.SOH_RSOH_DCC_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0008, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000008, NULL, HFILL } }, {&hf_rsvp_flowspec_LOH_MSOH_DCC_transparency, { "LOH/MSOH DCC transparency", "rsvp.flowspec.LOH_MSOH_DCC_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0010, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000010, NULL, HFILL } }, {&hf_rsvp_flowspec_LOH_MSOH_extended_DCC_transparency, { "LOH/MSOH Extended DCC transparency", "rsvp.flowspec.LOH_MSOH_extended_DCC_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0020, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000020, NULL, HFILL } }, {&hf_rsvp_flowspec_K1_K2_transparency, { "K1/K2 transparency", "rsvp.flowspec.K1_K2_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0040, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000040, NULL, HFILL } }, {&hf_rsvp_flowspec_E1_transparency, { "E1 transparency", "rsvp.flowspec.E1_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0080, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000080, NULL, HFILL } }, {&hf_rsvp_flowspec_F1_transparency, { "F1 transparency", "rsvp.flowspec.F1_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0100, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000100, NULL, HFILL } }, {&hf_rsvp_flowspec_E2_transparency, { "E2 transparency", "rsvp.flowspec.E2_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0200, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000200, NULL, HFILL } }, {&hf_rsvp_flowspec_B1_transparency, { "B1 transparency", "rsvp.flowspec.B1_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0400, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000400, NULL, HFILL } }, {&hf_rsvp_flowspec_B2_transparency, { "B2 transparency", "rsvp.flowspec.B2_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x0800, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00000800, NULL, HFILL } }, {&hf_rsvp_flowspec_M0_transparency, { "M0 transparency", "rsvp.flowspec.M0_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x1000, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00001000, NULL, HFILL } }, {&hf_rsvp_flowspec_M1_transparency, { "M1 transparency", "rsvp.flowspec.M1_transparency", - FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x2000, + FT_BOOLEAN, 32, TFS(&tfs_yes_no), 0x00002000, NULL, HFILL } }, @@ -9475,12 +9690,12 @@ proto_register_rsvp(void) }, {&hf_rsvp_3gpp_obj_tft_opcode, { "TFT Operation Code", "rsvp.3gpp_obj.tft_opcode", - FT_UINT32, BASE_DEC, VALS(rsvp_3gpp_obj_tft_opcode_vals), 0x000ff00, + FT_UINT32, BASE_DEC, VALS(rsvp_3gpp_obj_tft_opcode_vals), 0x0000ff00, NULL, HFILL } }, {&hf_rsvp_3gpp_obj_tft_n_pkt_flt, { "Number of Packet filters", "rsvp.3gpp_obj.tft_n_pkt_flt", - FT_UINT32, BASE_DEC, NULL, 0x00000ff, + FT_UINT32, BASE_DEC, NULL, 0x000000ff, NULL, HFILL } }, { &hf_rsvp_3gpp_obj_flow_id, @@ -9620,7 +9835,7 @@ proto_register_rsvp(void) }, { &hf_rsvp_3gpp_qos_attribute_verbose, { "VERBOSE", "rsvp.3gpp_obj.r_qos_blob.verbose", - FT_BOOLEAN, 8, NULL, 0x0, + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, { &hf_rsvp_3gpp_qos_attribute_prof_id, @@ -10032,6 +10247,10 @@ proto_register_rsvp(void) { &hf_rsvp_record_route_data, { "Data", "rsvp.record_route.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, { &hf_rsvp_ctype_exclude_route, { "C-Type", "rsvp.ctype.exclude_route", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }}, { &hf_rsvp_exclude_route_data, { "Data", "rsvp.exclude_route.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, + { &hf_rsvp_ctype_secondary_explicit_route, { "C-Type", "rsvp.ctype.secondary_explicit_route", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }}, + { &hf_rsvp_secondary_explicit_route_data, { "Data", "rsvp.secondary_explicit_route.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, + { &hf_rsvp_ctype_secondary_record_route, { "C-Type", "rsvp.ctype.secondary_record_route", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }}, + { &hf_rsvp_secondary_record_route_data, { "Data", "rsvp.secondary_record_route.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, { &hf_rsvp_ctype_message_id, { "C-Type", "rsvp.ctype.message_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }}, { &hf_rsvp_message_id_flags, { "Flags", "rsvp.message_id.flags", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, { &hf_rsvp_message_id_epoch, { "Epoch", "rsvp.message_id.epoch", FT_UINT24, BASE_DEC, NULL, 0x0, NULL, HFILL }}, @@ -10096,6 +10315,15 @@ proto_register_rsvp(void) { &hf_rsvp_call_id_national_segment, { "National Segment", "rsvp.call_id.national_segment", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }}, { &hf_rsvp_call_id_local_identifier, { "Local Identifier", "rsvp.call_id.local_identifier", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, { &hf_rsvp_restart_cap_data, { "Data", "rsvp.restart_cap.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, + { &hf_rsvp_link_cap_data, { "Data", "rsvp.link_cap.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, + { &hf_rsvp_capability_flags, { "Flags", "rsvp.capability.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }}, + { &hf_rsvp_capability_flags_reserved, { "Reserved", "rsvp.capability.flags.reserved", FT_UINT32, BASE_HEX, NULL, 0xFFFFFFE0, NULL, HFILL }}, + { &hf_rsvp_capability_flags_f, { "Per-Peer Flow-Control (F)", "rsvp.capability.flags.f", FT_BOOLEAN, 32, TFS(&tfs_capable_not_capable), 0x0010, NULL, HFILL }}, + { &hf_rsvp_capability_flags_i, { "RI-RSVP (I)", "rsvp.capability.flags.i", FT_BOOLEAN, 32, TFS(&tfs_capable_not_capable), 0x0008, NULL, HFILL }}, + { &hf_rsvp_capability_flags_t, { "RecoveryPath Transmit (T)", "rsvp.capability.flags.t", FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x0004, NULL, HFILL }}, + { &hf_rsvp_capability_flags_r, { "RecoveryPath (R)", "rsvp.capability.flags.r", FT_BOOLEAN, 32, TFS(&tfs_desired_not_desired), 0x0002, NULL, HFILL }}, + { &hf_rsvp_capability_flags_s, { "RecoveryPath Srefresh (S)", "rsvp.capability.flags.s", FT_BOOLEAN, 32, TFS(&tfs_capable_not_capable), 0x0001, NULL, HFILL }}, + { &hf_rsvp_capability_data, { "Data", "rsvp.capability.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, { &hf_rsvp_protection_info_link_flags, { "Link Flags", "rsvp.protection_info.link_flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL }}, { &hf_rsvp_protection_info_data, { "Data", "rsvp.protection_info.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, { &hf_rsvp_fast_reroute_setup_priority, { "Setup Priority", "rsvp.fast_reroute.setup_priority", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, @@ -10189,13 +10417,15 @@ proto_register_rsvp(void) /* Build the tree array */ for (i=0; i<TT_MAX; i++) { - ett_treelist[i] = -1; ett_tree[i] = &(ett_treelist[i]); } proto_rsvp = proto_register_protocol("Resource ReserVation Protocol (RSVP)", "RSVP", "rsvp"); /* Created to remove Decode As confusion */ proto_rsvp_e2e1 = proto_register_protocol_in_name_only("Resource ReserVation Protocol (RSVP-E2EI)", "RSVP-E2EI", "rsvp-e2ei", proto_rsvp, FT_PROTOCOL); + rsvp_handle = register_dissector("rsvp", dissect_rsvp, proto_rsvp); + rsvpe2ei_handle = register_dissector("rsvp_e2ei", dissect_rsvp_e2ei, proto_rsvp_e2e1); + proto_register_field_array(proto_rsvp, rsvpf_info, array_length(rsvpf_info)); proto_register_subtree_array(ett_tree, array_length(ett_tree)); expert_rsvp = expert_register_protocol(proto_rsvp); @@ -10204,16 +10434,12 @@ proto_register_rsvp(void) rsvp_request_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), rsvp_hash, rsvp_equal); - register_conversation_table(proto_rsvp, TRUE, rsvp_conversation_packet, rsvp_hostlist_packet); + register_conversation_table(proto_rsvp, TRUE, rsvp_conversation_packet, rsvp_endpoint_packet); } void proto_reg_handoff_rsvp(void) { - dissector_handle_t rsvp_handle, rsvpe2ei_handle; - - rsvp_handle = create_dissector_handle(dissect_rsvp, proto_rsvp); - rsvpe2ei_handle = create_dissector_handle(dissect_rsvp_e2ei, proto_rsvp_e2e1); dissector_add_uint("ip.proto", IP_PROTO_RSVP, rsvp_handle); dissector_add_uint("ip.proto", IP_PROTO_RSVPE2EI, rsvpe2ei_handle); dissector_add_uint_with_preference("udp.port", UDP_PORT_PRSVP, rsvp_handle); |