aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rsvp.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-rsvp.c')
-rw-r--r--epan/dissectors/packet-rsvp.c1424
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);