aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-mpls.c
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2012-12-18 20:36:21 +0000
committerPascal Quantin <pascal.quantin@gmail.com>2012-12-18 20:36:21 +0000
commit8cbbff352eedcdee2d30a3b9ec6003770c36608c (patch)
tree55a6824fde3c9ec5952c7d634bcefd15484f6158 /epan/dissectors/packet-mpls.c
parent3895df85aa5e3d40e7c75e23d228f2227ba00065 (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.c14
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