src/mme/emm_handler.c
src/mme/mme_context.c src/mme/mme_context.h support/config/mme.conf.in
This commit is contained in:
parent
888cbfbdb8
commit
02712a38e6
|
@ -214,6 +214,14 @@ status_t emm_handle_attach_complete(
|
|||
NAS_EMM_INFORMATION_NETWORK_DAYLIGHT_SAVING_TIME_PRESENT;
|
||||
network_daylight_saving_time->length = 1;
|
||||
|
||||
|
||||
emm_information->presencemask |= NAS_EMM_INFORMATION_FULL_NAME_FOR_NETWORK_TYPE;
|
||||
memcpy(&emm_information->full_name_for_network, &mme_self()->full_name, sizeof(nas_network_name_t));
|
||||
|
||||
emm_information->presencemask |= NAS_EMM_INFORMATION_SHORT_NAME_FOR_NETWORK_TYPE;
|
||||
memcpy(&emm_information->short_name_for_network, &mme_self()->short_name, sizeof(nas_network_name_t));
|
||||
|
||||
|
||||
rv = nas_security_encode(&emmbuf, mme_ue, &message);
|
||||
d_assert(rv == CORE_OK && emmbuf, return CORE_ERROR, "emm build error");
|
||||
d_assert(nas_send_to_downlink_nas_transport(mme_ue, emmbuf) == CORE_OK,,);
|
||||
|
|
|
@ -1211,6 +1211,51 @@ status_t mme_context_parse_config()
|
|||
}
|
||||
}
|
||||
}
|
||||
else if(!strcmp(mme_key, "network_name"))
|
||||
{
|
||||
yaml_iter_t network_name_iter;
|
||||
yaml_iter_recurse(&mme_iter, &network_name_iter);
|
||||
|
||||
while(yaml_iter_next(&network_name_iter))
|
||||
{
|
||||
const char *network_name_key =
|
||||
yaml_iter_key(&network_name_iter);
|
||||
d_assert(network_name_key,
|
||||
return CORE_ERROR,);
|
||||
if (!strcmp(network_name_key, "full"))
|
||||
{
|
||||
nas_network_name_t *network_full_name = &self.full_name;
|
||||
const char *c_network_name = yaml_iter_value(&network_name_iter);
|
||||
c_uint8_t size = strlen(c_network_name);
|
||||
c_uint8_t i;
|
||||
for(i = 0;i<size;i++)
|
||||
{
|
||||
/* Workaround to convert the ASCII to USC-2 */
|
||||
network_full_name->name[i*2] = 0;
|
||||
network_full_name->name[(i*2)+1] = c_network_name[i];
|
||||
|
||||
}
|
||||
network_full_name->length = size*2+1;
|
||||
network_full_name->coding_scheme = 1;
|
||||
}
|
||||
else if (!strcmp(network_name_key, "short"))
|
||||
{
|
||||
nas_network_name_t *network_short_name = &self.short_name;
|
||||
const char *c_network_name = yaml_iter_value(&network_name_iter);
|
||||
c_uint8_t size = strlen(c_network_name);
|
||||
c_uint8_t i;
|
||||
for(i = 0;i<size;i++)
|
||||
{
|
||||
/* Workaround to convert the ASCII to USC-2 */
|
||||
network_short_name->name[i*2] = 0;
|
||||
network_short_name->name[(i*2)+1] = c_network_name[i];
|
||||
|
||||
}
|
||||
network_short_name->length = size*2+1;
|
||||
network_short_name->coding_scheme = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
d_warn("unknown key `%s`", mme_key);
|
||||
}
|
||||
|
|
|
@ -132,6 +132,11 @@ typedef struct _mme_context_t {
|
|||
/* System */
|
||||
msgq_id queue_id; /* Queue for processing MME control plane */
|
||||
tm_service_t tm_service; /* Timer Service */
|
||||
|
||||
/* Network Name */
|
||||
nas_network_name_t short_name; /* Network short name */
|
||||
nas_network_name_t full_name; /* Network Full Name */
|
||||
|
||||
} mme_context_t;
|
||||
|
||||
typedef struct _mme_enb_t {
|
||||
|
|
|
@ -29,6 +29,9 @@ mme:
|
|||
security:
|
||||
integrity_order : [ EIA1, EIA2, EIA0 ]
|
||||
ciphering_order : [ EEA0, EEA1, EEA2 ]
|
||||
network_name:
|
||||
full: NextEPC
|
||||
short: NEPC
|
||||
|
||||
sgw:
|
||||
gtpc:
|
||||
|
|
Loading…
Reference in New Issue