update it

This commit is contained in:
Sukchan Lee 2017-07-14 22:03:10 +09:00
parent 90c36c1b3f
commit 5147afd39e
3 changed files with 32 additions and 21 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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);