diff options
author | Nicolas S. Dade <nic.dade@gmail.com> | 2015-12-02 00:54:51 -0800 |
---|---|---|
committer | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2015-12-02 14:53:45 +0000 |
commit | c66d67e6f82850c8172a99b6ddd4af5fb5452973 (patch) | |
tree | 4901734233f6d7d23db688a116d047de1e0db3ab /epan/dissectors/packet-l2tp.c | |
parent | 1f363e5c4bf493c9581d8a1bdf9fa9796856628a (diff) |
L2TP: define the Cisco ACK control message
This is a common packet when sniffing Cisco routers performing L2TP
with their proprietary AVPs.
Change-Id: I8093f7e3ceb39c9af5b6292289c55f705b53dffb
Reviewed-on: https://code.wireshark.org/review/12368
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-l2tp.c')
-rw-r--r-- | epan/dissectors/packet-l2tp.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/epan/dissectors/packet-l2tp.c b/epan/dissectors/packet-l2tp.c index bd05ce85d1..8718c4f257 100644 --- a/epan/dissectors/packet-l2tp.c +++ b/epan/dissectors/packet-l2tp.c @@ -648,6 +648,7 @@ static const value_string avp_type_vals[] = { static value_string_ext avp_type_vals_ext = VALUE_STRING_EXT_INIT(avp_type_vals); +#define CISCO_ACK 0 #define CISCO_ASSIGNED_CONNECTION_ID 1 #define CISCO_PW_CAPABILITY_LIST 2 #define CISCO_LOCAL_SESSION_ID 3 @@ -663,6 +664,7 @@ static value_string_ext avp_type_vals_ext = VALUE_STRING_EXT_INIT(avp_type_vals) #define CISCO_INTERFACE_MTU 14 static const value_string cisco_avp_type_vals[] = { + { CISCO_ACK, "Cisco ACK" }, { CISCO_ASSIGNED_CONNECTION_ID, "Assigned Connection ID" }, { CISCO_PW_CAPABILITY_LIST, "Pseudowire Capabilities List" }, { CISCO_LOCAL_SESSION_ID, "Local Session ID" }, @@ -1271,7 +1273,7 @@ static gpointer l2tp_value(packet_info *pinfo _U_) /* * Dissect CISCO AVP:s */ -static int dissect_l2tp_cisco_avps(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree) { +static int dissect_l2tp_cisco_avps(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 ccid) { int offset = 0; int avp_type; @@ -1311,6 +1313,11 @@ static int dissect_l2tp_cisco_avps(tvbuff_t *tvb, packet_info *pinfo _U_, proto_ avp_len -= 2; switch (avp_type) { + case CISCO_ACK: + /* process_l2tpv3_control does not set COL_INFO for vendor messages */ + col_add_fstr(pinfo->cinfo, COL_INFO, "%s - Cisco ACK (tunnel id=%u)", control_msg, ccid); + break; + case CISCO_ASSIGNED_CONNECTION_ID: proto_tree_add_item(l2tp_avp_tree, hf_l2tp_cisco_assigned_control_connection_id, tvb, offset, 4, ENC_BIG_ENDIAN); break; @@ -1501,7 +1508,7 @@ static void process_control_avps(tvbuff_t *tvb, if (avp_vendor_id == VENDOR_CISCO) { /* Vendor-Specific AVP */ - dissect_l2tp_cisco_avps(avp_tvb, pinfo, l2tp_tree); + dissect_l2tp_cisco_avps(avp_tvb, pinfo, l2tp_tree, ccid); idx += avp_len; continue; |