diff options
author | Anders Broman <anders.broman@ericsson.com> | 2012-11-19 20:13:57 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2012-11-19 20:13:57 +0000 |
commit | 1c22a075a8c0afbf357afce69f08a3b9449bc036 (patch) | |
tree | 0de10df3a3365a6799c58322eb7008a058e1f2d2 /epan/dissectors/packet-mpls.c | |
parent | 28474fe8eff76493ad2b9664b8987fd1c4d52830 (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.c | 16 |
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"); |