conf: Add ignore_requested_nssai parameter (#859)

If parameter.ignore_requsted_nssai is true,
AMF will ignore the UE Requested NSSAI and create an allowed-NSSAI
based on the Default S-NSSAI in the Subscription DB.
This commit is contained in:
Sukchan Lee 2021-03-26 23:12:43 +09:00
parent b22023afb8
commit 6ab5c41af5
19 changed files with 29 additions and 90 deletions

View File

@ -254,11 +254,9 @@ nrf:
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
# o Enable Multicast traffic to the UE
# multicast: true
#
# o Disable Stateless Address Autoconfiguration for IPv6
# no_slaac: true
# o AMF ignores the UE Requested NSSAI and creates an allowed-NSSAI
# based on the Default S-NSSAI in the Subscription DB.
# ignore_requested_nssai: true
#
parameter:

View File

@ -126,12 +126,6 @@ nrf:
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
# o Enable Multicast traffic to the UE
# multicast: true
#
# o Disable Stateless Address Autoconfiguration for IPv6
# no_slaac: true
#
parameter:
#

View File

@ -41,12 +41,6 @@ hss:
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
# o Enable Multicast traffic to the UE
# multicast: true
#
# o Disable Stateless Address Autoconfiguration for IPv6
# no_slaac: true
#
parameter:
#

View File

@ -347,12 +347,6 @@ smf:
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
# o Enable Multicast traffic to the UE
# multicast: true
#
# o Disable Stateless Address Autoconfiguration for IPv6
# no_slaac: true
#
# o Use OAI UE
# - Remove HashMME in Security-mode command message
# - Use the length 1 of EPS network feature support in Attach accept message

View File

@ -87,12 +87,6 @@ nrf:
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
# o Enable Multicast traffic to the UE
# multicast: true
#
# o Disable Stateless Address Autoconfiguration for IPv6
# no_slaac: true
#
parameter:
#

View File

@ -168,12 +168,6 @@ nrf:
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
# o Enable Multicast traffic to the UE
# multicast: true
#
# o Disable Stateless Address Autoconfiguration for IPv6
# no_slaac: true
#
parameter:
#

View File

@ -128,12 +128,6 @@ nrf:
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
# o Enable Multicast traffic to the UE
# multicast: true
#
# o Disable Stateless Address Autoconfiguration for IPv6
# no_slaac: true
#
parameter:
#

View File

@ -40,12 +40,6 @@ pcrf:
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
# o Enable Multicast traffic to the UE
# multicast: true
#
# o Disable Stateless Address Autoconfiguration for IPv6
# no_slaac: true
#
# o Legacy support for pre-release LTE 11 devices to do calling
# - Replace IPv4/v6 local addr field in AAR Media-Subcomponent AVP by any
# no_ipv4v6_local_addr_in_packet_filter: true

View File

@ -126,12 +126,6 @@ sgwu:
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
# o Enable Multicast traffic to the UE
# multicast: true
#
# o Disable Stateless Address Autoconfiguration for IPv6
# no_slaac: true
#
parameter:
#

View File

@ -113,12 +113,6 @@ sgwc:
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
# o Enable Multicast traffic to the UE
# multicast: true
#
# o Disable Stateless Address Autoconfiguration for IPv6
# no_slaac: true
#
parameter:
#

View File

@ -444,12 +444,6 @@ upf:
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
# o Enable Multicast traffic to the UE
# multicast: true
#
# o Disable Stateless Address Autoconfiguration for IPv6
# no_slaac: true
#
parameter:
#

View File

@ -126,12 +126,6 @@ nrf:
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
# o Enable Multicast traffic to the UE
# multicast: true
#
# o Disable Stateless Address Autoconfiguration for IPv6
# no_slaac: true
#
parameter:
#

View File

@ -128,12 +128,6 @@ nrf:
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
# o Enable Multicast traffic to the UE
# multicast: true
#
# o Disable Stateless Address Autoconfiguration for IPv6
# no_slaac: true
#
parameter:
#

View File

@ -172,13 +172,6 @@ smf:
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
# prefer_ipv4: true
#
# o Enable Multicast traffic to the UE
# multicast: true
#
# o Disable Stateless Address Autoconfiguration for IPv6
# no_slaac: true
#
#
parameter:
#

View File

@ -339,6 +339,9 @@ int ogs_app_context_parse_config(void)
parameter_key, "no_ipv4v6_local_addr_in_packet_filter")) {
self.parameter.no_ipv4v6_local_addr_in_packet_filter =
ogs_yaml_iter_bool(&parameter_iter);
} else if (!strcmp(parameter_key, "ignore_requested_nssai")) {
self.parameter.ignore_requested_nssai =
ogs_yaml_iter_bool(&parameter_iter);
} else
ogs_warn("unknown key `%s`", parameter_key);
}

