Wireshark-bugs: [Wireshark-bugs] [Bug 1729] New: Patches to PANA Protocol Dissector (packet-pana
Date: Tue, 7 Aug 2007 21:58:46 +0000 (GMT)
http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1729 Summary: Patches to PANA Protocol Dissector (packet-pana.c) Product: Wireshark Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: Normal Priority: Medium Component: Wireshark AssignedTo: wireshark-bugs@xxxxxxxxxxxxx ReportedBy: vfajardo@xxxxxxxxxxxxxxxx Build Information: wireshark 0.99.6 Copyright 1998-2007 Gerald Combs <gerald@xxxxxxxxxxxxx> and contributors. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled with GTK+ 2.10.13, with GLib 2.12.13, with libpcap 0.9.5, with libz 1.2.3.3, with libpcre 6.7, without Net-SNMP, without ADNS, without Lua, with GnuTLS 1.6.3, with Gcrypt 1.2.4, with MIT Kerberos, without PortAudio, without AirPcap. Running on Linux 2.6.17.13-TARI, with libpcap version 0.9.5. Built using gcc 4.1.2 20061115 (prerelease) (Debian 4.1.1-21). -- Updated patches to support draft-ietf-pana-pana-18.txt. Diff's are as follows: Index: packet-pana.c =================================================================== --- packet-pana.c (revision 22460) +++ packet-pana.c (working copy) @@ -44,7 +44,6 @@ #include <epan/emem.h> #define PANA_UDP_PORT 3001 -#define PANA_VERSION 1 #define MIN_AVP_SIZE 8 @@ -53,6 +52,7 @@ #define PANA_FLAG_C 0x2000 #define PANA_FLAG_A 0x1000 #define PANA_FLAG_P 0x0800 +#define PANA_FLAG_I 0x0400 #define PANA_FLAG_RES6 0x0200 #define PANA_FLAG_RES7 0x0100 #define PANA_FLAG_RES8 0x0080 @@ -66,7 +66,6 @@ #define PANA_FLAG_RES 0x0fff #define PANA_AVP_FLAG_V 0x8000 -#define PANA_AVP_FLAG_M 0x4000 #define PANA_AVP_FLAG_RES2 0x2000 #define PANA_AVP_FLAG_RES3 0x1000 #define PANA_AVP_FLAG_RES4 0x0800 @@ -86,7 +85,6 @@ /* Initialize the protocol and registered fields */ static int proto_pana = -1; -static int hf_pana_version_type = -1; static int hf_pana_reserved_type = -1; static int hf_pana_length_type = -1; static int hf_pana_msg_type = -1; @@ -105,11 +103,11 @@ static int hf_pana_flag_c = -1; static int hf_pana_flag_a = -1; static int hf_pana_flag_p = -1; +static int hf_pana_flag_i = -1; static int hf_pana_avp_code = -1; static int hf_pana_avp_length = -1; static int hf_pana_avp_flags = -1; static int hf_pana_avp_flag_v = -1; -static int hf_pana_avp_flag_m = -1; static int hf_pana_avp_reserved = -1; static int hf_pana_avp_vendorid = -1; @@ -136,14 +134,15 @@ }; static const value_string avp_code_names[] = { - { 1, "Algorithm AVP" }, - { 2, "AUTH AVP" }, - { 3, "EAP-Payload AVP" }, + { 1, "AUTH AVP" }, + { 2, "EAP-Payload AVP" }, + { 3, "Integrity-Algorithm AVP" }, { 4, "Key-Id AVP" }, { 5, "Nonce AVP" }, - { 6, "Result-Code" }, - { 7, "Session-Lifetime" }, - { 8, "Termination-Cause" }, + { 6, "PRF-Algorithm AVP" }, + { 7, "Result-Code" }, + { 8, "Session-Lifetime" }, + { 9, "Termination-Cause" }, { 0, NULL } }; @@ -238,6 +237,9 @@ proto_tree_add_boolean(flags_tree, hf_pana_flag_p, tvb, offset, 2, flags); if (flags & PANA_FLAG_P) proto_item_append_text(flags_item, ", P flag set"); + proto_tree_add_boolean(flags_tree, hf_pana_flag_i, tvb, offset, 2, flags); + if (flags & PANA_FLAG_I) + proto_item_append_text(flags_item, ", I flag set"); } /* @@ -258,9 +260,6 @@ proto_tree_add_boolean(avp_flags_tree, hf_pana_avp_flag_v, tvb, offset, 2, flags); if (flags & PANA_AVP_FLAG_V) proto_item_append_text(avp_flags_item, ", Vendor"); - proto_tree_add_boolean(avp_flags_tree, hf_pana_avp_flag_m, tvb, offset, 2, flags); - if (flags & PANA_AVP_FLAG_M) - proto_item_append_text(avp_flags_item, ", Mandatory"); } @@ -270,19 +269,17 @@ static pana_avp_types pana_avp_get_type(guint16 avp_code, guint32 vendor_id) { - if(vendor_id == 0) { switch(avp_code) { - case 1: return PANA_UNSIGNED32; /* Algorithm AVP */ - case 2: return PANA_OCTET_STRING; /* AUTH AVP */ - case 3: return PANA_EAP; /* EAP-Payload AVP */ - case 4: return PANA_GROUPED; /* Failed-AVP AVP */ - case 5: return PANA_OCTET_STRING; /* Failed-Message-Header AVP */ - case 6: return PANA_INTEGER32; /* Key-Id AVP */ - case 7: return PANA_OCTET_STRING; /* Nonce AVP */ - case 8: return PANA_RESULT_CODE; /* Result-Code AVP */ - case 9: return PANA_UNSIGNED32; /* Session-Lifetime AVP */ - case 10: return PANA_ENUMERATED; /* Termination-Cause AVP */ + case 1: return PANA_OCTET_STRING; /* AUTH AVP */ + case 2: return PANA_EAP; /* EAP-Payload AVP */ + case 3: return PANA_UNSIGNED32; /* Integrity-Algorithm AVP */ + case 4: return PANA_INTEGER32; /* Key-Id AVP */ + case 5: return PANA_OCTET_STRING; /* Nonce AVP */ + case 6: return PANA_UNSIGNED32; /* PRF-Algorithm AVP */ + case 7: return PANA_RESULT_CODE; /* Result-Code AVP */ + case 8: return PANA_UNSIGNED32; /* Session-Lifetime AVP */ + case 9: return PANA_ENUMERATED; /* Termination-Cause AVP */ default: return PANA_OCTET_STRING; } } else { @@ -614,13 +611,9 @@ - /* Version */ - proto_tree_add_item(pana_tree, hf_pana_version_type, tvb, offset, 1, FALSE); - offset += 1; - /* Reserved field */ - proto_tree_add_item(pana_tree, hf_pana_reserved_type, tvb, offset, 1, FALSE); - offset += 1; + proto_tree_add_item(pana_tree, hf_pana_reserved_type, tvb, offset, 2, FALSE); + offset += 2; /* Length */ proto_tree_add_item(pana_tree, hf_pana_length_type, tvb, offset, 2, FALSE); @@ -666,7 +659,6 @@ dissect_pana(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - guint8 pana_version; guint8 pana_res; guint16 msg_length; guint16 flags; @@ -682,17 +674,11 @@ } /* Get header fields */ - pana_version = tvb_get_guint8(tvb, 0); - pana_res = tvb_get_guint8(tvb, 1); + pana_res = tvb_get_ntohs(tvb, 0); msg_length = tvb_get_ntohs(tvb, 2); flags = tvb_get_ntohs(tvb, 4); msg_type = tvb_get_ntohs(tvb, 6); - /* Check version */ - if(pana_version != PANA_VERSION) { - return FALSE; - } - /* Check minimum packet length */ if(msg_length < 12) { return FALSE; @@ -709,7 +695,7 @@ } /* verify that none of the reserved bits are set */ - if(flags&0x07ff){ + if(flags&0x03ff){ return FALSE; } @@ -734,11 +720,6 @@ module_t *pana_module; static hf_register_info hf[] = { - { &hf_pana_version_type, - { "PANA Version", "pana.version", - FT_UINT8, BASE_DEC, NULL, 0x0, - NULL, HFILL } - }, { &hf_pana_response_in, { "Response In", "pana.response_in", FT_FRAMENUM, BASE_DEC, NULL, 0x0, @@ -756,7 +737,7 @@ }, { &hf_pana_reserved_type, { "PANA Reserved", "pana.reserved", - FT_UINT8, BASE_HEX, NULL, 0x0, + FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_pana_length_type, @@ -796,6 +777,11 @@ FT_BOOLEAN, 16, TFS(&flags_set_truth), PANA_FLAG_P, NULL, HFILL } }, + { &hf_pana_flag_i, + { "IP Reconfig","pana.flags.i", + FT_BOOLEAN, 16, TFS(&flags_set_truth), PANA_FLAG_I, + NULL, HFILL } + }, { &hf_pana_msg_type, { "PANA Message Type", "pana.type", @@ -834,11 +820,6 @@ FT_BOOLEAN, 16, TFS(&flags_set_truth), PANA_AVP_FLAG_V, NULL, HFILL } }, - { &hf_pana_avp_flag_m, - { "Mandatory", "pana.avp.flags.m", - FT_BOOLEAN, 16, TFS(&flags_set_truth), PANA_AVP_FLAG_M, - NULL, HFILL } - }, { &hf_pana_avp_reserved, { "AVP Reserved", "pana.avp.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, -- Configure bugmail: http://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.
- Follow-Ups:
- [Wireshark-bugs] [Bug 1729] Patches to PANA Protocol Dissector (packet-pana.c)
- From: bugzilla-daemon
- [Wireshark-bugs] [Bug 1729] Patches to PANA Protocol Dissector (packet-pana.c)
- Prev by Date: [Wireshark-bugs] [Bug 1697] add heur_dissector_delete
- Next by Date: [Wireshark-bugs] [Bug 1730] New: Patches to PANA Protocol Dissector (packet-pana.c)
- Previous by thread: [Wireshark-bugs] [Bug 1697] add heur_dissector_delete
- Next by thread: [Wireshark-bugs] [Bug 1729] Patches to PANA Protocol Dissector (packet-pana.c)
- Index(es):