# -*- text -*-
# Copyright (C) 2019 The FreeRADIUS Server project and contributors
# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
#
##############################################################################
#
#	This is a WiMAX dictionary for the WiChorus line of products.
#	It is NOT compatible with the normal WiMAX dictionary.
#	It CANNOT be used at the same time as the normal WiMAX dictionary.
#
##############################################################################
#
#	$Id: aa2e3d36bc374c5579eff86a02528faca2e78aad $
#
##############################################################################

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
ATTRIBUTE	WiMAX-Packet-Flow-Descriptor-Capabilities 5	byte
# Role of 6/7 swapped vs definition in WMF R015v01
ATTRIBUTE	WiMAX-ASN-Network-Service-Capabilities	6	integer
ATTRIBUTE	WiMAX-Authorized-IP-Services		7	integer

# 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

# v2 also implies support for v1
VALUE	WiMAX-Packet-Flow-Descriptor-Capabilities v1		1
VALUE	WiMAX-Packet-Flow-Descriptor-Capabilities v2		2

# This is really a bitmap.
# For Wichorus gateway this is used to
# indicate functionality supported by the ASN-GW. In WMF R015V01
# this is sub-tlv 7 with the same functionality. Sub-tlv 6 is a
# similar and used to indicate services the ASN is authorized to
# support for the subscriber (see sub-tlv 7 for Wichorus' version)
# Wichorus' implementation is also shifted left one bit...
VALUE	WiMAX-ASN-Network-Service-Capabilities DHCPv4-Relay	2
VALUE	WiMAX-ASN-Network-Service-Capabilities DHCPv6-Relay	4
VALUE	WiMAX-ASN-Network-Service-Capabilities DHCPv4-Proxy	8
VALUE	WiMAX-ASN-Network-Service-Capabilities DHCPv6-Proxy	16
VALUE	WiMAX-ASN-Network-Service-Capabilities FA		32
VALUE	WiMAX-ASN-Network-Service-Capabilities PMIP-Client	64
# ... plus additional, but these are the only relevant ones for now

# This is really a bitmap
# Proprietary definition of supported services. Used by the AAA to
# indicate which services the ASN is allowed to support for the MS
VALUE	WiMAX-Authorized-IP-Services	CMIPv4			1
VALUE	WiMAX-Authorized-IP-Services	PMIPv4			2
VALUE	WiMAX-Authorized-IP-Services	SimpleIPv4		4

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

#  Calculation is the same as MN-HA-CMIP4, etc.
#  With CMIP the MN may not know the appropriate HA IP address when calculating
#  the MIP RRQ AE (IPv4) or during a BU (IPv6). In this case it must either use an
#  old known HA IP address or can indicate whether dynamic HA assignment from the
#  hCSN is preferred to the vCSN, or if there is no preference by providing
#  ALL-ZERO-ONE-ADDR (255.255.255.255/0.0.0.0 respectively) in the MIP RRQ sent
#  to the FA. The RRQ-MN-HA key is calculated using this RRQ-HA-IP address and is
#  required by the HA to validate the MIP RRQ received from the MS as it does
#  not contain the actual HA IP address.
ATTRIBUTE	WiMAX-RRQ-HA-IP				18	combo-ip
ATTRIBUTE	WiMAX-RRQ-MN-HA-Key			19	octets encrypt=2

ATTRIBUTE	WiMAX-Time-Of-Day-Time			20	tlv

BEGIN-TLV WiMAX-Time-Of-Day-Time
ATTRIBUTE	WiMAX-Hour				1	byte
ATTRIBUTE	WiMAX-Minute				2	byte
ATTRIBUTE	WiMAX-UTC-Offset			3	integer
END-TLV WiMAX-Time-Of-Day-Time

ATTRIBUTE	WiMAX-Session-Continue			21	integer

VALUE	WiMAX-Session-Continue		False			0
VALUE	WiMAX-Session-Continue		True			1

ATTRIBUTE	WiMAX-Beginning-Of-Session		22	integer

VALUE	WiMAX-Beginning-Of-Session	False			0
VALUE	WiMAX-Beginning-Of-Session	True			1

#  This is pulled from WMF R015v01 - because our ASN-GW supports Simple IP and a
#  simple way to denote this was needed without building in a lot of private
#  logic that would one day simply be replaced by this logic anyway.
#  Note: Attribute renamed in Release 1.5 to Network-Technology. Maintain the
#  old name here to allow for better backwards compatibility.
ATTRIBUTE	WiMAX-IP-Technology			23	integer

VALUE	WiMAX-IP-Technology		Simple-IPv4		0
VALUE	WiMAX-IP-Technology		Simple-IPv6		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
VALUE	WiMAX-IP-Technology		Simple-ETH		6
VALUE	WiMAX-IP-Technology		MIP-Based-ETH		7
VALUE	WiMAX-IP-Technology		PMIP6			8

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

# This is really a bitmap
VALUE	WiMAX-Activation-Trigger	Reserved-0		0
VALUE	WiMAX-Activation-Trigger	Provisioned		1
VALUE	WiMAX-Activation-Trigger	Admit			2
VALUE	WiMAX-Activation-Trigger	Activate		4
VALUE	WiMAX-Activation-Trigger	Dynamically-Changeable	8

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-Paging-Preference			11	byte		# Single bit, value => refer to 802.16e section 11.13.30
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

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

# Same as QoS-Descriptor... used only in interim and stop records for
# flow based accounting.
ATTRIBUTE	WiMAX-Uplink-Granted-QoS		30	tlv		# UPDATED - WAS 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-BU-CoA-IPv6			51	ipv6addr		# Updated
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

# WiMAX-HA-RK-Requested has been removed from WMF Release 1.3 and later.
# However the attribute has not been replaced so this is left to preserve
# backward compatibility. This attribute is deprecated and will be removed.
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... used only in flow based accounting.
ATTRIBUTE	WiMAX-Downlink-Granted-QoS		63	tlv

# More MIP keys, calculated as above... but in different packets.
# In a roaming scenario both the vAAA and the hAAA can provide a HA
# and related key context, as well as DHCP server information to the ASN-GW.
# These attributes are used by the vCSN.
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

# About 10 more attributes in 1.3

END-VENDOR	WiMAX
