App version

Repo

Prerequisite

Configurations and Installations

  1. OAI-5G-CORE

    1. Perform a dependency update whenever you change anything in the sub-charts or if you have recently clone the repository.
    
    

    cd ~/oai-v210/charts/oai-5g-core/oai-5g-basic helm dependency update

    
    2. Then jump to configuration step
    
    3. After configuration, install the parent charts using
    
    

    helm install oai-5g-basic . -n oai

    above part are kept default
    -------------
    oai-amf:
      enabled: true
      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: v2.1.0                                    ## 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
      ## Only if you want to store all pcaps in persistent volume
      persistent:
        sharedvolume: false
      start:
        amf: true #If false the network function container will run in sleep mode for manually testing
        tcpdump: false
      imagePullSecrets:
        - name: "regcred"
      multus:
        ## If you don't want to add a default route in your pod then replace this field with ""
        defaultGateway: ""
        n2Interface:
          create: true #false
          ipAdd: 10.1.2.16 #"172.21.6.94"
          netmask: "22"
          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: "enp2s0" # Interface of the host machine on which this pod will be scheduled
      nodeSelector: {}
    oai-upf:
      enabled: true
      nfimage:  # image name either locally present or in a public/private repository
        repository: docker.io/oaisoftwarealliance/oai-upf    ## The image will be pulled from dockerhub
        version: v2.1.0                                    ## 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
      ## Only if you want to store all pcaps in persistent volume
      persistent:
        sharedvolume: false
      start:
        upf: true #If false the network function container will run in sleep mode for manually testing
        tcpdump: false
      imagePullSecrets:
        - name: "regcred"
      # create an extra interface for N3 incase the gNB is outside the cluster network or there is a need to have dedicated interface for N3
      ## 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 replace this field with ""
        defaultGateway: ""
        n3Interface:
          create: true #false
          ipAdd: 10.1.3.18 #"172.21.8.95"
          netmask: "22"
          name: "n3"
          ## If you do not have a gateway leave the field empty
          gateway: ""
          ## 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: "enp2s0"
        ## For n4 it is better to re-use eth0 interface inside the pod (primary CNI of Kubernetes)
        n4Interface:
          create: true #false
          ipAdd: "192.168.24.2"
          netmask: "24"
          name: "n4"
          ## 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: ""
          hostInterface: "enp2s0"
        n6Interface:
          create: true #false
          ipAdd: "192.168.22.2"
          name: "n6"
          netmask: "24"
          ## 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: ""
          hostInterface: "enp2s0"
      #NOTE: If the interface you selected for n6If is wrong then traffic will not be routed towards internet
      nodeSelector: {}
    oai-traffic-server:
      enabled: true
      trafficServer:
        repository: docker.io/oaisoftwarealliance/trf-gen-cn5g
        version: latest
        #pullPolicy: IfNotPresent or Never or Always
        pullPolicy: IfNotPresent
      multus:
        create: false
        ipAdd: "172.21.6.12"
        netmask: "22"
        defaultGateway: "172.21.7.254"
        hostInterface: "enp2s0"  # Interface of the host machine on which this pod will be scheduled
      config:
        ueroute: 12.1.1.0/24
        upfHost: oai-upf
        routeInterface: eth0
        noOfIperf3Server: 2
      resources:
        define: false
        limits:
          cpu: 100m
          memory: 128Mi
        requests:
          cpu: 100m
          memory: 128Mi
      nodeSelector: {}
      nodeName: ""
    oai-smf:
      enabled: true
      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: v2.1.0                         ## 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
      ## Only if you want to store all pcaps in persistent volume
      persistent:
        sharedvolume: false
      start:
        smf: true #If false the network function container will run in sleep mode for manually testing
        tcpdump: false
      multus:
        ## If you don't want to add a default route in your pod then replace this field with ""
        defaultGateway: ""
        n4Interface:
          create: true #false
          ipAdd: "192.168.24.3"
          netmask: "24"
          name: "n4"
          ## 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'}, {'dst': '10.9.0.0/24','gw': '172.21.7.254'}]
          hostInterface: "enp2s0"
      nodeSelector: {}
      imagePullSecrets:
        - name: "regcred"
      nodeSelector: {}
    
    ############## 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: n2
          port: 38412
      smf:
        host: oai-smf
        sbi:
          port: 80
          api_version: v1
          interface_name: eth0
        n4:
          interface_name: n4
          port: 8805
      upf:
        host: oai-upf
        sbi:
          port: 80
          api_version: v1
          interface_name: eth0
        n3:
          interface_name: n3
          port: 2152
        n4:
          interface_name: n4
          port: 8805
        n6:
          interface_name: n6
        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
      lmf:
        host: oai-lmf
        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
    
  2. O-RAN - oai-cu-cp, oai-cu-up, oai-du and UE

Using helm to install deployment after configurations

cd ~/oai-v210/charts/oai-5g-ran/oai-cu-cp helm install oai-cu-cp .

wait for cu-cp to start

helm install oai-cu-up ../oai-cu-up helm install oai-du ../oai-du helm install oai-nr-ue ../oai-nr-ue

Testing connection

kubectl exec -it <oai-nr-ue-pod-name> -- bash
#ping towards spgwu/upf
ping -I oaitun_ue1 12.1.1.1
#ping towards google dns
ping -I oaitun_ue1 8.8.8.8