Wireshark-dev: [Wireshark-dev] ATM Dissector Enhancement
Greetings- Here are the changes we propose for the packet-atm
dissector: Index: epan/dissectors/packet-atm.c =================================================================== --- epan/dissectors/packet-atm.c (revision
25594) +++ epan/dissectors/packet-atm.c (working
copy) @@ -69,6 +69,9 @@ static dissector_handle_t lane_handle; static dissector_handle_t ilmi_handle; static dissector_handle_t fp_handle; +static dissector_handle_t ppp_handle; +static dissector_handle_t eth_handle; +static dissector_handle_t ip_handle; static dissector_handle_t data_handle; static gboolean dissect_lanesscop = FALSE; @@ -1106,11 +1109,61 @@ break; default: - if (tree) { - /* Dump it as raw data. */ - call_dissector(data_handle, next_tvb,
pinfo, tree); - break; + { + gboolean decoded = FALSE; + + if (tvb_length(next_tvb) > 20) /*
arbitrary size */ + { + guint8 octet[8]; + tvb_memcpy(next_tvb, octet, 0,
sizeof(octet)); + + decoded = TRUE; + if (octet[0] == 0x00 &&
octet[1] == 0x21) + { + call_dissector(ppp_handle,
next_tvb, pinfo, tree); + } + else if (octet[0] == 0x00 &&
octet[1] == 0x00) + { + /* assume vc muxed bridged ethernet
*/ + proto_tree_add_text(tree, tvb, 0,
2, "Pad: 0x0000"); + next_tvb = tvb_new_subset(tvb, 2,
-1, -1); + call_dissector(eth_handle,
next_tvb, pinfo, tree); + } + else if (octet[2] == 0x03 &&
// NLPID + ((octet[3] == 0xcc || // IPv4 + octet[3] == 0x8e) || // IPv6 + (octet[3] == 0x00 &&
// Eth + octet[4] == 0x80))) // Eth + { + /* assume network interworking with
FR 2 byte header */ + call_dissector(fr_handle, next_tvb,
pinfo, tree); + } + else if (octet[4] == 0x03 &&
// NLPID + ((octet[5] == 0xcc || // IPv4 + octet[5] == 0x8e) || // IPv6 + (octet[5] == 0x00 &&
// Eth + octet[6] == 0x80))) // Eth + { + /* assume network interworking with
FR 4 byte header */ + call_dissector(fr_handle, next_tvb,
pinfo, tree); + } + else if ((octet[0] == 0x45) || + ((octet[0] & 0xf0) ==
0x60)) + { + call_dissector(ip_handle, next_tvb,
pinfo, tree); + } + else + { + decoded = FALSE; + } + } + + if (tree && !decoded) { + /* Dump it as raw data. */ + call_dissector(data_handle, next_tvb,
pinfo, tree); + } } + break; } break; @@ -1729,6 +1782,9 @@ sscop_handle =
find_dissector("sscop"); lane_handle =
find_dissector("lane"); ilmi_handle =
find_dissector("ilmi"); + ppp_handle = find_dissector("ppp"); + eth_handle = find_dissector("eth"); + ip_handle = find_dissector("ip"); data_handle =
find_dissector("data"); fp_handle = find_dissector("fp"); E-mail confidentiality. -------------------------------- This e-mail contains confidential and / or privileged information belonging to Spirent Communications plc, its affiliates and / or subsidiaries. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution and / or the taking of any action based upon reliance on the contents of this transmission is strictly forbidden. If you have received this message in error please notify the sender by return e-mail and delete it from your system. If you require assistance, please contact our IT department at helpdesk@xxxxxxxxxxx. Spirent Communications plc, Northwood Park, Gatwick Road, Crawley, West Sussex, RH10 9XN, United Kingdom. Tel No. +44 (0) 1293 767676 Fax No. +44 (0) 1293 767677 Registered in England Number 470893 Registered at Northwood Park, Gatwick Road, Crawley, West Sussex, RH10 9XN, United Kingdom. Or if within the US, Spirent Communications, 26750 Agoura Road, Calabasas, CA, 91302, USA. Tel No. 1-818-676- 2300 |
- Follow-Ups:
- Re: [Wireshark-dev] ATM Dissector Enhancement
- From: Jaap Keuter
- Re: [Wireshark-dev] ATM Dissector Enhancement
- From: Guy Harris
- Re: [Wireshark-dev] ATM Dissector Enhancement
- Prev by Date: Re: [Wireshark-dev] ASN.1 generating unused code warnings ( was:Compile warnings using CFLAGS '-Wshadow-Wpointer-arith -Wcast-qual -W -Wall' )
- Next by Date: Re: [Wireshark-dev] ATM Dissector Enhancement
- Previous by thread: [Wireshark-dev] How to establish an alias for a protocol (lacp for slow protocols)
- Next by thread: Re: [Wireshark-dev] ATM Dissector Enhancement
- Index(es):