forked from acouzens/open5gs
[SBI,NAS] Fix conversion of bitrate between OpenAPI/NAS and internal representation
From the OpenAPI document,TS29571_CommonData.yaml : BitRate String representing a bit rate; the prefixes follow the standard symbols from The International System of Units, and represent x1000 multipliers, with the exception that prefix "K" is used to represent the standard symbol "k".
This commit is contained in:
parent
2152d67480
commit
bbc397013b
|
@ -432,7 +432,7 @@ void ogs_nas_bitrate_from_uint64(ogs_nas_bitrate_t *nas, uint64_t bitrate)
|
|||
ogs_assert(nas);
|
||||
ogs_assert(bitrate);
|
||||
|
||||
bitrate >>= 10; /* bps to Kbps */
|
||||
bitrate /= 1000; /* bps to Kbps */
|
||||
|
||||
for (nas->unit = OGS_NAS_BR_UNIT_1K;
|
||||
nas->unit < OGS_NAS_BR_UNIT_256P; nas->unit++) {
|
||||
|
@ -449,55 +449,55 @@ uint64_t ogs_nas_bitrate_to_uint64(ogs_nas_bitrate_t *nas_bitrate)
|
|||
ogs_assert(nas_bitrate);
|
||||
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_1K)
|
||||
return nas_bitrate->value * 1024;
|
||||
return nas_bitrate->value * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_4K)
|
||||
return nas_bitrate->value * 4 * 1024;
|
||||
return nas_bitrate->value * 4 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_16K)
|
||||
return nas_bitrate->value * 16 * 1024;
|
||||
return nas_bitrate->value * 16 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_64K)
|
||||
return nas_bitrate->value * 64 * 1024;
|
||||
return nas_bitrate->value * 64 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_256K)
|
||||
return nas_bitrate->value * 256 * 1024;
|
||||
return nas_bitrate->value * 256 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_1M)
|
||||
return nas_bitrate->value * 1024 * 1024;
|
||||
return nas_bitrate->value * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_4M)
|
||||
return nas_bitrate->value * 4 * 1024 * 1024;
|
||||
return nas_bitrate->value * 4 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_16M)
|
||||
return nas_bitrate->value * 16 * 1024 * 1024;
|
||||
return nas_bitrate->value * 16 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_64M)
|
||||
return nas_bitrate->value * 64 * 1024 * 1024;
|
||||
return nas_bitrate->value * 64 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_256M)
|
||||
return nas_bitrate->value * 256 * 1024 * 1024;
|
||||
return nas_bitrate->value * 256 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_1G)
|
||||
return nas_bitrate->value * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 1000 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_4G)
|
||||
return nas_bitrate->value * 4 * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 4 * 1000 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_16G)
|
||||
return nas_bitrate->value * 16 * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 16 * 1000 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_64G)
|
||||
return nas_bitrate->value * 64 * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 64 * 1000 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_256G)
|
||||
return nas_bitrate->value * 256 * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 256 * 1000 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_1T)
|
||||
return nas_bitrate->value * 1024 * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 1000 * 1000 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_4T)
|
||||
return nas_bitrate->value * 4 * 1024 * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 4 * 1000 * 1000 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_16T)
|
||||
return nas_bitrate->value * 16 * 1024 * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 16 * 1000 * 1000 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_64T)
|
||||
return nas_bitrate->value * 64 * 1024 * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 64 * 1000 * 1000 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_256T)
|
||||
return nas_bitrate->value * 256 * 1024 * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 256 * 1000 * 1000 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_1P)
|
||||
return nas_bitrate->value * 1024 * 1024 * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 1000 * 1000 * 1000 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_4P)
|
||||
return nas_bitrate->value * 4 * 1024 * 1024 * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 4 * 1000 * 1000 * 1000 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_16P)
|
||||
return nas_bitrate->value * 16 * 1024 * 1024 * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 16 * 1000 * 1000 * 1000 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_64P)
|
||||
return nas_bitrate->value * 64 * 1024 * 1024 * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 64 * 1000 * 1000 * 1000 * 1000 * 1000;
|
||||
if (nas_bitrate->unit == OGS_NAS_BR_UNIT_256P)
|
||||
return nas_bitrate->value * 256 * 1024 * 1024 * 1024 * 1024 * 1024;
|
||||
return nas_bitrate->value * 256 * 1000 * 1000 * 1000 * 1000 * 1000;
|
||||
|
||||
ogs_fatal("Unknown unit [%d]", nas_bitrate->unit);
|
||||
ogs_assert_if_reached();
|
||||
|
|
|
@ -516,16 +516,16 @@ char *ogs_sbi_bitrate_to_string(uint64_t bitrate, int unit)
|
|||
{
|
||||
if (unit == OGS_SBI_BITRATE_KBPS) {
|
||||
return ogs_msprintf("%lld Kbps",
|
||||
(long long)bitrate / 1024);
|
||||
(long long)bitrate / 1000);
|
||||
} else if (unit == OGS_SBI_BITRATE_MBPS) {
|
||||
return ogs_msprintf("%lld Mbps",
|
||||
(long long)bitrate / 1024 / 1024);
|
||||
(long long)bitrate / 1000 / 1000);
|
||||
} else if (unit == OGS_SBI_BITRATE_GBPS) {
|
||||
return ogs_msprintf("%lld Gbps",
|
||||
(long long)bitrate / 1024 / 1024 / 1024);
|
||||
(long long)bitrate / 1000 / 1000 / 1000);
|
||||
} else if (unit == OGS_SBI_BITRATE_TBPS) {
|
||||
return ogs_msprintf("%lld Tbps",
|
||||
(long long)bitrate / 1024 / 1024 / 1024 / 1024);
|
||||
(long long)bitrate / 1000 / 1000 / 1000 / 1000);
|
||||
}
|
||||
|
||||
return ogs_msprintf("%lld bps", (long long)bitrate);
|
||||
|
@ -547,13 +547,13 @@ uint64_t ogs_sbi_bitrate_from_string(char *str)
|
|||
|
||||
SWITCH(unit+1)
|
||||
CASE("Kbps")
|
||||
return bitrate * 1024;
|
||||
return bitrate * 1000;
|
||||
CASE("Mbps")
|
||||
return bitrate * 1024 * 1024;
|
||||
return bitrate * 1000 * 1000;
|
||||
CASE("Gbps")
|
||||
return bitrate * 1024 * 1024 * 1024;
|
||||
return bitrate * 1000 * 1000 * 1000;
|
||||
CASE("Tbps")
|
||||
return bitrate * 1024 * 1024 * 1024 * 1024;
|
||||
return bitrate * 1000 * 1000 * 1000 * 1000;
|
||||
DEFAULT
|
||||
END
|
||||
return bitrate;
|
||||
|
|
Loading…
Reference in New Issue