aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-mpls.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2012-11-19 20:13:57 +0000
committerAnders Broman <anders.broman@ericsson.com>2012-11-19 20:13:57 +0000
commit1c22a075a8c0afbf357afce69f08a3b9449bc036 (patch)
tree0de10df3a3365a6799c58322eb7008a058e1f2d2 /epan/dissectors/packet-mpls.c
parent28474fe8eff76493ad2b9664b8987fd1c4d52830 (diff)
From Krishnamurthy Mayya:
Enhancement to support MPLS-TP FM and LI payloads as per RFC 6427 and RFC 6435 Fixed some errors found by checkapi, changed filter names to use proto abbr. svn path=/trunk/; revision=46084
Diffstat (limited to 'epan/dissectors/packet-mpls.c')
-rw-r--r--epan/dissectors/packet-mpls.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/epan/dissectors/packet-mpls.c b/epan/dissectors/packet-mpls.c
index 75050269cb..7d48da4618 100644
--- a/epan/dissectors/packet-mpls.c
+++ b/epan/dissectors/packet-mpls.c
@@ -23,6 +23,8 @@
* Nikitha Malgi <malgi.nikitha@ipinfusion.com>
* - Identification of BFD CC, BFD CV and ON-Demand CV ACH types as per RFC 6428, RFC 6426
* respectively and the corresponding decoding of messages
+ * - Decoding support for MPLS-TP Lock Instruct as per RFC 6435
+ * - Decoding support for MPLS-TP Fault-Management as per RFC 6427
*
* (c) Copyright 2012, Aditya Ambadkar and Diana Chris <arambadk,dvchris@ncsu.edu>
* - Added preference to select BOS label as flowlabel as per RFC 6391
@@ -98,6 +100,8 @@ static dissector_handle_t dissector_mpls_pm_dm;
static dissector_handle_t dissector_mpls_pm_dlm_dm;
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_eth_heuristic;
static dissector_handle_t dissector_pw_fr;
static dissector_handle_t dissector_pw_hdlc_nocw_fr;
@@ -384,7 +388,7 @@ dissect_pw_ach(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
case ACH_TYPE_BFD_CV:
call_dissector(dissector_bfd, next_tvb, pinfo, tree); /* bfd_control() */
- dissect_bfd_mep(next_tvb, tree);
+ dissect_bfd_mep(next_tvb, tree, 0);
break;
case ACH_TYPE_ONDEMAND_CV:
@@ -427,6 +431,14 @@ dissect_pw_ach(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
call_dissector(dissector_mpls_psc, next_tvb, pinfo, tree);
break;
+ case 0x0026: /* KM: MPLSTP LOCK, RFC 6435 */
+ call_dissector(dissector_mplstp_lock, next_tvb, pinfo, tree);
+ break;
+
+ case 0x0058: /* KM: MPLSTP FM, RFC 6427 */
+ call_dissector(dissector_mplstp_fm, next_tvb, pinfo, tree);
+ break;
+
default:
call_dissector(dissector_data, next_tvb, pinfo, tree);
break;
@@ -797,6 +809,8 @@ proto_reg_handoff_mpls(void)
dissector_mpls_pm_dlm_dm = find_dissector("mpls_pm_dlm_dm");
dissector_mpls_pm_ilm_dm = find_dissector("mpls_pm_ilm_dm");
dissector_mpls_psc = find_dissector("mpls_psc");
+ dissector_mplstp_lock = find_dissector("mplstp_lock");
+ dissector_mplstp_fm = find_dissector("mplstp_fm");
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");