On Apr 12, 2018, at 11:07 AM, Бенджамин Томпсон <b.thompson@latera.ru> wrote:
We have a device which sends individual traffic counters for several different services. The dicitionary is as follows:
VENDOR VasExperts 43823
BEGIN-VENDOR VasExperts
...
ATTRIBUTE VasExperts-Acct-Traffic-Class-Name 16 string ATTRIBUTE VasExperts-Acct-Traffic-Class-Input-Octets 17 integer64 ATTRIBUTE VasExperts-Acct-Traffic-Class-Output-Octets 18 integer64 ATTRIBUTE VasExperts-Acct-Traffic-Class-Input-Packets 19 integer64 ATTRIBUTE VasExperts-Acct-Traffic-Class-Output-Packets 20 integer64
That might work...
In the accounting packet these attribtues are grouped into individual VSAs as follows:
If you want *real* grouping, you need to use TLVs. i.e. one master attribute, and the sub-attributes within that.
Here the fact that the five attributes are gouped together in a single VSA means that they all contain data which pertains to the same service.
That's what you mean. But that's not how RADIUS works. The attributes are all in a flat space.
When FreeRADIUS processes the packet the attribtues are as I understand it added to one long list and I can access them individually by their index.
Yes.
However, as I understand it the ordering of RADIUS attributes is not something which is normally guaranteed
RADIUS guarantees ordering of attributes which have the same number. It does NOT guarantee ordering of attributes which have a different number. This restriction applies to VSAs, soo.
and I would like to ask is whether there is any way in unlang or by other means to figure out which which sub attribtues came from the same parent attribute.
No. But you can fix the dictionary: VENDOR VasExperts 43823 BEGIN-VENDOR VasExperts ... ATTRIBUTE VasExperts-Acct-Traffic 16 tlv ATTRIBUTE VasExperts-Acct-Traffic-Class-Name 16.1 string ATTRIBUTE VasExperts-Acct-Traffic-Class-Input-Octets 16.2 integer64 ATTRIBUTE VasExperts-Acct-Traffic-Class-Output-Octets 16.3 integer64 ATTRIBUTE VasExperts-Acct-Traffic-Class-Input-Packets 16.4 integer64 ATTRIBUTE VasExperts-Acct-Traffic-Class-Output-Packets 16.5 integer64 ... These attributes will be packed into one parent attribute: VasExperts-Acct-Traffic. And ordering of THAT attribute is guaranteed. Alan DeKok.