diff --git a/src/mme/emm_sm.c b/src/mme/emm_sm.c index 0aaa754bc5..40f0f4201b 100644 --- a/src/mme/emm_sm.c +++ b/src/mme/emm_sm.c @@ -91,7 +91,7 @@ void emm_state_detached(fsm_t *s, event_t *e) } else { - d_error("Unknown UE"); + d_warn("Unknown UE"); nas_send_service_reject(mme_ue, EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK); FSM_TRAN(s, emm_state_exception); diff --git a/test/attach_test.c b/test/attach_test.c index f9632945f8..e62c5fe731 100644 --- a/test/attach_test.c +++ b/test/attach_test.c @@ -1240,6 +1240,268 @@ static void attach_test4(abts_case *tc, void *data) ABTS_INT_EQUAL(tc, CORE_OK, rv); } +static void attach_test5(abts_case *tc, void *data) +{ + status_t rv; + sock_id sock; + sock_id gtpu; + pkbuf_t *sendbuf; + pkbuf_t *recvbuf; + s1ap_message_t message; + int i; + int msgindex = 12; + + mongoc_collection_t *collection = NULL; + bson_t *doc = NULL; + c_int64_t count = 0; + bson_error_t error; + const char *json = + "{" + "\"_id\" : { \"$oid\" : \"597223158b8861d7605378c6\" }, " + "\"imsi\" : \"001010123456937\", " + "\"pdn\" : [" + "{" + "\"apn\" : \"internet\", " + "\"_id\" : { \"$oid\" : \"597223158b8861d7605378c7\" }, " + "\"ambr\" : {" + "\"uplink\" : { \"$numberLong\" : \"1024000\" }, " + "\"downlink\" : { \"$numberLong\" : \"1024000\" } " + "}," + "\"qos\" : { " + "\"qci\" : 9, " + "\"arp\" : { " + "\"priority_level\" : 8," + "\"pre_emption_vulnerability\" : 1, " + "\"pre_emption_capability\" : 1" + "} " + "}, " + "\"type\" : 2" + "}" + "]," + "\"ambr\" : { " + "\"uplink\" : { \"$numberLong\" : \"1024000\" }, " + "\"downlink\" : { \"$numberLong\" : \"1024000\" } " + "}," + "\"subscribed_rau_tau_timer\" : 12," + "\"network_access_mode\" : 2, " + "\"subscriber_status\" : 0, " + "\"access_restriction_data\" : 32, " + "\"security\" : { " + "\"k\" : \"465B5CE8 B199B49F AA5F0A2E E238A6BC\", " + "\"opc\" : \"E8ED289D EBA952E4 283B54E8 8E6183CA\", " + "\"amf\" : \"8000\", " + "\"sqn\" : { \"$numberLong\" : \"768\" }, " + "\"rand\" : \"2e815f03 cc54b55f 00933008 5cab5ca3\" " + "}, " + "\"__v\" : 0 " + "}"; + + core_sleep(time_from_msec(300)); + + /* eNB connects to MME */ + rv = tests1ap_enb_connect(&sock); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + + /* Send S1-Setup Reqeust */ + rv = tests1ap_build_setup_req( + &sendbuf, S1ap_ENB_ID_PR_macroENB_ID, 0x787b0); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + rv = tests1ap_enb_send(sock, sendbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + + /* Receive S1-Setup Response */ + recvbuf = pkbuf_alloc(0, MAX_SDU_LEN); + rv = tests1ap_enb_read(sock, recvbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + pkbuf_free(recvbuf); + + collection = mongoc_client_get_collection( + context_self()->db_client, + context_self()->db_name, "subscribers"); + ABTS_PTR_NOTNULL(tc, collection); + + /********** Insert Subscriber in Database */ + doc = bson_new_from_json((const uint8_t *)json, -1, &error);; + ABTS_PTR_NOTNULL(tc, doc); + ABTS_TRUE(tc, mongoc_collection_insert(collection, + MONGOC_INSERT_NONE, doc, NULL, &error)); + bson_destroy(doc); + + doc = BCON_NEW("imsi", BCON_UTF8("001010123456937")); + ABTS_PTR_NOTNULL(tc, doc); + do + { + count = mongoc_collection_count ( + collection, MONGOC_QUERY_NONE, doc, 0, 0, NULL, &error); + } while (count == 0); + bson_destroy(doc); + + core_sleep(time_from_msec(300)); + + mme_self()->mme_ue_s1ap_id = 0; + + /* Send Service request */ + rv = tests1ap_build_service_request(&sendbuf, msgindex); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + rv = tests1ap_enb_send(sock, sendbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + + /* Receive Service reject */ + recvbuf = pkbuf_alloc(0, MAX_SDU_LEN); + rv = tests1ap_enb_read(sock, recvbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + pkbuf_free(recvbuf); + + /* Receive Initial Context Setup Request */ + recvbuf = pkbuf_alloc(0, MAX_SDU_LEN); + rv = tests1ap_enb_read(sock, recvbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + pkbuf_free(recvbuf); + + /* Send UE Context Release Complete */ + rv = tests1ap_build_ue_context_release_complete(&sendbuf, msgindex); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + rv = tests1ap_enb_send(sock, sendbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + + /*********************************************************************** + * Attach Request : Known IMSI, Integrity Protected, No Security Context + * Send Initial-UE Message + Attach Request + PDN Connectivity */ + rv = tests1ap_build_initial_ue_msg(&sendbuf, msgindex); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + rv = tests1ap_enb_send(sock, sendbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + + /* Receive Authentication Request */ + recvbuf = pkbuf_alloc(0, MAX_SDU_LEN); + rv = tests1ap_enb_read(sock, recvbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + pkbuf_free(recvbuf); + + /* Send Authentication Response */ + rv = tests1ap_build_authentication_response(&sendbuf, msgindex); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + rv = tests1ap_enb_send(sock, sendbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + + /* Receive Security mode Command */ + recvbuf = pkbuf_alloc(0, MAX_SDU_LEN); + rv = tests1ap_enb_read(sock, recvbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + pkbuf_free(recvbuf); + + /* Send Security mode Complete */ + rv = tests1ap_build_security_mode_complete(&sendbuf, msgindex); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + rv = tests1ap_enb_send(sock, sendbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + + /* Receive ESM Information Request */ + recvbuf = pkbuf_alloc(0, MAX_SDU_LEN); + rv = tests1ap_enb_read(sock, recvbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + pkbuf_free(recvbuf); + + /* Send ESM Information Response */ + rv = tests1ap_build_esm_information_response(&sendbuf, msgindex); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + rv = tests1ap_enb_send(sock, sendbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + + /* Receive Initial Context Setup Request + + * Attach Accept + + * Activate Default Bearer Context Request */ + recvbuf = pkbuf_alloc(0, MAX_SDU_LEN); + rv = tests1ap_enb_read(sock, recvbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + pkbuf_free(recvbuf); + + /* Send UE Capability Info Indication */ + rv = tests1ap_build_ue_capability_info_indication(&sendbuf, msgindex); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + rv = tests1ap_enb_send(sock, sendbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + + core_sleep(time_from_msec(300)); + + /* Send Initial Context Setup Response */ + rv = tests1ap_build_initial_context_setup_response(&sendbuf, + 2, 1837, 5, 0x1000908); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + rv = tests1ap_enb_send(sock, sendbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + + /* Send Attach Complete + Activate default EPS bearer cotext accept */ + rv = tests1ap_build_attach_complete(&sendbuf, msgindex); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + rv = tests1ap_enb_send(sock, sendbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + + /* Receive EMM information */ + recvbuf = pkbuf_alloc(0, MAX_SDU_LEN); + rv = tests1ap_enb_read(sock, recvbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + pkbuf_free(recvbuf); + + /* Send Service request */ + rv = tests1ap_build_service_request(&sendbuf, msgindex+1); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + rv = tests1ap_enb_send(sock, sendbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + + /* Receive Service Reject */ + recvbuf = pkbuf_alloc(0, MAX_SDU_LEN); + rv = tests1ap_enb_read(sock, recvbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + pkbuf_free(recvbuf); + + /* Receive UE Context Release Command */ + recvbuf = pkbuf_alloc(0, MAX_SDU_LEN); + rv = tests1ap_enb_read(sock, recvbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + pkbuf_free(recvbuf); + + /* Send UE Context Release Complete */ + rv = tests1ap_build_ue_context_release_complete(&sendbuf, msgindex+1); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + rv = tests1ap_enb_send(sock, sendbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + + /* Send Service request */ + rv = tests1ap_build_service_request(&sendbuf, msgindex+2); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + rv = tests1ap_enb_send(sock, sendbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + + /* Receive Service Reject */ + recvbuf = pkbuf_alloc(0, MAX_SDU_LEN); + rv = tests1ap_enb_read(sock, recvbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + pkbuf_free(recvbuf); + + /* Receive UE Context Release Command */ + recvbuf = pkbuf_alloc(0, MAX_SDU_LEN); + rv = tests1ap_enb_read(sock, recvbuf); + ABTS_INT_EQUAL(tc, CORE_OK, rv); + pkbuf_free(recvbuf); + + core_sleep(time_from_msec(300)); + + /********** Remove Subscriber in Database */ + doc = BCON_NEW("imsi", BCON_UTF8("001010123456937")); + ABTS_PTR_NOTNULL(tc, doc); + ABTS_TRUE(tc, mongoc_collection_remove(collection, + MONGOC_REMOVE_SINGLE_REMOVE, doc, NULL, &error)) + bson_destroy(doc); + + mongoc_collection_destroy(collection); + + /* eNB disonncect from MME */ + rv = tests1ap_enb_close(sock); + ABTS_INT_EQUAL(tc, CORE_OK, rv); +} + + abts_suite *test_attach(abts_suite *suite) { suite = ADD_SUITE(suite) @@ -1248,6 +1510,7 @@ abts_suite *test_attach(abts_suite *suite) abts_run_test(suite, attach_test2, NULL); abts_run_test(suite, attach_test3, NULL); abts_run_test(suite, attach_test4, NULL); + abts_run_test(suite, attach_test5, NULL); return suite; } diff --git a/test/testpacket.c b/test/testpacket.c index 5ecd153ff7..c08b0ffcd6 100644 --- a/test/testpacket.c +++ b/test/testpacket.c @@ -201,6 +201,7 @@ status_t tests1ap_build_initial_ue_msg(pkbuf_t **pkbuf, int i) "000300000a005c0a 003103e5e0349011 035758a65d010000 4300060000f11030" "39006440080000f1 100019b010008640 0130", + "000c" "4068000005000800 020001001a00403f 0741720809101010 3254861002e06000" "210207d011d1271a 8080211001000010 8106000000008306 00000000000d0000" @@ -213,10 +214,18 @@ status_t tests1ap_build_initial_ue_msg(pkbuf_t **pkbuf, int i) "830600000000000d 00000a005200f110 30395c0a00901103 4f18a6f15d0100e0" "004300060000f110 3039006440080000 f110001f20a00086 400130004b000700" "00f110000201", - "", + "000c" + "4080810000050008 000340072d001a00 5857074172080910 10103254967305e0" + "60c0401100270209 d031d12720808021 1001000010810600 0000008306000000" + "00000d0000030000 0a000010005c0a00 3103e5e02e901103 5758a64008040260" + "0000021f005d0103 c1004300060000f1 1030390064400800 00f1100787b80000" + "86400130", + "", + "", + }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { 92, @@ -235,6 +244,10 @@ status_t tests1ap_build_initial_ue_msg(pkbuf_t **pkbuf, int i) 136, 0, + 134, + 0, + 0, + }; char hexbuf[MAX_SDU_LEN]; @@ -330,7 +343,14 @@ status_t tests1ap_build_authentication_response(pkbuf_t **pkbuf, int i) "000d" "403e000005000000 05c0020000c40008 0002000c001a0012 1117deff957c0707" "5308e3b925330735 7093006440080000 f110001f20a00043 40060000f1103039", + "", + + "000d" + "4036000005000000 0200020008000340 072d001a000c0b07 5308e2b7921bc6fe" + "b4c9006440080000 f1100787b8000043 40060000f1103039", + "", + "", }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { @@ -348,6 +368,11 @@ status_t tests1ap_build_authentication_response(pkbuf_t **pkbuf, int i) 60, 66, + 0, + + 58, + 0, + 0, }; char hexbuf[MAX_SDU_LEN]; @@ -443,6 +468,14 @@ status_t tests1ap_build_security_mode_complete(pkbuf_t **pkbuf, int i) "000d" "4035000005000000 05c0020000c40008 0002000c001a0009 084790282df90007" "5e006440080000f1 10001f20a0004340 060000f1103039", + "", + + "000d" + "4033000005000000 0200020008000340 072d001a00090847 aaaf94cf00075e00" + "6440080000f11007 87b8000043400600 00f1103039", + "", + "", + }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { 57, @@ -459,6 +492,11 @@ status_t tests1ap_build_security_mode_complete(pkbuf_t **pkbuf, int i) 57, 57, + 0, + + 55, + 0, + 0, }; char hexbuf[MAX_SDU_LEN]; @@ -512,6 +550,15 @@ status_t tests1ap_build_esm_information_response(pkbuf_t **pkbuf, int i) "4041000005000000 05c0020000c40008 0002000c001a0015 14274f280bff0102" "04da280908696e74 65726e6574006440 080000f110001f20 a0004340060000f1" "103039", + "", + + "000d" + "403f000005000000 0200020008000340 072d001a00151427 c4a524d8010209da" + "280908696e746572 6e65740064400800 00f1100787b80000 4340060000f11030" + "39", + "", + "", + }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { 146, @@ -528,6 +575,12 @@ status_t tests1ap_build_esm_information_response(pkbuf_t **pkbuf, int i) 69, 69, + 0, + + 67, + 0, + 0, + }; char hexbuf[MAX_SDU_LEN]; @@ -567,7 +620,6 @@ status_t tests1ap_build_ue_capability_info_indication(pkbuf_t **pkbuf, int i) "403f000003000000 05c0020000c70008 00020004004a4029 28013001023cd980" "00bc000ff06ec4d0 0141b82c00000000 07d404000ef08020 00012a0300008800" "00", - "", @@ -578,6 +630,16 @@ status_t tests1ap_build_ue_capability_info_indication(pkbuf_t **pkbuf, int i) "0016" "4030000003000000 05c0020000c40008 0002000c004a401a 1900b801014c5980" "0018000bf06ec4d0 0100302c00000000 0000", + "", + + "0016" + "4080800000030000 0002000200080003 40072d004a406c6b 034803042c998001" + "08201838bfc1c5fd bd3ffa8a20400902 3a54930382c60000 00001c4083840008" + "0881001c40004042 080060e2ff0717f0 0040000203fa0000 0007e8000000020f" + "33035758a6601404 e09c100125600031 218d3432b2386200 40008d17960c4008" + "001100", + "", + "", }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { 161, @@ -594,6 +656,11 @@ status_t tests1ap_build_ue_capability_info_indication(pkbuf_t **pkbuf, int i) 52, 52, + 0, + + 133, + 0, + 0, }; char hexbuf[MAX_SDU_LEN]; @@ -670,7 +737,6 @@ status_t tests1ap_build_attach_complete(pkbuf_t **pkbuf, int i) "000d" "403a000005000000 05c00100009e0008 00020002001a000e 0d27e8a2a3f10207" "4300035200c20064 40080000f1101079 baf0004340060000 f1105ba0", - "", @@ -695,6 +761,13 @@ status_t tests1ap_build_attach_complete(pkbuf_t **pkbuf, int i) "000d" "403a000005000000 05c0020000c40008 0002000c001a000e 0d276a543e560207" "4300035200c20064 40080000f110001f 20a0004340060000 f1103039", + "", + + "000d" + "4038000005000000 0200020008000340 072d001a000e0d27 600bbd3802074300" + "035200c200644008 0000f1100787b800 004340060000f110 3039", + "", + "", }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { @@ -712,6 +785,11 @@ status_t tests1ap_build_attach_complete(pkbuf_t **pkbuf, int i) 62, 62, + 0, + + 60, + 0, + 0, }; char hexbuf[MAX_SDU_LEN]; @@ -870,16 +948,18 @@ status_t tests1ap_build_ue_context_release_complete(pkbuf_t **pkbuf, int i) "", "2017001200000200 004005c000000001 00084002001f", - "2017" "0012000002000040 05c0020000c40008 4002000c", - "2017" "0012000002000040 05c0020000c50008 40020008", - "2017" "0012000002000040 05c0020000c70008 40020008", + "2017" + "0010000002000040 0200010008400340 072c", + "2017" + "0010000002000040 0200030008400340 072e", + 0, }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { 23, @@ -897,6 +977,10 @@ status_t tests1ap_build_ue_context_release_complete(pkbuf_t **pkbuf, int i) 22, 22, 22, + + 20, + 20, + 0, }; char hexbuf[MAX_SDU_LEN]; @@ -924,9 +1008,23 @@ status_t tests1ap_build_service_request(pkbuf_t **pkbuf, int i) "000c" "4037000006000800 020004001a000504 c704d4b800430006 0000f1102b670064" "40080000f11054f6 4010008640014000 6000060040000000 03", + "", + "", "", "", + "", + + + "000c" + "4038000006000800 0340072c001a0005 04c7119551004300 060000f110303900" + "6440080000f11007 87b8000086400140 0060000600400000 0001", + "000c" + "4038000006000800 0340072e001a0005 04c704da67004300 060000f110303900" + "6440080000f11007 87b8000086400140 0060000600400000 0001", + "000c" + "4038000006000800 0340072f001a0005 04c70528f1004300 060000f110303900" + "6440080000f11007 87b8000086400140 0060000600400000 0001", }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { @@ -941,6 +1039,14 @@ status_t tests1ap_build_service_request(pkbuf_t **pkbuf, int i) 59, 0, 0, + + 0, + 0, + 0, + + 60, + 60, + 60, }; char hexbuf[MAX_SDU_LEN]; diff --git a/test/volte/testpacket.c b/test/volte/testpacket.c index 01b2a2cee2..c08b0ffcd6 100644 --- a/test/volte/testpacket.c +++ b/test/volte/testpacket.c @@ -201,6 +201,7 @@ status_t tests1ap_build_initial_ue_msg(pkbuf_t **pkbuf, int i) "000300000a005c0a 003103e5e0349011 035758a65d010000 4300060000f11030" "39006440080000f1 100019b010008640 0130", + "000c" "4068000005000800 020001001a00403f 0741720809101010 3254861002e06000" "210207d011d1271a 8080211001000010 8106000000008306 00000000000d0000" @@ -213,10 +214,18 @@ status_t tests1ap_build_initial_ue_msg(pkbuf_t **pkbuf, int i) "830600000000000d 00000a005200f110 30395c0a00901103 4f18a6f15d0100e0" "004300060000f110 3039006440080000 f110001f20a00086 400130004b000700" "00f110000201", - "", + "000c" + "4080810000050008 000340072d001a00 5857074172080910 10103254967305e0" + "60c0401100270209 d031d12720808021 1001000010810600 0000008306000000" + "00000d0000030000 0a000010005c0a00 3103e5e02e901103 5758a64008040260" + "0000021f005d0103 c1004300060000f1 1030390064400800 00f1100787b80000" + "86400130", + "", + "", + }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { 92, @@ -235,6 +244,10 @@ status_t tests1ap_build_initial_ue_msg(pkbuf_t **pkbuf, int i) 136, 0, + 134, + 0, + 0, + }; char hexbuf[MAX_SDU_LEN]; @@ -330,7 +343,14 @@ status_t tests1ap_build_authentication_response(pkbuf_t **pkbuf, int i) "000d" "403e000005000000 05c0020000c40008 0002000c001a0012 1117deff957c0707" "5308e3b925330735 7093006440080000 f110001f20a00043 40060000f1103039", + "", + + "000d" + "4036000005000000 0200020008000340 072d001a000c0b07 5308e2b7921bc6fe" + "b4c9006440080000 f1100787b8000043 40060000f1103039", + "", + "", }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { @@ -348,6 +368,11 @@ status_t tests1ap_build_authentication_response(pkbuf_t **pkbuf, int i) 60, 66, + 0, + + 58, + 0, + 0, }; char hexbuf[MAX_SDU_LEN]; @@ -443,6 +468,14 @@ status_t tests1ap_build_security_mode_complete(pkbuf_t **pkbuf, int i) "000d" "4035000005000000 05c0020000c40008 0002000c001a0009 084790282df90007" "5e006440080000f1 10001f20a0004340 060000f1103039", + "", + + "000d" + "4033000005000000 0200020008000340 072d001a00090847 aaaf94cf00075e00" + "6440080000f11007 87b8000043400600 00f1103039", + "", + "", + }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { 57, @@ -459,6 +492,11 @@ status_t tests1ap_build_security_mode_complete(pkbuf_t **pkbuf, int i) 57, 57, + 0, + + 55, + 0, + 0, }; char hexbuf[MAX_SDU_LEN]; @@ -512,6 +550,15 @@ status_t tests1ap_build_esm_information_response(pkbuf_t **pkbuf, int i) "4041000005000000 05c0020000c40008 0002000c001a0015 14274f280bff0102" "04da280908696e74 65726e6574006440 080000f110001f20 a0004340060000f1" "103039", + "", + + "000d" + "403f000005000000 0200020008000340 072d001a00151427 c4a524d8010209da" + "280908696e746572 6e65740064400800 00f1100787b80000 4340060000f11030" + "39", + "", + "", + }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { 146, @@ -528,6 +575,12 @@ status_t tests1ap_build_esm_information_response(pkbuf_t **pkbuf, int i) 69, 69, + 0, + + 67, + 0, + 0, + }; char hexbuf[MAX_SDU_LEN]; @@ -567,7 +620,6 @@ status_t tests1ap_build_ue_capability_info_indication(pkbuf_t **pkbuf, int i) "403f000003000000 05c0020000c70008 00020004004a4029 28013001023cd980" "00bc000ff06ec4d0 0141b82c00000000 07d404000ef08020 00012a0300008800" "00", - "", @@ -578,6 +630,16 @@ status_t tests1ap_build_ue_capability_info_indication(pkbuf_t **pkbuf, int i) "0016" "4030000003000000 05c0020000c40008 0002000c004a401a 1900b801014c5980" "0018000bf06ec4d0 0100302c00000000 0000", + "", + + "0016" + "4080800000030000 0002000200080003 40072d004a406c6b 034803042c998001" + "08201838bfc1c5fd bd3ffa8a20400902 3a54930382c60000 00001c4083840008" + "0881001c40004042 080060e2ff0717f0 0040000203fa0000 0007e8000000020f" + "33035758a6601404 e09c100125600031 218d3432b2386200 40008d17960c4008" + "001100", + "", + "", }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { 161, @@ -594,6 +656,11 @@ status_t tests1ap_build_ue_capability_info_indication(pkbuf_t **pkbuf, int i) 52, 52, + 0, + + 133, + 0, + 0, }; char hexbuf[MAX_SDU_LEN]; @@ -670,11 +737,12 @@ status_t tests1ap_build_attach_complete(pkbuf_t **pkbuf, int i) "000d" "403a000005000000 05c00100009e0008 00020002001a000e 0d27e8a2a3f10207" "4300035200c20064 40080000f1101079 baf0004340060000 f1105ba0", - "", - "", + "000d" + "403a000005000000 05c0000000010008 0002001f001a000e 0d27127c47860207" + "4300035200c20064 40080000f1101079 baf0004340060000 f1105ba0", "000d" "403a000005000000 05c0010000020008 00020011001a000e 0d27225d92bb0207" "4300035200c20064 40080000f1101079 baf0004340060000 f1105ba0", @@ -693,6 +761,13 @@ status_t tests1ap_build_attach_complete(pkbuf_t **pkbuf, int i) "000d" "403a000005000000 05c0020000c40008 0002000c001a000e 0d276a543e560207" "4300035200c20064 40080000f110001f 20a0004340060000 f1103039", + "", + + "000d" + "4038000005000000 0200020008000340 072d001a000e0d27 600bbd3802074300" + "035200c200644008 0000f1100787b800 004340060000f110 3039", + "", + "", }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { @@ -700,7 +775,7 @@ status_t tests1ap_build_attach_complete(pkbuf_t **pkbuf, int i) 62, 0, - 0, + 62, 62, 0, @@ -710,6 +785,11 @@ status_t tests1ap_build_attach_complete(pkbuf_t **pkbuf, int i) 62, 62, + 0, + + 60, + 0, + 0, }; char hexbuf[MAX_SDU_LEN]; @@ -730,28 +810,27 @@ status_t tests1ap_build_emm_status(pkbuf_t **pkbuf, int i) "", "", - "000d403300000500 0000020001000800 02001f001a000a09 27574292cc020760" + "", + "", + "", + + "", + "", + "000d403300000500 0000020001000800 020001001a000a09 276941dec8020760" "65006440080000f1 10002343d0004340 060000f1103039", - - "", - "", - - "", - "", - "", }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { 0, 0, 0, - 55, + 0, 0, 0, 0, 0, - 0, + 55, }; char hexbuf[MAX_SDU_LEN]; @@ -867,18 +946,20 @@ status_t tests1ap_build_ue_context_release_complete(pkbuf_t **pkbuf, int i) "2017" "0012000002000040 05c0020000c80008 40020002", "", - "", - + "2017001200000200 004005c000000001 00084002001f", "2017" "0012000002000040 05c0020000c40008 4002000c", - "2017" "0012000002000040 05c0020000c50008 40020008", - "2017" "0012000002000040 05c0020000c70008 40020008", + "2017" + "0010000002000040 0200010008400340 072c", + "2017" + "0010000002000040 0200030008400340 072e", + 0, }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { 23, @@ -891,11 +972,15 @@ status_t tests1ap_build_ue_context_release_complete(pkbuf_t **pkbuf, int i) 22, 0, - 0, + 22, 22, 22, 22, + + 20, + 20, + 0, }; char hexbuf[MAX_SDU_LEN]; @@ -923,9 +1008,23 @@ status_t tests1ap_build_service_request(pkbuf_t **pkbuf, int i) "000c" "4037000006000800 020004001a000504 c704d4b800430006 0000f1102b670064" "40080000f11054f6 4010008640014000 6000060040000000 03", + "", + "", "", "", + "", + + + "000c" + "4038000006000800 0340072c001a0005 04c7119551004300 060000f110303900" + "6440080000f11007 87b8000086400140 0060000600400000 0001", + "000c" + "4038000006000800 0340072e001a0005 04c704da67004300 060000f110303900" + "6440080000f11007 87b8000086400140 0060000600400000 0001", + "000c" + "4038000006000800 0340072f001a0005 04c70528f1004300 060000f110303900" + "6440080000f11007 87b8000086400140 0060000600400000 0001", }; c_uint16_t len[TESTS1AP_MAX_MESSAGE] = { @@ -940,6 +1039,14 @@ status_t tests1ap_build_service_request(pkbuf_t **pkbuf, int i) 59, 0, 0, + + 0, + 0, + 0, + + 60, + 60, + 60, }; char hexbuf[MAX_SDU_LEN];