diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2012-12-18 20:36:21 +0000 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2012-12-18 20:36:21 +0000 |
commit | 8cbbff352eedcdee2d30a3b9ec6003770c36608c (patch) | |
tree | 55a6824fde3c9ec5952c7d634bcefd15484f6158 /epan/dissectors/packet-mpls.c | |
parent | 3895df85aa5e3d40e7c75e23d228f2227ba00065 (diff) |
Fix https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8095 :
Add dissection of GPRS-NS protocol inside MPLS
svn path=/trunk/; revision=46595
Diffstat (limited to 'epan/dissectors/packet-mpls.c')
-rw-r--r-- | epan/dissectors/packet-mpls.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/epan/dissectors/packet-mpls.c b/epan/dissectors/packet-mpls.c index 2a852aa107..18f9b6bdcf 100644 --- a/epan/dissectors/packet-mpls.c +++ b/epan/dissectors/packet-mpls.c @@ -116,6 +116,7 @@ static dissector_handle_t dissector_mpls_pw_atm_n1_nocw; static dissector_handle_t dissector_mpls_pw_atm_11_aal5pdu; static dissector_handle_t dissector_mpls_pw_atm_aal5_sdu; static dissector_handle_t dissector_pw_cesopsn; +static dissector_handle_t dissector_pw_gprs_ns_cw; enum mpls_default_dissector_t { MDD_PW_ETH_HEUR = 0 @@ -132,6 +133,7 @@ enum mpls_default_dissector_t { ,MDD_MPLS_PW_ATM_N1_NOCW ,MDD_MPLS_PW_ATM_11_OR_AAL5_PDU ,MDD_MPLS_PW_ATM_AAL5_SDU + ,MDD_MPLS_PW_GPRS_NS_CW }; /* TODO the content of mpls_default_payload menu @@ -211,6 +213,11 @@ static const enum_val_t mpls_default_payload_defs[] = { ,MDD_MPLS_PW_ATM_AAL5_SDU }, { + "mpls pw gprs-ns cw" + ,"GPRS-NS MPLS PW (with CW)" + ,MDD_MPLS_PW_GPRS_NS_CW + }, + { NULL ,NULL ,-1 @@ -665,6 +672,9 @@ dissect_mpls(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case MDD_MPLS_PW_ATM_AAL5_SDU: call_dissector(dissector_mpls_pw_atm_aal5_sdu, next_tvb, pinfo, tree); break; + case MDD_MPLS_PW_GPRS_NS_CW: + call_dissector(dissector_pw_gprs_ns_cw, next_tvb, pinfo, tree); + break; default: /* fallthrough */ case MDD_MPLS_PW_GENERIC: dissect_pw_mcw(next_tvb, pinfo, tree); @@ -730,7 +740,7 @@ proto_register_mpls(void) /* Generic/Preferred PW MPLS Control Word fields */ {&hf_mpls_pw_mcw_flags, {"Flags", "pwmcw.flags", - FT_UINT8, BASE_HEX, NULL, 0x0FC0, + FT_UINT16, BASE_HEX, NULL, 0x0FC0, "Generic/Preferred PW MPLS Control Word Flags", HFILL } }, @@ -830,7 +840,7 @@ proto_reg_handoff_mpls(void) dissector_mpls_pw_atm_11_aal5pdu= find_dissector("mpls_pw_atm_11_or_aal5_pdu"); dissector_mpls_pw_atm_aal5_sdu = find_dissector("mpls_pw_atm_aal5_sdu"); dissector_pw_cesopsn = find_dissector("pw_cesopsn_mpls"); - + dissector_pw_gprs_ns_cw = find_dissector("pw_gprs_ns_cw"); } /* * Editor modelines |