[MME] Incorrect behavior of SGsAP+Dedicated-Bearer (#3072)

First of all, it crashes when creating a Dedicated Bearer
on the default Session that is created for the first time.
This behavior should be possible, so the related ASSERT is removed.

Next, the InitialContextRequest is modified
during the Attach Request to include the first Bearer.

Finally, there was an issue where trying to create a Dedicated Bearer
with SGsAP enabled resulted in an InitialContextSetupRequest message
with a PTI of zero. This is because MME initializes the PTI to 0
upon receiving the Create Bearer Request while processing SGsAP.

All of these issues has been fixed.
This commit is contained in:
Sukchan Lee
2024-04-01 22:07:19 +09:00
parent d32cc14a71
commit da5d424ed9
14 changed files with 621 additions and 106 deletions

View File

@@ -225,6 +225,8 @@ static void test1_func(abts_case *tc, void *data)
#endif
/* Send Attach Request */
sess->pti = 1;
memset(&sess->pdn_connectivity_param,
0, sizeof(sess->pdn_connectivity_param));
sess->pdn_connectivity_param.eit = 1;
@@ -364,6 +366,7 @@ static void test1_func(abts_case *tc, void *data)
/* Send Attach Request - INVALID GUTI */
test_ue->nas_eps_guti.m_tmsi = 0x1234;
sess->pti = 1;
memset(&sess->pdn_connectivity_param,
0, sizeof(sess->pdn_connectivity_param));
@@ -618,6 +621,8 @@ static void test2_func(abts_case *tc, void *data)
tests1ap_recv(test_ue, recvbuf);
/* Send Attach Request - No Integrity */
sess->pti = 1;
sess->pdn_connectivity_param.eit = 1;
sess->pdn_connectivity_param.pco = 1;
sess->pdn_connectivity_param.request_type =
@@ -751,6 +756,8 @@ static void test2_func(abts_case *tc, void *data)
tests1ap_recv(test_ue, recvbuf);
/* Send Attach Request */
sess->pti = 1;
memset(&sess->pdn_connectivity_param,
0, sizeof(sess->pdn_connectivity_param));
sess->pdn_connectivity_param.eit = 1;
@@ -1507,6 +1514,8 @@ static void test4_func(abts_case *tc, void *data)
tests1ap_recv(test_ue, recvbuf);
/* Send Attach Request */
sess->pti = 1;
memset(&sess->pdn_connectivity_param,
0, sizeof(sess->pdn_connectivity_param));
sess->pdn_connectivity_param.eit = 1;