Ethereal-dev: [Ethereal-dev] radius patch
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Joost Yervante Damad <Joost.Damad@xxxxxxxxxxx>
Date: Fri, 9 Jan 2004 15:26:11 +0100
Hi,
the following diff adds 3 new vendors, 3 non-encapsulated Merit vendor
specifics, displaying of the authenticator in the protocol tree and
possibility to display-filter on selected attributes:
User Name, NAS IP Address, NAS Port, NAS identifier, Called Station Id,
Calling Station Id
Greetings, Joost Damad
--- packet-radius.c.orig 2004-01-09 15:15:05.000000000 +0100
+++ packet-radius.c 2004-01-09 15:17:47.000000000 +0100
@@ -49,6 +49,13 @@
static int hf_radius_length = -1;
static int hf_radius_code = -1;
static int hf_radius_id =-1;
+static int hf_radius_user_name =-1;
+static int hf_radius_nas_ip_address =-1;
+static int hf_radius_nas_port =-1;
+static int hf_radius_nas_identifier =-1;
+static int hf_radius_called_station_id =-1;
+static int hf_radius_calling_station_id =-1;
+
static char *shared_secret = NULL;
static gpointer authenticator = NULL;
@@ -290,6 +297,7 @@
*/
#define VENDOR_ACC 5
#define VENDOR_CISCO 9
+#define VENDOR_MERIT 61
#define VENDOR_SHIVA 166
#define VENDOR_LIVINGSTON 307
#define VENDOR_MICROSOFT 311
@@ -304,9 +312,11 @@
#define VENDOR_COSINE 3085
#define VENDOR_SHASTA 3199
#define VENDOR_NOMADIX 3309
+#define VENDOR_SIEMENS 4329
#define VENDOR_UNISPHERE 4874
#define VENDOR_ISSANNI 5948
#define VENDOR_QUINTUM 6618
+#define VENDOR_INTERLINK 6728
#define VENDOR_COLUBRIS 8744
#define VENDOR_COLUMBIA_UNIVERSITY 11862
#define VENDOR_THE3GPP 10415
@@ -315,6 +325,7 @@
{
{VENDOR_ACC, "ACC"},
{VENDOR_CISCO, "Cisco"},
+ {VENDOR_MERIT, "Merit"},
{VENDOR_SHIVA, "Shiva"},
{VENDOR_MICROSOFT, "Microsoft"},
{VENDOR_LIVINGSTON, "Livingston"},
@@ -329,9 +340,11 @@
{VENDOR_COSINE, "CoSine Communications"},
{VENDOR_SHASTA, "Shasta"},
{VENDOR_NOMADIX, "Nomadix"},
+ {VENDOR_SIEMENS, "SIEMENS"},
{VENDOR_UNISPHERE, "Unisphere Networks"},
{VENDOR_ISSANNI, "Issanni Communications"},
{VENDOR_QUINTUM, "Quintum"},
+ {VENDOR_INTERLINK, "Interlink"},
{VENDOR_COLUBRIS, "Colubris"},
{VENDOR_COLUMBIA_UNIVERSITY, "Columbia University"},
{VENDOR_THE3GPP, "3GPP"},
@@ -459,7 +472,10 @@
{196, RADIUS_INTEGER4, "Ascend Connect Progress"},
{197, RADIUS_INTEGER4, "Ascend Data Rate"},
{198, RADIUS_INTEGER4, "Ascend PreSession Time"},
+ {211, RADIUS_STRING, "Merit Proxy-Action"},
{218, RADIUS_INTEGER4, "Ascend Assign IP Pool"},
+ {222, RADIUS_STRING, "Merit User-Id"},
+ {223, RADIUS_STRING, "Merit User-Realm"},
{255, RADIUS_INTEGER4, "Ascend Xmit Rate"},
{0, 0, NULL}
};
@@ -3006,6 +3022,36 @@
proto_item *ti;
proto_tree *vsa_tree = NULL;
int i;
+
+ /* possible optimization: use a lookup table... */
+ switch (avph.avp_type)
+ {
+ case 1: /* User Name */
+ ti = proto_tree_add_item_hidden(tree, hf_radius_user_name, tvb,
+ offset+2, avph.avp_length-2, FALSE);
+ break;
+ case 4: /* NAS IP Address */
+ ti = proto_tree_add_item_hidden(tree, hf_radius_nas_ip_address, tvb,
+ offset+2, avph.avp_length-2, FALSE);
+ break;
+ case 5: /* NAS Port */
+ ti = proto_tree_add_item_hidden(tree, hf_radius_nas_port, tvb,
+ offset+2, avph.avp_length-2, FALSE);
+ break;
+ case 32: /* NAS identifier */
+ ti = proto_tree_add_item_hidden(tree, hf_radius_nas_identifier, tvb,
+ offset+2, avph.avp_length-2, FALSE);
+ break;
+ case 30: /* Called Station Id */
+ ti = proto_tree_add_item_hidden(tree, hf_radius_called_station_id, tvb,
+ offset+2, avph.avp_length-2, FALSE);
+ break;
+ case 31: /* Calling Station Id */
+ ti = proto_tree_add_item_hidden(tree, hf_radius_calling_station_id, tvb,
+ offset+2, avph.avp_length-2, FALSE);
+ break;
+ }
+
/* We pre-add a text and a subtree to allow 3GPP QoS decoding
* to access the protocol tree.
* */
@@ -3041,6 +3087,7 @@
guint rhident;
guint avplength,hdrlength;
e_radiushdr rh;
+ gchar *hex_authenticator;
gchar *codestrval;
@@ -3098,9 +3145,12 @@
if ( authenticator ) {
memcpy(authenticator,tvb_get_ptr(tvb,4,AUTHENTICATOR_LENGTH),AUTHENTICATOR_LENGTH);
}
+ hex_authenticator = g_malloc(AUTHENTICATOR_LENGTH * 2 + 1);
+ rdconvertbufftobinstr(hex_authenticator, tvb, 4, AUTHENTICATOR_LENGTH);
proto_tree_add_text(radius_tree, tvb, 4,
AUTHENTICATOR_LENGTH,
- "Authenticator");
+ "Authenticator: 0x%s", hex_authenticator);
+ g_free(hex_authenticator);
}
hdrlength=RD_HDR_LENGTH+AUTHENTICATOR_LENGTH;
@@ -3136,7 +3186,25 @@
{ &hf_radius_length,
{ "Length","radius.length", FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }}
+ "", HFILL }},
+ { &hf_radius_user_name,
+ { "User Name","radius.user_name", FT_STRING, BASE_NONE, NULL, 0x0,
+ "", HFILL }},
+ { &hf_radius_nas_ip_address,
+ { "NAS IP Address","radius.nas_ip_address", FT_IPv4, BASE_NONE, NULL, 0x0,
+ "", HFILL }},
+ { &hf_radius_nas_port,
+ { "NAS Port","radius.nas_port", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "", HFILL }},
+ { &hf_radius_nas_identifier,
+ { "NAS identifier","radius.nas_identifier", FT_STRING, BASE_NONE, NULL, 0x0,
+ "", HFILL }},
+ { &hf_radius_called_station_id,
+ { "Called Station Id","radius.called_station_id", FT_STRING, BASE_NONE, NULL, 0x0,
+ "", HFILL }},
+ { &hf_radius_calling_station_id,
+ { "Calling Station Id","radius.calling_station_id", FT_STRING, BASE_NONE, NULL, 0x0,
+ "", HFILL }},
};
static gint *ett[] = {
&ett_radius,
- Follow-Ups:
- Re: [Ethereal-dev] radius patch
- From: Guy Harris
- Re: [Ethereal-dev] radius patch
- Prev by Date: Re: [Ethereal-dev] Save As dialog: Should "From first to last mar ked packet" be removed?
- Next by Date: [Ethereal-dev] Ethereal Client/Server Model
- Previous by thread: Re: [Ethereal-dev] Save As dialog: Should "From first to last mar ked packet" be removed?
- Next by thread: Re: [Ethereal-dev] radius patch
- Index(es):