View File

@ -75,6 +75,7 @@ typedef struct ogs_app_context_s {
int use_openair;
int no_ipv4v6_local_addr_in_packet_filter;
int ignore_requested_nssai;
} parameter;
ogs_sockopt_t sockopt;

View File

@ -258,7 +258,7 @@ int ogs_nas_parse_nssai(
if (!nas_nssai->length) {
ogs_error("No NSSAI [%p:%d]", nas_nssai->buffer, nas_nssai->length);
return OGS_ERROR;
return 0;
}
while (pos < nas_nssai->length &&

View File

@ -239,7 +239,8 @@ int gmm_handle_registration_update(amf_ue_t *amf_ue,
}
if (i == amf_ue->requested_nssai.num_of_s_nssai) {
ogs_error("CHECK CONFIGURATION: Cannot find Requested NSSAI");
ogs_error("Cannot find Requested NSSAI [%d]",
amf_ue->requested_nssai.num_of_s_nssai);
for (i = 0; i < amf_ue->requested_nssai.num_of_s_nssai; i++) {
ogs_error(" PLMN_ID[MCC:%d MNC:%d]",
ogs_plmn_id_mcc(&amf_ue->nr_tai.plmn_id),

View File

@ -165,7 +165,8 @@ int amf_nudm_sdm_handle_provisioned(
amf_ue->allowed_nssai.num_of_s_nssai = 0;
amf_ue->rejected_nssai.num_of_s_nssai = 0;
if (amf_ue->requested_nssai.num_of_s_nssai) {
if (ogs_app()->parameter.ignore_requested_nssai == 0 &&
amf_ue->requested_nssai.num_of_s_nssai) {
for (i = 0; i < amf_ue->requested_nssai.num_of_s_nssai; i++) {
ogs_slice_data_t *slice = NULL;
ogs_nas_s_nssai_ie_t *requested =
@ -224,12 +225,26 @@ int amf_nudm_sdm_handle_provisioned(
if (amf_ue->allowed_nssai.num_of_s_nssai) {
amf_ue->allowed_nssai_present = true;
} else {
ogs_error("CHECK DATABASE: Cannot create Allowed-NSSAI");
ogs_error("No Allowed-NSSAI");
ogs_error(" Number of Subscribed S-NSSAI [%d]",
amf_ue->num_of_slice);
for (i = 0; i < amf_ue->num_of_slice; i++) {
ogs_slice_data_t *slice = &amf_ue->slice[i];
if (slice->default_indicator == true) {
ogs_error(" Default S_NSSAI[SST:%d SD:0x%x]",
slice->s_nssai.sst, slice->s_nssai.sd.v);
} else {
ogs_error(" S_NSSAI[SST:%d SD:0x%x]",
slice->s_nssai.sst, slice->s_nssai.sd.v);
}
}
ogs_error(" Number of Requested NSSAI [%d]",
amf_ue->requested_nssai.num_of_s_nssai);
for (i = 0; i < amf_ue->requested_nssai.num_of_s_nssai; i++) {
ogs_error(" PLMN_ID[MCC:%d MNC:%d]",
ogs_error(" PLMN_ID[MCC:%d MNC:%d]",
ogs_plmn_id_mcc(&amf_ue->nr_tai.plmn_id),
ogs_plmn_id_mnc(&amf_ue->nr_tai.plmn_id));
ogs_error(" S_NSSAI[SST:%d SD:0x%x]",
ogs_error(" S_NSSAI[SST:%d SD:0x%x]",
amf_ue->requested_nssai.s_nssai[i].sst,
amf_ue->requested_nssai.s_nssai[i].sd.v);
}