From 309f9c082db17d38ff65ce83b63fac4db59f172a Mon Sep 17 00:00:00 2001 From: Sagar Arora <sagar.arora@openairinterface.org> Date: Mon, 30 Oct 2023 16:22:06 +0100 Subject: [PATCH] Moving slicing to advance --- .../Chart.yaml | 35 ++-- charts/oai-5g-core/oai-5g-advance/README.md | 45 ++++ charts/oai-5g-core/oai-5g-advance/config.yaml | 198 ++++++++++++++++++ .../oai-5g-advance/nssf_slice_config.yaml | 177 ++++++++++++++++ .../oai-5g-advance/templates/configmap.yaml | 7 + .../values.yaml | 156 +++++--------- charts/oai-5g-core/oai-5g-slicing/README.md | 37 ---- charts/oai-5g-core/oai-nssf/config.yaml | 32 +++ 8 files changed, 530 insertions(+), 157 deletions(-) rename charts/oai-5g-core/{oai-5g-slicing => oai-5g-advance}/Chart.yaml (69%) create mode 100644 charts/oai-5g-core/oai-5g-advance/README.md create mode 100644 charts/oai-5g-core/oai-5g-advance/config.yaml create mode 100644 charts/oai-5g-core/oai-5g-advance/nssf_slice_config.yaml create mode 100644 charts/oai-5g-core/oai-5g-advance/templates/configmap.yaml rename charts/oai-5g-core/{oai-5g-slicing => oai-5g-advance}/values.yaml (60%) delete mode 100644 charts/oai-5g-core/oai-5g-slicing/README.md create mode 100644 charts/oai-5g-core/oai-nssf/config.yaml diff --git a/charts/oai-5g-core/oai-5g-slicing/Chart.yaml b/charts/oai-5g-core/oai-5g-advance/Chart.yaml similarity index 69% rename from charts/oai-5g-core/oai-5g-slicing/Chart.yaml rename to charts/oai-5g-core/oai-5g-advance/Chart.yaml index 1032e4d4..e97b3312 100644 --- a/charts/oai-5g-core/oai-5g-slicing/Chart.yaml +++ b/charts/oai-5g-core/oai-5g-advance/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 -name: oai-5g-slicing -version: v1.5.1 -appVersion: develop-v1.5.1 +name: oai-5g-advance +version: v2.0.0 +appVersion: master-v2.0.0 icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png description: OAI 5G Release 16 Core Network type: application @@ -18,7 +18,6 @@ keywords: - AUSF - UPF - maintainers: - name: OPENAIRINTERFACE email: contact@openairinterface.org @@ -27,36 +26,40 @@ dependencies: - condition: mysql.enabled name: mysql repository: "file://../mysql" - version: 1.6.9 + version: 8.0.31 - condition: oai-nssf.enabled name: oai-nssf repository: "file://../oai-nssf" - version: v1.5.1 + version: v2.0.0 - condition: oai-nrf.enabled name: oai-nrf repository: "file://../oai-nrf" - version: v1.5.1 + version: v2.0.0 - condition: oai-udr.enabled name: oai-udr repository: "file://../oai-udr" - version: v1.5.1 + version: v2.0.0 - condition: oai-udm.enabled name: oai-udm repository: "file://../oai-udm" - version: v1.5.1 + version: v2.0.0 - condition: oai-ausf.enabled name: oai-ausf repository: "file://../oai-ausf" - version: v1.5.1 + version: v2.0.0 - condition: oai-amf.enabled name: oai-amf repository: "file://../oai-amf" - version: v1.5.1 + version: v2.0.0 - condition: oai-smf.enabled name: oai-smf repository: "file://../oai-smf" - version: v1.5.1 -- condition: oai-spgwu-tiny.enabled - name: oai-spgwu-tiny - repository: "file://../oai-spgwu-tiny" - version: v1.5.1 + version: v2.0.0 +- condition: oai-upf.enabled + name: oai-upf + repository: "file://../oai-upf" + version: v2.0.0 +#- condition: oai-traffic-server.enabled +# name: oai-traffic-server +# repository: "file://../oai-traffic-server" +# version: v1 \ No newline at end of file diff --git a/charts/oai-5g-core/oai-5g-advance/README.md b/charts/oai-5g-core/oai-5g-advance/README.md new file mode 100644 index 00000000..5d7dbf17 --- /dev/null +++ b/charts/oai-5g-core/oai-5g-advance/README.md @@ -0,0 +1,45 @@ +# Parent Helm Charts for Deploying Advance OAI-5G Core Network + +Slicing deployment contains + +1. OAI-AMF +2. OAI-SMF +3. OAI-NRF +4. OAI-UDR +5. OAI-AUSF +6. OAI-UDM +7. OAI-NSSF +8. OAI-SPGWU-TINY +9. MYSQL (Subscriber database) + +Infra structure related information is present in `values.yaml` and core network configuration is in `config.yaml`. + +If the gNB is in a different cluster or different subnet than pod subnet. Then you need to make sure AMF and SPGWU/UPF is reachable from the gNB host machine. You can use AMF and SPGWU/UPF multus interface. In SPGWU/UPF `n3Interface` should be able to reach gNB host machine/pod/container. + +Once you are sure with the configuration parameters you can deploy these charts following the below steps. + +1. Perform a dependency update whenever you change anything in the sub-charts or if you have recently clone the repository. + +```bash +helm dependency update +``` + +2. Install the parent charts using + +```bash +helm install oai-5g-advance . +``` + +## Note: + +1. If you want to use `oai-upf` with a single interface then you can enable any one out of three interfaces. Lets say we enable `multus.n3Interface.create`. Then change the below configuration parameters + +``` + n3If: "n3" # n3 if multus.n3Interface.create is true + n4If: "eth0" # n4 if multus.n4Interface.create is true + n6If: "eth0" # n6 multus.n6Interface.create is true +``` + +Make sure `n3` subnet is reachable from gNB. + +2. You can read this [tutorial](../../../docs/DEPLOY_SA5G_SLICING.md) on how to use NSSF with multiple instances of SMF/UPF but it is for docker-compose \ No newline at end of file diff --git a/charts/oai-5g-core/oai-5g-advance/config.yaml b/charts/oai-5g-core/oai-5g-advance/config.yaml new file mode 100644 index 00000000..42157a70 --- /dev/null +++ b/charts/oai-5g-core/oai-5g-advance/config.yaml @@ -0,0 +1,198 @@ +############# Common configuration + +# Log level for all the NFs +log_level: + general: info + +# If you enable registration, the other NFs will use the NRF discovery mechanism +register_nf: + general: yes + +http_version: 2 + +## general single_nssai configuration +## Defines YAML anchors, which are reused in the config file +snssais: + - &embb_slice1 + sst: 1 + - &embb_slice2 + sst: 1 + sd: FFFFFF # in hex + +############## SBI Interfaces +### Each NF takes its local SBI interfaces and remote interfaces from here, unless it gets them using NRF discovery mechanisms +nfs: + amf: + host: oai-amf + sbi: + port: 80 + api_version: v1 + interface_name: eth0 + n2: + interface_name: eth0 + port: 38412 + smf: + host: oai-smf + sbi: + port: 80 + api_version: v1 + interface_name: eth0 + n4: + interface_name: eth0 + port: 8805 + upf: + host: oai-upf + sbi: + port: 80 + api_version: v1 + interface_name: eth0 + n3: + interface_name: eth0 + port: 2152 + n4: + interface_name: eth0 + port: 8805 + n6: + interface_name: eth0 + n9: + interface_name: eth0 + port: 2152 + udm: + host: oai-udm + sbi: + port: 80 + api_version: v1 + interface_name: eth0 + udr: + host: oai-udr + sbi: + port: 80 + api_version: v1 + interface_name: eth0 + ausf: + host: oai-ausf + sbi: + port: 80 + api_version: v1 + interface_name: eth0 + nrf: + host: oai-nrf + sbi: + port: 80 + api_version: v1 + interface_name: eth0 + nssf: + host: oai-nssf + sbi: + port: 80 + api_version: v1 + interface_name: eth0 +#### Common for UDR and AMF +database: + host: mysql + user: test + type: mysql + password: test + database_name: oai_db + generate_random: true + connection_timeout: 300 # seconds + +############## NF-specific configuration +amf: + amf_name: "OAI-AMF" + # This really depends on if we want to keep the "mini" version or not + support_features_options: + enable_simple_scenario: no # "no" by default with the normal deployment scenarios with AMF/SMF/UPF/AUSF/UDM/UDR/NRF. + # set it to "yes" to use with the minimalist deployment scenario (including only AMF/SMF/UPF) by using the internal AUSF/UDM implemented inside AMF. + # There's no NRF in this scenario, SMF info is taken from "nfs" section. + enable_nssf: no + enable_smf_selection: yes + relative_capacity: 30 + statistics_timer_interval: 20 # in seconds + emergency_support: false + served_guami_list: + - mcc: 001 + mnc: 01 + amf_region_id: 01 + amf_set_id: 001 + amf_pointer: 01 + plmn_support_list: + - mcc: 001 + mnc: 01 + tac: 0x0001 + nssai: + - *embb_slice1 + - *embb_slice2 + supported_integrity_algorithms: + - "NIA1" + - "NIA2" + supported_encryption_algorithms: + - "NEA0" + - "NEA1" + - "NEA2" + +smf: + ue_mtu: 1500 + support_features: + use_local_subscription_info: no # Use infos from local_subscription_info or from UDM + use_local_pcc_rules: yes # Use infos from local_pcc_rules or from PCF + # we resolve from NRF, this is just to configure usage_reporting + upfs: + - host: oai-upf + config: + enable_usage_reporting: no + ue_dns: + primary_ipv4: "10.3.2.200" + primary_ipv6: "2001:4860:4860::8888" + secondary_ipv4: "8.8.8.8" + secondary_ipv6: "2001:4860:4860::8888" + ims: + pcscf_ipv4: "192.168.70.139" + pcscf_ipv6: "fe80::7915:f408:1787:db8b" + # the DNN you configure here should be configured in "dnns" + # follows the SmfInfo datatype from 3GPP TS 29.510 + smf_info: + sNssaiSmfInfoList: + - sNssai: *embb_slice1 + dnnSmfInfoList: + - dnn: "oai" + - sNssai: *embb_slice2 + dnnSmfInfoList: + - dnn: "ims" + local_subscription_infos: + - single_nssai: *embb_slice1 + dnn: "oai" + qos_profile: + 5qi: 5 + session_ambr_ul: "200Mbps" + session_ambr_dl: "400Mbps" + - single_nssai: *embb_slice2 + dnn: "ims" + qos_profile: + 5qi: 2 + session_ambr_ul: "100Mbps" + session_ambr_dl: "200Mbps" + +upf: + support_features: + enable_bpf_datapath: no # If "on": BPF is used as datapath else simpleswitch is used, DEFAULT= off + enable_snat: yes # If "on": Source natting is done for UE, DEFAULT= off + remote_n6_gw: localhost # Dummy host since simple-switch does not use N6 GW + upf_info: + - sst: 1 + sd: 0xFFFFFF + dnnList: + - dnn: oai + - sst: 1 + sd: 0x000001 + dnnList: + - dnn: ims + +## DNN configuration +dnns: + - dnn: "oai" + pdu_session_type: "IPV4" + ipv4_subnet: "12.1.1.0/24" + - dnn: "ims" + pdu_session_type: "IPV4V6" + ipv4_subnet: "14.1.1.0/24" \ No newline at end of file diff --git a/charts/oai-5g-core/oai-5g-advance/nssf_slice_config.yaml b/charts/oai-5g-core/oai-5g-advance/nssf_slice_config.yaml new file mode 100644 index 00000000..97a73c69 --- /dev/null +++ b/charts/oai-5g-core/oai-5g-advance/nssf_slice_config.yaml @@ -0,0 +1,177 @@ +# Reference:- TS 29.531 R16.0.0., Section- 6.1.6 Data Model +info: + version: 2.0.0 + description: OAI-NSSF Release v2.0.0 +configuration: + nsiInfoList: + - snssai: + sst: 222 + sd: '123' + nsiInformationList: + nrfId: http://oai-cn5g-nrf-10.fr:80/nnrf-disc/v1/nf-instances + nsiId: '11' + nrfNfMgtUri: http://oai-cn5g-nrf-10.fr:80/nnrf-nfm/v1/nf-instances + - snssai: + sst: 1 + sd: '1' + nsiInformationList: + nrfId: http://oai-cn5g-nrf-10.fr:80/nnrf-disc/v1/nf-instances + nsiId: '10' + - snssai: + sst: 130 + nsiInformationList: + nrfId: http://oai-cn5g-nrf-20.fr:80/nnrf-disc/v1/nf-instances + nsiId: '20' + - snssai: + sst: 131 + sd: '131' + nsiInformationList: + nrfId: http://oai-cn5g-nrf-20.fr:80/nnrf-disc/v1/nf-instances + nsiId: '20' + - snssai: + sst: 132 + nsiInformationList: + nrfId: http://oai-cn5g-nrf-20.fr:80/nnrf-disc/v1/nf-instances + nsiId: '20' + - snssai: + sst: 133 + sd: '133' + nsiInformationList: + nrfId: http://oai-cn5g-nrf-20.fr:80/nnrf-disc/v1/nf-instances + nsiId: '20' + - snssai: + sst: 134 + nsiInformationList: + nrfId: http://oai-cn5g-nrf-20.fr:80/nnrf-disc/v1/nf-instances + nsiId: '20' + - snssai: + sst: 135 + sd: '135' + nsiInformationList: + nrfId: http://oai-cn5g-nrf-20.fr:80/nnrf-disc/v1/nf-instances + nsiId: '20' + - snssai: + sst: 136 + nsiInformationList: + nrfId: http://oai-cn5g-nrf-20.fr:80/nnrf-disc/v1/nf-instances + nsiId: '20' + taInfoList: + - tai: + plmnId: + mcc: '208' + mnc: '95' + tac: '33456' + supportedSnssaiList: + - sst: 222 + sd: '123' + - sst: 1 + sd: '1' + - sst: 2 + - tai: + plmnId: + mcc: '208' + mnc: '92' + tac: '33457' + supportedSnssaiList: + - sst: 130 + - sst: 131 + sd: '131' + - sst: 132 + restrictedSnssaiList: + - homePlmnId: + mcc: 208 + mnc: 97 + sNssaiList: + - sst: 1 + sd: '3' + - tai: + plmnId: + mcc: '208' + mnc: '95' + tac: '33458' + supportedSnssaiList: + - sst: 133 + sd: '133' + - tai: + plmnId: + mcc: '208' + mnc: '95' + tac: '33459' + supportedSnssaiList: + - sst: 134 + - sst: 135 + sd: '135' + amfInfoList: + - targetAmfSet: 208-95-128-01 + nrfAmfSet: http://oai-cn5g-nrf.fr:80/nnrf-disc/v1/nf-instances' + nrfAmfSetNfMgtUri: http://oai-cn5g-nrf.fr:80/nnrf-nfm/v1/nf-instances + amfList: + - nfId: 405e8251-cc5a-45dd-a494-efb9eaf1cd58 + supportedNssaiAvailabilityData: + tai: + plmnId: + mcc: 208 + mnc: 95 + tac: 33456 + supportedSnssaiList: + - sst: 222 + - sst: '123' + sd: 1 + - sst: '1' + - nfId: 405e8251-cc5a-45dd-a494-efb9eaf1cd68 + supportedNssaiAvailabilityData: + tai: + plmnId: + mcc: 208 + mnc: 95 + tac: 33457 + supportedSnssaiList: + - sst: 130 + - sst: 131 + sd: '131' + - sst: 132 + taiList: + - tai: + plmnId: + mcc: 208 + mnc: 95 + tac: 33458 + supportedSnssaiList: + - sst: 133 + sd: '133' + - nfId: 405e8251-cc5a-45dd-a494-efb9eaf1cd78 + supportedNssaiAvailabilityData: + tai: + plmnId: + mcc: 208 + mnc: 95 + tac: 33459 + supportedSnssaiList: + - sst: 134 + - sst: 135 + sd: 135 + - targetAmfSet: 208-95-128-02 + nrfAmfSet: http://oai-cn5g-nrf.fr:80/nnrf-disc/v1/nf-instances + nrfAmfSetNfMgtUri: http://oai-cn5g-nrf.fr:80/nnrf-nfm/v1/nf-instances + amfList: + - nfId: 405e8251-cc5a-45dd-a494-efb9eaf1cd78 + supportedNssaiAvailabilityData: + tai: + plmnId: + mcc: 208 + mnc: 95 + tac: 33460 + supportedSnssaiList: + - sst: 136 + plmnInfoList: + - operatorName: OpenairInterface + homePlmnId: + mcc: 208 + mnc: 95 + - operatorName: Eurecom + homePlmnId: + mcc: 208 + mnc: 96 + + + diff --git a/charts/oai-5g-core/oai-5g-advance/templates/configmap.yaml b/charts/oai-5g-core/oai-5g-advance/templates/configmap.yaml new file mode 100644 index 00000000..3b062565 --- /dev/null +++ b/charts/oai-5g-core/oai-5g-advance/templates/configmap.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Chart.Name }} +data: + {{ (.Files.Glob "config.yaml").AsConfig | indent 2 | trim }} + {{ (.Files.Glob "nssf_slice_config.yaml").AsConfig | indent 2 | trim }} \ No newline at end of file diff --git a/charts/oai-5g-core/oai-5g-slicing/values.yaml b/charts/oai-5g-core/oai-5g-advance/values.yaml similarity index 60% rename from charts/oai-5g-core/oai-5g-slicing/values.yaml rename to charts/oai-5g-core/oai-5g-advance/values.yaml index d22475c8..0cbc4210 100644 --- a/charts/oai-5g-core/oai-5g-slicing/values.yaml +++ b/charts/oai-5g-core/oai-5g-advance/values.yaml @@ -1,49 +1,51 @@ +global: + nfConfigurationConfigMap: oai-5g-advance + clusterIpServiceIpAllocation: true #this will allocate ip-address to cluster Ip service + waitForNRF: true + http2Param: "--http2-prior-knowledge" # if waitForNRF is true and http2 is used for all NF then this param is needed + timeout: 1 mysql: enabled: true - weight: 0 imagePullPolicy: IfNotPresent oai5gdatabase: basic imagePullSecrets: - - name: regcred + - name: "regcred" persistence: enabled: false -oai-nssf: +oai-nrf: enabled: true - weight: 0 kubernetesType: Vanilla #Openshift/Vanilla Vanilla for Upstream Kubernetes nfimage: # image name either locally present or in a public/private repository - repository: docker.io/oaisoftwarealliance/oai-nssf ## The image will be pulled from dockerhub - version: v1.5.1 ## The branch to be used to pull from dockerhub + repository: docker.io/oaisoftwarealliance/oai-nrf ## The image will be pulled from dockerhub + version: develop ## The branch to be used to pull from dockerhub # pullPolicy: IfNotPresent or Never or Always pullPolicy: IfNotPresent + includeTcpDumpContainer: false #only for taking pcaps inside network function pod imagePullSecrets: - name: "regcred" - includeTcpDumpContainer: false #only for taking pcaps inside network function pod config: logLevel: "debug" #allowed info/error/debug nodeSelector: {} -oai-nrf: +oai-nssf: enabled: true - weight: 0 kubernetesType: Vanilla #Openshift/Vanilla Vanilla for Upstream Kubernetes nfimage: # image name either locally present or in a public/private repository - repository: docker.io/oaisoftwarealliance/oai-nrf ## The image will be pulled from dockerhub - version: v1.5.1 ## The branch to be used to pull from dockerhub + repository: docker.io/oaisoftwarealliance/oai-nssf ## The image will be pulled from dockerhub + version: develop ## The branch to be used to pull from dockerhub # pullPolicy: IfNotPresent or Never or Always pullPolicy: IfNotPresent - includeTcpDumpContainer: false #only for taking pcaps inside network function pod imagePullSecrets: - name: "regcred" + includeTcpDumpContainer: false #only for taking pcaps inside network function pod config: logLevel: "debug" #allowed info/error/debug nodeSelector: {} oai-udr: enabled: true - weight: 1 kubernetesType: Vanilla #Openshift/Vanilla Vanilla for Upstream Kubernetes nfimage: # image name either locally present or in a public/private repository repository: docker.io/oaisoftwarealliance/oai-udr ## The image will be pulled from dockerhub - version: v1.5.1 ## The branch to be used to pull from dockerhub + version: develop ## The branch to be used to pull from dockerhub # pullPolicy: IfNotPresent or Never or Always pullPolicy: IfNotPresent includeTcpDumpContainer: false #only for taking pcaps inside network function pod @@ -54,11 +56,10 @@ oai-udr: nodeSelector: {} oai-udm: enabled: true - weight: 2 kubernetesType: Vanilla #Openshift/Vanilla Vanilla for Upstream Kubernetes nfimage: # image name either locally present or in a public/private repository repository: docker.io/oaisoftwarealliance/oai-udm ## The image will be pulled from dockerhub - version: v1.5.1 ## The branch to be used to pull from dockerhub + version: develop ## The branch to be used to pull from dockerhub # pullPolicy: IfNotPresent or Never or Always pullPolicy: IfNotPresent includeTcpDumpContainer: false #only for taking pcaps inside network function pod @@ -69,11 +70,10 @@ oai-udm: nodeSelector: {} oai-ausf: enabled: true - weight: 3 kubernetesType: Vanilla #Openshift/Vanilla Vanilla for Upstream Kubernetes nfimage: # image name either locally present or in a public/private repository repository: docker.io/oaisoftwarealliance/oai-ausf ## The image will be pulled from dockerhub - version: v1.5.1 ## The branch to be used to pull from dockerhub + version: develop ## The branch to be used to pull from dockerhub # pullPolicy: IfNotPresent or Never or Always pullPolicy: IfNotPresent includeTcpDumpContainer: false #only for taking pcaps inside network function pod @@ -84,59 +84,36 @@ oai-ausf: nodeSelector: {} oai-amf: enabled: true - weight: 4 kubernetesType: Vanilla #Openshift/Vanilla Vanilla for Upstream Kubernetes nfimage: # image name either locally present or in a public/private repository repository: docker.io/oaisoftwarealliance/oai-amf ## The image will be pulled from dockerhub - version: v1.5.1 ## The branch to be used to pull from dockerhub + version: develop ## The branch to be used to pull from dockerhub # pullPolicy: IfNotPresent or Never or Always pullPolicy: IfNotPresent includeTcpDumpContainer: false #only for taking pcaps inside network function pod imagePullSecrets: - name: "regcred" multus: - ## If you don't want to add a default route in your pod then leave this field empty - defaultGateway: "172.21.7.254" + ## If you don't want to add a default route in your pod then replace this field with "" + defaultGateway: "" n2Interface: create: false Ipadd: "172.21.6.94" Netmask: "22" + # #name inside the pod is hardcoded right now + # name: "n2" ## If you do not have a gateway leave the field empty Gateway: ## If you do not want to add any routes in your pod then leave this field empty routes: [{'dst': '10.8.0.0/24','gw': '172.21.7.254'}] hostInterface: "bond0" # Interface of the host machine on which this pod will be scheduled - config: - amfInterfaceNameForNGAP: "eth0" # If oai-amf.multus.n2Interface.create is true then n2 else eth0 - amfInterfaceNameForSBI: "eth0" # Service based interface - externalAusf: "yes" - externalNssf: "yes" - nrfSelection: "yes" - nfRegistration: "yes" - smfSelection: "no" - useHttp2: "no" - nssfFqdn: "oai-nssf-svc" - nrfSelection: "yes" - logLevel: "debug" #allowed info/error/debug - sst0: "1" ## 1 slice/SST is mandatory - sd0: "0xFFFFFF" ## Optional 0xFFFFFF means no SD as per 3GPP - ## Can add upto 3 more slices. More than that you can do it in the configmap of amf templates/configmap.yaml - # Note only SST is mandatory for a slice SD is optional - sst1: "1" - sd1: "1" - mcc: "001" - mnc: "01" - tac: "0x0001" - intAlgoList: '[ "NIA0" , "NIA1" , "NIA2" ]' - ciphAlgoList: '[ "NEA0" , "NEA1" , "NEA2" ]' nodeSelector: {} -oai-spgwu-tiny: +oai-upf: enabled: true - weight: 5 kubernetesType: Vanilla #Openshift/Vanilla Vanilla for Upstream Kubernetes nfimage: # image name either locally present or in a public/private repository - repository: docker.io/oaisoftwarealliance/oai-spgwu-tiny ## The image will be pulled from dockerhub - version: v1.5.1 ## The branch to be used to pull from dockerhub + repository: docker.io/oaisoftwarealliance/oai-upf ## The image will be pulled from dockerhub + version: develop ## The branch to be used to pull from dockerhub # pullPolicy: IfNotPresent or Never or Always pullPolicy: IfNotPresent includeTcpDumpContainer: false #only for taking pcaps inside network function pod @@ -146,7 +123,7 @@ oai-spgwu-tiny: ## Change these ip-addresses according to your environment ## N4, N6 are optional only if you want that UPF uses different subnets for different 3gpp interfaces. multus: - ## If you don't want to add a default route in your pod then leave this field empty + ## If you don't want to add a default route in your pod then replace this field with "" defaultGateway: "" n3Interface: create: false @@ -156,7 +133,7 @@ oai-spgwu-tiny: # name: "n3" ## If you do not have a gateway leave the field empty Gateway: "" - ## If you do not want to add any routes in your pod then leave this field empty + ## If you don't want to add a default route in your pod then replace this field with "" routes: [{'dst': '10.8.0.0/24','gw': '172.21.11.254'}, {'dst': '10.9.0.0/24','gw': '172.21.11.254'}] hostInterface: "bond0" ## For n4 it is better to re-use eth0 interface inside the pod (primary CNI of Kubernetes) @@ -183,40 +160,38 @@ oai-spgwu-tiny: routes: "" hostInterface: "bond0" #NOTE: If the interface you selected for n6If is wrong then traffic will not be routed towards internet - config: - n3If: "eth0" # n3 if multus.n3Interface.create is true - n4If: "eth0" # n4 if multus.n4Interface.create is true - n6If: "eth0" # n6 multus.n6Interface.create is true - logLevel: "info" #allowed info/error/debug - threadsN3Ul: "1" - threadsN6Dl: "1" - threadsN6Prio: 98 - threadsN3Prio: 88 - threadsN4Prio: 88 - netUeIp: "12.1.1.0/24" # The range in which UE ip-address will be allocated should be configured the same in SMF - registerNRF: "yes" - nrfFqdn: "oai-nrf-svc" # make sure this can be resolved by container dns - #Mandatory to configure atlease one slice - nssaiSst0: 1 # should match with SMF information - nssaiSd0: "0xFFFFFF" # should match with SMF information (Optional, if removed sd value will be 0xFFFFFF) - dnn0: "oai" # should match with SMF information - #Upto 4 slices can be added from here to add more you need to add manullay in config.yaml. Please follow the same way of adding slices nssaiSST$,nssaiSd$,dnn$ ($=0,1,2,3) - nssaiSst1: 1 # should match with SMF information (Optional, if removed slice will not be configured) - nssaiSd1: "0xFFFFFF" # should match with SMF information (Optional, if removed sd value will be 0xFFFFFF only if nssaiSst1 is configured) - dnn1: "ims" # should match with SMF information - netUeIp: "12.1.1.0/24" nodeSelector: {} +# oai-traffic-server: +# enabled: false +# weight: 6 +# kubernetesType: Vanilla +# trafficServer: +# repository: docker.io/oaisoftwarealliance/trf-gen-cn5g +# version: latest +# #pullPolicy: IfNotPresent or Never or Always +# pullPolicy: IfNotPresent +# #Without multus traffic server won't be able to forward packets to spgwu if can't use server then add an extra container in spgwu with iperf3 or install iperf3 package in tcpdump container +# multus: +# create: true +# IPadd: "172.21.6.99" +# Netmask: "22" +# defaultGateway: "172.21.7.254" +# hostInterface: "bond0" # Interface of the host machine on which this pod will be scheduled +# config: +# ueroute: 12.1.1.0/24 +# upfIpadd: 172.21.6.95 +# noOfIperf3Server: 10 oai-smf: enabled: true - weight: 6 kubernetesType: Vanilla #Openshift/Vanilla Vanilla for Upstream Kubernetes nfimage: # image name either locally present or in a public/private repository repository: docker.io/oaisoftwarealliance/oai-smf ## The image will be pulled from dockerhub - version: v1.5.1 ## The branch to be used to pull from dockerhub + version: develop ## The branch to be used to pull from dockerhub # pullPolicy: IfNotPresent or Never or Always pullPolicy: IfNotPresent + includeTcpDumpContainer: false #only for taking pcaps inside network function pod multus: - ## If you don't want to add a default route in your pod then leave this field empty + ## If you don't want to add a default route in your pod then replace this field with "" defaultGateway: "" n4Interface: create: false @@ -227,34 +202,7 @@ oai-smf: ## If you do not want to add any routes in your pod then leave this field empty #routes: [{'dst': '10.8.0.0/24','gw': '172.21.7.254'}, {'dst': '10.9.0.0/24','gw': '172.21.7.254'}] hostInterface: "bond0" - includeTcpDumpContainer: false #only for taking pcaps inside network function pod + nodeSelector: {} imagePullSecrets: - name: "regcred" - config: - useLocalSubscriptionInfo: "no" #this means ip-address information will be fetched from UDR - ueMtu: 1500 - dnsIpv4Address: "172.21.3.100" # configure the dns for UE don't use Kubernetes DNS - dnsSecIpv4Address: "172.21.3.100" # configure the dns for UE don't use Kubernetes DNS - defaultCSCFIpv4Address: "172.21.6.200" # For IMS server if needed - discoverUpf: "yes" # if NRF is used then it can be used for UPF discovery - # You can define maximum 4 slices from here in case of more please change the configuration file. - logLevel: "debug" #allowed info/error/debug - dnnNi0: "oai" - pdusessiontype0: "IPv4" - ipv4dnnRange0: "12.1.1.2 - 12.1.1.40" - nssaiSst0: 1 - nssaiSd0: "0xFFFFFF" - qosProfile5qi0: 2 - sessionAmbrUl0: "1000Mbps" - sessionAmbrDl0: "1000Mbps" - # Extra optional slice - dnnNi1: "ims" - pdusessiontype1: "IPv4v6" - ipv4dnnRange1: "12.2.1.41 - 12.2.1.254" - nssaiSst1: 1 - nssaiSd1: "0xFFFFFF" - qosProfile5qi1: 1 - sessionAmbrUl1: "1000Mbps" - sessionAmbrDl1: "1000Mbps" nodeSelector: {} - diff --git a/charts/oai-5g-core/oai-5g-slicing/README.md b/charts/oai-5g-core/oai-5g-slicing/README.md deleted file mode 100644 index bfcf56a6..00000000 --- a/charts/oai-5g-core/oai-5g-slicing/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Parent Helm Charts for Deploying Slicing OAI-5G Core Network (Includes NSSF) - -Slicing deployment contains - -1. OAI-AMF -2. OAI-SMF -3. OAI-NRF -4. OAI-UDR -5. OAI-AUSF -6. OAI-UDM -7. OAI-NSSF -8. OAI-SPGWU-TINY -9. MYSQL (Subscriber database) - -To change the configuration of any core network component you can use `values.yaml`. To change the parameters which are missing from `values.yaml` you can change them in the helm-chart of the respective network function. - -Once you are sure with the configuration parameters you can deploy these charts following the below steps. - -You can read this [tutorial](../../../docs/DEPLOY_SA5G_SLICING.md) on how to use NSSF with multiple instances of SMF/UPF but it is for docker-compose - -1. Make sure you have [helm-spray plugin](https://github.com/ThalesGroup/helm-spray) if you don't then you can download like this - -```bash -helm plugin install https://github.com/ThalesGroup/helm-spray -``` - -2. Perform a dependency update whenever you change anything in the sub-charts or if you have recently clone the repository. - -```bash -helm dependency update -``` - -3. Deploy the helm-charts - -``` -helm spray . -``` \ No newline at end of file diff --git a/charts/oai-5g-core/oai-nssf/config.yaml b/charts/oai-5g-core/oai-nssf/config.yaml new file mode 100644 index 00000000..5242826b --- /dev/null +++ b/charts/oai-5g-core/oai-nssf/config.yaml @@ -0,0 +1,32 @@ +# OAI CN Configuration File +### This file can be used by all OAI NFs +### Some fields are specific to an NF and will be ignored by other NFs + +############# Common configuration + +# If you enable registration, the NF will use the NRF discovery mechanism +register_nf: + general: yes + +# Log level for all the NFs +log_level: + general: debug + +http_version: 2 + +############## SBI Interfaces +### Each NF takes its local SBI interfaces and remote interfaces from here, unless it gets them using NRF discovery mechanisms +nfs: + nssf: + host: oai-nssf + sbi: + port: 80 + api_version: v1 + interface_name: eth0 + nrf: + host: oai-nrf + sbi: + port: 80 + api_version: v1 +nssf: + slice_config_path: /openair-nssf/etc/nssf_slice_config.yaml -- GitLab