Must use 'Attr-26 = ...' instead of 'Vendor-Specific = ...' even when setting explicitly Attr-26 (or vendor data type)

Bjørn Mork bjorn at mork.no
Wed Apr 29 08:02:27 UTC 2026


Bjørn Mork via Freeradius-Users <freeradius-users at lists.freeradius.org>
writes:

> Francesco Di Nucci <francesco.dinucci at na.infn.it> writes:
>> Additional info - I also tried the same configuration on a more recent
>> FreeRADIUS version (3.2.7 on Debian 13 instead of 3.0.27 on EL9), the
>> error is the same
>>
>> Francesco Di Nucci
>>
>> On 28/04/26 18:18, Alan DeKok via Freeradius-Users wrote:
>>> On Apr 24, 2026, at 8:17 AM, Francesco Di Nucci <francesco.dinucci at na.infn.it> wrote:
>>>> tried and reply:Attr-26 := 0x483D342C20493D34 /without quotes/ still returns Cannot parse RHS hex as the data type of the attribute Vendor-Specific.
>>>>
>>>> Same for reply:Attr-26 := 0x1A1200002A7C483D342C20493D34 without quotes... Cannot parse RHS hex as the data type of the attribute Vendor-Specific
>>>>
>
> Not sure what you are trying to save by not defining a dictionary.
> Looks like FR insists on matching Attr-26 against the known dictionaries
> anyway.
>
> I did a quick test with the Debian 13 package, adding to
> /etc/freeradius/3.0/dictionary (you will of course add this to a
> spearate file when done testing):
>
> VENDOR  SUPERMICRO      10876   format=1,0
>  
> BEGIN-VENDOR    SUPERMICRO
> ATTRIBUTE       Foo     72      octets
> END-VENDOR      SUPERMICRO
>
>
> Only then would FR accept something like this:
>
> Attr-26 := 0x00002A7C483D342C20493D34
>
> But it will only accept 0x48 (72) as the first byte of the value. Seems
> you have to define every possible first byte this way. There is no
> "format=0".  But worst case, just create 256 dummy VSAs...

Forget it.  FR accepts the config, but it doesn't actually work.  Trying
to return that attribute results in

(1) ERROR: Failed sending reply: ERROR: Unknown attribute type 21


And type 21 is PW_TYPE_VSA if I'm not mistaken.

Rewriting to

Attr-26.10876.72 := 0x3D342C20493D34

makes it "work".  But that's ugly.  Anyway, with that I see these bytes
returned from FR:

 1a 0e 00 00 2a 7c 48 3d 34 2c 20 49 3d 34

and I guess that was what you wanted?


Bjørn


More information about the Freeradius-Users mailing list