diff options
Diffstat (limited to 'epan/dissectors/packet-ieee8021ah.c')
-rw-r--r-- | epan/dissectors/packet-ieee8021ah.c | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/epan/dissectors/packet-ieee8021ah.c b/epan/dissectors/packet-ieee8021ah.c index da60007e76..26bdb61d71 100644 --- a/epan/dissectors/packet-ieee8021ah.c +++ b/epan/dissectors/packet-ieee8021ah.c @@ -23,6 +23,8 @@ void proto_register_ieee8021ah(void); void proto_reg_handoff_ieee8021ah(void); +static dissector_handle_t ieee8021ah_handle; +static dissector_handle_t ieee8021ad_handle; static dissector_handle_t ethertype_handle; static capture_dissector_handle_t ipx_cap_handle; @@ -36,32 +38,32 @@ static void dissect_ieee8021ah_common(tvbuff_t *tvb, packet_info *pinfo, /* ethertype for 802.1ah tag - encapsulating an Ethernet packet */ static unsigned int ieee8021ah_ethertype = ETHERTYPE_IEEE_802_1AH; -static int proto_ieee8021ah = -1; -static int proto_ieee8021ad = -1; +static int proto_ieee8021ah; +static int proto_ieee8021ad; /* dot1ad B-tag fields */ -static int hf_ieee8021ad_priority = -1; -static int hf_ieee8021ad_cfi = -1; -static int hf_ieee8021ad_id = -1; -static int hf_ieee8021ad_svid = -1; -static int hf_ieee8021ad_cvid = -1; +static int hf_ieee8021ad_priority; +static int hf_ieee8021ad_cfi; +static int hf_ieee8021ad_id; +static int hf_ieee8021ad_svid; +static int hf_ieee8021ad_cvid; /* dot1ah C-tag fields */ -static int hf_ieee8021ah_priority = -1; -static int hf_ieee8021ah_drop = -1; /* drop eligibility */ -static int hf_ieee8021ah_nca = -1; /* no customer addresses (c_daddr & c_saddr are 0) */ -static int hf_ieee8021ah_res1 = -1; /* 2 bits reserved; ignored on receive */ -static int hf_ieee8021ah_res2 = -1; /* 2 bits reserved; delete frame if non-zero */ -static int hf_ieee8021ah_isid = -1; /* I-SID */ -static int hf_ieee8021ah_c_daddr = -1; /* encapsulated customer dest addr */ -static int hf_ieee8021ah_c_saddr = -1; /* encapsulated customer src addr */ - -static int hf_ieee8021ah_etype = -1; -/* static int hf_ieee8021ah_len = -1; */ -static int hf_ieee8021ah_trailer = -1; - -static gint ett_ieee8021ah = -1; -static gint ett_ieee8021ad = -1; +static int hf_ieee8021ah_priority; +static int hf_ieee8021ah_drop; /* drop eligibility */ +static int hf_ieee8021ah_nca; /* no customer addresses (c_daddr & c_saddr are 0) */ +static int hf_ieee8021ah_res1; /* 2 bits reserved; ignored on receive */ +static int hf_ieee8021ah_res2; /* 2 bits reserved; delete frame if non-zero */ +static int hf_ieee8021ah_isid; /* I-SID */ +static int hf_ieee8021ah_c_daddr; /* encapsulated customer dest addr */ +static int hf_ieee8021ah_c_saddr; /* encapsulated customer src addr */ + +static int hf_ieee8021ah_etype; +/* static int hf_ieee8021ah_len; */ +static int hf_ieee8021ah_trailer; + +static gint ett_ieee8021ah; +static gint ett_ieee8021ad; #define IEEE8021AD_LEN 4 #define IEEE8021AH_LEN 18 @@ -396,10 +398,14 @@ proto_register_ieee8021ah(void) /* dot1ah */ proto_ieee8021ah = proto_register_protocol("IEEE 802.1ah", "IEEE 802.1AH", "ieee8021ah"); + ieee8021ah_handle = register_dissector("ieee8021ah", dissect_ieee8021ah, + proto_ieee8021ah); proto_register_field_array(proto_ieee8021ah, hf, array_length(hf)); proto_ieee8021ad = proto_register_protocol("IEEE 802.1ad", "IEEE 802.1AD", "ieee8021ad"); + ieee8021ad_handle = register_dissector("ieee8021ad", dissect_ieee8021ad, + proto_ieee8021ad); proto_register_field_array(proto_ieee8021ad, hf_1ad, array_length(hf_1ad)); /* register subtree array for both */ @@ -418,16 +424,10 @@ void proto_reg_handoff_ieee8021ah(void) { static gboolean prefs_initialized = FALSE; - static dissector_handle_t ieee8021ah_handle; static unsigned int old_ieee8021ah_ethertype; static capture_dissector_handle_t ieee8021ah_cap_handle; if (!prefs_initialized){ - dissector_handle_t ieee8021ad_handle; - ieee8021ah_handle = create_dissector_handle(dissect_ieee8021ah, - proto_ieee8021ah); - ieee8021ad_handle = create_dissector_handle(dissect_ieee8021ad, - proto_ieee8021ad); dissector_add_uint("ethertype", ETHERTYPE_IEEE_802_1AD, ieee8021ad_handle); ethertype_handle = find_dissector_add_dependency("ethertype", proto_ieee8021ah); find_dissector_add_dependency("ethertype", proto_ieee8021ad); @@ -435,6 +435,9 @@ proto_reg_handoff_ieee8021ah(void) capture_dissector_add_uint("ethertype", ETHERTYPE_IEEE_802_1AD, ieee8021ah_cap_handle); capture_dissector_add_uint("ethertype", ETHERTYPE_IEEE_802_1AH, ieee8021ah_cap_handle); + ipx_cap_handle = find_capture_dissector("ipx"); + llc_cap_handle = find_capture_dissector("llc"); + prefs_initialized = TRUE; } else { @@ -443,9 +446,6 @@ proto_reg_handoff_ieee8021ah(void) old_ieee8021ah_ethertype = ieee8021ah_ethertype; dissector_add_uint("ethertype", ieee8021ah_ethertype, ieee8021ah_handle); - - ipx_cap_handle = find_capture_dissector("ipx"); - llc_cap_handle = find_capture_dissector("llc"); } /* |