Ethereal-dev: Re: [Ethereal-dev] Vendor-ID CoSine support for RADIUS
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Motonori Shindo <mshindo@xxxxxxxxxxx>
Date: Mon, 01 Oct 2001 15:16:16 +0900 (JST)
Rick and other committers: I attached a patch that adds CoSine VSA support along with a libpcap trace file, which I hope shows that this patch works OK. Please note that this trace file contains only two types of VSA (CoSine VPI/VCI and CoSine Address Pool Name) but other VSAs can be properly decoded, I hope. Any comment will be highly appreciated. Regards, From: Richard Sharpe <sharpe@xxxxxxxxxx> Subject: Re: [Ethereal-dev] Vendor-ID CoSine support for RADIUS Date: Sun, 30 Sep 2001 23:28:47 +0930 > > BTW, there seems no VSA decoding capability for any Vendor in the > > current code. Is this a matter of "policy" of Ethereal? If I > > contribute a code to decode CoSine VSAs, there a chance that such a > > code will be incorporated into? > > It is probably that no one had any experience with VSA decoding, or > whatever. > > If you send us patches, and they look OK, esp if accompanied with a > trace showing they work, we will commit them. =--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--= +----+----+ |.. .| | Motonori Shindo |_~__| | | .. |~~_~| Sr. Systems Engineer | . | | CoSine Communications Inc. +----+----+ C o S i n e e-mail: mshindo@xxxxxxxxxxxxx Communications =--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=
Index: packet-radius.c
===================================================================
RCS file: /cvsroot/ethereal/packet-radius.c,v
retrieving revision 1.35
diff -u -r1.35 packet-radius.c
--- packet-radius.c 2001/09/30 13:23:20 1.35
+++ packet-radius.c 2001/10/01 06:04:20
@@ -230,17 +230,48 @@
*
* for a list.
*/
+#define VENDOR_ACC 5
+#define VENDOR_CISCO 9
+#define VENDOR_SHIVA 166
+#define VENDOR_LIVINGSTON 307
+#define VENDOR_3COM 429
+#define VENDOR_ASCEND 529
+#define VENDOR_BAY 1584
+#define VENDOR_JUNIPER 2636
+#define VENDOR_COSINE 3085
+#define VENDOR_UNISPHERE 4874
+
static value_string radius_vendor_specific_vendors[]=
-{{5, "ACC"},
-{9,"Cisco"},
-{166,"Shiva"},
-{307,"Livingston"},
-{429,"3Com"},
-{529,"Ascend"},
-{1584,"Bay Networks"},
-{2636,"Juniper Networks"},
-{3085,"CoSine Communications"},
-{4874,"Unisphere Networks"},
+{{VENDOR_ACC,"ACC"},
+{VENDOR_CISCO,"Cisco"},
+{VENDOR_SHIVA,"Shiva"},
+{VENDOR_LIVINGSTON,"Livingston"},
+{VENDOR_3COM,"3Com"},
+{VENDOR_ASCEND,"Ascend"},
+{VENDOR_BAY,"Bay Networks"},
+{VENDOR_JUNIPER,"Juniper Networks"},
+{VENDOR_COSINE,"CoSine Communications"},
+{VENDOR_UNISPHERE,"Unisphere Networks"},
+{0,NULL}};
+
+#define VENDOR_COSINE_VSA_CONNECION_PROFILE_NAME 1
+#define VENDOR_COSINE_VSA_ENTERPRISE_ID 2
+#define VENDOR_COSINE_VSA_ADDRESS_POOL_NAME 3
+#define VENDOR_COSINE_VSA_DS_BYTE 4
+#define VENDOR_COSINE_VSA_VPI_VCI 5
+#define VENDOR_COSINE_VSA_DLCI 6
+#define VENDOR_COSINE_VSA_LNS_IP_ADDRESS 7
+#define VENDOR_COSINE_VSA_CLI_USER_PERMISSION_ID 8
+
+static value_string radius_vendor_cosine_types[]=
+{{VENDOR_COSINE_VSA_CONNECION_PROFILE_NAME,"Connection Profile Name"},
+{VENDOR_COSINE_VSA_ENTERPRISE_ID,"Enterprise ID"},
+{VENDOR_COSINE_VSA_ADDRESS_POOL_NAME,"Address Pool Name"},
+{VENDOR_COSINE_VSA_DS_BYTE,"DS Byte"},
+{VENDOR_COSINE_VSA_VPI_VCI,"VPI/VCI"},
+{VENDOR_COSINE_VSA_DLCI,"DLCI"},
+{VENDOR_COSINE_VSA_LNS_IP_ADDRESS,"LNS IP Address"},
+{VENDOR_COSINE_VSA_CLI_USER_PERMISSION_ID,"CLI User Permission ID"},
{0,NULL}};
static value_string radius_framed_protocol_vals[]=
@@ -606,6 +637,7 @@
guint32 intval;
const guint8 *pd;
guint8 tag;
+ guint8 vtype;
char *rtimestamp;
extern char *tzname[2];
@@ -710,10 +742,50 @@
break;
case ( RADIUS_VENDOR_SPECIFIC ):
valstrarr=radius_vendor_specific_vendors;
- sprintf(textbuffer,"Vendor:%s, Value:",
- rd_match_strval(tvb_get_ntohl(tvb,offset+2),valstrarr));
+ sprintf(textbuffer,"Vendor:%s,",
+ rd_match_strval(tvb_get_ntohl(tvb,offset+2),valstrarr));
cont=&textbuffer[strlen(textbuffer)];
- rdconvertbufftostr(cont,tvb,offset+6,avph->avp_length-6);
+ switch (tvb_get_ntohl(tvb,offset+2)) {
+ case ( VENDOR_COSINE ):
+ vtype = tvb_get_guint8(tvb,offset+6);
+ switch (vtype) {
+ case ( VENDOR_COSINE_VSA_CONNECION_PROFILE_NAME ):
+ case ( VENDOR_COSINE_VSA_ENTERPRISE_ID ):
+ case ( VENDOR_COSINE_VSA_ADDRESS_POOL_NAME ):
+ case ( VENDOR_COSINE_VSA_CLI_USER_PERMISSION_ID ):
+ sprintf(cont," Type:%s, Value:",
+ rd_match_strval(vtype, radius_vendor_cosine_types));
+ cont=&textbuffer[strlen(textbuffer)];
+ rdconvertbufftostr(cont,tvb,offset+8,avph->avp_length-8);
+ break;
+ case ( VENDOR_COSINE_VSA_VPI_VCI ):
+ sprintf(cont," Type:%s, Value:%u/%u",
+ rd_match_strval(vtype, radius_vendor_cosine_types),
+ tvb_get_ntohs(tvb,offset+8),
+ tvb_get_ntohs(tvb,offset+10));
+ break;
+ case ( VENDOR_COSINE_VSA_DS_BYTE ):
+ case ( VENDOR_COSINE_VSA_DLCI ):
+ sprintf(cont," Type:%s, Value:%u",
+ rd_match_strval(vtype, radius_vendor_cosine_types),
+ tvb_get_ntohl(tvb,offset+8));
+ break;
+ case ( VENDOR_COSINE_VSA_LNS_IP_ADDRESS ):
+ sprintf(cont," Type:%s, Value:",
+ rd_match_strval(vtype, radius_vendor_cosine_types));
+ cont=&textbuffer[strlen(textbuffer)];
+ ip_to_str_buf(tvb_get_ptr(tvb,offset+8,4),cont);
+ break;
+ default:
+ sprintf(cont," Unknown Value Type");
+ break;
+ }
+ break;
+ default:
+ sprintf(cont, " Value:");
+ rdconvertbufftostr(cont,tvb,offset+6,avph->avp_length-6);
+ break;
+ }
break;
case( RADIUS_TIMESTAMP ):
intval=tvb_get_ntohl(tvb,offset+2);
Attachment:
pppoe_radauth.cap
Description: Binary data
- Follow-Ups:
- Re: [Ethereal-dev] Vendor-ID CoSine support for RADIUS
- From: Richard Sharpe
- Re: [Ethereal-dev] Vendor-ID CoSine support for RADIUS
- Next by Date: Re: [Ethereal-dev] Vendor-ID CoSine support for RADIUS
- Next by thread: Re: [Ethereal-dev] Vendor-ID CoSine support for RADIUS
- Index(es):





