aboutsummaryrefslogtreecommitdiffstats
path: root/packet-radius.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2002-05-08 08:13:08 +0000
committerGuy Harris <guy@alum.mit.edu>2002-05-08 08:13:08 +0000
commit7181a4d32783762fe10aae0c72375a5fd2273bee (patch)
tree766ffe774b800ee734522ce13e8631361b75284b /packet-radius.c
parentb4248be92d30cb883c247a9588c685ab581bcf70 (diff)
downloadwireshark-7181a4d32783762fe10aae0c72375a5fd2273bee.tar.gz
wireshark-7181a4d32783762fe10aae0c72375a5fd2273bee.tar.bz2
wireshark-7181a4d32783762fe10aae0c72375a5fd2273bee.zip
From Kan Sasaki: VSA decoding and other changes to RADIUS.
svn path=/trunk/; revision=5416
Diffstat (limited to 'packet-radius.c')
-rw-r--r--packet-radius.c1677
1 files changed, 1382 insertions, 295 deletions
diff --git a/packet-radius.c b/packet-radius.c
index 9afa3ae4e4..c2fb625752 100644
--- a/packet-radius.c
+++ b/packet-radius.c
@@ -4,7 +4,7 @@
*
* RFC 2865, RFC 2866, RFC 2867, RFC 2868, RFC 2869
*
- * $Id: packet-radius.c,v 1.57 2002/05/06 00:58:28 guy Exp $
+ * $Id: packet-radius.c,v 1.58 2002/05/08 08:13:06 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -62,6 +62,9 @@ static dissector_handle_t eap_fragment_handle;
#define UDP_PORT_RADACCT 1646
#define UDP_PORT_RADACCT_NEW 1813
+#define TEXTBUFFER 2000
+#define VSABUFFER 10
+
typedef struct _e_radiushdr {
guint8 rh_code;
guint8 rh_ident;
@@ -78,14 +81,46 @@ typedef struct _value_value_pair {
guint16 val2;
} value_value_pair;
+typedef struct _rd_vsa_table {
+ guint32 type;
+ value_value_pair* printinfo;
+ value_string* types;
+} rd_vsa_table;
+
+typedef struct _rd_valstr_table {
+ int type;
+ value_string* str;
+} rd_valstr_table;
+
+typedef struct _rd_vsa_buffer {
+ gchar* valstr;
+ int offset;
+ int length;
+} rd_vsa_buffer;
+
#define RADIUS_ACCESS_REQUEST 1
#define RADIUS_ACCESS_ACCEPT 2
#define RADIUS_ACCESS_REJECT 3
#define RADIUS_ACCOUNTING_REQUEST 4
#define RADIUS_ACCOUNTING_RESPONSE 5
+#define RADIUS_ACCESS_PASSWORD_REQUEST 7
+#define RADIUS_ACCESS_PASSWORD_ACK 8
+#define RADIUS_ACCESS_PASSWORD_REJECT 9
#define RADIUS_ACCESS_CHALLENGE 11
#define RADIUS_STATUS_SERVER 12
#define RADIUS_STATUS_CLIENT 13
+#define RADIUS_VENDOR_SPECIFIC_CODE 26
+#define RADIUS_ASCEND_ACCESS_NEXT_CODE 29
+#define RADIUS_ASCEND_ACCESS_NEW_PIN 30
+#define RADIUS_ASCEND_PASSWORD_EXPIRED 32
+#define RADIUS_ASCEND_ACCESS_EVENT_REQUEST 33
+#define RADIUS_ASCEND_ACCESS_EVENT_RESPONSE 34
+#define RADIUS_DISCONNECT_REQUEST 40
+#define RADIUS_DISCONNECT_REQUEST_ACK 41
+#define RADIUS_DISCONNECT_REQUEST_NAK 42
+#define RADIUS_CHANGE_FILTER_REQUEST 43
+#define RADIUS_CHANGE_FILTER_REQUEST_ACK 44
+#define RADIUS_CHANGE_FILTER_REQUEST_NAK 45
#define RADIUS_RESERVED 255
/*
@@ -197,14 +232,9 @@ typedef struct _value_value_pair {
#define RD_TP_ASCEND_ASSIGN_IP_POOL 218
#define RD_TP_ASCEND_XMIT_RATE 255
-
-
-
-
#define AUTHENTICATOR_LENGTH 16
#define RD_HDR_LENGTH 4
-
#define RADIUS_STRING 1
#define RADIUS_BINSTRING 2
#define RADIUS_INTEGER4 3
@@ -227,6 +257,16 @@ typedef struct _value_value_pair {
#define RADIUS_VENDOR_SPECIFIC 20
#define RADIUS_TIMESTAMP 21
#define RADIUS_INTEGER4_TAGGED 22
+#define CISCO_VSA_DISCONNECT_CAUSE 23
+#define MICROSOFT_VSA_BAP_USAGE 24
+#define MICROSOFT_VSA_ARAP_PW_CHANGE_REASON 25
+#define MICROSOFT_VSA_ACCT_AUTH_TYPE 26
+#define MICROSOFT_VSA_ACCT_EAP_TYPE 27
+#define ASCEND_VSA_CALLING_ID_TYPE_OF_NUMBER 28
+#define ASCEND_VSA_CALLING_ID_NUMBERING_PLAN 29
+#define ASCEND_VSA_CALLING_ID_PRESENTATION 30
+#define ASCEND_VSA_CALLING_ID_SCREENING 31
+#define COSINE_VSA_VPI_VCI 32
static value_string radius_vals[] = {
{RADIUS_ACCESS_REQUEST, "Access Request"},
@@ -234,9 +274,24 @@ static value_string radius_vals[] = {
{RADIUS_ACCESS_REJECT, "Access Reject"},
{RADIUS_ACCOUNTING_REQUEST, "Accounting Request"},
{RADIUS_ACCOUNTING_RESPONSE, "Accounting Response"},
+ {RADIUS_ACCESS_PASSWORD_REQUEST, "Access Password Request"},
+ {RADIUS_ACCESS_PASSWORD_ACK, "Access Password Ack"},
+ {RADIUS_ACCESS_PASSWORD_REJECT, "Access Password Reject"},
{RADIUS_ACCESS_CHALLENGE, "Access challenge"},
{RADIUS_STATUS_SERVER, "StatusServer"},
{RADIUS_STATUS_CLIENT, "StatusClient"},
+ {RADIUS_VENDOR_SPECIFIC_CODE, "Vendor Specific"},
+ {RADIUS_ASCEND_ACCESS_NEXT_CODE, "Ascend Access Next Code"},
+ {RADIUS_ASCEND_ACCESS_NEW_PIN, "Ascend Access New Pin"},
+ {RADIUS_ASCEND_PASSWORD_EXPIRED, "Ascend Password Expired"},
+ {RADIUS_ASCEND_ACCESS_EVENT_REQUEST, "Ascend Access Event Request"},
+ {RADIUS_ASCEND_ACCESS_EVENT_RESPONSE, "Ascend Access Event Response"},
+ {RADIUS_DISCONNECT_REQUEST, "Disconnect Request"},
+ {RADIUS_DISCONNECT_REQUEST_ACK, "Disconnect Request ACK"},
+ {RADIUS_DISCONNECT_REQUEST_NAK, "Disconnect Request NAK"},
+ {RADIUS_CHANGE_FILTER_REQUEST, "Change Filter Request"},
+ {RADIUS_CHANGE_FILTER_REQUEST_ACK, "Change Filter Request ACK"},
+ {RADIUS_CHANGE_FILTER_REQUEST_NAK, "Change Filter Request NAK"},
{RADIUS_RESERVED, "Reserved"},
{0, NULL}};
@@ -308,159 +363,1168 @@ references:
*/
/* stanard sttributes */
-#define VENDOR_CISCO_AVP_CISCO 1
-#define VENDOR_CISCO_NAS_PORT 2
+#define VENDOR_CISCO_VSA_AVP_CISCO 1
+#define VENDOR_CISCO_VSA_NAS_PORT 2
/* fax */
-#define VENDOR_CISCO_FAX_ACCOUNT_ID_ORIGIN 3
-#define VENDOR_CISCO_FAX_MSG_ID 4
-#define VENDOR_CISCO_FAX_PAGES 5
-#define VENDOR_CISCO_FAX_COVERPAGE_FLAG 6
-#define VENDOR_CISCO_FAX_MODEM_TIME 7
-#define VENDOR_CISCO_FAX_CONNECT_SPEED 8
-#define VENDOR_CISCO_FAX_RECIPENT_COUNT 9
-#define VENDOR_CISCO_FAX_PROCESS_ABORT_FLAG 10
-#define VENDOR_CISCO_FAX_DSN_ADDRESS 11
-#define VENDOR_CISCO_FAX_DSN_FLAG 12
-#define VENDOR_CISCO_FAX_MDN_ADDRESS 13
-#define VENDOR_CISCO_FAX_MDN_FLAG 14
-#define VENDOR_CISCO_FAX_AUTH_STATUS 15
-#define VENDOR_CISCO_EMAIL_SERVER_ADDRESS 16
-#define VENDOR_CISCO_EMAIL_SERVER_ACK_FLAG 17
-#define VENDOR_CISCO_GATEWAY_ID 18
-#define VENDOR_CISCO_CALL_TYPE 19
-#define VENDOR_CISCO_PORT_USED 20
-#define VENDOR_CISCO_ABORT_CAUSE 21
+#define VENDOR_CISCO_VSA_FAX_ACCOUNT_ID_ORIGIN 3
+#define VENDOR_CISCO_VSA_FAX_MSG_ID 4
+#define VENDOR_CISCO_VSA_FAX_PAGES 5
+#define VENDOR_CISCO_VSA_FAX_COVERPAGE_FLAG 6
+#define VENDOR_CISCO_VSA_FAX_MODEM_TIME 7
+#define VENDOR_CISCO_VSA_FAX_CONNECT_SPEED 8
+#define VENDOR_CISCO_VSA_FAX_RECIPENT_COUNT 9
+#define VENDOR_CISCO_VSA_FAX_PROCESS_ABORT_FLAG 10
+#define VENDOR_CISCO_VSA_FAX_DSN_ADDRESS 11
+#define VENDOR_CISCO_VSA_FAX_DSN_FLAG 12
+#define VENDOR_CISCO_VSA_FAX_MDN_ADDRESS 13
+#define VENDOR_CISCO_VSA_FAX_MDN_FLAG 14
+#define VENDOR_CISCO_VSA_FAX_AUTH_STATUS 15
+#define VENDOR_CISCO_VSA_EMAIL_SERVER_ADDRESS 16
+#define VENDOR_CISCO_VSA_EMAIL_SERVER_ACK_FLAG 17
+#define VENDOR_CISCO_VSA_GATEWAY_ID 18
+#define VENDOR_CISCO_VSA_CALL_TYPE 19
+#define VENDOR_CISCO_VSA_PORT_USED 20
+#define VENDOR_CISCO_VSA_ABORT_CAUSE 21
/* #22 */
/* H323 - Voice over IP attributes. */
-#define VENDOR_CISCO_H323_REMOTE_ADDRESS 23
-#define VENDOR_CISCO_H323_CONF_ID 24
-#define VENDOR_CISCO_H323_SETUP_TIME 25
-#define VENDOR_CISCO_H323_CALL_ORIGIN 26
-#define VENDOR_CISCO_H323_CALL_TYPE 27
-#define VENDOR_CISCO_H323_CONNECT_TIME 28
-#define VENDOR_CISCO_H323_DISCONNECT_TIME 29
-#define VENDOR_CISCO_H323_DISCONNECT_CAUSE 30
-#define VENDOR_CISCO_H323_VOICE_QUALITY 31
+#define VENDOR_CISCO_VSA_H323_REMOTE_ADDRESS 23
+#define VENDOR_CISCO_VSA_H323_CONF_ID 24
+#define VENDOR_CISCO_VSA_H323_SETUP_TIME 25
+#define VENDOR_CISCO_VSA_H323_CALL_ORIGIN 26
+#define VENDOR_CISCO_VSA_H323_CALL_TYPE 27
+#define VENDOR_CISCO_VSA_H323_CONNECT_TIME 28
+#define VENDOR_CISCO_VSA_H323_DISCONNECT_TIME 29
+#define VENDOR_CISCO_VSA_H323_DISCONNECT_CAUSE 30
+#define VENDOR_CISCO_VSA_H323_VOICE_QUALITY 31
/* #32 */
-#define VENDOR_CISCO_H323_GW_ID 33
+#define VENDOR_CISCO_VSA_H323_GW_ID 33
/* #34 */
-#define VENDOR_CISCO_H323_INCOMING_CONF_ID 35
+#define VENDOR_CISCO_VSA_H323_INCOMING_CONF_ID 35
/* #36-#100 */
-#define VENDOR_CISCO_H323_CREDIT_AMOUNT 101
-#define VENDOR_CISCO_H323_CREDIT_TIME 102
-#define VENDOR_CISCO_H323_RETURN_CODE 103
-#define VENDOR_CISCO_H323_PROMPT_ID 104
-#define VENDOR_CISCO_H323_TIME_AND_DAY 105
-#define VENDOR_CISCO_H323_REDIRECT_NUMBER 106
-#define VENDOR_CISCO_H323_PREFERRED_LANG 107
-#define VENDOR_CISCO_H323_REDIRECT_IP_ADDRESS 108
-#define VENDOR_CISCO_H323_BILLING_MODEL 109
-#define VENDOR_CISCO_H323_CURRENCY_TYPE 110
+#define VENDOR_CISCO_VSA_H323_CREDIT_AMOUNT 101
+#define VENDOR_CISCO_VSA_H323_CREDIT_TIME 102
+#define VENDOR_CISCO_VSA_H323_RETURN_CODE 103
+#define VENDOR_CISCO_VSA_H323_PROMPT_ID 104
+#define VENDOR_CISCO_VSA_H323_TIME_AND_DAY 105
+#define VENDOR_CISCO_VSA_H323_REDIRECT_NUMBER 106
+#define VENDOR_CISCO_VSA_H323_PREFERRED_LANG 107
+#define VENDOR_CISCO_VSA_H323_REDIRECT_IP_ADDRESS 108
+#define VENDOR_CISCO_VSA_H323_BILLING_MODEL 109
+#define VENDOR_CISCO_VSA_H323_CURRENCY_TYPE 110
/* #111-#186 */
/*
Extra attributes sent by the Cisco, if you configure
"radius-server vsa accounting" (requires IOS11.2+).
*/
-#define VENDOR_CISCO_MULTILINK_ID 187
-#define VENDOR_CISCO_NUM_IN_MULTILINK 188
+#define VENDOR_CISCO_VSA_MULTILINK_ID 187
+#define VENDOR_CISCO_VSA_NUM_IN_MULTILINK 188
/* #189 */
-#define VENDOR_CISCO_PRE_INPUT_OCTETS 190
-#define VENDOR_CISCO_PRE_OUTPUT_OCTETS 191
-#define VENDOR_CISCO_PRE_INPUT_PACKETS 192
-#define VENDOR_CISCO_PRE_OUTPUT_PACKETS 193
-#define VENDOR_CISCO_MAXIMUM_TIME 194
-#define VENDOR_CISCO_DISCONNECT_CAUSE 195
+#define VENDOR_CISCO_VSA_PRE_INPUT_OCTETS 190
+#define VENDOR_CISCO_VSA_PRE_OUTPUT_OCTETS 191
+#define VENDOR_CISCO_VSA_PRE_INPUT_PACKETS 192
+#define VENDOR_CISCO_VSA_PRE_OUTPUT_PACKETS 193
+#define VENDOR_CISCO_VSA_MAXIMUM_TIME 194
+#define VENDOR_CISCO_VSA_DISCONNECT_CAUSE 195
/* #196 */
-#define VENDOR_CISCO_DATA_RATE 197
-#define VENDOR_CISCO_PRESESSION_TIME 198
+#define VENDOR_CISCO_VSA_DATA_RATE 197
+#define VENDOR_CISCO_VSA_PRESESSION_TIME 198
/* #199-#207 */
-#define VENDOR_CISCO_PW_LIFETIME 208
-#define VENDOR_CISCO_IP_DIRECT 209
-#define VENDOR_CISCO_PPP_VJ_SLOT_COMP 210
+#define VENDOR_CISCO_VSA_PW_LIFETIME 208
+#define VENDOR_CISCO_VSA_IP_DIRECT 209
+#define VENDOR_CISCO_VSA_PPP_VJ_SLOT_COMP 210
/* #211 */
-#define VENDOR_CISCO_PPP_ASYNC_MAP 212
+#define VENDOR_CISCO_VSA_PPP_ASYNC_MAP 212
/* #213-#216 */
-#define VENDOR_CISCO_IP_POOL_DEFINITION 217
-#define VENDOR_CISCO_ASING_IP_POOL 218
+#define VENDOR_CISCO_VSA_IP_POOL_DEFINITION 217
+#define VENDOR_CISCO_VSA_ASING_IP_POOL 218
/* #219-#227 */
-#define VENDOR_CISCO_ROUTE_IP 228
+#define VENDOR_CISCO_VSA_ROUTE_IP 228
/* #229-#232 */
-#define VENDOR_CISCO_LINK_COMPRESSION 233
-#define VENDOR_CISCO_TARGET_UTIL 234
-#define VENDOR_CISCO_MAXIMUM_CHANNELS 235
+#define VENDOR_CISCO_VSA_LINK_COMPRESSION 233
+#define VENDOR_CISCO_VSA_TARGET_UTIL 234
+#define VENDOR_CISCO_VSA_MAXIMUM_CHANNELS 235
/* #236-#241 */
-#define VENDOR_CISCO_DATA_FILTER 242
-#define VENDOR_CISCO_CALL_FILTER 243
-#define VENDOR_CISCO_IDLE_LIMIT 244
-#define VENDOR_CISCO_XMIT_RATE 255
+#define VENDOR_CISCO_VSA_DATA_FILTER 242
+#define VENDOR_CISCO_VSA_CALL_FILTER 243
+#define VENDOR_CISCO_VSA_IDLE_LIMIT 244
+#define VENDOR_CISCO_VSA_XMIT_RATE 255
+
+static value_value_pair radius_vendor_cisco_printinfo[] = {
+{ VENDOR_CISCO_VSA_AVP_CISCO ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_NAS_PORT ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_FAX_ACCOUNT_ID_ORIGIN ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_FAX_MSG_ID ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_FAX_PAGES ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_FAX_COVERPAGE_FLAG ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_FAX_MODEM_TIME ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_FAX_CONNECT_SPEED ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_FAX_RECIPENT_COUNT ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_FAX_PROCESS_ABORT_FLAG ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_FAX_DSN_ADDRESS ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_FAX_DSN_FLAG ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_FAX_MDN_ADDRESS ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_FAX_MDN_FLAG ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_FAX_AUTH_STATUS ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_EMAIL_SERVER_ADDRESS ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_EMAIL_SERVER_ACK_FLAG ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_GATEWAY_ID ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_CALL_TYPE ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_PORT_USED ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_ABORT_CAUSE ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_REMOTE_ADDRESS ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_CONF_ID ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_SETUP_TIME ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_CALL_ORIGIN ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_CALL_TYPE ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_CONNECT_TIME ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_DISCONNECT_TIME ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_DISCONNECT_CAUSE ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_VOICE_QUALITY ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_GW_ID ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_INCOMING_CONF_ID ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_CREDIT_AMOUNT ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_CREDIT_TIME ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_RETURN_CODE ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_PROMPT_ID ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_TIME_AND_DAY ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_REDIRECT_NUMBER ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_PREFERRED_LANG ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_REDIRECT_IP_ADDRESS ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_BILLING_MODEL ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_H323_CURRENCY_TYPE ,RADIUS_STRING },
+{ VENDOR_CISCO_VSA_MULTILINK_ID ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_NUM_IN_MULTILINK ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_PRE_INPUT_OCTETS ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_PRE_OUTPUT_OCTETS ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_PRE_INPUT_PACKETS ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_PRE_OUTPUT_PACKETS ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_MAXIMUM_TIME ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_DISCONNECT_CAUSE ,CISCO_VSA_DISCONNECT_CAUSE },
+{ VENDOR_CISCO_VSA_DATA_RATE ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_PRESESSION_TIME ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_PW_LIFETIME ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_IP_DIRECT ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_PPP_VJ_SLOT_COMP ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_PPP_ASYNC_MAP ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_IP_POOL_DEFINITION ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_ASING_IP_POOL ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_ROUTE_IP ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_LINK_COMPRESSION ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_TARGET_UTIL ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_MAXIMUM_CHANNELS ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_DATA_FILTER ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_CALL_FILTER ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_IDLE_LIMIT ,RADIUS_INTEGER4 },
+{ VENDOR_CISCO_VSA_XMIT_RATE ,RADIUS_INTEGER4 },
+{0,0},
+};
static value_string radius_vendor_cisco_types[]=
-{{VENDOR_CISCO_AVP_CISCO ,"Cisco AV Pair" },
-{ VENDOR_CISCO_NAS_PORT ,"Cisco NAS Port" },
-{ VENDOR_CISCO_FAX_ACCOUNT_ID_ORIGIN ,"Fax Account Id Origin" },
-{ VENDOR_CISCO_FAX_MSG_ID ,"Fax Msg Id" },
-{ VENDOR_CISCO_FAX_PAGES ,"Fax Pages" },
-{ VENDOR_CISCO_FAX_COVERPAGE_FLAG ,"Fax Cover Page Flag" },
-{ VENDOR_CISCO_FAX_MODEM_TIME ,"Fax Modem Time" },
-{ VENDOR_CISCO_FAX_CONNECT_SPEED ,"Fax Connect Speed" },
-{ VENDOR_CISCO_FAX_RECIPENT_COUNT ,"Fax Recipent Count" },
-{ VENDOR_CISCO_FAX_PROCESS_ABORT_FLAG ,"Fax Process Abort Flag" },
-{ VENDOR_CISCO_FAX_DSN_ADDRESS ,"Fax DSN Address" },
-{ VENDOR_CISCO_FAX_DSN_FLAG ,"Fax DSN Flag" },
-{ VENDOR_CISCO_FAX_MDN_ADDRESS ,"Fax MDN Address" },
-{ VENDOR_CISCO_FAX_MDN_FLAG ,"Fax MDN Flag" },
-{ VENDOR_CISCO_FAX_AUTH_STATUS ,"Fax Auth Status" },
-{ VENDOR_CISCO_EMAIL_SERVER_ADDRESS ,"Email Server Address" },
-{ VENDOR_CISCO_EMAIL_SERVER_ACK_FLAG ,"Email Server Ack Flag" },
-{ VENDOR_CISCO_GATEWAY_ID ,"Gateway Id" },
-{ VENDOR_CISCO_CALL_TYPE ,"Call Type" },
-{ VENDOR_CISCO_PORT_USED ,"Port Used" },
-{ VENDOR_CISCO_ABORT_CAUSE ,"Abort Cause" },
-{ VENDOR_CISCO_H323_REMOTE_ADDRESS ,"H323 Remote Address" },
-{ VENDOR_CISCO_H323_CONF_ID ,"H323 Conf Id" },
-{ VENDOR_CISCO_H323_SETUP_TIME ,"H323 Setup Time" },
-{ VENDOR_CISCO_H323_CALL_ORIGIN ,"H323 Call Origin" },
-{ VENDOR_CISCO_H323_CALL_TYPE ,"H323 Call Type" },
-{ VENDOR_CISCO_H323_CONNECT_TIME ,"H323 Connect Time" },
-{ VENDOR_CISCO_H323_DISCONNECT_TIME ,"H323 Disconnect Time" },
-{ VENDOR_CISCO_H323_DISCONNECT_CAUSE ,"H323 Disconnect Cause" },
-{ VENDOR_CISCO_H323_VOICE_QUALITY ,"H323 Voice Quality" },
-{ VENDOR_CISCO_H323_GW_ID ,"H323 GW Id" },
-{ VENDOR_CISCO_H323_INCOMING_CONF_ID ,"H323 Incoming Conf Id" },
-{ VENDOR_CISCO_H323_CREDIT_AMOUNT ,"H323 Credit Amount" },
-{ VENDOR_CISCO_H323_CREDIT_TIME ,"H323 Credit Time" },
-{ VENDOR_CISCO_H323_RETURN_CODE ,"H323 Return Code" },
-{ VENDOR_CISCO_H323_PROMPT_ID ,"H323 Prompt Id" },
-{ VENDOR_CISCO_H323_TIME_AND_DAY ,"H323 Time And Day" },
-{ VENDOR_CISCO_H323_REDIRECT_NUMBER ,"H323 Redirect Number" },
-{ VENDOR_CISCO_H323_PREFERRED_LANG ,"H323 Preferred Lang" },
-{ VENDOR_CISCO_H323_REDIRECT_IP_ADDRESS ,"H323 Redirect Ip Address" },
-{ VENDOR_CISCO_H323_BILLING_MODEL ,"H323 Billing Model" },
-{ VENDOR_CISCO_H323_CURRENCY_TYPE ,"H323 Currency Type" },
-{ VENDOR_CISCO_MULTILINK_ID ,"Cisco Multilink ID" },
-{ VENDOR_CISCO_NUM_IN_MULTILINK ,"Cisco Num In Multilink" },
-{ VENDOR_CISCO_PRE_INPUT_OCTETS ,"Cisco Pre Input Octets" },
-{ VENDOR_CISCO_PRE_OUTPUT_OCTETS ,"Cisco Pre Output Octets" },
-{ VENDOR_CISCO_PRE_INPUT_PACKETS ,"Cisco Pre Input Packets" },
-{ VENDOR_CISCO_PRE_OUTPUT_PACKETS ,"Cisco Pre Output Packets" },
-{ VENDOR_CISCO_MAXIMUM_TIME ,"Cisco Maximum Time" },
-{ VENDOR_CISCO_DISCONNECT_CAUSE ,"Cisco Disconnect Cause" },
-{ VENDOR_CISCO_DATA_RATE ,"Cisco Data Rate" },
-{ VENDOR_CISCO_PRESESSION_TIME ,"Cisco PreSession Time" },
-{ VENDOR_CISCO_PW_LIFETIME ,"Cisco PW Lifetime" },
-{ VENDOR_CISCO_IP_DIRECT ,"Cisco IP Direct" },
-{ VENDOR_CISCO_PPP_VJ_SLOT_COMP ,"Cisco PPP VJ Slot Comp" },
-{ VENDOR_CISCO_PPP_ASYNC_MAP ,"Cisco PPP Async Map" },
-{ VENDOR_CISCO_IP_POOL_DEFINITION ,"Cisco IP Pool Definition" },
-{ VENDOR_CISCO_ASING_IP_POOL ,"Cisco Asing IP Pool" },
-{ VENDOR_CISCO_ROUTE_IP ,"Cisco Route IP" },
-{ VENDOR_CISCO_LINK_COMPRESSION ,"Cisco Link Compression" },
-{ VENDOR_CISCO_TARGET_UTIL ,"Cisco Target Util" },
-{ VENDOR_CISCO_MAXIMUM_CHANNELS ,"Cisco Maximum Channels" },
-{ VENDOR_CISCO_DATA_FILTER ,"Cisco Data Filter" },
-{ VENDOR_CISCO_CALL_FILTER ,"Cisco Call Filter" },
-{ VENDOR_CISCO_IDLE_LIMIT ,"Cisco Idle Limit" },
-{ VENDOR_CISCO_XMIT_RATE ,"Cisco Xmit Rate" },
+{{VENDOR_CISCO_VSA_AVP_CISCO ,"Cisco AV Pair" },
+{ VENDOR_CISCO_VSA_NAS_PORT ,"Cisco NAS Port" },
+{ VENDOR_CISCO_VSA_FAX_ACCOUNT_ID_ORIGIN ,"Fax Account Id Origin" },
+{ VENDOR_CISCO_VSA_FAX_MSG_ID ,"Fax Msg Id" },
+{ VENDOR_CISCO_VSA_FAX_PAGES ,"Fax Pages" },
+{ VENDOR_CISCO_VSA_FAX_COVERPAGE_FLAG ,"Fax Cover Page Flag" },
+{ VENDOR_CISCO_VSA_FAX_MODEM_TIME ,"Fax Modem Time" },
+{ VENDOR_CISCO_VSA_FAX_CONNECT_SPEED ,"Fax Connect Speed" },
+{ VENDOR_CISCO_VSA_FAX_RECIPENT_COUNT ,"Fax Recipent Count" },
+{ VENDOR_CISCO_VSA_FAX_PROCESS_ABORT_FLAG ,"Fax Process Abort Flag" },
+{ VENDOR_CISCO_VSA_FAX_DSN_ADDRESS ,"Fax DSN Address" },
+{ VENDOR_CISCO_VSA_FAX_DSN_FLAG ,"Fax DSN Flag" },
+{ VENDOR_CISCO_VSA_FAX_MDN_ADDRESS ,"Fax MDN Address" },
+{ VENDOR_CISCO_VSA_FAX_MDN_FLAG ,"Fax MDN Flag" },
+{ VENDOR_CISCO_VSA_FAX_AUTH_STATUS ,"Fax Auth Status" },
+{ VENDOR_CISCO_VSA_EMAIL_SERVER_ADDRESS ,"Email Server Address" },
+{ VENDOR_CISCO_VSA_EMAIL_SERVER_ACK_FLAG ,"Email Server Ack Flag" },
+{ VENDOR_CISCO_VSA_GATEWAY_ID ,"Gateway Id" },
+{ VENDOR_CISCO_VSA_CALL_TYPE ,"Call Type" },
+{ VENDOR_CISCO_VSA_PORT_USED ,"Port Used" },
+{ VENDOR_CISCO_VSA_ABORT_CAUSE ,"Abort Cause" },
+{ VENDOR_CISCO_VSA_H323_REMOTE_ADDRESS ,"H323 Remote Address" },
+{ VENDOR_CISCO_VSA_H323_CONF_ID ,"H323 Conf Id" },
+{ VENDOR_CISCO_VSA_H323_SETUP_TIME ,"H323 Setup Time" },
+{ VENDOR_CISCO_VSA_H323_CALL_ORIGIN ,"H323 Call Origin" },
+{ VENDOR_CISCO_VSA_H323_CALL_TYPE ,"H323 Call Type" },
+{ VENDOR_CISCO_VSA_H323_CONNECT_TIME ,"H323 Connect Time" },
+{ VENDOR_CISCO_VSA_H323_DISCONNECT_TIME ,"H323 Disconnect Time" },
+{ VENDOR_CISCO_VSA_H323_DISCONNECT_CAUSE ,"H323 Disconnect Cause" },
+{ VENDOR_CISCO_VSA_H323_VOICE_QUALITY ,"H323 Voice Quality" },
+{ VENDOR_CISCO_VSA_H323_GW_ID ,"H323 GW Id" },
+{ VENDOR_CISCO_VSA_H323_INCOMING_CONF_ID ,"H323 Incoming Conf Id" },
+{ VENDOR_CISCO_VSA_H323_CREDIT_AMOUNT ,"H323 Credit Amount" },
+{ VENDOR_CISCO_VSA_H323_CREDIT_TIME ,"H323 Credit Time" },
+{ VENDOR_CISCO_VSA_H323_RETURN_CODE ,"H323 Return Code" },
+{ VENDOR_CISCO_VSA_H323_PROMPT_ID ,"H323 Prompt Id" },
+{ VENDOR_CISCO_VSA_H323_TIME_AND_DAY ,"H323 Time And Day" },
+{ VENDOR_CISCO_VSA_H323_REDIRECT_NUMBER ,"H323 Redirect Number" },
+{ VENDOR_CISCO_VSA_H323_PREFERRED_LANG ,"H323 Preferred Lang" },
+{ VENDOR_CISCO_VSA_H323_REDIRECT_IP_ADDRESS ,"H323 Redirect Ip Address" },
+{ VENDOR_CISCO_VSA_H323_BILLING_MODEL ,"H323 Billing Model" },
+{ VENDOR_CISCO_VSA_H323_CURRENCY_TYPE ,"H323 Currency Type" },
+{ VENDOR_CISCO_VSA_MULTILINK_ID ,"Cisco Multilink ID" },
+{ VENDOR_CISCO_VSA_NUM_IN_MULTILINK ,"Cisco Num In Multilink" },
+{ VENDOR_CISCO_VSA_PRE_INPUT_OCTETS ,"Cisco Pre Input Octets" },
+{ VENDOR_CISCO_VSA_PRE_OUTPUT_OCTETS ,"Cisco Pre Output Octets" },
+{ VENDOR_CISCO_VSA_PRE_INPUT_PACKETS ,"Cisco Pre Input Packets" },
+{ VENDOR_CISCO_VSA_PRE_OUTPUT_PACKETS ,"Cisco Pre Output Packets" },
+{ VENDOR_CISCO_VSA_MAXIMUM_TIME ,"Cisco Maximum Time" },
+{ VENDOR_CISCO_VSA_DISCONNECT_CAUSE ,"Cisco Disconnect Cause" },
+{ VENDOR_CISCO_VSA_DATA_RATE ,"Cisco Data Rate" },
+{ VENDOR_CISCO_VSA_PRESESSION_TIME ,"Cisco PreSession Time" },
+{ VENDOR_CISCO_VSA_PW_LIFETIME ,"Cisco PW Lifetime" },
+{ VENDOR_CISCO_VSA_IP_DIRECT ,"Cisco IP Direct" },
+{ VENDOR_CISCO_VSA_PPP_VJ_SLOT_COMP ,"Cisco PPP VJ Slot Comp" },
+{ VENDOR_CISCO_VSA_PPP_ASYNC_MAP ,"Cisco PPP Async Map" },
+{ VENDOR_CISCO_VSA_IP_POOL_DEFINITION ,"Cisco IP Pool Definition" },
+{ VENDOR_CISCO_VSA_ASING_IP_POOL ,"Cisco Asing IP Pool" },
+{ VENDOR_CISCO_VSA_ROUTE_IP ,"Cisco Route IP" },
+{ VENDOR_CISCO_VSA_LINK_COMPRESSION ,"Cisco Link Compression" },
+{ VENDOR_CISCO_VSA_TARGET_UTIL ,"Cisco Target Util" },
+{ VENDOR_CISCO_VSA_MAXIMUM_CHANNELS ,"Cisco Maximum Channels" },
+{ VENDOR_CISCO_VSA_DATA_FILTER ,"Cisco Data Filter" },
+{ VENDOR_CISCO_VSA_CALL_FILTER ,"Cisco Call Filter" },
+{ VENDOR_CISCO_VSA_IDLE_LIMIT ,"Cisco Idle Limit" },
+{ VENDOR_CISCO_VSA_XMIT_RATE ,"Cisco Xmit Rate" },
+{0,NULL}};
+
+static value_string radius_vendor_cisco_disconnect_cause_vals[]=
+{{2, "Unknown"},
+{4, "CLID-Authentication-Failure"},
+{10, "No-Carrier"},
+{11, "Lost-Carrier"},
+{12, "No-Detected-Result-Codes"},
+{20, "User-Ends-Session"},
+{21, "Idle-Timeout"},
+{22, "Exit-Telnet-Session"},
+{23, "No-Remote-IP-Addr"},
+{24, "Exit-Raw-TCP"},
+{25, "Password-Fail"},
+{26, "Raw-TCP-Disabled"},
+{27, "Control-C-Detected"},
+{28, "EXEC-Program-Destroyed"},
+{40, "Timeout-PPP-LCP"},
+{41, "Failed-PPP-LCP-Negotiation"},
+{42, "Failed-PPP-PAP-Auth-Fail"},
+{43, "Failed-PPP-CHAP-Auth"},
+{44, "Failed-PPP-Remote-Auth"},
+{45, "PPP-Remote-Terminate"},
+{46, "PPP-Closed-Event"},
+{100, "Session-Timeout"},
+{101, "Session-Failed-Security"},
+{102, "Session-End-Callback"},
+{120, "Invalid-Protocol"},
+{0,NULL}};
+
+#define VENDOR_MICROSOFT_VSA_CHAP_RESPONSE 1
+#define VENDOR_MICROSOFT_VSA_CHAP_ERROR 2
+#define VENDOR_MICROSOFT_VSA_CHAP_CPW_1 3
+#define VENDOR_MICROSOFT_VSA_CHAP_CPW_2 4
+#define VENDOR_MICROSOFT_VSA_CHAP_LM_ENC_PW 5
+#define VENDOR_MICROSOFT_VSA_CHAP_NT_ENC_PW 6
+#define VENDOR_MICROSOFT_VSA_MPPE_ENCRYPTION_POLICY 7
+#define VENDOR_MICROSOFT_VSA_MPPE_ENCRYPTION_TYPE 8
+#define VENDOR_MICROSOFT_VSA_RAS_VENDOR 9
+#define VENDOR_MICROSOFT_VSA_CHAP_DOMAIN 10
+#define VENDOR_MICROSOFT_VSA_CHAP_CHALLENGE 11
+#define VENDOR_MICROSOFT_VSA_CHAP_MPPE_KEYS 12
+#define VENDOR_MICROSOFT_VSA_BAP_USAGE 13
+#define VENDOR_MICROSOFT_VSA_LINK_UTILIZATION_THRESHOLD 14
+#define VENDOR_MICROSOFT_VSA_LINK_DROP_TIME_LIMIT 15
+#define VENDOR_MICROSOFT_VSA_MPPE_SEND_KEY 16
+#define VENDOR_MICROSOFT_VSA_MPPE_RECV_KEY 17
+#define VENDOR_MICROSOFT_VSA_RAS_VERSION 18
+#define VENDOR_MICROSOFT_VSA_OLD_ARAP_PASSWORD 19
+#define VENDOR_MICROSOFT_VSA_NEW_ARAP_PASSWORD 20
+#define VENDOR_MICROSOFT_VSA_ARAP_PW_CHANGE_REASON 21
+#define VENDOR_MICROSOFT_VSA_FILTER 22
+#define VENDOR_MICROSOFT_VSA_ACCT_AUTH_TYPE 23
+#define VENDOR_MICROSOFT_VSA_ACCT_EAP_TYPE 24
+#define VENDOR_MICROSOFT_VSA_CHAP2_RESPONSE 25
+#define VENDOR_MICROSOFT_VSA_CHAP2_SUCCESS 26
+#define VENDOR_MICROSOFT_VSA_CHAP2_CPW 27
+#define VENDOR_MICROSOFT_VSA_PRIMARY_DNS_SERVER 28
+#define VENDOR_MICROSOFT_VSA_SECONDARY_DNS_SERVER 29
+#define VENDOR_MICROSOFT_VSA_PRIMARY_NBNS_SERVER 30
+#define VENDOR_MICROSOFT_VSA_SECONDARY_NBNS_SERVER 31
+
+static value_value_pair radius_vendor_microsoft_printinfo[] = {
+{ VENDOR_MICROSOFT_VSA_CHAP_RESPONSE, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_CHAP_ERROR, RADIUS_STRING },
+{ VENDOR_MICROSOFT_VSA_CHAP_CPW_1, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_CHAP_CPW_2, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_CHAP_LM_ENC_PW, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_CHAP_NT_ENC_PW, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_MPPE_ENCRYPTION_POLICY, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_MPPE_ENCRYPTION_TYPE, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_RAS_VENDOR, RADIUS_INTEGER4 },
+{ VENDOR_MICROSOFT_VSA_CHAP_DOMAIN, RADIUS_STRING },
+{ VENDOR_MICROSOFT_VSA_CHAP_CHALLENGE, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_CHAP_MPPE_KEYS, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_BAP_USAGE, MICROSOFT_VSA_BAP_USAGE },
+{ VENDOR_MICROSOFT_VSA_LINK_UTILIZATION_THRESHOLD, RADIUS_INTEGER4 },
+{ VENDOR_MICROSOFT_VSA_LINK_DROP_TIME_LIMIT, RADIUS_INTEGER4 },
+{ VENDOR_MICROSOFT_VSA_MPPE_SEND_KEY, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_MPPE_RECV_KEY, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_RAS_VERSION, RADIUS_STRING },
+{ VENDOR_MICROSOFT_VSA_OLD_ARAP_PASSWORD, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_NEW_ARAP_PASSWORD, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_ARAP_PW_CHANGE_REASON, MICROSOFT_VSA_ARAP_PW_CHANGE_REASON },
+{ VENDOR_MICROSOFT_VSA_FILTER, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_ACCT_AUTH_TYPE, MICROSOFT_VSA_ACCT_AUTH_TYPE },
+{ VENDOR_MICROSOFT_VSA_ACCT_EAP_TYPE, MICROSOFT_VSA_ACCT_EAP_TYPE },
+{ VENDOR_MICROSOFT_VSA_CHAP2_RESPONSE, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_CHAP2_SUCCESS, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_CHAP2_CPW, RADIUS_BINSTRING },
+{ VENDOR_MICROSOFT_VSA_PRIMARY_DNS_SERVER, RADIUS_IP_ADDRESS },
+{ VENDOR_MICROSOFT_VSA_SECONDARY_DNS_SERVER, RADIUS_IP_ADDRESS },
+{ VENDOR_MICROSOFT_VSA_PRIMARY_NBNS_SERVER, RADIUS_IP_ADDRESS },
+{ VENDOR_MICROSOFT_VSA_SECONDARY_NBNS_SERVER, RADIUS_IP_ADDRESS },
+{0,0},
+};
+
+static value_string radius_vendor_microsoft_types[] = {
+{ VENDOR_MICROSOFT_VSA_CHAP_RESPONSE, "MS CHAP Response" },
+{ VENDOR_MICROSOFT_VSA_CHAP_ERROR, "MS CHAP Error" },
+{ VENDOR_MICROSOFT_VSA_CHAP_CPW_1, "MS CHAP CPW 1" },
+{ VENDOR_MICROSOFT_VSA_CHAP_CPW_2, "MS CHAP CPW 2" },
+{ VENDOR_MICROSOFT_VSA_CHAP_LM_ENC_PW, "MS CHAP LM Enc PW" },
+{ VENDOR_MICROSOFT_VSA_CHAP_NT_ENC_PW, "MS CHAP NT Enc PW" },
+{ VENDOR_MICROSOFT_VSA_MPPE_ENCRYPTION_POLICY, "MS MPPE Encryption Policy" },
+{ VENDOR_MICROSOFT_VSA_MPPE_ENCRYPTION_TYPE, "MS MPPE Encryption Type" },
+{ VENDOR_MICROSOFT_VSA_RAS_VENDOR, "MS RAS Vendor" },
+{ VENDOR_MICROSOFT_VSA_CHAP_DOMAIN, "MS CHAP Domain" },
+{ VENDOR_MICROSOFT_VSA_CHAP_CHALLENGE, "MS CHAP Challenge" },
+{ VENDOR_MICROSOFT_VSA_CHAP_MPPE_KEYS, "MS CHAP MPPE Keys" },
+{ VENDOR_MICROSOFT_VSA_BAP_USAGE, "MS BAP Usage" },
+{ VENDOR_MICROSOFT_VSA_LINK_UTILIZATION_THRESHOLD, "MS Link Utilization Threshold" },
+{ VENDOR_MICROSOFT_VSA_LINK_DROP_TIME_LIMIT, "MS Link Drop Time Limit" },
+{ VENDOR_MICROSOFT_VSA_MPPE_SEND_KEY, "MS MPPE Send Key" },
+{ VENDOR_MICROSOFT_VSA_MPPE_RECV_KEY, "MS MPPE Recv Key" },
+{ VENDOR_MICROSOFT_VSA_RAS_VERSION, "MS RAS Version" },
+{ VENDOR_MICROSOFT_VSA_OLD_ARAP_PASSWORD, "MS Old ARAP Password" },
+{ VENDOR_MICROSOFT_VSA_NEW_ARAP_PASSWORD, "MS New ARAP Password" },
+{ VENDOR_MICROSOFT_VSA_ARAP_PW_CHANGE_REASON, "MS ARAP PW Change Reason" },
+{ VENDOR_MICROSOFT_VSA_FILTER, "MS Filter" },
+{ VENDOR_MICROSOFT_VSA_ACCT_AUTH_TYPE, "MS Acct Auth Type" },
+{ VENDOR_MICROSOFT_VSA_ACCT_EAP_TYPE, "MS Acct EAP Type" },
+{ VENDOR_MICROSOFT_VSA_CHAP2_RESPONSE, "MS CHAP2 Response" },
+{ VENDOR_MICROSOFT_VSA_CHAP2_SUCCESS, "MS CHAP2 Success" },
+{ VENDOR_MICROSOFT_VSA_CHAP2_CPW, "MS CHAP2 CPW" },
+{ VENDOR_MICROSOFT_VSA_PRIMARY_DNS_SERVER, "MS Primary DNS Server" },
+{ VENDOR_MICROSOFT_VSA_SECONDARY_DNS_SERVER, "MS Secondary DNS Server" },
+{ VENDOR_MICROSOFT_VSA_PRIMARY_NBNS_SERVER, "MS Primary NBNS Server" },
+{ VENDOR_MICROSOFT_VSA_SECONDARY_NBNS_SERVER, "MS Secondary NBNS Server" },
+{0,NULL},
+};
+
+static value_string radius_vendor_microsoft_bap_usage_vals[]=
+{{0, "Not-Allowed"},
+{1, "Allowed"},
+{2, "Required"},
+{0,NULL}};
+
+static value_string radius_vendor_microsoft_arap_pw_change_reason_vals[]=
+{{1, "Just-Change-Password"},
+{2, "Expired-Password"},
+{3, "Admin-Required-Password-Change"},
+{4, "Password-Too-Short"},
+{0,NULL}};
+
+static value_string radius_vendor_microsoft_acct_auth_type_vals[]=
+{{1, "PAP"},
+{2, "CHAP"},
+{3, "MS-CHAP-1"},
+{4, "MS-CHAP-2"},
+{5, "EAP"},
+{0,NULL}};
+
+static value_string radius_vendor_microsoft_acct_eap_type_vals[]=
+{{4, "MD5"},
+{5, "OTP"},
+{6, "Generic-Token-Card"},
+{13, "TLS"},
+{0,NULL}};
+
+#define VENDOR_ASCEND_VSA_UU_INFO 7
+#define VENDOR_ASCEND_VSA_CIR_TIMER 9
+#define VENDOR_ASCEND_VSA_FR_08_MODE 10
+#define VENDOR_ASCEND_VSA_DESTINATION_NAS_PORT 11
+#define VENDOR_ASCEND_VSA_FR_SVC_ADDR 12
+#define VENDOR_ASCEND_VSA_NAS_PORT_FORMAT 13
+#define VENDOR_ASCEND_VSA_ATM_FAULT_MANAGEMENT 14
+#define VENDOR_ASCEND_VSA_ATM_LOOPBACK_CELL_LOSS 15
+#define VENDOR_ASCEND_VSA_CKT_TYPE 16
+#define VENDOR_ASCEND_VSA_SVC_ENABLED 17
+#define VENDOR_ASCEND_VSA_SESSION_TYPE 18
+#define VENDOR_ASCEND_VSA_H323_GATEKEEPER 19
+#define VENDOR_ASCEND_VSA_GLOBAL_CALL_ID 20
+#define VENDOR_ASCEND_VSA_H323_CONFERENCE_ID 21
+#define VENDOR_ASCEND_VSA_H323_FEGW_ADDRESS 22
+#define VENDOR_ASCEND_VSA_H323_DIALED_TIME 23
+#define VENDOR_ASCEND_VSA_DIALED_NUMBER 24
+#define VENDOR_ASCEND_VSA_INTER_ARRIVAL_JITTER 25
+#define VENDOR_ASCEND_VSA_DROPPED_OCTETS 26
+#define VENDOR_ASCEND_VSA_DROPPED_PACKETS 27
+#define VENDOR_ASCEND_VSA_X25_PAD_X3_PROFILE 29
+#define VENDOR_ASCEND_VSA_X25_PAD_X3_PARAMETERS 30
+#define VENDOR_ASCEND_VSA_TUNNEL_VROUTER_NAME 31
+#define VENDOR_ASCEND_VSA_X25_REVERSE_CHARGING 32
+#define VENDOR_ASCEND_VSA_X25_NUI_PROMPT 33
+#define VENDOR_ASCEND_VSA_X25_NUI_PASSWORD_PROMPT 34
+#define VENDOR_ASCEND_VSA_X25_CUG 35
+#define VENDOR_ASCEND_VSA_X25_PAD_ALIAS_1 36
+#define VENDOR_ASCEND_VSA_X25_PAD_ALIAS_2 37
+#define VENDOR_ASCEND_VSA_X25_PAD_ALIAS_3 38
+#define VENDOR_ASCEND_VSA_X25_X121_ADDRESS 39
+#define VENDOR_ASCEND_VSA_X25_NUI 40
+#define VENDOR_ASCEND_VSA_X25_RPOA 41
+#define VENDOR_ASCEND_VSA_X25_PAD_PROMPT 42
+#define VENDOR_ASCEND_VSA_X25_PAD_BANNER 43
+#define VENDOR_ASCEND_VSA_X25_PROFILE_NAME 44
+#define VENDOR_ASCEND_VSA_RECV_NAME 45
+#define VENDOR_ASCEND_VSA_BI_DIRECTIONAL_AUTH 46
+#define VENDOR_ASCEND_VSA_MTU 47
+#define VENDOR_ASCEND_VSA_CALL_DIRECTION 48
+#define VENDOR_ASCEND_VSA_SERVICE_TYPE 49
+#define VENDOR_ASCEND_VSA_FILTER_REQUIRED 50
+#define VENDOR_ASCEND_VSA_TRAFFIC_SHAPER 51
+#define VENDOR_ASCEND_VSA_ACCESS_INTERCEPT_LEA 52
+#define VENDOR_ASCEND_VSA_ACCESS_INTERCEPT_LOG 53
+#define VENDOR_ASCEND_VSA_PRIVATE_ROUTE_TABLE_ID 54
+#define VENDOR_ASCEND_VSA_PRIVATE_ROUTE_REQUIRED 55
+#define VENDOR_ASCEND_VSA_CACHE_REFRESH 56
+#define VENDOR_ASCEND_VSA_CACHE_TIME 57
+#define VENDOR_ASCEND_VSA_EGRESS_ENABLED 58
+#define VENDOR_ASCEND_VSA_QOS_UPSTREAM 59
+#define VENDOR_ASCEND_VSA_QOS_DOWNSTREAM 60
+#define VENDOR_ASCEND_VSA_ATM_CONNECT_VPI 61
+#define VENDOR_ASCEND_VSA_ATM_CONNECT_VCI 62
+#define VENDOR_ASCEND_VSA_ATM_CONNECT_GROUP 63
+#define VENDOR_ASCEND_VSA_ATM_GROUP 64
+#define VENDOR_ASCEND_VSA_IPX_HEADER_COMPRESSION 65
+#define VENDOR_ASCEND_VSA_CALLING_ID_TYPE_OF_NUMBER 66
+#define VENDOR_ASCEND_VSA_CALLING_ID_NUMBERING_PLAN 67
+#define VENDOR_ASCEND_VSA_CALLING_ID_PRESENTATION 68
+#define VENDOR_ASCEND_VSA_CALLING_ID_SCREENING 69
+#define VENDOR_ASCEND_VSA_BIR_ENABLE 70
+#define VENDOR_ASCEND_VSA_BIR_PROXY 71
+#define VENDOR_ASCEND_VSA_BIR_BRIDGE_GROUP 72
+#define VENDOR_ASCEND_VSA_IPSEC_PROFILE 73
+#define VENDOR_ASCEND_VSA_PPPOE_ENABLE 74
+#define VENDOR_ASCEND_VSA_BRIDGE_NON_PPPOE 75
+#define VENDOR_ASCEND_VSA_ATM_DIRECT 76
+#define VENDOR_ASCEND_VSA_ATM_DIRECT_PROFILE 77
+#define VENDOR_ASCEND_VSA_CLIENT_PRIMARY_WINS 78
+#define VENDOR_ASCEND_VSA_CLIENT_SECONDARY_WINS 79
+#define VENDOR_ASCEND_VSA_CLIENT_ASSIGN_WINS 80
+#define VENDOR_ASCEND_VSA_AUTH_TYPE 81
+#define VENDOR_ASCEND_VSA_PORT_REDIR_PROTOCOL 82
+#define VENDOR_ASCEND_VSA_PORT_REDIR_PORTNUM 83
+#define VENDOR_ASCEND_VSA_PORT_REDIR_SERVER 84
+#define VENDOR_ASCEND_VSA_IP_POOL_CHAINING 85
+#define VENDOR_ASCEND_VSA_OWNER_IP_ADDR 86
+#define VENDOR_ASCEND_VSA_IP_TOS 87
+#define VENDOR_ASCEND_VSA_IP_TOS_PRECEDENCE 88
+#define VENDOR_ASCEND_VSA_IP_TOS_APPLY_TO 89
+#define VENDOR_ASCEND_VSA_FILTER 90
+#define VENDOR_ASCEND_VSA_TELNET_PROFILE 91
+#define VENDOR_ASCEND_VSA_DSL_RATE_TYPE 92
+#define VENDOR_ASCEND_VSA_REDIRECT_NUMBER 93
+#define VENDOR_ASCEND_VSA_ATM_VPI 94
+#define VENDOR_ASCEND_VSA_ATM_VCI 95
+#define VENDOR_ASCEND_VSA_SOURCE_IP_CHECK 96
+#define VENDOR_ASCEND_VSA_DSL_RATE_MODE 97
+#define VENDOR_ASCEND_VSA_DSL_UPSTREAM_LIMIT 98
+#define VENDOR_ASCEND_VSA_DSL_DOWNSTREAM_LIMIT 99
+#define VENDOR_ASCEND_VSA_DSL_CIR_RECV_LIMIT 100
+#define VENDOR_ASCEND_VSA_DSL_CIR_XMIT_LIMIT 101
+#define VENDOR_ASCEND_VSA_VROUTER_NAME 102
+#define VENDOR_ASCEND_VSA_SOURCE_AUTH 103
+#define VENDOR_ASCEND_VSA_PRIVATE_ROUTE 104
+#define VENDOR_ASCEND_VSA_NUMBERING_PLAN_ID 105
+#define VENDOR_ASCEND_VSA_FR_LINK_STATUS_DLCI 106
+#define VENDOR_ASCEND_VSA_CALLING_SUBADDRESS 107
+#define VENDOR_ASCEND_VSA_CALLBACK_DELAY 108
+#define VENDOR_ASCEND_VSA_ENDPOINT_DISC 109
+#define VENDOR_ASCEND_VSA_REMOTE_FW 110
+#define VENDOR_ASCEND_VSA_MULTICAST_GLEAVE_DELAY 111
+#define VENDOR_ASCEND_VSA_CBCP_ENABLE 112
+#define VENDOR_ASCEND_VSA_CBCP_MODE 113
+#define VENDOR_ASCEND_VSA_CBCP_DELAY 114
+#define VENDOR_ASCEND_VSA_CBCP_TRUNK_GROUP 115
+#define VENDOR_ASCEND_VSA_APPLETALK_ROUTE 116
+#define VENDOR_ASCEND_VSA_APPLETALK_PEER_MODE 117
+#define VENDOR_ASCEND_VSA_ROUTE_APPLETALK 118
+#define VENDOR_ASCEND_VSA_FCP_PARAMETER 119
+#define VENDOR_ASCEND_VSA_MODEM_PORTNO 120
+#define VENDOR_ASCEND_VSA_MODEM_SLOTNO 121
+#define VENDOR_ASCEND_VSA_MODEM_SHELFNO 122
+#define VENDOR_ASCEND_VSA_CALL_ATTEMPT_LIMIT 123
+#define VENDOR_ASCEND_VSA_CALL_BLOCK_DURATION 124
+#define VENDOR_ASCEND_VSA_MAXIMUM_CALL_DURATION 125
+#define VENDOR_ASCEND_VSA_TEMPORARY_RTES 126
+#define VENDOR_ASCEND_VSA_TUNNELING_PROTOCOL 127
+#define VENDOR_ASCEND_VSA_SHARED_PROFILE_ENABLE 128
+#define VENDOR_ASCEND_VSA_PRIMARY_HOME_AGENT 129
+#define VENDOR_ASCEND_VSA_SECONDARY_HOME_AGENT 130
+#define VENDOR_ASCEND_VSA_DIALOUT_ALLOWED 131
+#define VENDOR_ASCEND_VSA_CLIENT_GATEWAY 132
+#define VENDOR_ASCEND_VSA_BACP_ENABLE 133
+#define VENDOR_ASCEND_VSA_DHCP_MAXIMUM_LEASES 134
+#define VENDOR_ASCEND_VSA_CLIENT_PRIMARY_DNS 135
+#define VENDOR_ASCEND_VSA_CLIENT_SECONDARY_DNS 136
+#define VENDOR_ASCEND_VSA_CLIENT_ASSIGN_DNS 137
+#define VENDOR_ASCEND_VSA_USER_ACCT_TYPE 138
+#define VENDOR_ASCEND_VSA_USER_ACCT_HOST 139
+#define VENDOR_ASCEND_VSA_USER_ACCT_PORT 140
+#define VENDOR_ASCEND_VSA_USER_ACCT_KEY 141
+#define VENDOR_ASCEND_VSA_USER_ACCT_BASE 142
+#define VENDOR_ASCEND_VSA_USER_ACCT_TIME 143
+#define VENDOR_ASCEND_VSA_ASSIGN_IP_CLIENT 144
+#define VENDOR_ASCEND_VSA_ASSIGN_IP_SERVER 145
+#define VENDOR_ASCEND_VSA_ASSIGN_IP_GLOBAL_POOL 146
+#define VENDOR_ASCEND_VSA_DHCP_REPLY 147
+#define VENDOR_ASCEND_VSA_DHCP_POOL_NUMBER 148
+#define VENDOR_ASCEND_VSA_EXPECT_CALLBACK 149
+#define VENDOR_ASCEND_VSA_EVENT_TYPE 150
+#define VENDOR_ASCEND_VSA_SESSION_SVR_KEY 151
+#define VENDOR_ASCEND_VSA_MULTICAST_RATE_LIMIT 152
+#define VENDOR_ASCEND_VSA_IF_NETMASK 153
+#define VENDOR_ASCEND_VSA_REMOTE_ADDR 154
+#define VENDOR_ASCEND_VSA_MULTICAST_CLIENT 155
+#define VENDOR_ASCEND_VSA_FR_CIRCUIT_NAME 156
+#define VENDOR_ASCEND_VSA_FR_LINKUP 157
+#define VENDOR_ASCEND_VSA_FR_NAILED_GRP 158
+#define VENDOR_ASCEND_VSA_FR_TYPE 159
+#define VENDOR_ASCEND_VSA_FR_LINK_MGT 160
+#define VENDOR_ASCEND_VSA_FR_N391 161
+#define VENDOR_ASCEND_VSA_FR_DCE_N392 162
+#define VENDOR_ASCEND_VSA_FR_DTE_N392 163
+#define VENDOR_ASCEND_VSA_FR_DCE_N393 164
+#define VENDOR_ASCEND_VSA_FR_DTE_N393 165
+#define VENDOR_ASCEND_VSA_FR_T391 166
+#define VENDOR_ASCEND_VSA_FR_T392 167
+#define VENDOR_ASCEND_VSA_BRIDGE_ADDRESS 168
+#define VENDOR_ASCEND_VSA_TS_IDLE_LIMIT 169
+#define VENDOR_ASCEND_VSA_TS_IDLE_MODE 170
+#define VENDOR_ASCEND_VSA_DBA_MONITOR 171
+#define VENDOR_ASCEND_VSA_BASE_CHANNEL_COUNT 172
+#define VENDOR_ASCEND_VSA_MINIMUM_CHANNELS 173
+#define VENDOR_ASCEND_VSA_IPX_ROUTE 174
+#define VENDOR_ASCEND_VSA_FT1_CALLER 175
+#define VENDOR_ASCEND_VSA_BACKUP 176
+#define VENDOR_ASCEND_VSA_CALL_TYPE 177
+#define VENDOR_ASCEND_VSA_GROUP 178
+#define VENDOR_ASCEND_VSA_FR_DLCI 179
+#define VENDOR_ASCEND_VSA_FR_PROFILE_NAME 180
+#define VENDOR_ASCEND_VSA_ARA_PW 181
+#define VENDOR_ASCEND_VSA_IPX_NODE_ADDR 182
+#define VENDOR_ASCEND_VSA_HOME_AGENT_IP_ADDR 183
+#define VENDOR_ASCEND_VSA_HOME_AGENT_PASSWORD 184
+#define VENDOR_ASCEND_VSA_HOME_NETWORK_NAME 185
+#define VENDOR_ASCEND_VSA_HOME_AGENT_UDP_PORT 186
+#define VENDOR_ASCEND_VSA_MULTILINK_ID 187
+#define VENDOR_ASCEND_VSA_NUM_IN_MULTILINK 188
+#define VENDOR_ASCEND_VSA_FIRST_DEST 189
+#define VENDOR_ASCEND_VSA_PRE_INPUT_OCTETS 190
+#define VENDOR_ASCEND_VSA_PRE_OUTPUT_OCTETS 191
+#define VENDOR_ASCEND_VSA_PRE_INPUT_PACKETS 192
+#define VENDOR_ASCEND_VSA_PRE_OUTPUT_PACKETS 193
+#define VENDOR_ASCEND_VSA_MAXIMUM_TIME 194
+#define VENDOR_ASCEND_VSA_DISCONNECT_CAUSE 195
+#define VENDOR_ASCEND_VSA_CONNECT_PROGRESS 196
+#define VENDOR_ASCEND_VSA_DATA_RATE 197
+#define VENDOR_ASCEND_VSA_PRESESSION_TIME 198
+#define VENDOR_ASCEND_VSA_TOKEN_IDLE 199
+#define VENDOR_ASCEND_VSA_TOKEN_IMMEDIATE 200
+#define VENDOR_ASCEND_VSA_REQUIRE_AUTH 201
+#define VENDOR_ASCEND_VSA_NUMBER_SESSIONS 202
+#define VENDOR_ASCEND_VSA_AUTHEN_ALIAS 203
+#define VENDOR_ASCEND_VSA_TOKEN_EXPIRY 204
+#define VENDOR_ASCEND_VSA_MENU_SELECTOR 205
+#define VENDOR_ASCEND_VSA_MENU_ITEM 206
+#define VENDOR_ASCEND_VSA_PW_WARNTIME 207
+#define VENDOR_ASCEND_VSA_PW_LIFETIME 208
+#define VENDOR_ASCEND_VSA_IP_DIRECT 209
+#define VENDOR_ASCEND_VSA_PPP_VJ_SLOT_COMP 210
+#define VENDOR_ASCEND_VSA_PPP_VJ_1172 211
+#define VENDOR_ASCEND_VSA_PPP_ASYNC_MAP 212
+#define VENDOR_ASCEND_VSA_THIRD_PROMPT 213
+#define VENDOR_ASCEND_VSA_SEND_SECRET 214
+#define VENDOR_ASCEND_VSA_RECEIVE_SECRET 215
+#define VENDOR_ASCEND_VSA_IPX_PEER_MODE 216
+#define VENDOR_ASCEND_VSA_IP_POOL_DEFINITION 217
+#define VENDOR_ASCEND_VSA_ASSIGN_IP_POOL 218
+#define VENDOR_ASCEND_VSA_FR_DIRECT 219
+#define VENDOR_ASCEND_VSA_FR_DIRECT_PROFILE 220
+#define VENDOR_ASCEND_VSA_FR_DIRECT_DLCI 221
+#define VENDOR_ASCEND_VSA_HANDLE_IPX 222
+#define VENDOR_ASCEND_VSA_NETWARE_TIMEOUT 223
+#define VENDOR_ASCEND_VSA_IPX_ALIAS 224
+#define VENDOR_ASCEND_VSA_METRIC 225
+#define VENDOR_ASCEND_VSA_PRI_NUMBER_TYPE 226
+#define VENDOR_ASCEND_VSA_DIAL_NUMBER 227
+#define VENDOR_ASCEND_VSA_ROUTE_IP 228
+#define VENDOR_ASCEND_VSA_ROUTE_IPX 229
+#define VENDOR_ASCEND_VSA_BRIDGE 230
+#define VENDOR_ASCEND_VSA_SEND_AUTH 231
+#define VENDOR_ASCEND_VSA_SEND_PASSWD 232
+#define VENDOR_ASCEND_VSA_LINK_COMPRESSION 233
+#define VENDOR_ASCEND_VSA_TARGET_UTIL 234
+#define VENDOR_ASCEND_VSA_MAXIMUM_CHANNELS 235
+#define VENDOR_ASCEND_VSA_INC_CHANNEL_COUNT 236
+#define VENDOR_ASCEND_VSA_DEC_CHANNEL_COUNT 237
+#define VENDOR_ASCEND_VSA_SECONDS_OF_HISTORY 238
+#define VENDOR_ASCEND_VSA_HISTORY_WEIGH_TYPE 239
+#define VENDOR_ASCEND_VSA_ADD_SECONDS 240
+#define VENDOR_ASCEND_VSA_REMOVE_SECONDS 241
+#define VENDOR_ASCEND_VSA_DATA_FILTER 242
+#define VENDOR_ASCEND_VSA_CALL_FILTER 243
+#define VENDOR_ASCEND_VSA_IDLE_LIMIT 244
+#define VENDOR_ASCEND_VSA_PREEMPT_LIMIT 245
+#define VENDOR_ASCEND_VSA_CALLBACK 246
+#define VENDOR_ASCEND_VSA_DATA_SVC 247
+#define VENDOR_ASCEND_VSA_FORCE_56 248
+#define VENDOR_ASCEND_VSA_BILLING_NUMBER 249
+#define VENDOR_ASCEND_VSA_CALL_BY_CALL 250
+#define VENDOR_ASCEND_VSA_TRANSIT_NUMBER 251
+#define VENDOR_ASCEND_VSA_HOST_INFO 252
+#define VENDOR_ASCEND_VSA_PPP_ADDRESS 253
+#define VENDOR_ASCEND_VSA_MPP_IDLE_PERCENT 254
+#define VENDOR_ASCEND_VSA_XMIT_RATE 255
+
+static value_value_pair radius_vendor_ascend_printinfo[] = {
+{ VENDOR_ASCEND_VSA_UU_INFO, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_CIR_TIMER, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_08_MODE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DESTINATION_NAS_PORT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_SVC_ADDR, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_NAS_PORT_FORMAT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_ATM_FAULT_MANAGEMENT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_ATM_LOOPBACK_CELL_LOSS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CKT_TYPE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_SVC_ENABLED, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_SESSION_TYPE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_H323_GATEKEEPER, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_GLOBAL_CALL_ID, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_H323_CONFERENCE_ID, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_H323_FEGW_ADDRESS, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_H323_DIALED_TIME, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DIALED_NUMBER, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_INTER_ARRIVAL_JITTER, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DROPPED_OCTETS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DROPPED_PACKETS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_X25_PAD_X3_PROFILE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_X25_PAD_X3_PARAMETERS, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_TUNNEL_VROUTER_NAME, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_X25_REVERSE_CHARGING, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_X25_NUI_PROMPT, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_X25_NUI_PASSWORD_PROMPT, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_X25_CUG, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_X25_PAD_ALIAS_1, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_X25_PAD_ALIAS_2, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_X25_PAD_ALIAS_3, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_X25_X121_ADDRESS, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_X25_NUI, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_X25_RPOA, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_X25_PAD_PROMPT, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_X25_PAD_BANNER, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_X25_PROFILE_NAME, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_RECV_NAME, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_BI_DIRECTIONAL_AUTH, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_MTU, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CALL_DIRECTION, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_SERVICE_TYPE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FILTER_REQUIRED, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_TRAFFIC_SHAPER, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_ACCESS_INTERCEPT_LEA, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_ACCESS_INTERCEPT_LOG, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_PRIVATE_ROUTE_TABLE_ID, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_PRIVATE_ROUTE_REQUIRED, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CACHE_REFRESH, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CACHE_TIME, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_EGRESS_ENABLED, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_QOS_UPSTREAM, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_QOS_DOWNSTREAM, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_ATM_CONNECT_VPI, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_ATM_CONNECT_VCI, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_ATM_CONNECT_GROUP, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_ATM_GROUP, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_IPX_HEADER_COMPRESSION, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CALLING_ID_TYPE_OF_NUMBER, ASCEND_VSA_CALLING_ID_TYPE_OF_NUMBER },
+{ VENDOR_ASCEND_VSA_CALLING_ID_NUMBERING_PLAN, ASCEND_VSA_CALLING_ID_NUMBERING_PLAN },
+{ VENDOR_ASCEND_VSA_CALLING_ID_PRESENTATION, ASCEND_VSA_CALLING_ID_PRESENTATION },
+{ VENDOR_ASCEND_VSA_CALLING_ID_SCREENING, ASCEND_VSA_CALLING_ID_SCREENING },
+{ VENDOR_ASCEND_VSA_BIR_ENABLE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_BIR_PROXY, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_BIR_BRIDGE_GROUP, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_IPSEC_PROFILE, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_PPPOE_ENABLE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_BRIDGE_NON_PPPOE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_ATM_DIRECT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_ATM_DIRECT_PROFILE, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_CLIENT_PRIMARY_WINS, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_CLIENT_SECONDARY_WINS, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_CLIENT_ASSIGN_WINS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_AUTH_TYPE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_PORT_REDIR_PROTOCOL, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_PORT_REDIR_PORTNUM, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_PORT_REDIR_SERVER, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_IP_POOL_CHAINING, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_OWNER_IP_ADDR, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_IP_TOS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_IP_TOS_PRECEDENCE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_IP_TOS_APPLY_TO, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FILTER, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_TELNET_PROFILE, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_DSL_RATE_TYPE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_REDIRECT_NUMBER, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_ATM_VPI, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_ATM_VCI, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_SOURCE_IP_CHECK, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DSL_RATE_MODE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DSL_UPSTREAM_LIMIT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DSL_DOWNSTREAM_LIMIT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DSL_CIR_RECV_LIMIT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DSL_CIR_XMIT_LIMIT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_VROUTER_NAME, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_SOURCE_AUTH, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_PRIVATE_ROUTE, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_NUMBERING_PLAN_ID, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_LINK_STATUS_DLCI, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CALLING_SUBADDRESS, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_CALLBACK_DELAY, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_ENDPOINT_DISC, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_REMOTE_FW, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_MULTICAST_GLEAVE_DELAY, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CBCP_ENABLE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CBCP_MODE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CBCP_DELAY, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CBCP_TRUNK_GROUP, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_APPLETALK_ROUTE, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_APPLETALK_PEER_MODE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_ROUTE_APPLETALK, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FCP_PARAMETER, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_MODEM_PORTNO, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_MODEM_SLOTNO, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_MODEM_SHELFNO, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CALL_ATTEMPT_LIMIT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CALL_BLOCK_DURATION, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_MAXIMUM_CALL_DURATION, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_TEMPORARY_RTES, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_TUNNELING_PROTOCOL, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_SHARED_PROFILE_ENABLE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_PRIMARY_HOME_AGENT, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_SECONDARY_HOME_AGENT, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_DIALOUT_ALLOWED, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CLIENT_GATEWAY, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_BACP_ENABLE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DHCP_MAXIMUM_LEASES, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CLIENT_PRIMARY_DNS, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_CLIENT_SECONDARY_DNS, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_CLIENT_ASSIGN_DNS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_USER_ACCT_TYPE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_USER_ACCT_HOST, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_USER_ACCT_PORT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_USER_ACCT_KEY, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_USER_ACCT_BASE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_USER_ACCT_TIME, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_ASSIGN_IP_CLIENT, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_ASSIGN_IP_SERVER, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_ASSIGN_IP_GLOBAL_POOL, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_DHCP_REPLY, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DHCP_POOL_NUMBER, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_EXPECT_CALLBACK, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_EVENT_TYPE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_SESSION_SVR_KEY, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_MULTICAST_RATE_LIMIT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_IF_NETMASK, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_REMOTE_ADDR, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_MULTICAST_CLIENT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_CIRCUIT_NAME, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_FR_LINKUP, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_NAILED_GRP, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_TYPE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_LINK_MGT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_N391, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_DCE_N392, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_DTE_N392, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_DCE_N393, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_DTE_N393, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_T391, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_T392, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_BRIDGE_ADDRESS, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_TS_IDLE_LIMIT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_TS_IDLE_MODE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DBA_MONITOR, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_BASE_CHANNEL_COUNT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_MINIMUM_CHANNELS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_IPX_ROUTE, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_FT1_CALLER, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_BACKUP, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_CALL_TYPE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_GROUP, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_FR_DLCI, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_PROFILE_NAME, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_ARA_PW, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_IPX_NODE_ADDR, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_HOME_AGENT_IP_ADDR, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_HOME_AGENT_PASSWORD, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_HOME_NETWORK_NAME, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_HOME_AGENT_UDP_PORT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_MULTILINK_ID, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_NUM_IN_MULTILINK, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FIRST_DEST, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_PRE_INPUT_OCTETS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_PRE_OUTPUT_OCTETS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_PRE_INPUT_PACKETS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_PRE_OUTPUT_PACKETS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_MAXIMUM_TIME, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DISCONNECT_CAUSE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CONNECT_PROGRESS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DATA_RATE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_PRESESSION_TIME, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_TOKEN_IDLE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_TOKEN_IMMEDIATE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_REQUIRE_AUTH, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_NUMBER_SESSIONS, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_AUTHEN_ALIAS, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_TOKEN_EXPIRY, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_MENU_SELECTOR, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_MENU_ITEM, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_PW_WARNTIME, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_PW_LIFETIME, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_IP_DIRECT, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_PPP_VJ_SLOT_COMP, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_PPP_VJ_1172, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_PPP_ASYNC_MAP, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_THIRD_PROMPT, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_SEND_SECRET, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_RECEIVE_SECRET, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_IPX_PEER_MODE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_IP_POOL_DEFINITION, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_ASSIGN_IP_POOL, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_DIRECT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FR_DIRECT_PROFILE, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_FR_DIRECT_DLCI, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_HANDLE_IPX, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_NETWARE_TIMEOUT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_IPX_ALIAS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_METRIC, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_PRI_NUMBER_TYPE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DIAL_NUMBER, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_ROUTE_IP, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_ROUTE_IPX, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_BRIDGE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_SEND_AUTH, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_SEND_PASSWD, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_LINK_COMPRESSION, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_TARGET_UTIL, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_MAXIMUM_CHANNELS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_INC_CHANNEL_COUNT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DEC_CHANNEL_COUNT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_SECONDS_OF_HISTORY, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_HISTORY_WEIGH_TYPE, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_ADD_SECONDS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_REMOVE_SECONDS, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DATA_FILTER, RADIUS_BINSTRING },
+{ VENDOR_ASCEND_VSA_CALL_FILTER, RADIUS_BINSTRING },
+{ VENDOR_ASCEND_VSA_IDLE_LIMIT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_PREEMPT_LIMIT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_CALLBACK, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_DATA_SVC, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_FORCE_56, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_BILLING_NUMBER, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_CALL_BY_CALL, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_TRANSIT_NUMBER, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_HOST_INFO, RADIUS_STRING },
+{ VENDOR_ASCEND_VSA_PPP_ADDRESS, RADIUS_IP_ADDRESS },
+{ VENDOR_ASCEND_VSA_MPP_IDLE_PERCENT, RADIUS_INTEGER4 },
+{ VENDOR_ASCEND_VSA_XMIT_RATE, RADIUS_INTEGER4 },
+{0,0},
+};
+
+static value_string radius_vendor_ascend_types[] = {
+{ VENDOR_ASCEND_VSA_UU_INFO, "Ascend UU Info" },
+{ VENDOR_ASCEND_VSA_CIR_TIMER, "Ascend CIR Timer" },
+{ VENDOR_ASCEND_VSA_FR_08_MODE, "Ascend FR 08 Mode" },
+{ VENDOR_ASCEND_VSA_DESTINATION_NAS_PORT, "Ascend Destination Nas Port" },
+{ VENDOR_ASCEND_VSA_FR_SVC_ADDR, "Ascend FR SVC Addr" },
+{ VENDOR_ASCEND_VSA_NAS_PORT_FORMAT, "Ascend NAS Port Format" },
+{ VENDOR_ASCEND_VSA_ATM_FAULT_MANAGEMENT, "Ascend ATM Fault Management" },
+{ VENDOR_ASCEND_VSA_ATM_LOOPBACK_CELL_LOSS, "Ascend ATM Loopback Cell Loss" },
+{ VENDOR_ASCEND_VSA_CKT_TYPE, "Ascend Ckt Type" },
+{ VENDOR_ASCEND_VSA_SVC_ENABLED, "Ascend SVC Enabled" },
+{ VENDOR_ASCEND_VSA_SESSION_TYPE, "Ascend Session Type" },
+{ VENDOR_ASCEND_VSA_H323_GATEKEEPER, "Ascend H323 Gatekeeper" },
+{ VENDOR_ASCEND_VSA_GLOBAL_CALL_ID, "Ascend Global Call Id" },
+{ VENDOR_ASCEND_VSA_H323_CONFERENCE_ID, "Ascend H323 Conference Id" },
+{ VENDOR_ASCEND_VSA_H323_FEGW_ADDRESS, "Ascend H323 Fegw Address" },
+{ VENDOR_ASCEND_VSA_H323_DIALED_TIME, "Ascend H323 Dialed Time" },
+{ VENDOR_ASCEND_VSA_DIALED_NUMBER, "Ascend Dialed Number" },
+{ VENDOR_ASCEND_VSA_INTER_ARRIVAL_JITTER, "Ascend Inter Arrival Jitter" },
+{ VENDOR_ASCEND_VSA_DROPPED_OCTETS, "Ascend Dropped Octets" },
+{ VENDOR_ASCEND_VSA_DROPPED_PACKETS, "Ascend Dropped Packets" },
+{ VENDOR_ASCEND_VSA_X25_PAD_X3_PROFILE, "Ascend X25 Pad X3 Profile" },
+{ VENDOR_ASCEND_VSA_X25_PAD_X3_PARAMETERS, "Ascend X25 Pad X3 Parameters" },
+{ VENDOR_ASCEND_VSA_TUNNEL_VROUTER_NAME, "Ascend Tunnel VRouter Name" },
+{ VENDOR_ASCEND_VSA_X25_REVERSE_CHARGING, "Ascend X25 Reverse Charging" },
+{ VENDOR_ASCEND_VSA_X25_NUI_PROMPT, "Ascend X25 Nui Prompt" },
+{ VENDOR_ASCEND_VSA_X25_NUI_PASSWORD_PROMPT, "Ascend X25 Nui Password Prompt" },
+{ VENDOR_ASCEND_VSA_X25_CUG, "Ascend X25 Cug" },
+{ VENDOR_ASCEND_VSA_X25_PAD_ALIAS_1, "Ascend X25 Pad Alias 1" },
+{ VENDOR_ASCEND_VSA_X25_PAD_ALIAS_2, "Ascend X25 Pad Alias 2" },
+{ VENDOR_ASCEND_VSA_X25_PAD_ALIAS_3, "Ascend X25 Pad Alias 3" },
+{ VENDOR_ASCEND_VSA_X25_X121_ADDRESS, "Ascend X25 X121 Address" },
+{ VENDOR_ASCEND_VSA_X25_NUI, "Ascend X25 Nui" },
+{ VENDOR_ASCEND_VSA_X25_RPOA, "Ascend X25 Rpoa" },
+{ VENDOR_ASCEND_VSA_X25_PAD_PROMPT, "Ascend X25 Pad Prompt" },
+{ VENDOR_ASCEND_VSA_X25_PAD_BANNER, "Ascend X25 Pad Banner" },
+{ VENDOR_ASCEND_VSA_X25_PROFILE_NAME, "Ascend X25 Profile Name" },
+{ VENDOR_ASCEND_VSA_RECV_NAME, "Ascend Recv Name" },
+{ VENDOR_ASCEND_VSA_BI_DIRECTIONAL_AUTH, "Ascend Bi Directional Auth" },
+{ VENDOR_ASCEND_VSA_MTU, "Ascend MTU" },
+{ VENDOR_ASCEND_VSA_CALL_DIRECTION, "Ascend Call Direction" },
+{ VENDOR_ASCEND_VSA_SERVICE_TYPE, "Ascend Service Type" },
+{ VENDOR_ASCEND_VSA_FILTER_REQUIRED, "Ascend Filter Required" },
+{ VENDOR_ASCEND_VSA_TRAFFIC_SHAPER, "Ascend Traffic Shaper" },
+{ VENDOR_ASCEND_VSA_ACCESS_INTERCEPT_LEA, "Ascend Access Intercept LEA" },
+{ VENDOR_ASCEND_VSA_ACCESS_INTERCEPT_LOG, "Ascend Access Intercept Log" },
+{ VENDOR_ASCEND_VSA_PRIVATE_ROUTE_TABLE_ID, "Ascend Private Route Table ID" },
+{ VENDOR_ASCEND_VSA_PRIVATE_ROUTE_REQUIRED, "Ascend Private Route Required" },
+{ VENDOR_ASCEND_VSA_CACHE_REFRESH, "Ascend Cache Refresh" },
+{ VENDOR_ASCEND_VSA_CACHE_TIME, "Ascend Cache Time" },
+{ VENDOR_ASCEND_VSA_EGRESS_ENABLED, "Ascend Egress Enabled" },
+{ VENDOR_ASCEND_VSA_QOS_UPSTREAM, "Ascend QOS Upstream" },
+{ VENDOR_ASCEND_VSA_QOS_DOWNSTREAM, "Ascend QOS Downstream" },
+{ VENDOR_ASCEND_VSA_ATM_CONNECT_VPI, "Ascend ATM Connect Vpi" },
+{ VENDOR_ASCEND_VSA_ATM_CONNECT_VCI, "Ascend ATM Connect Vci" },
+{ VENDOR_ASCEND_VSA_ATM_CONNECT_GROUP, "Ascend ATM Connect Group" },
+{ VENDOR_ASCEND_VSA_ATM_GROUP, "Ascend ATM Group" },
+{ VENDOR_ASCEND_VSA_IPX_HEADER_COMPRESSION, "Ascend IPX Header Compression" },
+{ VENDOR_ASCEND_VSA_CALLING_ID_TYPE_OF_NUMBER, "Ascend Calling Id Type Of Number" },
+{ VENDOR_ASCEND_VSA_CALLING_ID_NUMBERING_PLAN, "Ascend Calling Id Numbering Plan" },
+{ VENDOR_ASCEND_VSA_CALLING_ID_PRESENTATION, "Ascend Calling Id Presentation" },
+{ VENDOR_ASCEND_VSA_CALLING_ID_SCREENING, "Ascend Calling Id Screening" },
+{ VENDOR_ASCEND_VSA_BIR_ENABLE, "Ascend BIR Enable" },
+{ VENDOR_ASCEND_VSA_BIR_PROXY, "Ascend BIR Proxy" },
+{ VENDOR_ASCEND_VSA_BIR_BRIDGE_GROUP, "Ascend BIR Bridge Group" },
+{ VENDOR_ASCEND_VSA_IPSEC_PROFILE, "Ascend IPSEC Profile" },
+{ VENDOR_ASCEND_VSA_PPPOE_ENABLE, "Ascend PPPoE Enable" },
+{ VENDOR_ASCEND_VSA_BRIDGE_NON_PPPOE, "Ascend Bridge Non PPPoE" },
+{ VENDOR_ASCEND_VSA_ATM_DIRECT, "Ascend ATM Direct" },
+{ VENDOR_ASCEND_VSA_ATM_DIRECT_PROFILE, "Ascend ATM Direct Profile" },
+{ VENDOR_ASCEND_VSA_CLIENT_PRIMARY_WINS, "Ascend Client Primary WINS" },
+{ VENDOR_ASCEND_VSA_CLIENT_SECONDARY_WINS, "Ascend Client Secondary WINS" },
+{ VENDOR_ASCEND_VSA_CLIENT_ASSIGN_WINS, "Ascend Client Assign WINS" },
+{ VENDOR_ASCEND_VSA_AUTH_TYPE, "Ascend Auth Type" },
+{ VENDOR_ASCEND_VSA_PORT_REDIR_PROTOCOL, "Ascend Port Redir Protocol" },
+{ VENDOR_ASCEND_VSA_PORT_REDIR_PORTNUM, "Ascend Port Redir Portnum" },
+{ VENDOR_ASCEND_VSA_PORT_REDIR_SERVER, "Ascend Port Redir Server" },
+{ VENDOR_ASCEND_VSA_IP_POOL_CHAINING, "Ascend IP Pool Chaining" },
+{ VENDOR_ASCEND_VSA_OWNER_IP_ADDR, "Ascend Owner IP Addr" },
+{ VENDOR_ASCEND_VSA_IP_TOS, "Ascend IP TOS" },
+{ VENDOR_ASCEND_VSA_IP_TOS_PRECEDENCE, "Ascend IP TOS Precedence" },
+{ VENDOR_ASCEND_VSA_IP_TOS_APPLY_TO, "Ascend IP TOS Apply To" },
+{ VENDOR_ASCEND_VSA_FILTER, "Ascend Filter" },
+{ VENDOR_ASCEND_VSA_TELNET_PROFILE, "Ascend Telnet Profile" },
+{ VENDOR_ASCEND_VSA_DSL_RATE_TYPE, "Ascend Dsl Rate Type" },
+{ VENDOR_ASCEND_VSA_REDIRECT_NUMBER, "Ascend Redirect Number" },
+{ VENDOR_ASCEND_VSA_ATM_VPI, "Ascend ATM Vpi" },
+{ VENDOR_ASCEND_VSA_ATM_VCI, "Ascend ATM Vci" },
+{ VENDOR_ASCEND_VSA_SOURCE_IP_CHECK, "Ascend Source IP Check" },
+{ VENDOR_ASCEND_VSA_DSL_RATE_MODE, "Ascend Dsl Rate Mode" },
+{ VENDOR_ASCEND_VSA_DSL_UPSTREAM_LIMIT, "Ascend Dsl Upstream Limit" },
+{ VENDOR_ASCEND_VSA_DSL_DOWNSTREAM_LIMIT, "Ascend Dsl Downstream Limit" },
+{ VENDOR_ASCEND_VSA_DSL_CIR_RECV_LIMIT, "Ascend Dsl CIR Recv Limit" },
+{ VENDOR_ASCEND_VSA_DSL_CIR_XMIT_LIMIT, "Ascend Dsl CIR Xmit Limit" },
+{ VENDOR_ASCEND_VSA_VROUTER_NAME, "Ascend VRouter Name" },
+{ VENDOR_ASCEND_VSA_SOURCE_AUTH, "Ascend Source Auth" },
+{ VENDOR_ASCEND_VSA_PRIVATE_ROUTE, "Ascend Private Route" },
+{ VENDOR_ASCEND_VSA_NUMBERING_PLAN_ID, "Ascend Numbering Plan ID" },
+{ VENDOR_ASCEND_VSA_FR_LINK_STATUS_DLCI, "Ascend FR Link Status DLCI" },
+{ VENDOR_ASCEND_VSA_CALLING_SUBADDRESS, "Ascend Calling Subaddress" },
+{ VENDOR_ASCEND_VSA_CALLBACK_DELAY, "Ascend Callback Delay" },
+{ VENDOR_ASCEND_VSA_ENDPOINT_DISC, "Ascend Endpoint Disc" },
+{ VENDOR_ASCEND_VSA_REMOTE_FW, "Ascend Remote FW" },
+{ VENDOR_ASCEND_VSA_MULTICAST_GLEAVE_DELAY, "Ascend Multicast GLeave Delay" },
+{ VENDOR_ASCEND_VSA_CBCP_ENABLE, "Ascend CBCP Enable" },
+{ VENDOR_ASCEND_VSA_CBCP_MODE, "Ascend CBCP Mode" },
+{ VENDOR_ASCEND_VSA_CBCP_DELAY, "Ascend CBCP Delay" },
+{ VENDOR_ASCEND_VSA_CBCP_TRUNK_GROUP, "Ascend CBCP Trunk Group" },
+{ VENDOR_ASCEND_VSA_APPLETALK_ROUTE, "Ascend Appletalk Route" },
+{ VENDOR_ASCEND_VSA_APPLETALK_PEER_MODE, "Ascend Appletalk Peer Mode" },
+{ VENDOR_ASCEND_VSA_ROUTE_APPLETALK, "Ascend Route Appletalk" },
+{ VENDOR_ASCEND_VSA_FCP_PARAMETER, "Ascend FCP Parameter" },
+{ VENDOR_ASCEND_VSA_MODEM_PORTNO, "Ascend Modem Port No" },
+{ VENDOR_ASCEND_VSA_MODEM_SLOTNO, "Ascend Modem Slot No" },
+{ VENDOR_ASCEND_VSA_MODEM_SHELFNO, "Ascend Modem Shelf No" },
+{ VENDOR_ASCEND_VSA_CALL_ATTEMPT_LIMIT, "Ascend Call Attempt Limit" },
+{ VENDOR_ASCEND_VSA_CALL_BLOCK_DURATION, "Ascend Call Block Duration" },
+{ VENDOR_ASCEND_VSA_MAXIMUM_CALL_DURATION, "Ascend Maximum Call Duration" },
+{ VENDOR_ASCEND_VSA_TEMPORARY_RTES, "Ascend Temporary Rtes" },
+{ VENDOR_ASCEND_VSA_TUNNELING_PROTOCOL, "Ascend Tunneling Protocol" },
+{ VENDOR_ASCEND_VSA_SHARED_PROFILE_ENABLE, "Ascend Shared Profile Enable" },
+{ VENDOR_ASCEND_VSA_PRIMARY_HOME_AGENT, "Ascend Primary Home Agent" },
+{ VENDOR_ASCEND_VSA_SECONDARY_HOME_AGENT, "Ascend Secondary Home Agent" },
+{ VENDOR_ASCEND_VSA_DIALOUT_ALLOWED, "Ascend Dialout Allowed" },
+{ VENDOR_ASCEND_VSA_CLIENT_GATEWAY, "Ascend Client Gateway" },
+{ VENDOR_ASCEND_VSA_BACP_ENABLE, "Ascend BACP Enable" },
+{ VENDOR_ASCEND_VSA_DHCP_MAXIMUM_LEASES, "Ascend DHCP Maximum Leases" },
+{ VENDOR_ASCEND_VSA_CLIENT_PRIMARY_DNS, "Ascend Client Primary DNS" },
+{ VENDOR_ASCEND_VSA_CLIENT_SECONDARY_DNS, "Ascend Client Secondary DNS" },
+{ VENDOR_ASCEND_VSA_CLIENT_ASSIGN_DNS, "Ascend Client Assign DNS" },
+{ VENDOR_ASCEND_VSA_USER_ACCT_TYPE, "Ascend User Acct Type" },
+{ VENDOR_ASCEND_VSA_USER_ACCT_HOST, "Ascend User Acct Host" },
+{ VENDOR_ASCEND_VSA_USER_ACCT_PORT, "Ascend User Acct Port" },
+{ VENDOR_ASCEND_VSA_USER_ACCT_KEY, "Ascend User Acct Key" },
+{ VENDOR_ASCEND_VSA_USER_ACCT_BASE, "Ascend User Acct Base" },
+{ VENDOR_ASCEND_VSA_USER_ACCT_TIME, "Ascend User Acct Time" },
+{ VENDOR_ASCEND_VSA_ASSIGN_IP_CLIENT, "Ascend Assign IP Client" },
+{ VENDOR_ASCEND_VSA_ASSIGN_IP_SERVER, "Ascend Assign IP Server" },
+{ VENDOR_ASCEND_VSA_ASSIGN_IP_GLOBAL_POOL, "Ascend Assign IP Global Pool" },
+{ VENDOR_ASCEND_VSA_DHCP_REPLY, "Ascend DHCP Reply" },
+{ VENDOR_ASCEND_VSA_DHCP_POOL_NUMBER, "Ascend DHCP Pool Number" },
+{ VENDOR_ASCEND_VSA_EXPECT_CALLBACK, "Ascend Expect Callback" },
+{ VENDOR_ASCEND_VSA_EVENT_TYPE, "Ascend Event Type" },
+{ VENDOR_ASCEND_VSA_SESSION_SVR_KEY, "Ascend Session Svr Key" },
+{ VENDOR_ASCEND_VSA_MULTICAST_RATE_LIMIT, "Ascend Multicast Rate Limit" },
+{ VENDOR_ASCEND_VSA_IF_NETMASK, "Ascend IF Netmask" },
+{ VENDOR_ASCEND_VSA_REMOTE_ADDR, "Ascend Remote Addr" },
+{ VENDOR_ASCEND_VSA_MULTICAST_CLIENT, "Ascend Multicast Client" },
+{ VENDOR_ASCEND_VSA_FR_CIRCUIT_NAME, "Ascend FR Circuit Name" },
+{ VENDOR_ASCEND_VSA_FR_LINKUP, "Ascend FR LinkUp" },
+{ VENDOR_ASCEND_VSA_FR_NAILED_GRP, "Ascend FR Nailed Grp" },
+{ VENDOR_ASCEND_VSA_FR_TYPE, "Ascend FR Type" },
+{ VENDOR_ASCEND_VSA_FR_LINK_MGT, "Ascend FR Link Mgt" },
+{ VENDOR_ASCEND_VSA_FR_N391, "Ascend FR N391" },
+{ VENDOR_ASCEND_VSA_FR_DCE_N392, "Ascend FR DCE N392" },
+{ VENDOR_ASCEND_VSA_FR_DTE_N392, "Ascend FR DTE N392" },
+{ VENDOR_ASCEND_VSA_FR_DCE_N393, "Ascend FR DCE N393" },
+{ VENDOR_ASCEND_VSA_FR_DTE_N393, "Ascend FR DTE N393" },
+{ VENDOR_ASCEND_VSA_FR_T391, "Ascend FR T391" },
+{ VENDOR_ASCEND_VSA_FR_T392, "Ascend FR T392" },
+{ VENDOR_ASCEND_VSA_BRIDGE_ADDRESS, "Ascend Bridge Address" },
+{ VENDOR_ASCEND_VSA_TS_IDLE_LIMIT, "Ascend TS Idle Limit" },
+{ VENDOR_ASCEND_VSA_TS_IDLE_MODE, "Ascend TS Idle Mode" },
+{ VENDOR_ASCEND_VSA_DBA_MONITOR, "Ascend DBA Monitor" },
+{ VENDOR_ASCEND_VSA_BASE_CHANNEL_COUNT, "Ascend Base Channel Count" },
+{ VENDOR_ASCEND_VSA_MINIMUM_CHANNELS, "Ascend Minimum Channels" },
+{ VENDOR_ASCEND_VSA_IPX_ROUTE, "Ascend IPX Route" },
+{ VENDOR_ASCEND_VSA_FT1_CALLER, "Ascend FT1 Caller" },
+{ VENDOR_ASCEND_VSA_BACKUP, "Ascend Backup" },
+{ VENDOR_ASCEND_VSA_CALL_TYPE, "Ascend Call Type" },
+{ VENDOR_ASCEND_VSA_GROUP, "Ascend Group" },
+{ VENDOR_ASCEND_VSA_FR_DLCI, "Ascend FR DLCI" },
+{ VENDOR_ASCEND_VSA_FR_PROFILE_NAME, "Ascend FR Profile Name" },
+{ VENDOR_ASCEND_VSA_ARA_PW, "Ascend Ara PW" },
+{ VENDOR_ASCEND_VSA_IPX_NODE_ADDR, "Ascend IPX Node Addr" },
+{ VENDOR_ASCEND_VSA_HOME_AGENT_IP_ADDR, "Ascend Home Agent IP Addr" },
+{ VENDOR_ASCEND_VSA_HOME_AGENT_PASSWORD, "Ascend Home Agent Password" },
+{ VENDOR_ASCEND_VSA_HOME_NETWORK_NAME, "Ascend Home Network Name" },
+{ VENDOR_ASCEND_VSA_HOME_AGENT_UDP_PORT, "Ascend Home Agent UDP Port" },
+{ VENDOR_ASCEND_VSA_MULTILINK_ID, "Ascend Multilink ID" },
+{ VENDOR_ASCEND_VSA_NUM_IN_MULTILINK, "Ascend Num In Multilink" },
+{ VENDOR_ASCEND_VSA_FIRST_DEST, "Ascend First Dest" },
+{ VENDOR_ASCEND_VSA_PRE_INPUT_OCTETS, "Ascend Pre Input Octets" },
+{ VENDOR_ASCEND_VSA_PRE_OUTPUT_OCTETS, "Ascend Pre Output Octets" },
+{ VENDOR_ASCEND_VSA_PRE_INPUT_PACKETS, "Ascend Pre Input Packets" },
+{ VENDOR_ASCEND_VSA_PRE_OUTPUT_PACKETS, "Ascend Pre Output Packets" },
+{ VENDOR_ASCEND_VSA_MAXIMUM_TIME, "Ascend Maximum Time" },
+{ VENDOR_ASCEND_VSA_DISCONNECT_CAUSE, "Ascend Disconnect Cause" },
+{ VENDOR_ASCEND_VSA_CONNECT_PROGRESS, "Ascend Connect Progress" },
+{ VENDOR_ASCEND_VSA_DATA_RATE, "Ascend Data Rate" },
+{ VENDOR_ASCEND_VSA_PRESESSION_TIME, "Ascend PreSession Time" },
+{ VENDOR_ASCEND_VSA_TOKEN_IDLE, "Ascend Token Idle" },
+{ VENDOR_ASCEND_VSA_TOKEN_IMMEDIATE, "Ascend Token Immediate" },
+{ VENDOR_ASCEND_VSA_REQUIRE_AUTH, "Ascend Require Auth" },
+{ VENDOR_ASCEND_VSA_NUMBER_SESSIONS, "Ascend Number Sessions" },
+{ VENDOR_ASCEND_VSA_AUTHEN_ALIAS, "Ascend Authen Alias" },
+{ VENDOR_ASCEND_VSA_TOKEN_EXPIRY, "Ascend Token Expiry" },
+{ VENDOR_ASCEND_VSA_MENU_SELECTOR, "Ascend Menu Selector" },
+{ VENDOR_ASCEND_VSA_MENU_ITEM, "Ascend Menu Item" },
+{ VENDOR_ASCEND_VSA_PW_WARNTIME, "Ascend PW Warntime" },
+{ VENDOR_ASCEND_VSA_PW_LIFETIME, "Ascend PW Lifetime" },
+{ VENDOR_ASCEND_VSA_IP_DIRECT, "Ascend IP Direct" },
+{ VENDOR_ASCEND_VSA_PPP_VJ_SLOT_COMP, "Ascend PPP VJ Slot Comp" },
+{ VENDOR_ASCEND_VSA_PPP_VJ_1172, "Ascend PPP VJ 1172" },
+{ VENDOR_ASCEND_VSA_PPP_ASYNC_MAP, "Ascend PPP Async Map" },
+{ VENDOR_ASCEND_VSA_THIRD_PROMPT, "Ascend Third Prompt" },
+{ VENDOR_ASCEND_VSA_SEND_SECRET, "Ascend Send Secret" },
+{ VENDOR_ASCEND_VSA_RECEIVE_SECRET, "Ascend Receive Secret" },
+{ VENDOR_ASCEND_VSA_IPX_PEER_MODE, "Ascend IPX Peer Mode" },
+{ VENDOR_ASCEND_VSA_IP_POOL_DEFINITION, "Ascend IP Pool Definition" },
+{ VENDOR_ASCEND_VSA_ASSIGN_IP_POOL, "Ascend Assign IP Pool" },
+{ VENDOR_ASCEND_VSA_FR_DIRECT, "Ascend FR Direct" },
+{ VENDOR_ASCEND_VSA_FR_DIRECT_PROFILE, "Ascend FR Direct Profile" },
+{ VENDOR_ASCEND_VSA_FR_DIRECT_DLCI, "Ascend FR Direct DLCI" },
+{ VENDOR_ASCEND_VSA_HANDLE_IPX, "Ascend Handle IPX" },
+{ VENDOR_ASCEND_VSA_NETWARE_TIMEOUT, "Ascend Netware timeout" },
+{ VENDOR_ASCEND_VSA_IPX_ALIAS, "Ascend IPX Alias" },
+{ VENDOR_ASCEND_VSA_METRIC, "Ascend Metric" },
+{ VENDOR_ASCEND_VSA_PRI_NUMBER_TYPE, "Ascend PRI Number Type" },
+{ VENDOR_ASCEND_VSA_DIAL_NUMBER, "Ascend Dial Number" },
+{ VENDOR_ASCEND_VSA_ROUTE_IP, "Ascend Route IP" },
+{ VENDOR_ASCEND_VSA_ROUTE_IPX, "Ascend Route IPX" },
+{ VENDOR_ASCEND_VSA_BRIDGE, "Ascend Bridge" },
+{ VENDOR_ASCEND_VSA_SEND_AUTH, "Ascend Send Auth" },
+{ VENDOR_ASCEND_VSA_SEND_PASSWD, "Ascend Send Passwd" },
+{ VENDOR_ASCEND_VSA_LINK_COMPRESSION, "Ascend Link Compression" },
+{ VENDOR_ASCEND_VSA_TARGET_UTIL, "Ascend Target Util" },
+{ VENDOR_ASCEND_VSA_MAXIMUM_CHANNELS, "Ascend Maximum Channels" },
+{ VENDOR_ASCEND_VSA_INC_CHANNEL_COUNT, "Ascend Inc Channel Count" },
+{ VENDOR_ASCEND_VSA_DEC_CHANNEL_COUNT, "Ascend Dec Channel Count" },
+{ VENDOR_ASCEND_VSA_SECONDS_OF_HISTORY, "Ascend Seconds Of History" },
+{ VENDOR_ASCEND_VSA_HISTORY_WEIGH_TYPE, "Ascend History Weigh Type" },
+{ VENDOR_ASCEND_VSA_ADD_SECONDS, "Ascend Add Seconds" },
+{ VENDOR_ASCEND_VSA_REMOVE_SECONDS, "Ascend Remove Seconds" },
+{ VENDOR_ASCEND_VSA_DATA_FILTER, "Ascend Data Filter" },
+{ VENDOR_ASCEND_VSA_CALL_FILTER, "Ascend Call Filter" },
+{ VENDOR_ASCEND_VSA_IDLE_LIMIT, "Ascend Idle Limit" },
+{ VENDOR_ASCEND_VSA_PREEMPT_LIMIT, "Ascend Preempt Limit" },
+{ VENDOR_ASCEND_VSA_CALLBACK, "Ascend Callback" },
+{ VENDOR_ASCEND_VSA_DATA_SVC, "Ascend Data Svc" },
+{ VENDOR_ASCEND_VSA_FORCE_56, "Ascend Force 56" },
+{ VENDOR_ASCEND_VSA_BILLING_NUMBER, "Ascend Billing Number" },
+{ VENDOR_ASCEND_VSA_CALL_BY_CALL, "Ascend Call By Call" },
+{ VENDOR_ASCEND_VSA_TRANSIT_NUMBER, "Ascend Transit Number" },
+{ VENDOR_ASCEND_VSA_HOST_INFO, "Ascend Host Info" },
+{ VENDOR_ASCEND_VSA_PPP_ADDRESS, "Ascend PPP Address" },
+{ VENDOR_ASCEND_VSA_MPP_IDLE_PERCENT, "Ascend MPP Idle Percent" },
+{ VENDOR_ASCEND_VSA_XMIT_RATE, "Ascend Xmit Rate" },
+{0,NULL},
+};
+
+static value_string radius_vendor_ascend_calling_id_type_of_number_vals[]=
+{{0, "Unknown"},
+{1, "International Number"},
+{2, "National Number"},
+{3, "Network Specific"},
+{4, "Subscriber Number"},
+{6, "Abbreviated Number"},
+{0,NULL}};
+
+static value_string radius_vendor_ascend_calling_id_numbering_plan_vals[]=
+{{0, "Unknown"},
+{1, "ISDN Telephony"},
+{3, "Data"},
+{4, "Telex"},
+{8, "National"},
+{9, "Private"},
+{0,NULL}};
+
+static value_string radius_vendor_ascend_calling_id_presentation_vals[]=
+{{0, "Allowed"},
+{1, "Restricted"},
+{2, "Number Not Available"},
+{0,NULL}};
+
+static value_string radius_vendor_ascend_calling_id_screening_vals[]=
+{{0, "User Not Screened"},
+{1, "User Provided Passed"},
+{2, "User Provided Failed"},
+{3, "Network Provided"},
{0,NULL}};
#define VENDOR_COSINE_VSA_CONNECTION_PROFILE_NAME 1
@@ -472,6 +1536,18 @@ static value_string radius_vendor_cisco_types[]=
#define VENDOR_COSINE_VSA_LNS_IP_ADDRESS 7
#define VENDOR_COSINE_VSA_CLI_USER_PERMISSION_ID 8
+static value_value_pair radius_vendor_cosine_printinfo[] = {
+{ VENDOR_COSINE_VSA_CONNECTION_PROFILE_NAME, RADIUS_STRING },
+{ VENDOR_COSINE_VSA_ENTERPRISE_ID, RADIUS_STRING },
+{ VENDOR_COSINE_VSA_ADDRESS_POOL_NAME, RADIUS_STRING },
+{ VENDOR_COSINE_VSA_DS_BYTE, RADIUS_INTEGER4 },
+{ VENDOR_COSINE_VSA_VPI_VCI, COSINE_VSA_VPI_VCI },
+{ VENDOR_COSINE_VSA_DLCI, RADIUS_INTEGER4 },
+{ VENDOR_COSINE_VSA_LNS_IP_ADDRESS, RADIUS_IP_ADDRESS },
+{ VENDOR_COSINE_VSA_CLI_USER_PERMISSION_ID, RADIUS_STRING },
+{0,0},
+};
+
static value_string radius_vendor_cosine_types[]=
{{VENDOR_COSINE_VSA_CONNECTION_PROFILE_NAME,"Connection Profile Name"},
{VENDOR_COSINE_VSA_ENTERPRISE_ID,"Enterprise ID"},
@@ -501,6 +1577,26 @@ static value_string radius_vendor_cosine_types[]=
#define VENDOR_ISSANNI_VSA_QOS_CLASS 16
#define VENDOR_ISSANNI_VSA_IFACE_NAME 17
+static value_value_pair radius_vendor_issanni_printinfo[]=
+{{VENDOR_ISSANNI_VSA_SOFTFLOW_TEMPLATE,RADIUS_STRING},
+{VENDOR_ISSANNI_VSA_NAT_POOL_NAME,RADIUS_STRING},
+{VENDOR_ISSANNI_VSA_VRD,RADIUS_STRING},
+{VENDOR_ISSANNI_VSA_TUNNEL_NAME,RADIUS_STRING},
+{VENDOR_ISSANNI_VSA_IP_POOL_NAME,RADIUS_STRING},
+{VENDOR_ISSANNI_VSA_PPPOE_URL,RADIUS_STRING},
+{VENDOR_ISSANNI_VSA_PPPOE_MOTM,RADIUS_STRING},
+{VENDOR_ISSANNI_VSA_SERVICE,RADIUS_STRING},
+{VENDOR_ISSANNI_VSA_PRI_DNS,RADIUS_IP_ADDRESS},
+{VENDOR_ISSANNI_VSA_SEC_DNS,RADIUS_IP_ADDRESS},
+{VENDOR_ISSANNI_VSA_PRI_NBNS,RADIUS_IP_ADDRESS},
+{VENDOR_ISSANNI_VSA_SEC_NBNS,RADIUS_IP_ADDRESS},
+{VENDOR_ISSANNI_VSA_TRAFFIC_CLASS,RADIUS_STRING},
+{VENDOR_ISSANNI_VSA_TUNNEL_TYPE,RADIUS_INTEGER4},
+{VENDOR_ISSANNI_VSA_NAT_TYPE,RADIUS_INTEGER4},
+{VENDOR_ISSANNI_VSA_QOS_CLASS,RADIUS_STRING},
+{VENDOR_ISSANNI_VSA_IFACE_NAME,RADIUS_STRING},
+{0,0}};
+
static value_string radius_vendor_issanni_types[]=
{{VENDOR_ISSANNI_VSA_SOFTFLOW_TEMPLATE,"Softflow Template"},
{VENDOR_ISSANNI_VSA_NAT_POOL_NAME,"NAT Pool"},
@@ -528,8 +1624,17 @@ static value_string radius_framed_protocol_vals[]=
{4, "Gandalf proprietary Singlelink/Multilink Protocol"},
{5, "Xylogics proprietary IPX/SLIP"},
{6, "X.75 Synchronous"},
+{255, "Ascend ARA"},
{256, "Ascend MPP"},
+{257, "Ascend EURAW"},
+{258, "Ascend EUUI"},
+{259, "Ascend X25"},
+{260, "Ascend COMB"},
+{261, "Ascend FR"},
{262, "Ascend MP"},
+{263, "Ascend FR-CIR"},
+{264, "Ascend ATM-1483"},
+{265, "Ascend ATM-FR-CIR"},
{0,NULL}};
static value_string radius_framed_routing_vals[]=
@@ -885,6 +1990,50 @@ static value_string radius_attrib_type_vals[] = {
{0,NULL},
};
+static rd_vsa_table radius_vsa_table[] = {
+{ VENDOR_CISCO, radius_vendor_cisco_printinfo, radius_vendor_cisco_types },
+{ VENDOR_MICROSOFT, radius_vendor_microsoft_printinfo, radius_vendor_microsoft_types },
+{ VENDOR_ASCEND, radius_vendor_ascend_printinfo, radius_vendor_ascend_types },
+{ VENDOR_COSINE, radius_vendor_cosine_printinfo, radius_vendor_cosine_types },
+{ VENDOR_ISSANNI, radius_vendor_issanni_printinfo, radius_vendor_issanni_types },
+{0,NULL,NULL},
+};
+
+static rd_valstr_table valstr_table[] = {
+{ RADIUS_SERVICE_TYPE, radius_service_type_vals },
+{ RADIUS_FRAMED_PROTOCOL, radius_framed_protocol_vals },
+{ RADIUS_FRAMED_ROUTING, radius_framed_routing_vals },
+{ RADIUS_FRAMED_COMPRESSION, radius_framed_compression_vals },
+{ RADIUS_LOGIN_SERVICE, radius_login_service_vals },
+{ RADIUS_TERMINATING_ACTION, radius_terminating_action_vals },
+{ RADIUS_ACCOUNTING_STATUS_TYPE, radius_accounting_status_type_vals },
+{ RADIUS_ACCT_AUTHENTIC, radius_accounting_authentication_vals },
+{ RADIUS_ACCT_TERMINATE_CAUSE, radius_acct_terminate_cause_vals },
+{ RADIUS_NAS_PORT_TYPE, radius_nas_port_type_vals },
+{ CISCO_VSA_DISCONNECT_CAUSE, radius_vendor_cisco_disconnect_cause_vals },
+{ MICROSOFT_VSA_BAP_USAGE, radius_vendor_microsoft_bap_usage_vals },
+{ MICROSOFT_VSA_ARAP_PW_CHANGE_REASON, radius_vendor_microsoft_arap_pw_change_reason_vals },
+{ MICROSOFT_VSA_ACCT_AUTH_TYPE, radius_vendor_microsoft_acct_auth_type_vals },
+{ MICROSOFT_VSA_ACCT_EAP_TYPE, radius_vendor_microsoft_acct_eap_type_vals },
+{ ASCEND_VSA_CALLING_ID_TYPE_OF_NUMBER, radius_vendor_ascend_calling_id_type_of_number_vals },
+{ ASCEND_VSA_CALLING_ID_NUMBERING_PLAN, radius_vendor_ascend_calling_id_numbering_plan_vals },
+{ ASCEND_VSA_CALLING_ID_PRESENTATION, radius_vendor_ascend_calling_id_presentation_vals },
+{ ASCEND_VSA_CALLING_ID_SCREENING, radius_vendor_ascend_calling_id_screening_vals },
+{0,NULL}
+};
+
+static rd_vsa_table *get_vsa_table(guint32 type)
+{
+ guint32 i = 0;
+
+ while (radius_vsa_table[i].type) {
+ if (radius_vsa_table[i].type == type)
+ return(&radius_vsa_table[i]);
+ i++;
+ }
+ return(0);
+}
+
static guint32 match_numval(guint32 val, const value_value_pair *vs)
{
guint32 i = 0;
@@ -898,7 +2047,8 @@ static guint32 match_numval(guint32 val, const value_value_pair *vs)
return(0);
}
-static gchar textbuffer[2000];
+static gchar textbuffer[TEXTBUFFER];
+static rd_vsa_buffer vsabuffer[VSABUFFER];
static void
rdconvertbufftostr(gchar *dest, tvbuff_t *tvb, int offset, int length)
@@ -953,7 +2103,23 @@ static gchar *rd_match_strval(guint32 val, const value_string *vs) {
return val_to_str(val, vs, "Undefined (%u)");
}
-static gchar *rd_value_to_str(e_avphdr *avph, tvbuff_t *tvb, int offset)
+static gchar *rdconvertinttostr(gchar *dest, int print_type, guint32 intval)
+{
+ guint32 i = 0;
+
+ while (valstr_table[i].type) {
+ if (valstr_table[i].type == print_type) {
+ sprintf(dest,"%s(%d)",
+ rd_match_strval(intval,valstr_table[i].str),intval);
+ break;
+ }
+ i++;
+ }
+ return dest;
+}
+
+static gchar *rd_value_to_str_2(gchar *dest, e_avphdr *avph, tvbuff_t *tvb,
+ int offset, const value_value_pair *vvp)
{
int print_type;
gchar *cont;
@@ -961,16 +2127,21 @@ static gchar *rd_value_to_str(e_avphdr *avph, tvbuff_t *tvb, int offset)
guint32 intval;
const guint8 *pd;
guint8 tag;
- guint8 vtype;
char *rtimestamp;
extern char *tzname[2];
+ int vsa_attrlen;
+ int vsa_len;
+ int vsa_index;
+ rd_vsa_table *vsa_rvt;
+ e_avphdr *vsa_avph;
+
/* prints the values of the attribute value pairs into a text buffer */
- print_type=match_numval(avph->avp_type,radius_printinfo);
+ print_type=match_numval(avph->avp_type,vvp);
/* Default begin */
- strcpy(textbuffer,"Value:");
- cont=&textbuffer[strlen(textbuffer)];
+ strcpy(dest, "Value:");
+ cont=&dest[strlen(dest)];
switch(print_type)
{
case( RADIUS_STRING ):
@@ -985,57 +2156,17 @@ static gchar *rd_value_to_str(e_avphdr *avph, tvbuff_t *tvb, int offset)
case( RADIUS_IP_ADDRESS ):
ip_to_str_buf(tvb_get_ptr(tvb,offset+2,4),cont);
break;
- case( RADIUS_SERVICE_TYPE ):
- valstrarr=radius_service_type_vals;
- strcpy(cont,rd_match_strval(tvb_get_ntohl(tvb,offset+2),valstrarr));
- break;
- case( RADIUS_FRAMED_PROTOCOL ):
- valstrarr= radius_framed_protocol_vals;
- strcpy(cont,rd_match_strval(tvb_get_ntohl(tvb,offset+2),valstrarr));
- break;
- case( RADIUS_FRAMED_ROUTING ):
- valstrarr=radius_framed_routing_vals;
- strcpy(cont,rd_match_strval(tvb_get_ntohl(tvb,offset+2),valstrarr));
- break;
- case( RADIUS_FRAMED_COMPRESSION ):
- valstrarr=radius_framed_compression_vals;
- strcpy(cont,rd_match_strval(tvb_get_ntohl(tvb,offset+2),valstrarr));
- break;
- case( RADIUS_LOGIN_SERVICE ):
- valstrarr=radius_login_service_vals;
- strcpy(cont,rd_match_strval(tvb_get_ntohl(tvb,offset+2),valstrarr));
- break;
case( RADIUS_IPX_ADDRESS ):
pd = tvb_get_ptr(tvb,offset+2,4);
sprintf(cont,"%u:%u:%u:%u",(guint8)pd[offset+2],
(guint8)pd[offset+3],(guint8)pd[offset+4],
(guint8)pd[offset+5]);
- case( RADIUS_TERMINATING_ACTION ):
- valstrarr=radius_terminating_action_vals;
- strcpy(cont,rd_match_strval(tvb_get_ntohl(tvb,offset+2),valstrarr));
- break;
- case( RADIUS_ACCOUNTING_STATUS_TYPE ):
- valstrarr=radius_accounting_status_type_vals;
- strcpy(cont,rd_match_strval(tvb_get_ntohl(tvb,offset+2),valstrarr));
- break;
- case( RADIUS_ACCT_AUTHENTIC ):
- valstrarr=radius_accounting_authentication_vals;
- strcpy(cont,rd_match_strval(tvb_get_ntohl(tvb,offset+2),valstrarr));
- break;
- case( RADIUS_ACCT_TERMINATE_CAUSE ):
- valstrarr=radius_acct_terminate_cause_vals;
- strcpy(cont,rd_match_strval(tvb_get_ntohl(tvb,offset+2),valstrarr));
- break;
- case( RADIUS_NAS_PORT_TYPE ):
- valstrarr=radius_nas_port_type_vals;
- strcpy(cont,rd_match_strval(tvb_get_ntohl(tvb,offset+2),valstrarr));
- break;
case( RADIUS_TUNNEL_TYPE ):
valstrarr=radius_tunnel_type_vals;
/* Tagged ? */
intval = tvb_get_ntohl(tvb,offset+2);
if (intval >> 24) {
- sprintf(textbuffer, "Tag:%u, Value:%s",
+ sprintf(dest, "Tag:%u, Value:%s",
intval >> 24,
rd_match_strval(intval & 0xffffff,valstrarr));
break;
@@ -1047,7 +2178,7 @@ static gchar *rd_value_to_str(e_avphdr *avph, tvbuff_t *tvb, int offset)
intval = tvb_get_ntohl(tvb,offset+2);
/* Tagged ? */
if (intval >> 24) {
- sprintf(textbuffer, "Tag:%u, Value:%s",
+ sprintf(dest, "Tag:%u, Value:%s",
intval >> 24,
rd_match_strval(intval & 0xffffff,valstrarr));
break;
@@ -1058,121 +2189,63 @@ static gchar *rd_value_to_str(e_avphdr *avph, tvbuff_t *tvb, int offset)
/* Tagged ? */
tag = tvb_get_guint8(tvb,offset+2);
if (tag <= 0x1f) {
- sprintf(textbuffer, "Tag:%u, Value:",
+ sprintf(dest, "Tag:%u, Value:",
tag);
- cont=&textbuffer[strlen(textbuffer)];
+ cont=&cont[strlen(cont)];
rdconvertbufftostr(cont,tvb,offset+3,avph->avp_length-3);
break;
}
rdconvertbufftostr(cont,tvb,offset+2,avph->avp_length-2);
break;
case ( RADIUS_VENDOR_SPECIFIC ):
+ vsa_index = 1;
valstrarr=radius_vendor_specific_vendors;
- sprintf(textbuffer,"Vendor:%s,",
+ sprintf(dest,"Vendor:%s",
rd_match_strval(tvb_get_ntohl(tvb,offset+2),valstrarr));
- cont=&textbuffer[strlen(textbuffer)];
- switch (tvb_get_ntohl(tvb,offset+2)) {
- case ( VENDOR_CISCO ):
- vtype = tvb_get_guint8(tvb,offset+6);
- switch (vtype) {
- case ( VENDOR_CISCO_AVP_CISCO ):
- sprintf(cont," Type:%s, Len:%i Value:",
- rd_match_strval(vtype,radius_vendor_cisco_types),
- avph->avp_length-8);
- cont=&textbuffer[strlen(textbuffer)];
- rdconvertbufftostr(cont,tvb,offset+8,
- avph->avp_length-8);
- break;
- default:
- sprintf(cont," Type:%s, Len:%i Value:",
- rd_match_strval(vtype,radius_vendor_cisco_types),
- avph->avp_length-8);
- cont=&textbuffer[strlen(textbuffer)];
- rdconvertbufftostr(cont,tvb,offset+8,
- avph->avp_length-8);
- break;
- }
- break;
- case ( VENDOR_COSINE ):
- vtype = tvb_get_guint8(tvb,offset+6);
- switch (vtype) {
- case ( VENDOR_COSINE_VSA_CONNECTION_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;
- case ( VENDOR_ISSANNI ):
- vtype = tvb_get_guint8(tvb,offset+6);
- switch (vtype) {
- case ( VENDOR_ISSANNI_VSA_SOFTFLOW_TEMPLATE ):
- case ( VENDOR_ISSANNI_VSA_NAT_POOL_NAME ):
- case ( VENDOR_ISSANNI_VSA_VRD ):
- case ( VENDOR_ISSANNI_VSA_TUNNEL_NAME ):
- case ( VENDOR_ISSANNI_VSA_IP_POOL_NAME ):
- case ( VENDOR_ISSANNI_VSA_PPPOE_URL ):
- case ( VENDOR_ISSANNI_VSA_PPPOE_MOTM ):
- case ( VENDOR_ISSANNI_VSA_SERVICE ):
- case ( VENDOR_ISSANNI_VSA_TRAFFIC_CLASS ):
- case ( VENDOR_ISSANNI_VSA_QOS_CLASS ):
- case ( VENDOR_ISSANNI_VSA_IFACE_NAME ):
- sprintf(cont," Type:%s, Value:",
- rd_match_strval(vtype, radius_vendor_issanni_types));
- cont=&textbuffer[strlen(textbuffer)];
- rdconvertbufftostr(cont,tvb,offset+8,avph->avp_length-8);
- break;
- case ( VENDOR_ISSANNI_VSA_NAT_TYPE ):
- case ( VENDOR_ISSANNI_VSA_TUNNEL_TYPE ):
- sprintf(cont," Type:%s, Value:%u",
- rd_match_strval(vtype, radius_vendor_issanni_types),
- tvb_get_ntohl(tvb,offset+8));
- break;
- case ( VENDOR_ISSANNI_VSA_PRI_DNS ):
- case ( VENDOR_ISSANNI_VSA_SEC_DNS ):
- case ( VENDOR_ISSANNI_VSA_PRI_NBNS ):
- case ( VENDOR_ISSANNI_VSA_SEC_NBNS ):
- sprintf(cont," Type:%s, Value:",
- rd_match_strval(vtype, radius_vendor_issanni_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;
- }
+ cont=&dest[strlen(dest)];
+ vsa_rvt=get_vsa_table(tvb_get_ntohl(tvb,offset+2));
+ if (vsa_rvt) {
+ vsa_attrlen = avph->avp_length;
+ vsa_len = 6;
+ do {
+ vsa_avph=(e_avphdr*)tvb_get_ptr(tvb,offset+vsa_len,avph->avp_length-vsa_len);
+ cont=&cont[strlen(cont)+1];
+ vsabuffer[vsa_index].valstr = cont;
+ vsabuffer[vsa_index].offset = offset+vsa_len;
+ vsabuffer[vsa_index].length = vsa_avph->avp_length;
+ sprintf(cont, "t:%s(%d) l:%d, ",
+ match_strval(vsa_avph->avp_type, vsa_rvt->types),
+ vsa_avph->avp_type,vsa_avph->avp_length);
+ cont=&cont[strlen(cont)];
+ rd_value_to_str_2(cont,vsa_avph,tvb,offset+vsa_len,vsa_rvt->printinfo);
+ vsa_len+=vsa_avph->avp_length;
+ vsa_index++;
+ } while (vsa_attrlen > vsa_len && vsa_index < VSABUFFER);
+ }
+ else
+ rdconvertbufftostr(cont,tvb,offset+6,avph->avp_length-6);
+ break;
+ case( RADIUS_SERVICE_TYPE ):
+ case( RADIUS_FRAMED_PROTOCOL ):
+ case( RADIUS_FRAMED_ROUTING ):
+ case( RADIUS_FRAMED_COMPRESSION ):
+ case( RADIUS_LOGIN_SERVICE ):
+ case( RADIUS_TERMINATING_ACTION ):
+ case( RADIUS_ACCOUNTING_STATUS_TYPE ):
+ case( RADIUS_ACCT_AUTHENTIC ):
+ case( RADIUS_ACCT_TERMINATE_CAUSE ):
+ case( RADIUS_NAS_PORT_TYPE ):
+ case( ASCEND_VSA_CALLING_ID_TYPE_OF_NUMBER ):
+ case( ASCEND_VSA_CALLING_ID_NUMBERING_PLAN ):
+ case( ASCEND_VSA_CALLING_ID_PRESENTATION ):
+ case( ASCEND_VSA_CALLING_ID_SCREENING ):
+ rdconvertinttostr(cont, print_type,tvb_get_ntohl(tvb,offset+2));
break;
+ case( COSINE_VSA_VPI_VCI ):
+ sprintf(cont,"%u/%u",
+ tvb_get_ntohs(tvb,offset+2),
+ tvb_get_ntohs(tvb,offset+4));
+ break;
case( RADIUS_TIMESTAMP ):
intval=tvb_get_ntohl(tvb,offset+2);
rtimestamp=ctime((time_t*)&intval);
@@ -1183,7 +2256,7 @@ static gchar *rd_value_to_str(e_avphdr *avph, tvbuff_t *tvb, int offset)
intval = tvb_get_ntohl(tvb,offset+2);
/* Tagged ? */
if (intval >> 24) {
- sprintf(textbuffer, "Tag:%u, Value:%u",
+ sprintf(cont, "Tag:%u, Value:%u",
intval >> 24,
intval & 0xffffff);
break;
@@ -1192,15 +2265,25 @@ static gchar *rd_value_to_str(e_avphdr *avph, tvbuff_t *tvb, int offset)
break;
case( RADIUS_UNKNOWN ):
default:
- strcpy(textbuffer,"Unknown Value Type");
+ strcpy(cont,"Unknown Value Type");
break;
}
- if (cont == textbuffer) {
+ cont=&cont[strlen(cont)];
+ if (cont == dest) {
strcpy(cont,"Unknown Value");
}
- return textbuffer;
+ return dest;
}
+static gchar *rd_value_to_str(e_avphdr *avph, tvbuff_t *tvb, int offset)
+{
+ int i;
+ for (i = 0; i < VSABUFFER; i++)
+ vsabuffer[i].valstr = 0;
+ vsabuffer[0].valstr = textbuffer;
+ rd_value_to_str_2(textbuffer,avph,tvb,offset,radius_printinfo);
+ return textbuffer;
+}
static void
dissect_attribute_value_pairs(tvbuff_t *tvb, int offset,proto_tree *tree,
@@ -1213,6 +2296,7 @@ dissect_attribute_value_pairs(tvbuff_t *tvb, int offset,proto_tree *tree,
guint8 *reassembled_data = NULL;
int reassembled_data_len = 0;
int data_needed = 0;
+ int i;
if (avplength==0)
{
@@ -1364,6 +2448,9 @@ dissect_attribute_value_pairs(tvbuff_t *tvb, int offset,proto_tree *tree,
"t:%s(%u) l:%u, %s",
avptpstrval, avph.avp_type, avph.avp_length,
valstr);
+ for (i = 1; vsabuffer[i].valstr && i < VSABUFFER; i++)
+ proto_tree_add_text(tree, tvb, vsabuffer[i].offset, vsabuffer[i].length,
+ " %s", vsabuffer[i].valstr);
}
}