Skip to content

Support for recently added RADIUS attributes in CoA messages #44

Description

@nemesifier

Right now only standard attributes are supported:

uspot/src/radius-das.c

Lines 476 to 596 in 8599a96

/*
Change-of-Authorization Messages attributes
Request ACK NAK # Attribute
0-1 0 0 1 User-Name (Note 1) // supported
0-1 0 0 4 NAS-IP-Address (Note 1) // supported
0-1 0 0 5 NAS-Port (Note 1)
0-1 0 0-1 6 Service-Type
0-1 0 0 7 Framed-Protocol (Note 3)
0-1 0 0 8 Framed-IP-Address (Notes 1, 6) // supported
0-1 0 0 9 Framed-IP-Netmask (Note 3)
0-1 0 0 10 Framed-Routing (Note 3)
0+ 0 0 11 Filter-ID (Note 3)
0-1 0 0 12 Framed-MTU (Note 3)
0+ 0 0 13 Framed-Compression (Note 3)
0+ 0 0 14 Login-IP-Host (Note 3)
0-1 0 0 15 Login-Service (Note 3)
0-1 0 0 16 Login-TCP-Port (Note 3)
0+ 0 0 18 Reply-Message (Note 2)
0-1 0 0 19 Callback-Number (Note 3)
0-1 0 0 20 Callback-Id (Note 3)
0+ 0 0 22 Framed-Route (Note 3)
0-1 0 0 23 Framed-IPX-Network (Note 3)
0-1 0-1 0-1 24 State // supported
0+ 0 0 25 Class (Note 3) // supported
0+ 0 0 26 Vendor-Specific (Note 7)
0-1 0 0 27 Session-Timeout (Note 3) // supported
0-1 0 0 28 Idle-Timeout (Note 3) // supported
0-1 0 0 29 Termination-Action (Note 3)
0-1 0 0 30 Called-Station-Id (Note 1) // supported
0-1 0 0 31 Calling-Station-Id (Note 1) // supported
0-1 0 0 32 NAS-Identifier (Note 1) // supported
0+ 0+ 0+ 33 Proxy-State // supported
0-1 0 0 34 Login-LAT-Service (Note 3)
0-1 0 0 35 Login-LAT-Node (Note 3)
0-1 0 0 36 Login-LAT-Group (Note 3)
0-1 0 0 37 Framed-AppleTalk-Link (Note 3)
0+ 0 0 38 Framed-AppleTalk-Network (Note 3)
0-1 0 0 39 Framed-AppleTalk-Zone (Note 3)
0-1 0 0 44 Acct-Session-Id (Note 1) // supported
0-1 0 0 50 Acct-Multi-Session-Id (Note 1)
0-1 0-1 0-1 55 Event-Timestamp
0+ 0 0 56 Egress-VLANID (Note 3)
0-1 0 0 57 Ingress-Filters (Note 3)
0+ 0 0 58 Egress-VLAN-Name (Note 3)
0-1 0 0 59 User-Priority-Table (Note 3)
0-1 0 0 61 NAS-Port-Type (Note 3)
0-1 0 0 62 Port-Limit (Note 3)
0-1 0 0 63 Login-LAT-Port (Note 3)
0+ 0 0 64 Tunnel-Type (Note 5)
0+ 0 0 65 Tunnel-Medium-Type (Note 5)
0+ 0 0 66 Tunnel-Client-Endpoint (Note 5)
0+ 0 0 67 Tunnel-Server-Endpoint (Note 5)
0+ 0 0 69 Tunnel-Password (Note 5)
0-1 0 0 71 ARAP-Features (Note 3)
0-1 0 0 72 ARAP-Zone-Access (Note 3)
0+ 0 0 78 Configuration-Token (Note 3)
0+ 0-1 0 79 EAP-Message (Note 2)
0-1 0-1 0-1 80 Message-Authenticator
0+ 0 0 81 Tunnel-Private-Group-ID (Note 5)
0+ 0 0 82 Tunnel-Assignment-ID (Note 5)
0+ 0 0 83 Tunnel-Preference (Note 5)
0-1 0 0 85 Acct-Interim-Interval (Note 3) // supported
0-1 0 0 87 NAS-Port-Id (Note 1)
0-1 0 0 88 Framed-Pool (Note 3)
0-1 0 0 89 Chargeable-User-Identity (Note 1) // supported
0+ 0 0 90 Tunnel-Client-Auth-ID (Note 5)
0+ 0 0 91 Tunnel-Server-Auth-ID (Note 5)
0-1 0 0 92 NAS-Filter-Rule (Note 3)
0 0 0 94 Originating-Line-Info
0-1 0 0 95 NAS-IPv6-Address (Note 1)
0-1 0 0 96 Framed-Interface-Id (Notes 1, 6)
0+ 0 0 97 Framed-IPv6-Prefix (Notes 1, 6)
0+ 0 0 98 Login-IPv6-Host (Note 3)
0+ 0 0 99 Framed-IPv6-Route (Note 3)
0-1 0 0 100 Framed-IPv6-Pool (Note 3)
0 0 0+ 101 Error-Cause
0+ 0 0 123 Delegated-IPv6-Prefix (Note 3)
(Note 1) Where NAS or session identification attributes are included
in Disconnect-Request or CoA-Request packets, they are used for
identification purposes only. These attributes MUST NOT be used for
purposes other than identification (e.g., within CoA-Request packets
to request authorization changes).
(Note 3) When included within a CoA-Request, these attributes
represent an authorization change request. When one of these
attributes is omitted from a CoA-Request, the NAS assumes that the
attribute value is to remain unchanged. Attributes included in a
CoA-Request replace all existing values of the same attribute(s).
*/
static int
coa_attrid_not_supported(uint8_t id)
{
int ret;
switch (id) {
// allowed & implemented
case PW_USER_NAME:
case PW_NAS_IP_ADDRESS:
case PW_FRAMED_IP_ADDRESS:
case PW_NAS_IDENTIFIER:
case PW_STATE:
case PW_CLASS:
case PW_SESSION_TIMEOUT: // change
case PW_IDLE_TIMEOUT: // change
case PW_CALLED_STATION_ID:
case PW_CALLING_STATION_ID:
case PW_PROXY_STATE:
case PW_ACCT_SESSION_ID:
case PW_ACCT_INTERIM_INTERVAL: // change
case PW_CHARGEABLE_USER_IDENTITY:
ret = 0;
break;
// everything else
default:
ret = 1;
break;
}
return ret;
}

How hard would be to support the recently added RADIUS attributes for traffic and bandwidth limiting in Change-of-Authorization Messages?

It would be very useful to support also the new attributes:

ChilliSpot-Max-Input-Octets
ChilliSpot-Max-Input-Gigawords
ChilliSpot-Max-Output-Octets
ChilliSpot-Max-Output-Gigawords
ChilliSpot-Max-Total-Octets
ChilliSpot-Max-Total-Gigawords

And the already supported WISPr-Bandwidth-Max-{Up,Down}/ChilliSpot-Bandwidth-Max-{Up,Down} attributes.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions