Sub-TLVs how to have the same kind of descriptor twice

Sven Tantau sven at internet.ao
Thu Dec 20 15:13:27 CET 2012


Hello,

I am running version 3.0.0 and have a question about sub-tlvs:

I am looking at:
WiMAX-QoS-Descriptor
as it is defined in dictionary.wimax.alvarion
(the standard dictionary.wimax does not get included/is commented out)

This is the situation:

My reply has to contain two QoS profiles.

testingstuff at internet.ao Cleartext-Password := "sven"
        Alvarion-R3-IF-Name+=cpe_mgnt_sg,
        Alvarion-PDFID+=1,
        WiMAX-Packet-Data-Flow-Id+=1,
        WiMAX-Direction+=3,
        WiMAX-Transport-Type+=1,
        WiMAX-Uplink-QOS-Id+=2,
        WiMAX-Downlink-QOS-Id+=3,
        WiMAX-ClassifierID+=1,
        WiMAX-Classifier-Priority+=2,
        WiMAX-Classifier-Direction+=3,
        WiMAX-IP-TOS-DSCP-Range-and-Mask+=0x1818FF,

        WiMAX-QoS-Id+=2,
        WiMAX-Schedule-Type+=2,
        WiMAX-Traffic-Priority+=1,
        WiMAX-Maximum-Sustained-Traffic-Rate+=128000,

        WiMAX-QoS-Id+=3,
        WiMAX-Schedule-Type+=2,
        WiMAX-Traffic-Priority+=1,
        WiMAX-Maximum-Sustained-Traffic-Rate+=128000


I checked the debug output and could see this:

	Alvarion-R3-IF-Name += "cpe_mgnt_sg"
		01 0d  63 70 65 5f 6d 67 6e 74 5f 73 67

..(skipped some attributes)..

	WiMAX-Uplink-QOS-Id += 2
		07 03  02
	WiMAX-Downlink-QOS-Id += 3
		08 03  03
	WiMAX-ClassifierID += 1
		01 03  01
	WiMAX-Classifier-Priority += 2
		02 03  02
	WiMAX-Classifier-Direction += Bi-Directional
		04 03  03
	WiMAX-IP-TOS-DSCP-Range-and-Mask += 0x1818ff
		07 05  18 18 ff
	WiMAX-Classifier = ...
		0b 10  01 03 01 02 03 02 04 03 03 07 05 18 18 ff
	WiMAX-Packet-Flow-Descriptor = ...
		1a 29  000060b5 (24757)  1c 23 00   01 04 00 01 04 03 03 06 03 01 07
03 02 08 03 03
			0b 10 01 03 01 02 03 02 04 03 03 07 05 18 18 ff

	WiMAX-QoS-Id += 2
		01 03  02
	WiMAX-Schedule-Type += Best-Effort
		04 03  02
	WiMAX-Traffic-Priority += 1
		05 03  01
	WiMAX-Maximum-Sustained-Traffic-Rate += 128000
		06 06  00 01 f4 00

	WiMAX-QoS-Id += 3
		01 03  03
	WiMAX-Schedule-Type += Best-Effort
		04 03  02
	WiMAX-Traffic-Priority += 1
		05 03  01
	WiMAX-Maximum-Sustained-Traffic-Rate += 128000
		06 06  00 01 f4 00

	WiMAX-QoS-Descriptor = ...
		1a 27  000060b5 (24757)  1d 21 00   01 03 02 04 03 02 05 03 01 06 06
00 01 f4 00 01
			03 03 04 03 02 05 03 01 06 06 00 01 f4 00


You can see that the 2 QoS profiles are both contained in the created
WiMAX-QoS-Descriptor.

What I need is to have two WiMAX-QoS-Descriptors. One for each QoS
definition.

I can archive that by putting another attribute between the QoS attributes:

xnewstuff at internet.ao Cleartext-Password := "sven"
        Alvarion-R3-IF-Name+=cpe_mgnt_sg,

        ...(skipped some attributes)...

        WiMAX-QoS-Id+=2,
        WiMAX-Schedule-Type+=2,
        WiMAX-Traffic-Priority+=1,
        WiMAX-Maximum-Sustained-Traffic-Rate+=128000,

added-> Acct-Interim-Interval+=60,

        WiMAX-QoS-Id+=3,
        WiMAX-Schedule-Type+=2,
        WiMAX-Traffic-Priority+=1,
        WiMAX-Maximum-Sustained-Traffic-Rate+=128000


The debug output now looks like this:
(and is pretty close to what I expect)

	Alvarion-R3-IF-Name += "cpe_mgnt_sg"
		01 0d  63 70 65 5f 6d 67 6e 74 5f 73 67

...(some attributes skipped)....

	WiMAX-QoS-Id += 2
		01 03  02
	WiMAX-Schedule-Type += Best-Effort
		04 03  02
	WiMAX-Traffic-Priority += 1
		05 03  01
	WiMAX-Maximum-Sustained-Traffic-Rate += 128000
		06 06  00 01 f4 00

	WiMAX-QoS-Descriptor = ...
		1a 18  000060b5 (24757)  1d 12 00   01 03 02 04 03 02 05 03 01 06 06
00 01 f4 00

	Acct-Interim-Interval += 60
		55 06  00 00 00 3c

	WiMAX-QoS-Id += 3
		01 03  03
	WiMAX-Schedule-Type += Best-Effort
		04 03  02
	WiMAX-Traffic-Priority += 1
		05 03  01
	WiMAX-Maximum-Sustained-Traffic-Rate += 128000
		06 06  00 01 f4 00

	WiMAX-QoS-Descriptor = ...
		1a 18  000060b5 (24757)  1d 12 00   01 03 03 04 03 02 05 03 01 06 06
00 01 f4 00


Somehow the freeradius now sees that the first QoS flow is finished and
creates the WiMAX-QoS-Descriptor out of the values. Then it puts in the
newly introduced value (Acct-Interim-Interval+=60). And at the end it
created the second WiMAX-QoS-Descriptor out of the definition for the
second QoS flow.

In case it is not clear: I would like to have the two QoS flows to
create two WiMAX-QoS-Descriptors, instead of one that combines the two.

How does freeradius know when a 'sub-TLV' definition is finished?
What am I missing?

I hope that this request is somehow understandable. Please let me know
in case you need further clarification or if you want me to include more
information or debug output.

Thanks for your good work.

Best regards,
Sven

-- 
Internet Technologies Angola / Systems Department
Tel:    +244 (227) 286 000 / (924) 770 290 / (924) 770 291
Skype: internet-technologies-angola
Mobile: +244 931 696413
Mail: sven at internet.ao



More information about the Freeradius-Users mailing list