# Fixme should be broken out into separate RFCs
$INCLUDE dictionary.rfc2131
$INCLUDE dictionary.rfc2241
+$INCLUDE dictionary.rfc2242
+$INCLUDE dictionary.rfc2485
+$INCLUDE dictionary.rfc2563
$INCLUDE dictionary.rfc2610
+$INCLUDE dictionary.rfc2937
$INCLUDE dictionary.rfc3004
+$INCLUDE dictionary.rfc3011
+$INCLUDE dictionary.rfc3046
$INCLUDE dictionary.rfc3118
+$INCLUDE dictionary.rfc3361
$INCLUDE dictionary.rfc3397
$INCLUDE dictionary.rfc3442
+$INCLUDE dictionary.rfc3495
+$INCLUDE dictionary.rfc3679
+$INCLUDE dictionary.rfc3925
+$INCLUDE dictionary.rfc4039
$INCLUDE dictionary.rfc4280
+$INCLUDE dictionary.rfc4388
$INCLUDE dictionary.rfc4578
+$INCLUDE dictionary.rfc4174
$INCLUDE dictionary.rfc4702
$INCLUDE dictionary.rfc4776
$INCLUDE dictionary.rfc4833
$INCLUDE dictionary.rfc5223
$INCLUDE dictionary.rfc5417
$INCLUDE dictionary.rfc5678
+$INCLUDE dictionary.rfc5859
$INCLUDE dictionary.rfc5969
$INCLUDE dictionary.rfc5986
$INCLUDE dictionary.rfc6011
# e.g. MAC address. It's up to the administrator to make sense of
# the value. We can't do anything more in the parser.
ATTRIBUTE Client-Identifier 61 octets
-ATTRIBUTE Netware-Domain-Name 62 octets
-ATTRIBUTE Netware-Sub-Options 63 octets
ATTRIBUTE NIS-Client-Domain-Name 64 octets
ATTRIBUTE NIS-Server-Address 65 ipaddr
ATTRIBUTE TFTP-Server-Name 66 string
ATTRIBUTE StreetTalk-Server-Address 75 ipaddr array
ATTRIBUTE STDA-Server-Address 76 ipaddr array
-# Rapid Commit
-ATTRIBUTE Rapid-Commit 80 bool encode=exists
-
-# Relay Agent Information
-ATTRIBUTE Relay-Agent-Information 82 tlv
-
-ATTRIBUTE Circuit-Id .1 octets
-ATTRIBUTE Remote-Id .2 octets
-
-# 3 is reserved and shouldn't be used for anything
-ATTRIBUTE Docsis-Device-Class .4 uint32
-ATTRIBUTE Relay-Link-Selection .5 ipaddr
-ATTRIBUTE Subscriber-Id .6 string
-
-# AGH! RADIUS inside of DHCP!
-ATTRIBUTE RADIUS-Attributes 82.7 octets
-
-# Horribly complicated
-ATTRIBUTE Authentication-Information 82.8 octets
-
-#
-# We'll fix this later
-#
-ATTRIBUTE Vendor-Specific-Information 82.9 octets
-
-ATTRIBUTE Relay-Agent-Flags 82.10 uint8
-ATTRIBUTE Server-Identifier-Override 82.11 ipaddr
-
-# Internet Storage Name Service
-ATTRIBUTE iSNS 83 octets
-
-ATTRIBUTE Client-Last-Transaction-Time 91 uint32 # seconds on the past
-
-ATTRIBUTE associated-ip 92 ipaddr array
-
-# Lightweight Directory Access Protocol
-ATTRIBUTE LDAP 95 octets
-
-# Open Group's User Authentication
-ATTRIBUTE User-Auth 98 octets
-
-# NetInfo Parent-Server Address
-ATTRIBUTE Netinfo-Address 112 octets
-# NetInfo Parent-Server Tag
-ATTRIBUTE Netinfo-Tag 113 octets
-# URL
-ATTRIBUTE URL 114 octets
-# DHCP Auto-Configuration
-ATTRIBUTE Auto-Config 116 uint8
-
-# Name Service Search
-#
-# Array of option numbers which should then be used, in order,
-# to search for DNS information.
-#
-ATTRIBUTE Name-Service-Search 117 uint16 array
-
-
-# Subnet Selection Option
-ATTRIBUTE Subnet-Selection-Option 118 ipaddr
-
-# SIP-Servers DHCP Option
-ATTRIBUTE SIP-Servers-Option 120 octets
-
-# CableLabs Client Configuration
-ATTRIBUTE CCC 122 octets
# 16 GeoConf Option
ATTRIBUTE GeoConf-Option 123 octets
-# Vendor Class
-#
-# String name that defines the vendor space used for the TLV's
-# in option 125.
-#
-ATTRIBUTE V-I-Vendor-Class 124 octets
-# Vendor-Specific
-ATTRIBUTE V-I-Vendor-Specific 125 vsa
-
#ATTRIBUTE Etherboot 128 ether
# (for IP Phone software load)
# 144 - 149 unused
-ATTRIBUTE TFTP-Server-IPv4-Address 150 ipaddr array
-
# RFC 3942 - 159-174 - Unassigned
# RFC 3942 - 178-207 - Unassigned
# RFC 3942 - 214-219 - Unassigned
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC2242 - NetWare/IP Domain Name and Information
+#
+# $Id$
+#
+##############################################################################
+
+
+
+#
+# Here, suboptions .1 through .4 are the "following four" suboptions referred
+# to,
+
+ATTRIBUTE Netware-Domain-Name 62 string
+
+ATTRIBUTE Netware-Sub-Options 63 tlv
+# From RFC2242:
+#
+# One and only one of the following four sub-options must be the first
+# sub-option to be present in option 63 encoding. Each of them is
+# simply a type length pair with length set to zero....
+#
+ATTRIBUTE NWIP-Does-Not-Exist .1 octets
+ATTRIBUTE NWIP-Exist-In-Options-Area .2 octets
+ATTRIBUTE NWIP-Exist-In-Same-File .3 octets
+ATTRIBUTE NWIP-Exist-But-Too-Big .4 octets
+# Also from RFC2242:
+#
+# If either NWIP_EXIST_IN_OPTIONS_AREA or NWIP_EXIST_IN_SNAME_FILE
+# sub-options is set, one or more of the following sub-options may be
+# present.
+#
+ATTRIBUTE NSQ-Broadcast .5 bool
+ATTRIBUTE Preferred-DSS .6 ipaddr array
+ATTRIBUTE Nearest-NWIP-Server .7 ipaddr array
+ATTRIBUTE Autoretries .8 uint8
+ATTRIBUTE Autoretry-Secs .9 uint8
+ATTRIBUTE NWIP-1-1 .10 bool
+ATTRIBUTE Primary-DSS .11 ipaddr
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC2485 - DHCP Option for The Open Group's User Authentication Protocol
+#
+# $Id$
+#
+##############################################################################
+
+# Open Group's User Authentication
+ATTRIBUTE User-Auth 98 string # space-separated list of URLs
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC2563 - DHCP Option to Disable Stateless Auto-Configuration in IPv4
+# Clients
+#
+# $Id$
+#
+##############################################################################
+
+# DHCP Auto-Configuration
+ATTRIBUTE Auto-Config 116 bool
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC2937 - The Name Service Search Option for DHCP
+#
+# $Id$
+#
+##############################################################################
+
+# Name Service Search
+#
+# Array of option numbers which should then be used, in order,
+# to search for DNS information.
+#
+ATTRIBUTE Name-Service-Search 117 uint16 array
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC3011 - The IPv4 Subnet Selection Option for DHCP
+#
+# $Id$
+#
+##############################################################################
+
+# Subnet Selection Option
+ATTRIBUTE Subnet-Selection-Option 118 ipaddr
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC3046 - DHCP Relay Agent Information Option
+# RFC3256 - The DOCSIS (Data-Over-Cable Service Interface Specifications)
+# Device Class DHCP (Dynamic Host Configuration Protocol) Relay
+# Agent Information Sub-option
+# RFC5010 - The Dynamic Host Configuration Protocol Version 4 (DHCPv4)
+# Relay Agent Flags Suboption
+#
+# $Id$
+#
+##############################################################################
+
+# Relay Agent Information
+ATTRIBUTE Relay-Agent-Information 82 tlv
+
+ATTRIBUTE Circuit-Id .1 octets
+ATTRIBUTE Remote-Id .2 octets
+
+# 3 is reserved and shouldn't be used for anything
+ATTRIBUTE Docsis-Device-Class .4 uint32
+ATTRIBUTE Relay-Link-Selection .5 ipaddr
+ATTRIBUTE Subscriber-Id .6 string
+
+# AGH! RADIUS inside of DHCP!
+ATTRIBUTE RADIUS-Attributes 82.7 octets
+
+# Horribly complicated
+ATTRIBUTE Authentication-Information 82.8 octets
+
+#
+# We'll fix this later
+#
+ATTRIBUTE Vendor-Specific-Information 82.9 octets
+
+ATTRIBUTE Relay-Agent-Flags 82.10 uint8
+ATTRIBUTE Server-Identifier-Override 82.11 ipaddr
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC3361 - Dynamic Host Configuration Protocol (DHCP-for-IPv4) Option for
+# Session Initiation Protocol (SIP) Servers
+#
+# $Id$
+#
+##############################################################################
+
+# SIP-Servers DHCP Option
+ATTRIBUTE SIP-Servers-Option 120 string dns_label,array
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC3495 - Dynamic Host Configuration Protocol (DHCP) Option for
+# CableLabs Client Configuration
+#
+# $Id$
+#
+##############################################################################
+
+# CableLabs Client Configuration
+ATTRIBUTE CCC 122 tlv
+ATTRIBUTE Primary-DHCP-Server .1 ipaddr
+ATTRIBUTE Secondary-DHCP-Server .2 ipaddr
+ATTRIBUTE AS-Backoff-and-Retry .4 struct
+MEMBER Nominal-Timeout uint32
+MEMBER Maximum-Timeout uint32
+MEMBER Maximum-Retries uint32
+ATTRIBUTE AP-Backoff-and-Retry .5 struct
+MEMBER Nominal-Timeout uint32
+MEMBER Maximum-Timeout uint32
+MEMBER Maximum-Retries uint32
+ATTRIBUTE Kerberos-Realm-Name .6 string
+ATTRIBUTE Ticket-Granting-Server-Utilization .7 bool
+ATTRIBUTE Provisioning-Timer-Value .8 uint8
+# Is there a way to mark the end of nested tlv/struct?
+ATTRIBUTE Provisioning-Server .3 tlv
+ATTRIBUTE FQDN .0 string
+ATTRIBUTE Address .1 ipaddr
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC3679 - Unused Dynamic Host Configuration Protocol (DHCP) Option Codes
+#
+# $Id$
+#
+##############################################################################
+
+# RFC 3679 3.2 says about these attributes:
+#
+# The following option codes are used by devices from Apple Computer.
+# However, none of these option codes have been described in a
+# published RFC.
+#
+# The DHC WG will endeavor to have specifications for these options
+# published.
+
+# Lightweight Directory Access Protocol
+ATTRIBUTE LDAP 95 octets
+# NetInfo Parent-Server Address
+ATTRIBUTE Netinfo-Address 112 octets
+# NetInfo Parent-Server Tag
+ATTRIBUTE Netinfo-Tag 113 octets
+# URL
+ATTRIBUTE URL 114 octets
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC3925 - Vendor-Identifying Vendor Options for Dynamic Host Configuration
+# Protocol version 4 (DHCPv4)
+#
+# $Id$
+#
+##############################################################################
+
+# Vendor Class
+#
+# String name that defines the vendor space used for the TLV's
+# in option 125.
+#
+ATTRIBUTE V-I-Vendor-Class 124 octets
+# Vendor-Specific
+ATTRIBUTE V-I-Vendor-Specific 125 vsa
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC4039 - Rapid Commit Option for the Dynamic Host Configuration Protocol
+# version 4 (DHCPv4)
+#
+# $Id$
+#
+##############################################################################
+
+# Rapid Commit
+ATTRIBUTE Rapid-Commit 80 bool encode=exists
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC4174 - The IPv4 Dynamic Host Configuration Protocol (DHCP) Option
+# for the Internet Storage Name Service
+#
+# $Id$
+#
+##############################################################################
+
+# Internet Storage Name Service
+ATTRIBUTE iSNS 83 struct
+# RFC 4174 describes the iSNS functions field as follows:
+#
+# 0 1 1
+# 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+# | RESERVED |S|A|E|
+# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+#
+# Bit Field Significance
+# --------- ------------
+# 15 Function Fields Enabled
+# 14 DD-Based Authorization
+# 13 Security Policy Distribution
+#
+MEMBER Functions-Reserved bit[13]
+MEMBER Security-Policy-Distribution bit[1]
+MEMBER DD-Based-Authorization bit[1]
+MEMBER Function-Fields-Enabled bit[1]
+#
+# The format of the DD Access Field:
+#
+# 0 1 1 1 1 1 1
+# 0 ... 9 0 1 2 3 4 5
+# +---+---+---+---+---+---+---+---+---+
+# | RESERVED | if| tf| is| ts| C | E |
+# +---+---+---+---+---+---+---+---+---+
+#
+# Bit Field Significance
+# --------- ------------
+# 15 Enabled
+# 14 Control Node
+# 13 iSCSI Target
+# 12 iSCSI Initiator
+# 11 iFCP Target Port
+# 10 iFCP Initiator Port
+#
+MEMBER DD-Access-Reserved bit[10]
+MEMBER iFCP-Initiator-Port bit[1]
+MEMBER iFCP-Target-Port bit[1]
+MEMBER iSCSI-Initiator bit[1]
+MEMBER iSCSI-Target bit[1]
+MEMBER Control-Node bit[1]
+MEMBER DD-Access-Enabled bit[1]
+#
+# The format of the Administrative Flags field:
+#
+# 0 1 1
+# 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+# | RESERVED |D|M|H|E|
+# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+#
+# Bit Field Significance
+# --------- ------------
+# 15 Enabled
+# 14 Heartbeat
+# 13 Management SCNs
+# 12 Default Discovery Domain
+#
+MEMBER Administrative-Flags-Reserved bit[12]
+MEMBER Default-Discovery-Domain bit[1]
+MEMBER Management-SCNs bit[1]
+MEMBER Heartbeat bit[1]
+MEMBER Administrative-Flags-Enabled bit[1]
+#
+# The format of the Server Security bitmap:
+#
+# 0 1 2 3
+# 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+# | RESERVED |T|X|P|A|M|S|E|
+# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+#
+# Bit Field Significance
+# --------- ----------------
+# 31 Enabled
+# 30 IKE/IPSec
+# 29 Main Mode
+# 28 Aggressive Mode
+# 27 PFS
+# 26 Transport Mode
+# 25 Tunnel Mode
+#
+MEMBER Server-Security-Reserved bit[25]
+MEMBER Tunnel-Mode bit[1]
+MEMBER Transport-Mode bit[1]
+MEMBER PFS bit[1]
+MEMBER Aggressive-Mode bit[1]
+MEMBER Main-Mode bit[1]
+MEMBER IKE/IPSec bit[1]
+MEMBER Server-Security-Enabled bit[1]
+#
+# RFC 4174 describes the last portion of iSNS as follows:
+#
+# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+# | a1 | a2 | a3 | a4 |
+# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+# | b1 | b2 | b3 | b4 |
+# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+# | . . . . |
+# | Additional Secondary iSNS Servers |
+# | . . . . |
+# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+#
+# with the presence and semantics of a1-a4 and b1-b4 depending on
+# the setting of Heartbeat (see the Administrative Flags field above).
+# For now, we simply have an ipaddr array.
+#
+MEMBER IP-Addresses ipaddr array
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC4388 - Dynamic Host Configuration Protocol (DHCP) Leasequery
+#
+# $Id$
+#
+##############################################################################
+
+ATTRIBUTE Client-Last-Transaction-Time 91 uint32 # seconds on the past
+ATTRIBUTE associated-ip 92 ipaddr array
--- /dev/null
+# -*- text -*-
+# Copyright (C) 2022 The FreeRADIUS Server project and contributors
+# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
+# Version $Id$
+##############################################################################
+#
+# RFC5859 - TFTP Server Address Option for DHCPv4
+#
+# $Id$
+#
+##############################################################################
+
+ATTRIBUTE TFTP-Server-IPv4-Address 150 ipaddr array