aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-mpls.c
diff options
context:
space:
mode:
authorEvan Huus <eapache@gmail.com>2012-12-01 15:39:14 +0000
committerEvan Huus <eapache@gmail.com>2012-12-01 15:39:14 +0000
commit99d5535cb10969786e28f517a1864f6e97eb8743 (patch)
treeb8f9dcf92dd86ea3031c4cf818f89d8468c9eb67 /epan/dissectors/packet-mpls.c
parent430d616e282b3b486e5e04ea6625aaf6e6ea197c (diff)
From Krishnamurthy Mayya and Nikitha Malgi via
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8019 Dissection support for PW-OAM messages (RFC 6478). svn path=/trunk/; revision=46311
Diffstat (limited to 'epan/dissectors/packet-mpls.c')
-rw-r--r--epan/dissectors/packet-mpls.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/epan/dissectors/packet-mpls.c b/epan/dissectors/packet-mpls.c
index b2069a8c7b..2a852aa107 100644
--- a/epan/dissectors/packet-mpls.c
+++ b/epan/dissectors/packet-mpls.c
@@ -102,6 +102,7 @@ static dissector_handle_t dissector_mpls_pm_ilm_dm;
static dissector_handle_t dissector_mpls_psc;
static dissector_handle_t dissector_mplstp_lock;
static dissector_handle_t dissector_mplstp_fm;
+static dissector_handle_t dissector_pw_oam;
static dissector_handle_t dissector_pw_eth_heuristic;
static dissector_handle_t dissector_pw_fr;
static dissector_handle_t dissector_pw_hdlc_nocw_fr;
@@ -298,6 +299,7 @@ static const value_string mpls_pwac_types[] = {
{ 0x0024, "Protection State Coordination Protocol (PSC)"},
{ 0x0025, "On-Demand CV"},
{ 0x0026, "LI"},
+ { 0x0027, "Pseudo-Wire OAM"},
{ 0x0057, "IPv6 packet" },
{ 0x0058, "Fault OAM"},
{ 0x7FF8, "Reserved for Experimental Use"},
@@ -435,6 +437,10 @@ dissect_pw_ach(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
call_dissector(dissector_mplstp_lock, next_tvb, pinfo, tree);
break;
+ case 0x0027: /* KM: MPLSTP PW-OAM, RFC 6478 */
+ call_dissector(dissector_pw_oam, next_tvb, pinfo, tree);
+ break;
+
case 0x0058: /* KM: MPLSTP FM, RFC 6427 */
call_dissector(dissector_mplstp_fm, next_tvb, pinfo, tree);
break;
@@ -811,6 +817,7 @@ proto_reg_handoff_mpls(void)
dissector_mpls_psc = find_dissector("mpls_psc");
dissector_mplstp_lock = find_dissector("mplstp_lock");
dissector_mplstp_fm = find_dissector("mplstp_fm");
+ dissector_pw_oam = find_dissector("pw_oam");
dissector_pw_eth_heuristic = find_dissector("pw_eth_heuristic");
dissector_pw_fr = find_dissector("pw_fr");
dissector_pw_hdlc_nocw_fr = find_dissector("pw_hdlc_nocw_fr");