forked from acouzens/open5gs
update it
This commit is contained in:
parent
90c36c1b3f
commit
5147afd39e
|
@ -61,14 +61,25 @@ status_t mme_context_init()
|
|||
plmn_id_build(&self.plmn_id, 1, 1, 2);
|
||||
self.tracking_area_code = 12345;
|
||||
|
||||
self.srvd_gummei.num_of_plmn_id = 1;
|
||||
/* MCC : 001, MNC : 01 */
|
||||
plmn_id_build(&self.srvd_gummei.plmn_id[0], 1, 1, 2);
|
||||
self.max_num_of_served_gummei = 1;
|
||||
|
||||
self.srvd_gummei.num_of_mme_gid = 1;
|
||||
self.srvd_gummei.mme_gid[0] = 2;
|
||||
self.srvd_gummei.num_of_mme_code = 1;
|
||||
self.srvd_gummei.mme_code[0] = 1;
|
||||
self.served_gummei[0].num_of_plmn_id = 1;
|
||||
/* MCC : 001, MNC : 01 */
|
||||
plmn_id_build(&self.served_gummei[0].plmn_id[0], 1, 1, 2);
|
||||
|
||||
self.served_gummei[0].num_of_mme_gid = 1;
|
||||
self.served_gummei[0].mme_gid[0] = 2;
|
||||
self.served_gummei[0].num_of_mme_code = 1;
|
||||
self.served_gummei[0].mme_code[0] = 1;
|
||||
|
||||
self.served_gummei[1].num_of_plmn_id = 1;
|
||||
/* MCC : 001, MNC : 01 */
|
||||
plmn_id_build(&self.served_gummei[1].plmn_id[0], 2, 2, 2);
|
||||
|
||||
self.served_gummei[1].num_of_mme_gid = 1;
|
||||
self.served_gummei[1].mme_gid[0] = 4;
|
||||
self.served_gummei[1].num_of_mme_code = 1;
|
||||
self.served_gummei[1].mme_code[0] = 3;
|
||||
|
||||
context_initialized = 1;
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ extern "C" {
|
|||
#define GRP_PER_MME 256 /* According to spec it is 65535 */
|
||||
#define CODE_PER_MME 256 /* According to spec it is 256 */
|
||||
|
||||
#define MAX_NUM_OF_SERVED_GUMMEI 4
|
||||
#define MAX_NUM_OF_ALGORITHM 8
|
||||
|
||||
typedef struct _served_gummei {
|
||||
|
@ -35,7 +36,7 @@ typedef struct _served_gummei {
|
|||
c_uint16_t mme_gid[GRP_PER_MME];
|
||||
c_uint32_t num_of_mme_code;
|
||||
c_uint8_t mme_code[CODE_PER_MME];
|
||||
} srvd_gummei_t;
|
||||
} served_gummei_t;
|
||||
|
||||
typedef struct _mme_context_t {
|
||||
c_uint32_t s1ap_addr; /* MME S1AP local address */
|
||||
|
@ -72,7 +73,8 @@ typedef struct _mme_context_t {
|
|||
c_uint16_t tracking_area_code;
|
||||
|
||||
/* S1SetupResponse */
|
||||
srvd_gummei_t srvd_gummei;
|
||||
c_uint8_t max_num_of_served_gummei;
|
||||
served_gummei_t served_gummei[MAX_NUM_OF_SERVED_GUMMEI];
|
||||
c_uint8_t relative_capacity;
|
||||
|
||||
list_t sgw_list;
|
||||
|
|
|
@ -16,7 +16,6 @@ status_t s1ap_build_setup_rsp(pkbuf_t **pkbuf)
|
|||
|
||||
s1ap_message_t message;
|
||||
S1ap_S1SetupResponseIEs_t *ies = NULL;
|
||||
int numServedGUMMEI = 0;
|
||||
S1ap_ServedGUMMEIsItem_t *servedGUMMEI;
|
||||
S1ap_PLMNidentity_t *plmnIdentity;
|
||||
S1ap_MME_Group_ID_t *mmeGroupId;
|
||||
|
@ -26,37 +25,36 @@ status_t s1ap_build_setup_rsp(pkbuf_t **pkbuf)
|
|||
|
||||
ies = &message.s1ap_S1SetupResponseIEs;
|
||||
|
||||
numServedGUMMEI = 1;
|
||||
servedGUMMEI = (S1ap_ServedGUMMEIsItem_t *)
|
||||
core_calloc(numServedGUMMEI, sizeof(S1ap_ServedGUMMEIsItem_t));
|
||||
for (i = 0; i < numServedGUMMEI; i++)
|
||||
for (i = 0; i < mme_self()->max_num_of_served_gummei; i++)
|
||||
{
|
||||
srvd_gummei_t *srvd_gummei = &mme_self()->srvd_gummei;
|
||||
servedGUMMEI = (S1ap_ServedGUMMEIsItem_t *)
|
||||
core_calloc(1, sizeof(S1ap_ServedGUMMEIsItem_t));
|
||||
served_gummei_t *served_gummei = &mme_self()->served_gummei[i];
|
||||
|
||||
for (j = 0; j < srvd_gummei->num_of_plmn_id; j++)
|
||||
for (j = 0; j < served_gummei->num_of_plmn_id; j++)
|
||||
{
|
||||
plmnIdentity = (S1ap_PLMNidentity_t *)
|
||||
core_calloc(1, sizeof(S1ap_PLMNidentity_t));
|
||||
s1ap_buffer_to_OCTET_STRING(
|
||||
&srvd_gummei->plmn_id[j], PLMN_ID_LEN, plmnIdentity);
|
||||
&served_gummei->plmn_id[j], PLMN_ID_LEN, plmnIdentity);
|
||||
ASN_SEQUENCE_ADD(&servedGUMMEI->servedPLMNs, plmnIdentity);
|
||||
}
|
||||
|
||||
for (j = 0; j < srvd_gummei->num_of_mme_gid; j++)
|
||||
for (j = 0; j < served_gummei->num_of_mme_gid; j++)
|
||||
{
|
||||
mmeGroupId = (S1ap_MME_Group_ID_t *)
|
||||
core_calloc(1, sizeof(S1ap_MME_Group_ID_t));
|
||||
s1ap_uint16_to_OCTET_STRING(
|
||||
srvd_gummei->mme_gid[j], mmeGroupId);
|
||||
served_gummei->mme_gid[j], mmeGroupId);
|
||||
ASN_SEQUENCE_ADD(&servedGUMMEI->servedGroupIDs, mmeGroupId);
|
||||
}
|
||||
|
||||
for (j = 0; j < srvd_gummei->num_of_mme_code; j++)
|
||||
for (j = 0; j < served_gummei->num_of_mme_code; j++)
|
||||
{
|
||||
mmeCode = (S1ap_MME_Code_t *)
|
||||
core_calloc(1, sizeof(S1ap_MME_Code_t));
|
||||
s1ap_uint8_to_OCTET_STRING(
|
||||
srvd_gummei->mme_code[j], mmeCode);
|
||||
served_gummei->mme_code[j], mmeCode);
|
||||
ASN_SEQUENCE_ADD(&servedGUMMEI->servedMMECs, mmeCode);
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&ies->servedGUMMEIs, servedGUMMEI);
|
||||
|
|
Loading…
Reference in New Issue