Output of SLQSQosSwiReadApnExtraParams

Hello. The output of SLQSQosSwiReadApnExtraParams is a struct sApnExtraParams defined in qaGobiApiQos.h like this:

typedef struct
{
    ULONG    apnId;
    BYTE     ambr_ul;
    BYTE     ambr_dl;
    BYTE     ambr_ul_ext;
    BYTE     ambr_dl_ext;
    BYTE     ambr_ul_ext2;
    BYTE     ambr_dl_ext2;
} sApnExtraParams;

The first two AMBR items are supposed to be UL/DL values from 1kbps to 8640kbps, the next ones from 8700kbps to 256Mbps and the last ones from 256Mbps to 65280Mbps. But how are the values converted from BYTE to the real value? For example, I see output giving:
ambr_ul=254
ambr_ul_ext=133
What is the UL value here?

I think this is a bug.

I replicated the issue with the callbox:
// Amari callbox settings
// Max AMBR DL 15Mbps
// Max AMBR UL 12Mbps
apn_aggregate_max_bitrate_dl: 15728640,
apn_aggregate_max_bitrate_ul: 12582912,

// Value returned by the SDK
Test Case 1 / 2 : All Valid - profile #1
Return Code: 0 (0x0)
Return Reason: Success
APN id: 1
APN ambr_ul: 254
APN ambr_dl: 254
APN ambr_ul_ext: 39
APN ambr_dl_ext 71
APN ambr_ul_ext2: 0
APN ambr_dl_ext2: 0

I informed the FW guys about the issue.

Thanks,
James

James, thanks for looking into this. From your point of view, which should have been the output of the ul/dl fields reported for the test you did?

Hi James,

the returned values look like the raw values from the “APN aggregate maximum bit rate” IE to me.

Wireshark’s nas_eps-plain dissector correctly decodes this as:

APN aggregate maximum bit rate
    Element ID: 0x5e
    Length: 6
    APN-AMBR for downlink: 8640 kbps
    APN-AMBR for uplink: 8640 kbps
    APN-AMBR for downlink (extended): 12500 kbps
    APN-AMBR for uplink (extended): 15700 kbps
    Use the value indicated by the APN-AMBR for downlink and APN-AMBR for downlink (extended)
    Total APN-AMBR for downlink: 12.500 Mbps
    Use the value indicated by the APN-AMBR for uplink and APN-AMBR for uplink (extended)
    Total APN-AMBR for uplink: 15.700 Mbps

Please refer to TS 24.301 section 9.9.4.2 for details.

Regards,
Reinhard

1 Like

Hi Reinhard,

You are right!
The values are correct.

for DL “APN ambr_dl_ext 71”

71 0x47 1000111

APN-AMBR for downlink (extended), octet 5
Bits
8 7 6 5 4 3 2 1
0 0 0 0 0 0 0 0 Use the value indicated by the APN-AMBR for downlink in octet 3.
For all other values: Ignore the value indicated by the APN-AMBR for downlink in octet 3
and use the following value:
0 0 0 0 0 0 0 1 The APN-AMBR is 8600 kbps + ((the binary coded value in 8 bits) * 100 kbps),
to giving a range of values from 8700 kbps to 16000 kbps in 100 kbps increments.
0 1 0 0 1 0 1 0
0 1 0 0 1 0 1 1 The APN-AMBR is 16 Mbps + ((the binary coded value in 8 bits - 01001010) * 1 Mbps),
to giving a range of values from 17 Mbps to 128 Mbps in 1 Mbps increments.
1 0 1 1 1 0 1 0
1 0 1 1 1 0 1 1 The APN-AMBR is 128 Mbps + ((the binary coded value in 8 bits - 10111010) * 2 Mbps),
to giving a range of values from 130 Mbps to 256 Mbps in 2 Mbps increments.
1 1 1 1 1 0 1 0
All other values shall be interpreted as ‘1 1 1 1 1 0 1 0’.

8600kbps + 71*100kbps = 15700

thanks for the correction,
James