tests/ranap_rab_ass: Test RAB-Ass.req with X.213 IPv4 address len=7
It was found in the field that some peers sends an X.213 IP address consisting of 7 bytes (1byte IDP/AFI, 2byte ICP, 4 byte IPv4 address) insetad of 20 bytes. This was until recently failing in osmo-hnbgw due to missing decoding functionalitit in osmo-iuh.git. Cover it here. Related: SYS#6623 Depends: osmo-iuh.git I507fb1605d976bd8573162e4fa81721245330184 Change-Id: I71323018d79a4f5778dc6e49488d75ae7c2c4cdc
This commit is contained in:
parent
3abd523faa
commit
cd09569bc8
|
@ -7,3 +7,4 @@
|
|||
# If any interfaces have been added since the last public release: c:r:a + 1.
|
||||
# If any interfaces have been removed or changed since the last public release: c:r:0.
|
||||
#library what description / commit summary line
|
||||
osmo-iuh >1.5.0 proper decoding of X.213 IPv4 address len=7
|
|
@ -98,14 +98,27 @@ void test_ranap_rab_ass_resp_decode_encode(void)
|
|||
ranap_cn_rx_co_free(&message);
|
||||
}
|
||||
|
||||
void test_ranap_rab_ass_req_ies_extract_inet_addr(void)
|
||||
static void test_ranap_rab_ass_req_ies_extract_inet_addr_one(uint8_t *testvec, size_t testvec_len)
|
||||
{
|
||||
int rc;
|
||||
struct osmo_sockaddr addr;
|
||||
struct osmo_sockaddr_str addr_str;
|
||||
uint8_t rab_id;
|
||||
ranap_message message;
|
||||
uint8_t testvec[] = {
|
||||
|
||||
rc = ranap_ran_rx_co_decode(talloc_asn1_ctx, &message, testvec, testvec_len);
|
||||
OSMO_ASSERT(rc == 0);
|
||||
rc = ranap_rab_ass_req_ies_extract_inet_addr(&addr, &rab_id, &message.msg.raB_AssignmentRequestIEs, 0);
|
||||
osmo_sockaddr_str_from_sockaddr(&addr_str, &addr.u.sas);
|
||||
printf("ranap_rab_ass_req_extract_inet_addr rc=%d\n", rc);
|
||||
printf("RESULT: addr=%s, port=%u, rab-id=%02x\n", addr_str.ip, addr_str.port, rab_id);
|
||||
ranap_ran_rx_co_free(&message);
|
||||
}
|
||||
|
||||
void test_ranap_rab_ass_req_ies_extract_inet_addr(void)
|
||||
{
|
||||
|
||||
uint8_t testvec0[] = {
|
||||
0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x01, 0x00,
|
||||
0x36, 0x40, 0x52, 0x00, 0x00, 0x01, 0x00, 0x35,
|
||||
0x00, 0x48, 0x78, 0x22, 0xcd, 0x80, 0x10, 0x2f,
|
||||
|
@ -119,14 +132,33 @@ void test_ranap_rab_ass_req_ies_extract_inet_addr(void)
|
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1f, 0x76,
|
||||
0x00, 0x00, 0x40, 0x01, 0x00, 0x00
|
||||
};
|
||||
test_ranap_rab_ass_req_ies_extract_inet_addr_one(testvec0, sizeof(testvec0));
|
||||
|
||||
rc = ranap_ran_rx_co_decode(talloc_asn1_ctx, &message, testvec, sizeof(testvec));
|
||||
OSMO_ASSERT(rc == 0);
|
||||
rc = ranap_rab_ass_req_ies_extract_inet_addr(&addr, &rab_id, &message.msg.raB_AssignmentRequestIEs, 0);
|
||||
osmo_sockaddr_str_from_sockaddr(&addr_str, &addr.u.sas);
|
||||
printf("ranap_rab_ass_req_extract_inet_addr rc=%d\n", rc);
|
||||
printf("RESULT: addr=%s, port=%u, rab-id=%02x\n", addr_str.ip, addr_str.port, rab_id);
|
||||
ranap_ran_rx_co_free(&message);
|
||||
/* "35 00 01 ac 19 0c 0d" => X.213 IPv4 address len=7:
|
||||
* transportLayerInformation
|
||||
* transportLayerAddress: 350001ac190c0d [bit length 56, 0011 0101 0000 0000 0000 0001 1010 1100 0001 1001 0000 1100 0000 1101 decimal value 14918180947954701]
|
||||
* transportLayerAddress NSAP: 350001ac190c0d
|
||||
* IDP: 350001
|
||||
* X.213 Address Format Information (AFI): IANA ICP, binary (0x35)
|
||||
* IANA ICP: IP Version 4 Address (0x0001)
|
||||
* DSP: ac190c0d00000000000000000000000000
|
||||
* IWFA IPv4 Address: 172.25.12.13
|
||||
* iuTransportAssociation: bindingID (1)
|
||||
* bindingID: 444c0000 (17484)
|
||||
*/
|
||||
uint8_t testvec1[] = {
|
||||
0x00, 0x00, 0x00, 0x80, 0x8c, 0x00, 0x00, 0x01, 0x00, 0x36, 0x40, 0x80, 0x84, 0x00, 0x00, 0x01,
|
||||
0x00, 0x35, 0x00, 0x7a, 0x78, 0x02, 0xcd, 0x80, 0x10, 0x2f, 0xa7, 0x20, 0x12, 0x8e, 0x00, 0x00,
|
||||
0xf4, 0x4c, 0x64, 0x0a, 0x10, 0x80, 0x00, 0x51, 0x40, 0x00, 0x41, 0x40, 0x00, 0x4b, 0x40, 0x00,
|
||||
0x3d, 0x40, 0x00, 0x3a, 0x40, 0x00, 0x37, 0x40, 0x00, 0x31, 0x40, 0x00, 0x2a, 0x40, 0x00, 0x27,
|
||||
0x20, 0x28, 0x84, 0x00, 0x67, 0x40, 0x00, 0x63, 0x40, 0x00, 0x54, 0x40, 0x00, 0x57, 0x40, 0x00,
|
||||
0x4c, 0x40, 0x00, 0x3f, 0x40, 0x00, 0x36, 0x40, 0x00, 0x35, 0x40, 0x00, 0x00, 0x22, 0x28, 0x84,
|
||||
0x00, 0x3c, 0x40, 0x00, 0x28, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00,
|
||||
0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x50, 0x30, 0x82, 0x00, 0x06,
|
||||
0x0d, 0xc0, 0x35, 0x00, 0x01, 0xac, 0x19, 0x0c, 0x0d, 0x40, 0x44, 0x4c, 0x00, 0x00, 0x40, 0x01,
|
||||
0x00
|
||||
};
|
||||
test_ranap_rab_ass_req_ies_extract_inet_addr_one(testvec1, sizeof(testvec1));
|
||||
}
|
||||
|
||||
void test_ranap_rab_ass_resp_ies_extract_inet_addr(void)
|
||||
|
|
|
@ -5,6 +5,8 @@ INPUT: 6000002a000001003440230000010033401c603a7c3500010a0901a40000000000000000
|
|||
RESULT: 6000002a000001003440230000010033401c603a7c3500010a0901a40000000000000000000000000040040a0000
|
||||
ranap_rab_ass_req_extract_inet_addr rc=0
|
||||
RESULT: addr=10.9.1.162, port=8054, rab-id=11
|
||||
ranap_rab_ass_req_extract_inet_addr rc=0
|
||||
RESULT: addr=172.25.12.13, port=17484, rab-id=01
|
||||
ranap_rab_ass_resp_extract_inet_addr rc=0
|
||||
RESULT: addr=10.9.1.164, port=1034
|
||||
before: addr=10.9.1.162, port=8122, rab_id=39
|
||||
|
|
Loading…
Reference in New Issue