forked from osmocom/wireshark
Detect ELSM as such - meaning of the elements is still unknown.
svn path=/trunk/; revision=21456
This commit is contained in:
parent
869b908463
commit
e8d1c6bff7
|
@ -222,6 +222,9 @@ static int hf_edp_eaps_state = -1;
|
|||
static int hf_edp_eaps_reserved1 = -1;
|
||||
static int hf_edp_eaps_helloseq = -1;
|
||||
static int hf_edp_eaps_reserved2 = -1;
|
||||
/* ELSM (Extreme Link Status Monitoring) */
|
||||
static int hf_edp_elsm = -1;
|
||||
static int hf_edp_elsm_unknown = -1;
|
||||
/* Unknown element */
|
||||
static int hf_edp_unknown = -1;
|
||||
/* Null element */
|
||||
|
@ -237,6 +240,7 @@ static gint ett_edp_vlan = -1;
|
|||
static gint ett_edp_vlan_flags = -1;
|
||||
static gint ett_edp_esrp = -1;
|
||||
static gint ett_edp_eaps = -1;
|
||||
static gint ett_edp_elsm = -1;
|
||||
static gint ett_edp_unknown = -1;
|
||||
static gint ett_edp_null = -1;
|
||||
|
||||
|
@ -271,7 +275,8 @@ typedef enum {
|
|||
EDP_TYPE_INFO,
|
||||
EDP_TYPE_VLAN = 5,
|
||||
EDP_TYPE_ESRP = 8,
|
||||
EDP_TYPE_EAPS = 0xb
|
||||
EDP_TYPE_EAPS = 0xb,
|
||||
EDP_TYPE_ELSM = 0xf
|
||||
} edp_type_t;
|
||||
|
||||
static const value_string edp_type_vals[] = {
|
||||
|
@ -281,6 +286,7 @@ static const value_string edp_type_vals[] = {
|
|||
{ EDP_TYPE_VLAN, "VL"},
|
||||
{ EDP_TYPE_ESRP, "ESRP"},
|
||||
{ EDP_TYPE_EAPS, "EAPS"},
|
||||
{ EDP_TYPE_ELSM, "ELSM"},
|
||||
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
@ -679,6 +685,25 @@ dissect_eaps_tlv(tvbuff_t *tvb, packet_info *pinfo, int offset, int length _U_,
|
|||
col_set_str(pinfo->cinfo, COL_PROTOCOL, "EAPS");
|
||||
}
|
||||
|
||||
static void
|
||||
dissect_elsm_tlv(tvbuff_t *tvb, packet_info *pinfo, int offset, int length _U_, proto_tree *tree)
|
||||
{
|
||||
proto_item *elsm_item;
|
||||
proto_tree *elsm_tree;
|
||||
|
||||
elsm_item = proto_tree_add_protocol_format(tree, hf_edp_elsm,
|
||||
tvb, offset, length, "ELSM");
|
||||
|
||||
elsm_tree = proto_item_add_subtree(elsm_item, ett_edp_elsm);
|
||||
|
||||
dissect_tlv_header(tvb, pinfo, offset, 4, elsm_tree);
|
||||
offset += 4;
|
||||
|
||||
proto_tree_add_item(elsm_tree, hf_edp_elsm_unknown, tvb, offset, 4,
|
||||
FALSE);
|
||||
offset += 4;
|
||||
}
|
||||
|
||||
static void
|
||||
dissect_unknown_tlv(tvbuff_t *tvb, packet_info *pinfo, int offset, int length _U_, proto_tree *tree)
|
||||
{
|
||||
|
@ -834,6 +859,9 @@ dissect_edp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
case EDP_TYPE_EAPS: /* Ethernet Automatic Protection Swtiching */
|
||||
dissect_eaps_tlv(tvb, pinfo, offset, tlv_length, edp_tree);
|
||||
break;
|
||||
case EDP_TYPE_ELSM: /* Extreme Link Status Monitoring */
|
||||
dissect_elsm_tlv(tvb, pinfo, offset, tlv_length, edp_tree);
|
||||
break;
|
||||
default:
|
||||
dissect_unknown_tlv(tvb, pinfo, offset, tlv_length, edp_tree);
|
||||
break;
|
||||
|
@ -1084,6 +1112,15 @@ proto_register_edp(void)
|
|||
{ "Reserved2", "edp.eaps.reserved2", FT_BYTES, BASE_NONE, NULL,
|
||||
0x0, "", HFILL }},
|
||||
|
||||
/* ELSM element */
|
||||
{ &hf_edp_elsm,
|
||||
{ "ELWM", "edp.elsm", FT_PROTOCOL, BASE_NONE, NULL,
|
||||
0x0, "EAPS Element", HFILL }},
|
||||
|
||||
{ &hf_edp_elsm_unknown,
|
||||
{ "Unknown", "edp.elsm.unknown", FT_BYTES, BASE_NONE, NULL,
|
||||
0x0, "", HFILL }},
|
||||
|
||||
/* Unknown element */
|
||||
{ &hf_edp_unknown,
|
||||
{ "Unknown", "edp.unknown", FT_PROTOCOL, BASE_NONE, NULL,
|
||||
|
@ -1105,6 +1142,7 @@ proto_register_edp(void)
|
|||
&ett_edp_vlan,
|
||||
&ett_edp_esrp,
|
||||
&ett_edp_eaps,
|
||||
&ett_edp_elsm,
|
||||
&ett_edp_unknown,
|
||||
&ett_edp_null,
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue