# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
# Version $Id$
#
-# The FreeRADIUS Extended-Vendor-Specific-5 dictionary.
+# The FreeRADIUS Vendor-Specific dictionary.
#
# Version: $Id$
#
-BEGIN-VENDOR FreeRADIUS parent=.Extended-Attribute-5.Extended-Vendor-Specific-5
+BEGIN-VENDOR FreeRADIUS parent=.Extended-Attribute-5.Vendor-Specific
#
# The next two attributes are for sending EAPoL keys to a RADIUS server.
END-VENDOR FreeRADIUS
-ALIAS FreeRADIUS-EV5 Extended-Attribute-5.Extended-Vendor-Specific-5.FreeRADIUS
+ALIAS FreeRADIUS-EV5 Extended-Attribute-5.Vendor-Specific.FreeRADIUS
#
#
ATTRIBUTE Extended-Attribute-1 241 tlv extended
+ATTRIBUTE Vendor-Specific .26 vsa
+ALIAS Extended-Vendor-Specific-1 Vendor-Specific
+
ATTRIBUTE Extended-Attribute-2 242 tlv extended
+ATTRIBUTE Vendor-Specific .26 vsa
+ALIAS Extended-Vendor-Specific-2 Vendor-Specific
+
ATTRIBUTE Extended-Attribute-3 243 tlv extended
+ATTRIBUTE Vendor-Specific .26 vsa
+ALIAS Extended-Vendor-Specific-3 Vendor-Specific
+
ATTRIBUTE Extended-Attribute-4 244 tlv extended
+ATTRIBUTE Vendor-Specific .26 vsa
+ALIAS Extended-Vendor-Specific-4 Vendor-Specific
+
ATTRIBUTE Extended-Attribute-5 245 tlv long_extended
+ATTRIBUTE Vendor-Specific .26 vsa
+ALIAS Extended-Vendor-Specific-5 Vendor-Specific
+
ATTRIBUTE Extended-Attribute-6 246 tlv long_extended
+ATTRIBUTE Vendor-Specific .26 vsa
+ALIAS Extended-Vendor-Specific-6 Vendor-Specific
-ATTRIBUTE Extended-Vendor-Specific-1 241.26 vsa
-ATTRIBUTE Extended-Vendor-Specific-2 242.26 vsa
-ATTRIBUTE Extended-Vendor-Specific-3 243.26 vsa
-ATTRIBUTE Extended-Vendor-Specific-4 244.26 vsa
-ATTRIBUTE Extended-Vendor-Specific-5 245.26 vsa
-ATTRIBUTE Extended-Vendor-Specific-6 246.26 vsa
#
-# Each "Extended-Vendor-Specific-*" attribute defines its own VSA space.
+# Each "Extended-Attribute-#.Vendor-Specific" attribute defines its own VSA space.
#
# An example of a vendor dictionary is given below (commented out).
#
# In this case, the "Cisco-Foo-Bar" attribute has OID 241.26.9.1
#
-#BEGIN-VENDOR Cisco format=Extended-Vendor-Specific-1
+#BEGIN-VENDOR Cisco format=Extended-Vendor-Specific-1.Vendor-Specific
#ATTRIBUTE Cisco-Foo-Bar 1 uint32
#ATTRIBUTE Cisco-Bar-Baz 2 uint32
#...
Called-Station-Id = '34:ef:b6:af:48:9e:Andrena_39_Lincoln'
Calling-Station-Id = '8a:b3:a0:eb:d5:e5'
NAS-Identifier = '34efb6af489e'
-Extended-Attribute-5.Extended-Vendor-Specific-5.FreeRADIUS.802_1X-Anonce = 0x4df70a4285c5c61f177cdbfc29d7e3cac94167f6101f1bcab420dd50c4f8809d
-Extended-Attribute-5.Extended-Vendor-Specific-5.FreeRADIUS.802_1X-EAPoL-Key-Msg = 0x0203007502010a00100000000000000001c3bb319516614aacfb44e933bf1671131fb1856e5b2721952d414ce3f5aa312b000000000000000000000000000000000000000000000000000000000000000035cddcedad0dfb6a12a2eca55c17c323001630140100000fac040100000fac040100000fac028c00
+Extended-Attribute-5.Vendor-Specific.FreeRADIUS.802_1X-Anonce = 0x4df70a4285c5c61f177cdbfc29d7e3cac94167f6101f1bcab420dd50c4f8809d
+Extended-Attribute-5.Vendor-Specific.FreeRADIUS.802_1X-EAPoL-Key-Msg = 0x0203007502010a00100000000000000001c3bb319516614aacfb44e933bf1671131fb1856e5b2721952d414ce3f5aa312b000000000000000000000000000000000000000000000000000000000000000035cddcedad0dfb6a12a2eca55c17c323001630140100000fac040100000fac040100000fac028c00
# and the response
Packet-Type == Access-Accept
User-Password = 'cae78dfa6504'
Called-Station-Id = '5c:df:89:11:3b:3c:SSID'
Calling-Station-Id = 'ca:e7:8d:fa:65:04'
-Extended-Attribute-5.Extended-Vendor-Specific-5.FreeRADIUS.802_1X-Anonce = 0x43426fd6469d4254eb0d5ba449eb9895360894f1948cece9196751336d4c5daf
-Extended-Attribute-5.Extended-Vendor-Specific-5.FreeRADIUS.802_1X-EAPoL-Key-Msg = 0x0103007502010a00000000000000000001b16a8514b84d7843e53754f5c9131cb203fbe8277dbf216d6e87fd6e30b0577a0000000000000000000000000000000000000000000000000000000000000000dc81aec5a05ee8aa21a52947041fd2fc001630140100000fac040100000fac040100000fac028000
+Extended-Attribute-5.Vendor-Specific.FreeRADIUS.802_1X-Anonce = 0x43426fd6469d4254eb0d5ba449eb9895360894f1948cece9196751336d4c5daf
+Extended-Attribute-5.Vendor-Specific.FreeRADIUS.802_1X-EAPoL-Key-Msg = 0x0103007502010a00000000000000000001b16a8514b84d7843e53754f5c9131cb203fbe8277dbf216d6e87fd6e30b0577a0000000000000000000000000000000000000000000000000000000000000000dc81aec5a05ee8aa21a52947041fd2fc001630140100000fac040100000fac040100000fac028000
Class = 0xd6175aed517504c40b8831d7ce7b7d1fe24c65ce0f92c2816ca14ba7acb47b13
# and the response
Called-Station-Id = '34:ef:b6:af:48:9e:Andrena_39_Lincoln'
Calling-Station-Id = '8a:b3:a0:eb:d5:e5'
NAS-Identifier = '34efb6af489e'
-Extended-Attribute-5.Extended-Vendor-Specific-5.FreeRADIUS.802_1X-Anonce = 0x4df70a4285c5c61f177cdbfc29d7e3cac94167f6101f1bcab420dd50c4f8809d
-Extended-Attribute-5.Extended-Vendor-Specific-5.FreeRADIUS.802_1X-EAPoL-Key-Msg = 0x0203007502010a00100000000000000001c3bb319516614aacfb44e933bf1671131fb1856e5b2721952d414ce3f5aa312b000000000000000000000000000000000000000000000000000000000000000035cddcedad0dfb6a12a2eca55c17c323001630140100000fac040100000fac040100000fac028c00
+Extended-Attribute-5.Vendor-Specific.FreeRADIUS.802_1X-Anonce = 0x4df70a4285c5c61f177cdbfc29d7e3cac94167f6101f1bcab420dd50c4f8809d
+Extended-Attribute-5.Vendor-Specific.FreeRADIUS.802_1X-EAPoL-Key-Msg = 0x0203007502010a00100000000000000001c3bb319516614aacfb44e933bf1671131fb1856e5b2721952d414ce3f5aa312b000000000000000000000000000000000000000000000000000000000000000035cddcedad0dfb6a12a2eca55c17c323001630140100000fac040100000fac040100000fac028c00
Filter-ID = 'Pancakes1124'
# and the response
# Add in attributes to the RADIUS dictionary.
#
VENDOR FreeRADIUS 11344
-BEGIN-Vendor FreeRADIUS parent=.Extended-Attribute-4.Extended-Vendor-Specific-4
+BEGIN-Vendor FreeRADIUS parent=.Extended-Attribute-4.Vendor-Specific
ATTRIBUTE Long-Name 1 integer
END-Vendor FreeRADIUS
-ALIAS Long-Name Extended-Attribute-4.Extended-Vendor-Specific-4.FreeRADIUS.Long-Name
+ALIAS Long-Name Extended-Attribute-4.Vendor-Specific.FreeRADIUS.Long-Name
# Ensure that the alias points to the right place
#
pair Long-Name = 1
-match Extended-Attribute-4 = { Extended-Vendor-Specific-4 = { FreeRADIUS = { Long-Name = 1 } } }
+match Extended-Attribute-4 = { Vendor-Specific = { FreeRADIUS = { Long-Name = 1 } } }
-pair Extended-Attribute-4.Extended-Vendor-Specific-4.FreeRADIUS.Long-Name = 1
-match Extended-Attribute-4 = { Extended-Vendor-Specific-4 = { FreeRADIUS = { Long-Name = 1 } } }
+pair Extended-Attribute-4.Vendor-Specific.FreeRADIUS.Long-Name = 1
+match Extended-Attribute-4 = { Vendor-Specific = { FreeRADIUS = { Long-Name = 1 } } }
pair Tmp-Group-0 = { Extended-Attribute-4.Long-Name = 1 }
match Unknown attribute "Long-Name" for parent "Extended-Attribute-4"
-pair Tmp-Group-0 = { Extended-Attribute-1.Extended-Vendor-Specific-1.FreeRADIUS.Long-Name = 1 }
+pair Tmp-Group-0 = { Extended-Attribute-1.Vendor-Specific.FreeRADIUS.Long-Name = 1 }
match Unknown attribute "Long-Name" for parent "FreeRADIUS"
#
#
# Note that this shortening happens ONLY when the 'group' is marked as "allow_flat".
#
-pair Tmp-Flat-Group = { Extended-Attribute-1.Extended-Vendor-Specific-1.FreeRADIUS.Long-Name = 1 }
+pair Tmp-Flat-Group = { Extended-Attribute-1.Vendor-Specific.FreeRADIUS.Long-Name = 1 }
match Unknown attribute "Long-Name" for parent "FreeRADIUS"
pair Tmp-Flat-Group.Long-Name = 1
ATTRIBUTE Extended-Attribute-2 242 tlv
ATTRIBUTE Extended-Attribute-5 245 tlv
ATTRIBUTE Extended-Attribute-6 246 tlv
-ATTRIBUTE Extended-Vendor-Specific-2 242.26 vsa
+ATTRIBUTE Vendor-Specific 242.26 vsa
ATTRIBUTE Unit-Ext-241-Integer 241.241 integer
ATTRIBUTE Unit-Ext-241-Octets 241.242 octets
ATTRIBUTE Test-Enum-Integer32 254.13 uint32 enum=@.base-enum-uint64
VENDOR FreeRADIUS 11344
-BEGIN-Vendor FreeRADIUS parent=.Extended-Attribute-2.Extended-Vendor-Specific-2
+BEGIN-Vendor FreeRADIUS parent=.Extended-Attribute-2.Vendor-Specific
ATTRIBUTE Unit-EVS-Integer 1 integer
ATTRIBUTE Unit-EVS-Octets 2 octets
END-Vendor FreeRADIUS
-BEGIN-Vendor FreeRADIUS parent=.Extended-Attribute-6.Extended-Vendor-Specific-6
+BEGIN-Vendor FreeRADIUS parent=.Extended-Attribute-6.Vendor-Specific
ATTRIBUTE Unit-EVS-6-Integer 1 integer
ATTRIBUTE Unit-EVS-6-Octets 2 octets
#
# For sending EAPoL key messages in RADIUS.
#
-encode-pair Extended-Attribute-5.Extended-Vendor-Specific-5.FreeRADIUS.802_1X-Anonce = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+encode-pair Extended-Attribute-5.Vendor-Specific.FreeRADIUS.802_1X-Anonce = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
match f5 29 1a 00 00 00 2c 50 01 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
decode-pair -
-match Extended-Attribute-5 = { Extended-Vendor-Specific-5 = { FreeRADIUS = { 802_1X-Anonce = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa } } }
+match Extended-Attribute-5 = { Vendor-Specific = { FreeRADIUS = { 802_1X-Anonce = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa } } }
-encode-pair Extended-Attribute-5.Extended-Vendor-Specific-5.FreeRADIUS.802_1X-EAPoL-Key-Msg = 0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+encode-pair Extended-Attribute-5.Vendor-Specific.FreeRADIUS.802_1X-EAPoL-Key-Msg = 0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
match f5 ff 1a 80 00 00 2c 50 02 bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa f5 08 1a 00 aa aa aa aa
decode-pair -
-match Extended-Attribute-5 = { Extended-Vendor-Specific-5 = { FreeRADIUS = { 802_1X-EAPoL-Key-Msg = 0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa } } }
+match Extended-Attribute-5 = { Vendor-Specific = { FreeRADIUS = { 802_1X-EAPoL-Key-Msg = 0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa } } }
#
# And bad formats. The Anonce should be 32 octets.
#
decode-pair f5 20 1a 00 00 00 2c 50 01 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
-match Extended-Attribute-5 = { Extended-Vendor-Specific-5 = { FreeRADIUS = { raw.802_1X-Anonce = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa } } }
+match Extended-Attribute-5 = { Vendor-Specific = { FreeRADIUS = { raw.802_1X-Anonce = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa } } }
count
match 13
# FF vendor attr
decode-pair f5 09 1a 00 00 00 00 01 ad
-match Extended-Attribute-5 = { raw.Extended-Vendor-Specific-5 = 0x00000001ad }
+match Extended-Attribute-5 = { raw.Vendor-Specific = 0x00000001ad }
# FF vendor attr
decode-pair f5 0a 1a 00 00 00 00 01 06 ad
-match Extended-Attribute-5 = { Extended-Vendor-Specific-5 = { raw.1 = { raw.6 = 0xad } } }
+match Extended-Attribute-5 = { Vendor-Specific = { raw.1 = { raw.6 = 0xad } } }
# Example attributes as used in RFC 6929
raw 241.1 "bob"
match f5 ff 1a 80 00 00 00 01 06 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa ab bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb f5 17 1a 00 bb bb bb bb bb cc cc cc cc cc cc cc cc cc cc 13 45 67 89
decode-pair f5 ff 1a 80 00 00 00 01 06 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa ab bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb f5 17 1a 00 bb bb bb bb bb cc cc cc cc cc cc cc cc cc cc 13 45 67 89
-match Extended-Attribute-5 = { Extended-Vendor-Specific-5 = { raw.1 = { raw.6 = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc13456789 } } }
+match Extended-Attribute-5 = { Vendor-Specific = { raw.1 = { raw.6 = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccc13456789 } } }
# Same as above, but the first attribute doesn't have
# the "continuation" bit set.
#
# Which means we decode-pair the second attribute as an EVS with vendor-ID of 0xbbbbbbbb
decode-pair f5 ff 1a 00 00 00 00 01 06 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa ab bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb f5 17 1a 00 bb bb bb bb bb cc cc cc cc cc cc cc cc cc cc 13 45 67 89
-match Extended-Attribute-5 = { Extended-Vendor-Specific-5 = { raw.1 = { raw.6 = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb }, raw.3149642683 = { raw.187 = 0xcccccccccccccccccccc13456789 } } }
+match Extended-Attribute-5 = { Vendor-Specific = { raw.1 = { raw.6 = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb }, raw.3149642683 = { raw.187 = 0xcccccccccccccccccccc13456789 } } }
# again, but the second one attr is not an extended attr
decode-pair f5 ff 1a 80 00 00 00 01 06 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa ab bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb 01 05 62 6f 62
-match Extended-Attribute-5 = { Extended-Vendor-Specific-5 = { raw.1 = { raw.6 = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb } } }, User-Name = "bob"
+match Extended-Attribute-5 = { Vendor-Specific = { raw.1 = { raw.6 = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb } } }, User-Name = "bob"
# No data means that the attribute is an "invalid attribute"
decode-pair f5 04 01 00
match raw.Extended-Attribute-5 = 0x01
decode-pair f5 09 1a 00 00 00 00 01 06
-match Extended-Attribute-5 = { raw.Extended-Vendor-Specific-5 = 0x0000000106 }
+match Extended-Attribute-5 = { raw.Vendor-Specific = 0x0000000106 }
decode-pair f5 0a 1a 00 00 00 00 01 06 01
-match Extended-Attribute-5 = { Extended-Vendor-Specific-5 = { raw.1 = { raw.6 = 0x01 } } }
+match Extended-Attribute-5 = { Vendor-Specific = { raw.1 = { raw.6 = 0x01 } } }
decode-pair f5 09 1a 80 00 00 00 01 06 f5 05 1a 80 01
-match Extended-Attribute-5 = { Extended-Vendor-Specific-5 = { raw.1 = { raw.6 = 0x01 } } }
+match Extended-Attribute-5 = { Vendor-Specific = { raw.1 = { raw.6 = 0x01 } } }
decode-pair f5 0a 1a 80 00 00 00 01 06 01 f5 05 1a 80 01
-match Extended-Attribute-5 = { Extended-Vendor-Specific-5 = { raw.1 = { raw.6 = 0x0101 } } }
+match Extended-Attribute-5 = { Vendor-Specific = { raw.1 = { raw.6 = 0x0101 } } }
count
match 65
#
# And using the dictionaries
#
-encode-pair Extended-Attribute-6.Extended-Vendor-Specific-6.FreeRADIUS.Unit-EVS-6-Integer = 1, Extended-Attribute-6.Extended-Vendor-Specific-6.FreeRADIUS.Unit-EVS-6-Integer = 2
+encode-pair Extended-Attribute-6.Vendor-Specific.FreeRADIUS.Unit-EVS-6-Integer = 1, Extended-Attribute-6.Vendor-Specific.FreeRADIUS.Unit-EVS-6-Integer = 2
match f6 0d 1a 00 00 00 2c 50 01 00 00 00 01 f6 0d 1a 00 00 00 2c 50 01 00 00 00 02
pair Extended-Attribute-1.Unit-Ext-241-Integer = 6809
#
# EVS data types
#
-encode-pair Extended-Attribute-2.Extended-Vendor-Specific-2.FreeRADIUS.Unit-EVS-Integer = 6809
+encode-pair Extended-Attribute-2.Vendor-Specific.FreeRADIUS.Unit-EVS-Integer = 6809
match f2 0c 1a 00 00 2c 50 01 00 00 1a 99
decode-pair -
-match Extended-Attribute-2 = { Extended-Vendor-Specific-2 = { FreeRADIUS = { Unit-EVS-Integer = 6809 } } }
+match Extended-Attribute-2 = { Vendor-Specific = { FreeRADIUS = { Unit-EVS-Integer = 6809 } } }
#
# This is ambiguous, so we do something. Anything...
#
# And "long extended" EVS
#
-encode-pair Extended-Attribute-6.Extended-Vendor-Specific-6.FreeRADIUS.Unit-EVS-6-Integer = 1, Extended-Attribute-6.Extended-Vendor-Specific-6.FreeRADIUS.Unit-EVS-6-Integer = 2
+encode-pair Extended-Attribute-6.Vendor-Specific.FreeRADIUS.Unit-EVS-6-Integer = 1, Extended-Attribute-6.Vendor-Specific.FreeRADIUS.Unit-EVS-6-Integer = 2
match f6 0d 1a 00 00 00 2c 50 01 00 00 00 01 f6 0d 1a 00 00 00 2c 50 01 00 00 00 02
decode-pair -
-match Extended-Attribute-6 = { Extended-Vendor-Specific-6 = { FreeRADIUS = { Unit-EVS-6-Integer = 1, Unit-EVS-6-Integer = 2 } } }
+match Extended-Attribute-6 = { Vendor-Specific = { FreeRADIUS = { Unit-EVS-6-Integer = 1, Unit-EVS-6-Integer = 2 } } }
encode-pair Event-Timestamp = 864000
match 37 06 00 0d 2f 00
match f1 0b 1a 00 00 19 7f 26 ab cd ef
decode-pair -
-match Extended-Attribute-1 = { Extended-Vendor-Specific-1 = { Nokia-SR = { raw.38 = 0xabcdef } } }
+match Extended-Attribute-1 = { Vendor-Specific = { Nokia-SR = { raw.38 = 0xabcdef } } }
#
# Known vendor, unknown attribute. Microsoft will never add more RADIUS attributes to