Sub-TLV's
David Peterson
davidp at wirelessconnections.net
Mon Jan 17 16:05:14 CET 2011
Understood. Here is the dictionary I am working with:
The changes start at line 168.
# -*- text -*-
############################################################################
##
#
# WiMAX Forum
#
# Updated from NWG_R1_V1.2.1-Stage-3.pdf
#
# NWG_R1_V1.2-Stage-3.pdf
# RADIUS discussion is on pp. 432-498
# WiMAX VSA's are on p. 450 and following.
#
# DHCP && MIP keys are on p.48 and following.
#
# WiMAX VSA's have a non-standard format:
#
# type 1 octet
# length 1 octet
# continuation 1 octet 0bcrrrrrrr
# value 1+ octets
#
# If the high bit of the "continuation" field is set, then
# the next attribute of the same WiMAX type should have it's
# value concatenated to this one.
#
# The C bit MUST be zero for all small types. e.g. integer,
# ipaddr, ipv6addr, etc. It MAY be set for "string" and "octet"
# types. The maximum attribute length for "string" and "octet"
# types is still 253 bytes, even with continuations. The WiMAX
# specifications do not specify a maximum length, so we have chosen
# to keep the traditional RADIUS maximum length here.
#
# The C bit MAY be 1 for TLV types. There is no restriction on
# TLV length other than maximum packet size (a bit less than 4K).
#
# The rest of the bits in the "continuation" octet are reserved,
# and MUST be zero.
#
# Each WiMAX VSA is packed into one Vendor-Specific attribute
# with Vendor-Id of WiMAX. Multiple WiMAX sub-TLV's ARE packed
# into one VSA with an encapsulating TLV.
#
# The WiMAX forum adds the following (non-standard) data types:
#
# byte - one-octet unsigned integer
# short - two-octet unsigned integer in network byte order
# signed - 4-octet signed integer in network byte order.
# combo-ip - if length 4, is the same as the "ipaddr" type.
# if length 16, is the same as "ipv6addr" type.
# tlv - encapsulated sub-attributes
# i.e. Vendor-Specific -> WiMAX TLV -> WiMAX sub-tlv.
#
############################################################################
##
#
# $Id$
#
############################################################################
##
VENDOR WiMAX 24757 format=1,1,c
BEGIN-VENDOR WiMAX
ATTRIBUTE WiMAX-Capability 1 tlv
BEGIN-TLV WiMAX-Capability
ATTRIBUTE WiMAX-Release 1 string
ATTRIBUTE WiMAX-Accounting-Capabilities 2 byte
ATTRIBUTE WiMAX-Hotlining-Capabilities 3 byte
ATTRIBUTE WiMAX-Idle-Mode-Notification-Cap 4 byte
# This is really a bitmap
VALUE WiMAX-Accounting-Capabilities No-Accounting 0
VALUE WiMAX-Accounting-Capabilities IP-Session-Based 1
VALUE WiMAX-Accounting-Capabilities Flow-Based 2
# This is really a bitmap
VALUE WiMAX-Hotlining-Capabilities Not-Supported 0
VALUE WiMAX-Hotlining-Capabilities Hotline-Profile-Id 1
VALUE WiMAX-Hotlining-Capabilities NAS-Filter-Rule 2
VALUE WiMAX-Hotlining-Capabilities HTTP-Redirection 4
VALUE WiMAX-Hotlining-Capabilities IP-Redirection 8
VALUE WiMAX-Idle-Mode-Notification-Cap Not-Supported 0
VALUE WiMAX-Idle-Mode-Notification-Cap Supported 1
END-TLV WiMAX-Capability
ATTRIBUTE WiMAX-Device-Authentication-Indicator 2 byte
ATTRIBUTE WiMAX-GMT-Timezone-offset 3 signed
ATTRIBUTE WiMAX-AAA-Session-Id 4 octets
# 32 octets in length
ATTRIBUTE WiMAX-MSK 5 octets
encrypt=2
ATTRIBUTE WiMAX-hHA-IP-MIP4 6 ipaddr
ATTRIBUTE WiMAX-hHA-IP-MIP6 7 ipv6addr
ATTRIBUTE WiMAX-DHCPv4-Server 8 combo-ip
ATTRIBUTE WiMAX-DHCPv6-Server 9 combo-ip
# MN-HA-CMIP4 = H(MIP-RK, "CMIP4 MN HA" | HA-IPv4 | MN-NAI), or
# MN-HA-PMIP4 = H(MIP-RK, "PMIP4 MN HA" | HA-IPv4 | MN-NAI)
ATTRIBUTE WiMAX-MN-hHA-MIP4-Key 10 octets
encrypt=2
# MN-HA-CMIP4-SPI == MIP-SPI, or
# MN-HA-PIMP4-SPI == MIP-SPI + 1
ATTRIBUTE WiMAX-MN-hHA-MIP4-SPI 11 integer
# MN-HA-CMIP6 = H(MIP-RK, "CMIP6 MN HA" | HA-IPv6 | MN-NAI)
ATTRIBUTE WiMAX-MN-hHA-MIP6-Key 12 octets
encrypt=2
# MN-HA-CMIP6-SPI == MIP-SPI + 2
ATTRIBUTE WiMAX-MN-hHA-MIP6-SPI 13 integer
# FA-RK = H(MIP-RK, "FA-RK")
ATTRIBUTE WiMAX-FA-RK-Key 14 octets
encrypt=2
# 160 bit random number
ATTRIBUTE WiMAX-HA-RK-Key 15 octets
encrypt=2
# SPI-CMIP4
ATTRIBUTE WiMAX-HA-RK-SPI 16 integer
ATTRIBUTE WiMAX-HA-RK-Lifetime 17 integer
# The same as MN-HA-CMIP4, etc. But in different packets.
ATTRIBUTE WiMAX-RRQ-HA-IP 18 combo-ip
ATTRIBUTE WiMAX-RRQ-MN-HA-Key 19 octets
encrypt=2
ATTRIBUTE WiMAX-RRQ-MN-HA-SPI 20 integer
ATTRIBUTE WiMAX-Session-Continue 21 integer
ATTRIBUTE WiMAX-Beginning-Of-Session 22 integer
ATTRIBUTE WiMAX-IP-Technology 23 integer
VALUE WiMAX-IP-Technology Reserved-0 0
VALUE WiMAX-IP-Technology Reserved-1 1
VALUE WiMAX-IP-Technology PMIP4 2
VALUE WiMAX-IP-Technology CMIP4 3
VALUE WiMAX-IP-Technology CMIP6 4
VALUE WiMAX-IP-Technology Ethernet-CS 5
ATTRIBUTE WiMAX-Hotline-Indicator 24 string
ATTRIBUTE WiMAX-Prepaid-Indicator 25 byte
ATTRIBUTE WiMAX-PDFID 26 short
ATTRIBUTE WiMAX-SDFID 27 short
ATTRIBUTE WiMAX-Packet-Flow-Descriptor 28 tlv
BEGIN-TLV WiMAX-Packet-Flow-Descriptor
ATTRIBUTE WiMAX-Packet-Data-Flow-Id 1 short
ATTRIBUTE WiMAX-Service-Data-Flow-Id 2 short
ATTRIBUTE WiMAX-Service-Profile-Id 3 integer
ATTRIBUTE WiMAX-Direction 4 byte
VALUE WiMAX-Direction Reserved-0 0
VALUE WiMAX-Direction Uplink 1
VALUE WiMAX-Direction Downlink 2
VALUE WiMAX-Direction Bi-Directional 3
ATTRIBUTE WiMAX-Activation-Trigger 5 byte #
bitmap
ATTRIBUTE WiMAX-Transport-Type 6 byte
VALUE WiMAX-Transport-Type Reserved-0 0
VALUE WiMAX-Transport-Type IPv4-CS 1
VALUE WiMAX-Transport-Type IPv6-CS 2
VALUE WiMAX-Transport-Type Ethernet 3
ATTRIBUTE WiMAX-Uplink-QOS-Id 7 byte
ATTRIBUTE WiMAX-Downlink-QOS-Id 8 byte
ATTRIBUTE WiMAX-Uplink-Classifier 9 string
ATTRIBUTE WiMAX-Downlink-Classifier 10 string
ATTRIBUTE WiMAX-Classifier 11 tlv
BEGIN-TLV WiMAX-Classifier
ATTRIBUTE WiMAX-ClassifierID 1
integer
ATTRIBUTE WiMAX-Classifer-Priority 2 integer
ATTRIBUTE WiMAX-Classifer-Protocol 3 integer
ATTRIBUTE WiMAX-Classifer-Direction 4 byte
VALUE WiMAX-Classifer-Direction Reserved-0
0
VALUE WiMAX-Classifer-Direction IN
1
VALUE WiMAX-Classifer-Direction OUT
2
VALUE WiMAX-Classifer-Direction Bi-Directional 3
VALUE WiMAX-Classifer-Direction FF
4
ATTRIBUTE WiMAX-Source-Specification 5 tlv
BEGIN-TLV WiMAX-Source-Specification
ATTRIBUTE WiMAX-Source-IPAddress 1
ipaddr
ATTRIBUTE WiMAX-Source-IPAddressRange 2
combo-ip
ATTRIBUTE WiMAX-Source-IPAddressMask 3
octets
ATTRIBUTE WiMAX-Source-Port
4 octets
ATTRIBUTE WiMAX-Source-Port-Range 5
octets
ATTRIBUTE WiMAX-Source-Inverted 6
octets
ATTRIBUTE WiMAX-Source-Assigned 7
octets
END-TLV WiMAX-Source-Specification
ATTRIBUTE WiMAX-Destination-Specification 6 tlv
BEGIN-TLV WiMAX-Destination-Specification
ATTRIBUTE WiMAX-Destination-IPAddress
1 ipaddr
ATTRIBUTE WiMAX-Destination-IPAddressRange 2
combo-ip
ATTRIBUTE WiMAX-Destination-IPAddressMask 3
octets
ATTRIBUTE WiMAX-Destination-Port
4 octets
ATTRIBUTE WiMAX-Destination-Port-Range 5
octets
ATTRIBUTE WiMAX-Destination-Inverted
6 octets
ATTRIBUTE WiMAX-Destination-Assigned
7 octets
END-TLV WiMAX-Destination-Specification
ATTRIBUTE WiMAX-IP-TOS/DSCP-Range-and-Mask 7 octets
ATTRIBUTE WiMAX-VLAN-ID 8
integer
ATTRIBUTE WiMAX-802.1p 9
octets
END-TLV WiMAX-Classifier
END-TLV WiMAX-Packet-Flow-Descriptor
ATTRIBUTE WiMAX-QoS-Descriptor 29 tlv
BEGIN-TLV WiMAX-QoS-Descriptor
ATTRIBUTE WiMAX-QoS-Id 1 byte
ATTRIBUTE WiMAX-Global-Service-Class-Name 2 string # 6
octets
ATTRIBUTE WiMAX-Service-Class-Name 3 string
ATTRIBUTE WiMAX-Schedule-Type 4 byte
ATTRIBUTE WiMAX-Traffic-Priority 5 byte
ATTRIBUTE WiMAX-Maximum-Sustained-Traffic-Rate 6 integer
ATTRIBUTE WiMAX-Minimum-Reserved-Traffic-Rate 7 integer
ATTRIBUTE WiMAX-Maximum-Traffic-Burst 8 integer
ATTRIBUTE WiMAX-Tolerated-Jitter 9 integer
ATTRIBUTE WiMAX-Maximum-Latency 10 integer
ATTRIBUTE WiMAX-Reduced-Resources-Code 11 byte
ATTRIBUTE WiMAX-Media-Flow-Type 12 byte
ATTRIBUTE WiMAX-Unsolicited-Grant-Interval 13 short
ATTRIBUTE WiMAX-SDU-Size 14 short
ATTRIBUTE WiMAX-Unsolicited-Polling-Interval 15 short
ATTRIBUTE WiMAX-Media-Flow-Description-SDP 16 string
ATTRIBUTE WiMAX-R3-IF-Descriptor 17 tlv
BEGIN-TLV WiMAX-R3-IF-Descriptor
ATTRIBUTE WiMAX-R3-IF-Name 1
string
ATTRIBUTE WiMAX-R3-IF-ID 2
octets
# ATTRIBUTE WiMAX-PDFID
3 short
ATTRIBUTE WiMAX-IPv4-addr 4
ipaddr
ATTRIBUTE WiMAX-IPv4-Netmask 5
ipaddr
ATTRIBUTE WiMAX-DGW-IPv4-addr 6
ipaddr
END-TLV WiMAX-R3-IF-Descriptor
ATTRIBUTE WiMAX-DHCP-Option 18
tlv
BEGIN-TLV WiMAX-DHCP-Option
ATTRIBUTE WiMAX-Ref-R3-IF-Name 1
string
ATTRIBUTE WiMAX-DHCP-Option-Container 2
string
END-TLV WiMAX-DHCP-Option
VALUE WiMAX-Schedule-Type Best-Effort 2
VALUE WiMAX-Schedule-Type nrtPS 3
VALUE WiMAX-Schedule-Type rtPS 4
VALUE WiMAX-Schedule-Type Extended-rtPS 5
VALUE WiMAX-Schedule-Type UGS 6
VALUE WiMAX-Media-Flow-Type VoIP 1
VALUE WiMAX-Media-Flow-Type Robust-Browser 2
VALUE WiMAX-Media-Flow-Type Secure-Browser-VPN 3
VALUE WiMAX-Media-Flow-Type Streaming-Video 4
VALUE WiMAX-Media-Flow-Type Streaming-Live-TV 5
VALUE WiMAX-Media-Flow-Type Music-Photo-Download 6
VALUE WiMAX-Media-Flow-Type Multi-Player-Gaming 7
VALUE WiMAX-Media-Flow-Type Location-Based-Services 8
VALUE WiMAX-Media-Flow-Type Text-Audio-Books 9
VALUE WiMAX-Media-Flow-Type Video-Conversation 10
VALUE WiMAX-Media-Flow-Type Message 11
VALUE WiMAX-Media-Flow-Type Control 12
VALUE WiMAX-Media-Flow-Type Data 13
END-TLV WiMAX-QoS-Descriptor
ATTRIBUTE WiMAX-Uplink-Granted-QoS 30 string
ATTRIBUTE WiMAX-Control-Packets-In 31 integer
ATTRIBUTE WiMAX-Control-Octets-In 32 integer
ATTRIBUTE WiMAX-Control-Packets-Out 33 integer
ATTRIBUTE WiMAX-Control-Octets-Out 34 integer
ATTRIBUTE WiMAX-PPAC 35 tlv
BEGIN-TLV WiMAX-PPAC
ATTRIBUTE WiMAX-Available-In-Client 1 integer
# Really a bitmap
VALUE WiMAX-Available-In-Client Volume-Metering 1
VALUE WiMAX-Available-In-Client Duration-Metering 2
VALUE WiMAX-Available-In-Client Resource-Metering 4
VALUE WiMAX-Available-In-Client Pools 8
VALUE WiMAX-Available-In-Client Rating-Groups 0x10
VALUE WiMAX-Available-In-Client Multi-Services 0x20
VALUE WiMAX-Available-In-Client Tariff-Switch 0x40
END-TLV WiMAX-PPAC
ATTRIBUTE WiMAX-Session-Termination-Capability 36 integer
# Really a bitmap
VALUE WiMAX-Session-Termination-Capability Dynamic-Authorization 1
ATTRIBUTE WiMAX-PPAQ 37 tlv
BEGIN-TLV WiMAX-PPAQ
ATTRIBUTE WiMAX-PPAQ-Quota-Identifier 1 octets
ATTRIBUTE WiMAX-Volume-Quota 2 integer #kb
ATTRIBUTE WiMAX-Volume-Threshold 3 integer #kb
ATTRIBUTE WiMAX-Duration-Quota 4 integer #s
ATTRIBUTE WiMAX-Duration-Threshold 5 integer #s
ATTRIBUTE WiMAX-Resource-Quota 6 integer
ATTRIBUTE WiMAX-Resource-Threshold 7 integer
ATTRIBUTE WiMAX-Update-Reason 8 integer
ATTRIBUTE WiMAX-Prepaid-Server 9 combo-ip
ATTRIBUTE WiMAX-Service-Id 10 string
ATTRIBUTE WiMAX-Rating-Group-Id 11 integer
ATTRIBUTE WiMAX-Termination-Action 12 byte
ATTRIBUTE WiMAX-Pool-Id 13 integer
ATTRIBUTE WiMAX-Pool-Multiplier 14 integer
ATTRIBUTE WiMAX-Requested-Action 15 byte
ATTRIBUTE WiMAX-Check-Balance-Result 16 byte
#
# 4 octets - integer representing 1/10's of lowest currency (e.g. cents)
# 4 octets - currency code as in ISO-4217
# 1+ - UTF8 string containing text like "cost is $1 per minute"
#
ATTRIBUTE WiMAX-Cost-Information-AVP 17 octets
VALUE WiMAX-Update-Reason Pre-Initialization 1
VALUE WiMAX-Update-Reason Initial-Request 2
VALUE WiMAX-Update-Reason Threshold-Reached 3
VALUE WiMAX-Update-Reason Quota-Reached 4
VALUE WiMAX-Update-Reason TITSU-Approaching 5
VALUE WiMAX-Update-Reason Remote-Forced-Disconnect 6
VALUE WiMAX-Update-Reason Client-Service-Termination 7
VALUE WiMAX-Update-Reason Access-Service-Terminated 8
VALUE WiMAX-Update-Reason Service-Not-Established 9
VALUE WiMAX-Update-Reason One-Time-Charging 10
VALUE WiMAX-Termination-Action Terminate 1
VALUE WiMAX-Termination-Action Request-More-Quota 2
VALUE WiMAX-Termination-Action Redirect-Or-Filter 3
VALUE WiMAX-Requested-Action Balance-Check 1
VALUE WiMAX-Requested-Action Price-Enquiry 2
END-TLV WiMAX-PPAQ
ATTRIBUTE WiMAX-Prepaid-Tariff-Switching 38 tlv
BEGIN-TLV WiMAX-Prepaid-Tariff-Switching
ATTRIBUTE WiMAX-Prepaid-Quota-Identifier 1 string
ATTRIBUTE WiMAX-Volume-Used-After 2 integer #1k
ATTRIBUTE WiMAX-Tariff-Switch-Interval 3 integer #s
ATTRIBUTE WiMAX-Time-Interval-After 4 integer #s
END-TLV WiMAX-Prepaid-Tariff-Switching
ATTRIBUTE WiMAX-Active-Time-Duration 39 integer
ATTRIBUTE WiMAX-DHCP-RK 40 octets
encrypt=2
ATTRIBUTE WiMAX-DHCP-RK-Key-Id 41 integer
ATTRIBUTE WiMAX-DHCP-RK-Lifetime 42 integer
ATTRIBUTE WiMAX-DHCP-Msg-Server-IP 43 ipaddr
ATTRIBUTE WiMAX-Idle-Mode-Transition 44 byte
ATTRIBUTE WiMAX-NAP-Id 45 octets
# 3 octets of NAP Id
# 3 octets of base-station Id
ATTRIBUTE WiMAX-BS-Id 46 octets
ATTRIBUTE WiMAX-Location 47 octets
# Number of times Acct-Input-Packets rolled over 2^32.
ATTRIBUTE WiMAX-Acct-Input-Packets-Gigaword 48 integer
ATTRIBUTE WiMAX-Acct-Output-Packets-Gigaword 49 integer
# Formatted as per IP Filter rule specification.
ATTRIBUTE WiMAX-Uplink-Flow-Description 50 string
ATTRIBUTE WiMAX-Blu-Coa-IPv6 51 ipv6addr
ATTRIBUTE WiMAX-DNS-Server 52 combo-ip
ATTRIBUTE WiMAX-Hotline-Profile-Id 53 string
# Formatted as per IP Filter rule specification.
ATTRIBUTE WiMAX-HTTP-Redirection-Rule 54 string
# Formatted as per IP Filter rule specification.
ATTRIBUTE WiMAX-IP-Redirection-Rule 55 string
ATTRIBUTE WiMAX-Hotline-Session-Timer 56 integer
# 3 octets
ATTRIBUTE WiMAX-NSP-Id 57 octets
ATTRIBUTE WiMAX-HA-RK-Key-Requested 58 integer
VALUE WiMAX-HA-RK-Key-Requested No 0
VALUE WiMAX-HA-RK-Key-Requested Yes 1
ATTRIBUTE WiMAX-Count-Type 59 byte
ATTRIBUTE WiMAX-DM-Action-Code 60 integer
VALUE WiMAX-DM-Action-Code Deregister-MS 0
VALUE WiMAX-DM-Action-Code Suspend-MS-Traffic 1
VALUE WiMAX-DM-Action-Code Suspend-User-Traffic 2
VALUE WiMAX-DM-Action-Code Resume-Traffic 3
VALUE WiMAX-DM-Action-Code MS-Terminate 4
VALUE WiMAX-DM-Action-Code MS-Idle 5
VALUE WiMAX-DM-Action-Code MS-Completed-IPv6-Handover 6
VALUE WiMAX-DM-Action-Code BS-Sends-RES-Cmd 0xffff
# FA-RK-SPI = SPI-CMIP4 = MIP-SPI
ATTRIBUTE WiMAX-FA-RK-SPI 61 integer
# Formatted as per IP Filter rule specification.
ATTRIBUTE WiMAX-Downlink-Flow-Description 62 string
# Same as QoS-Descriptor... dang.
ATTRIBUTE WiMAX-Downlink-Granted-QoS 63 tlv
# More MIP keys, calculated as above... but in different packets.
# Why, oh why?
ATTRIBUTE WiMAX-vHA-IP-MIP4 64 ipaddr
ATTRIBUTE WiMAX-vHA-IP-MIP6 65 ipv6addr
ATTRIBUTE WiMAX-vHA-MIP4-Key 66 octets
encrypt=2
ATTRIBUTE WiMAX-vHA-RK-Key 67 octets
encrypt=2
ATTRIBUTE WiMAX-vHA-RK-SPI 68 integer
ATTRIBUTE WiMAX-vHA-RK-Lifetime 69 integer
ATTRIBUTE WiMAX-MN-vHA-MIP6-Key 70 octets
encrypt=2
ATTRIBUTE WiMAX-MN-vHA-MIP4-SPI 71 integer
ATTRIBUTE WiMAX-MN-vHA-MIP6-SPI 72 integer
ATTRIBUTE WiMAX-vDHCPv4-Server 73 ipaddr
ATTRIBUTE WiMAX-vDHCPv6-Server 74 ipv6addr
ATTRIBUTE WiMAX-vDHCP-RK 75 octets
encrypt=2
ATTRIBUTE WiMAX-vDHCP-RK-Key-ID 76 integer
ATTRIBUTE WiMAX-vDHCP-RK-Lifetime 77 integer
-----Original Message-----
From: Alan DeKok [mailto:aland at deployingradius.com]
Sent: Friday, January 14, 2011 5:43 PM
To: David Peterson-WirelessConnections; FreeRadius users mailing list
Subject: Re: Sub-TLV's
David Peterson wrote:
> Let me append this (with corrected proper syntax), the issue is not
> one sub-tlv but one sub and one sub-sub-tlv
>
> ATTRIBUTE TLV-1 1 tlv
> BEGIN-TLV TLV-1
> ATTRIBUTE SUBTLV1 1 tlv
> BEGIN-TLV SUBTLV1
> ATTRIBUTE SUB-SUB-TLV 1 tlv
> BEGIN-TLV SUB-SUB-TLV1
> END-TLV SUB-SUB-TLV
> END-TLV SUBTLV1
> END-TLV TLV1
Sub-TLVs are only supported for WiMAX.
If you're updating a WiMAX dictionary, post it here so everyone else can
use it.
If it's a secret dictionary that you're not willing to share, then we have
no reason to share, either. Go fix it yourself.
Alan DeKok.
More information about the Freeradius-Users
mailing list