diff --git a/Makefile.am b/Makefile.am index 11443feece..9c69c814ad 100644 --- a/Makefile.am +++ b/Makefile.am @@ -139,6 +139,7 @@ dist_radius_DATA = $(_CUSTOM_radius_dict_) \ radius/dictionary.alcatel \ radius/dictionary.alcatel.esam \ radius/dictionary.alcatel.sr \ + radius/dictionary.alcatel-lucent.aaa \ radius/dictionary.alcatel-lucent.xylan \ radius/dictionary.alteon \ radius/dictionary.altiga \ diff --git a/epan/dissectors/packet-radius.c b/epan/dissectors/packet-radius.c index 9d91e9e500..32a01d1291 100644 --- a/epan/dissectors/packet-radius.c +++ b/epan/dissectors/packet-radius.c @@ -198,6 +198,11 @@ static const value_string radius_pkt_type_codes[] = {RADIUS_PKT_TYPE_IP_ADDRESS_ALLOCATE, "IP-Address-Allocate"}, /* 50 RFC3575 */ {RADIUS_PKT_TYPE_IP_ADDRESS_RELEASE, "IP-Address-Release"}, /* 51 RFC3575 */ + + {RADIUS_PKT_TYPE_ALU_STATE_REQUEST, "ALU-State-Request"}, /* 129 ALU AAA */ + {RADIUS_PKT_TYPE_ALU_STATE_ACCEPT, "ALU-State-Accept"}, /* 130 ALU AAA */ + {RADIUS_PKT_TYPE_ALU_STATE_REJECT, "ALU-State-Reject"}, /* 131 ALU AAA */ + {RADIUS_PKT_TYPE_ALU_STATE_ERROR, "ALU-State-Error"}, /* 132 ALU AAA */ /* 250-253 Experimental Use [RFC3575] 254-255 Reserved [RFC3575] @@ -303,6 +308,12 @@ static gboolean radius_call_equal(gconstpointer k1, gconstpointer k2) if ((key1->code == RADIUS_PKT_TYPE_COA_REQUEST) && ((key2->code == RADIUS_PKT_TYPE_COA_ACK) || (key2->code == RADIUS_PKT_TYPE_COA_NAK))) return TRUE; + + if ((key1->code == RADIUS_PKT_TYPE_ALU_STATE_REQUEST) && + ((key2->code == RADIUS_PKT_TYPE_ALU_STATE_ACCEPT) || + (key2->code == RADIUS_PKT_TYPE_ALU_STATE_REJECT) || + (key2->code == RADIUS_PKT_TYPE_ALU_STATE_ERROR))) + return TRUE; } return FALSE; } @@ -1473,6 +1484,7 @@ dissect_radius(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _ case RADIUS_PKT_TYPE_EVENT_REQUEST: case RADIUS_PKT_TYPE_DISCONNECT_REQUEST: case RADIUS_PKT_TYPE_COA_REQUEST: + case RADIUS_PKT_TYPE_ALU_STATE_REQUEST: /* Don't bother creating conversations if we're encapsulated within * an error packet, such as an ICMP destination unreachable */ if (pinfo->flags.in_error_pkt) @@ -1585,6 +1597,9 @@ dissect_radius(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _ case RADIUS_PKT_TYPE_COA_ACK: case RADIUS_PKT_TYPE_COA_NAK: case RADIUS_PKT_TYPE_ACCESS_CHALLENGE: + case RADIUS_PKT_TYPE_ALU_STATE_ACCEPT: + case RADIUS_PKT_TYPE_ALU_STATE_REJECT: + case RADIUS_PKT_TYPE_ALU_STATE_ERROR: /* Don't bother finding conversations if we're encapsulated within * an error packet, such as an ICMP destination unreachable */ if (pinfo->flags.in_error_pkt) diff --git a/epan/dissectors/packet-radius.h b/epan/dissectors/packet-radius.h index 8c66337d3e..c85ace294c 100644 --- a/epan/dissectors/packet-radius.h +++ b/epan/dissectors/packet-radius.h @@ -66,6 +66,11 @@ #define RADIUS_PKT_TYPE_IP_ADDRESS_ALLOCATE 50 #define RADIUS_PKT_TYPE_IP_ADDRESS_RELEASE 51 +/* ALU proprietary packet type codes */ +#define RADIUS_PKT_TYPE_ALU_STATE_REQUEST 129 +#define RADIUS_PKT_TYPE_ALU_STATE_ACCEPT 130 +#define RADIUS_PKT_TYPE_ALU_STATE_REJECT 131 +#define RADIUS_PKT_TYPE_ALU_STATE_ERROR 132 /* Radius Attribute Types*/ /* 09/12/2011: Updated from IANA: diff --git a/packaging/nsis/wireshark.nsi b/packaging/nsis/wireshark.nsi index c961a5a544..cb7c2ba051 100644 --- a/packaging/nsis/wireshark.nsi +++ b/packaging/nsis/wireshark.nsi @@ -458,6 +458,7 @@ File "..\..\radius\dictionary.airespace" File "..\..\radius\dictionary.alcatel" File "..\..\radius\dictionary.alcatel.esam" File "..\..\radius\dictionary.alcatel.sr" +File "..\..\radius\dictionary.alcatel-lucent.aaa" File "..\..\radius\dictionary.alcatel-lucent.xylan" File "..\..\radius\dictionary.alteon" File "..\..\radius\dictionary.altiga" diff --git a/radius/dictionary b/radius/dictionary index 7c499106fb..b70a0a3885 100644 --- a/radius/dictionary +++ b/radius/dictionary @@ -109,6 +109,7 @@ $INCLUDE dictionary.acme $INCLUDE dictionary.airespace $INCLUDE dictionary.alcatel $INCLUDE dictionary.alcatel.sr +$INCLUDE dictionary.alcatel-lucent.aaa $INCLUDE dictionary.alcatel-lucent.xylan $INCLUDE dictionary.alteon $INCLUDE dictionary.alvarion diff --git a/radius/dictionary.alcatel-lucent.aaa b/radius/dictionary.alcatel-lucent.aaa new file mode 100644 index 0000000000..9c1a087c00 --- /dev/null +++ b/radius/dictionary.alcatel-lucent.aaa @@ -0,0 +1,84 @@ +# -*- text -*- +############################################################################## +# +# ALU-AAA AAA dictionary +# +# $Id$ +# +############################################################################## + +VENDOR ALU-AAA 831 + +BEGIN-VENDOR ALU-AAA + +ATTRIBUTE ALU-AAA-Access-Rule 1 string +ATTRIBUTE ALU-AAA-AV-Pair 2 string +ATTRIBUTE ALU-AAA-GSM-Triplets-Needed 3 integer +ATTRIBUTE ALU-AAA-GSM-Triplet 4 octets +ATTRIBUTE ALU-AAA-AKA-Quintets-Needed 5 integer +ATTRIBUTE ALU-AAA-AKA-Quintet 6 octets +ATTRIBUTE ALU-AAA-AKA-RAND 7 octets +ATTRIBUTE ALU-AAA-AKA-AUTS 8 octets +ATTRIBUTE ALU-AAA-Service-Profile 9 string +ATTRIBUTE ALU-AAA-Lawful-Intercept-Status 10 byte +ATTRIBUTE ALU-AAA-DF-CC-Address 11 ipaddr +ATTRIBUTE ALU-AAA-DF-CC-Port 12 short +ATTRIBUTE ALU-AAA-Client-Program 13 string +ATTRIBUTE ALU-AAA-Client-Error-Action 14 integer +ATTRIBUTE ALU-AAA-Client-OS 15 string +ATTRIBUTE ALU-AAA-Client-Version 16 string +ATTRIBUTE ALU-AAA-Nonce 17 octets +ATTRIBUTE ALU-AAA-Femto-Public-Key-Hash 18 octets +ATTRIBUTE ALU-AAA-Femto-Associated-User-Name 19 string +ATTRIBUTE ALU-AAA-String-0 100 string +ATTRIBUTE ALU-AAA-String-1 101 string +ATTRIBUTE ALU-AAA-String-2 102 string +ATTRIBUTE ALU-AAA-String-3 103 string +ATTRIBUTE ALU-AAA-Integer-0 104 integer +ATTRIBUTE ALU-AAA-Integer-1 105 integer +ATTRIBUTE ALU-AAA-Integer-2 106 integer +ATTRIBUTE ALU-AAA-Integer-3 107 integer +ATTRIBUTE ALU-AAA-Address-0 108 combo-ip +ATTRIBUTE ALU-AAA-Address-1 109 combo-ip +ATTRIBUTE ALU-AAA-Address-2 110 combo-ip +ATTRIBUTE ALU-AAA-Address-3 111 combo-ip +ATTRIBUTE ALU-AAA-Value-0 112 octets +ATTRIBUTE ALU-AAA-Value-1 113 octets +ATTRIBUTE ALU-AAA-Value-2 114 octets +ATTRIBUTE ALU-AAA-Value-3 115 octets +ATTRIBUTE ALU-AAA-Key-0 116 octets,encrypt=2 +ATTRIBUTE ALU-AAA-Key-1 117 octets,encrypt=2 +ATTRIBUTE ALU-AAA-Key-2 118 octets,encrypt=2 +ATTRIBUTE ALU-AAA-Key-3 119 octets,encrypt=2 +ATTRIBUTE ALU-AAA-Opaque-0 120 octets +ATTRIBUTE ALU-AAA-Opaque-1 121 octets +ATTRIBUTE ALU-AAA-Opaque-2 122 octets +ATTRIBUTE ALU-AAA-Opaque-3 123 octets +ATTRIBUTE ALU-AAA-Eval-0 124 string +ATTRIBUTE ALU-AAA-Eval-1 125 string +ATTRIBUTE ALU-AAA-Eval-2 126 string +ATTRIBUTE ALU-AAA-Eval-3 127 string +ATTRIBUTE ALU-AAA-Exec-0 128 string +ATTRIBUTE ALU-AAA-Exec-1 129 string +ATTRIBUTE ALU-AAA-Exec-2 130 string +ATTRIBUTE ALU-AAA-Exec-3 131 string +ATTRIBUTE ALU-AAA-Original-Receipt-Time 199 octets +ATTRIBUTE ALU-AAA-Reply-Message 201 string +ATTRIBUTE ALU-AAA-Called-Station-Id 202 string +ATTRIBUTE ALU-AAA-NAS-IP-Address 203 ipaddr +ATTRIBUTE ALU-AAA-NAS-Port 204 integer +ATTRIBUTE ALU-AAA-Old-State 205 string +ATTRIBUTE ALU-AAA-New-State 206 string +ATTRIBUTE ALU-AAA-Event 207 string +ATTRIBUTE ALU-AAA-Old-Timestamp 208 date +ATTRIBUTE ALU-AAA-New-Timestamp 209 date +ATTRIBUTE ALU-AAA-Delta-Session 210 integer +ATTRIBUTE ALU-AAA-Civic-Location 211 octets +ATTRIBUTE ALU-AAA-Geospatial-Location 212 octets + +VALUE ALU-AAA-Client-Error-Action Ignore 1 +VALUE ALU-AAA-Client-Error-Action Disconnect 2 +VALUE ALU-AAA-Delta-Session False 0 +VALUE ALU-AAA-Delta-Session True 1 + +END-VENDOR ALU-AAA