Give users possibility to configure SMF info themselves
Changes
-
Use auto-generated models for YAML config
Snssai
SmfInfo
-
Move some common and NRF models to
common-src
(see oai-cn5g-common-src!21 (merged)) -
Implement validation of common-src
Snssai
-
Use this validation for the YAML values -> Big advantage: We have the same validation for user-provided YAML values, as well as for API values
-
Most changes are just namespace things due to the moving
Note to reviewer
@tien-thinh.nguyen As you see, most changes are just namespace changes, the main thing happens in smf_app
and SMF config related classses.
Fixes
Fixes issue #3 (closed). I think this is really important, because now you can use use_local_subscription_info: no
on SMF and also enable_smf_selection:yes
on AMF
@defosseu This also means it simplifies the static IP address tutorial.
Configuration changes
- Add new SMF config type
smf_info
which uses standardized 3GPP TS 29.510SmfInfo
type. - Use YAML anchors to not re-define SNSSAIs
Refactoring effort
- When we merge this MR, I'll create a
common-src
MR with all the common models and delete them on all the NF repositories. -
@tien-thinh.nguyen Also, our
SD
value situation is somewhat complex and not standard-compliant (see Issue #14). This refactoring is the first step towards a greater refactoring where we use one NFProfile for all NFs and there we can easily implement standard-compliant SD value
Configuration API GET:
@tien-thinh.nguyen You can see the SMF config API kept all the values, but we have a new one, which follows the SmfInfo
, it should be really easy to use this for the configuration backend, as they can just use OpenApi generated models for this.
Also, they can now control the slicing configuration per NF much better.
{
"http_version": "1",
"local_subscription_infos": [
{
"dnn": "oai",
"qos_profile": {
"5qi": 9,
"arp_preempt_capability": "NOT_PREEMPT",
"arp_preempt_vulnerability": "NOT_PREEMPTABLE",
"arp_priority": 1,
"priority": 1,
"session_ambr_dl": "400Mbps",
"session_ambr_ul": "200Mbps"
},
"snssai": {
"sd": "FFFFFF",
"sst": 1
},
"ssc_mode": 1
},
{
"dnn": "oai.ipv4",
"qos_profile": {
"5qi": 9,
"arp_preempt_capability": "NOT_PREEMPT",
"arp_preempt_vulnerability": "NOT_PREEMPTABLE",
"arp_priority": 1,
"priority": 1,
"session_ambr_dl": "200Mbps",
"session_ambr_ul": "100Mbps"
},
"snssai": {
"sd": "1",
"sst": 1
},
"ssc_mode": 1
},
{
"dnn": "default",
"qos_profile": {
"5qi": 9,
"arp_preempt_capability": "NOT_PREEMPT",
"arp_preempt_vulnerability": "NOT_PREEMPTABLE",
"arp_priority": 1,
"priority": 1,
"session_ambr_dl": "100Mbps",
"session_ambr_ul": "50Mbps"
},
"snssai": {
"sd": "7B",
"sst": 222
},
"ssc_mode": 1
}
],
"log_level": "debug",
"register_nf": true,
"sbi": {
"api_version": "v1",
"interface_name": "eth0",
"url": "http://oai-smf:8080"
},
"smf_info": {
"sNssaiSmfInfoList": [
{
"dnnSmfInfoList": [
{
"dnn": "oai"
}
],
"sNssai": {
"sd": "FFFFFF",
"sst": 1
}
},
{
"dnnSmfInfoList": [
{
"dnn": "oai.ipv4"
}
],
"sNssai": {
"sd": "1",
"sst": 1
}
},
{
"dnnSmfInfoList": [
{
"dnn": "default"
}
],
"sNssai": {
"sd": "7B",
"sst": 222
}
}
]
},
"supported_features": {
"use_external_ausf": false,
"use_external_nssf": false,
"use_external_udm": false,
"use_local_pcc_rules": true,
"use_local_subscription_info": true
},
"ue_dns": {
"primary_dns_ipv4": "172.21.3.100",
"primary_dns_ipv6": "2001:4860:4860::8888",
"secondary_dns_ipv4": "8.8.8.8",
"secondary_dns_ipv6": "2001:4860:4860::8888"
},
"upfs": [
{
"config": {
"enable_dl_pdr_in_session_establishment": false,
"enable_usage_reporting": false,
"local_n3_ipv4": "",
"nwi": {
"nwi_n3": "access.oai.org",
"nwi_n6": "core.oai.org"
}
},
"host": "oai-spgwu",
"port": 8805
}
]
}