# Copyright 2020-present Open Networking Foundation
#
# SPDX-License-Identifier: Apache-2.0

images:
  tags:
    init: docker.io/omecproject/pod-init:1.0.0
    gnbsim: registry.aetherproject.org/omecproject/5gc-gnbsim:dev-new-gnbsim-37d5cb4
    depCheck: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
  pullPolicy: IfNotPresent
  # Secrets must be manually created in the namespace.
  pullSecrets:
    - name: aether.registry

nodeSelectors:
  enabled: false
  gnbsim:
    label: omec-cp
    value: enabled

resources:
  enabled: true
  gnbsim:
    requests:
      cpu: 2
      memory: 1Gi
    limits:
      cpu: 2
      memory: 1Gi

config:
  clusterDomain: cluster.local
  coreDump:
    enabled: false
    path: /tmp/coredump
  gnbsim:
    deploy: true
    sriov:
      enabled: disabled
    ipam: static
    cniPlugin: simpleovs #need override value
    gnb:
      ip: 192.168.251.5/24
    ngapp:
      port: 38412
      nodePort:
        enabled: false
        port: 30071
    yamlCfgFiles:
      gnb.conf: |
        info:
          version: 1.0.0
          description: gNodeB sim initial configuration
        configuration:
          gnbs: # pool of gNodeBs
            gnb1:
              n2IpAddr: # gNB N2 interface IP address used to connect to AMF 
              n2Port: 9487 # gNB N2 Port used to connect to AMF
              n3IpAddr: 192.168.251.5 # gNB N3 interface IP address used to connect to UPF
              n3Port: 2152 # gNB N3 Port used to connect to UPF
              name: gnb1 # gNB name that uniquely identify a gNB within application
              globalRanId:
                plmnId:
                  mcc: 208 # Mobile Country Code (3 digits string, digit: 0~9)
                  mnc: 93 # Mobile Network Code (2 or 3 digits string, digit: 0~9)
                gNbId: 
                  bitLength: 24
                  gNBValue: 000102 # gNB identifier (3 bytes hex string, range: 000000~FFFFFF)
              supportedTaList:
              - tac: 000001 # Tracking Area Code (3 bytes hex string, range: 000000~FFFFFF)
                broadcastPlmnList:
                  - plmnId:
                      mcc: 208 
                      mnc: 93
                    taiSliceSupportList:
                        - sst: 1 # Slice/Service Type (uinteger, range: 0~255)
                          sd: 010203 # Slice Differentiator (3 bytes hex string, range: 000000~FFFFFF)
              defaultAmf:
                hostName: amf # Host name of AMF
                ipAddr: # AMF IP address
                port: 38412 # AMF port
 
          profiles: # profile information
            - profileType: register # profile type
              profileName: profile1 # uniqely identifies a profile within application
              enable: false # Set true to execute the profile, false otherwise.
              gnbName: gnb1 # gNB to be used for this profile
              startImsi: 2089300007487 #First IMSI. Subsequent values will be used if ueCount is mo    re than 1
              ueCount: 5 # Number of UEs for for which the profile will be executed
              plmnId: # Public Land Mobile Network ID, <PLMN ID> = <MCC><MNC>
                mcc: 208 # Mobile Country Code (3 digits string, digit: 0~9)
                mnc: 93 # Mobile Network Code (2 or 3 digits string, digit: 0~9)
            - profileType: pdusessest
              profileName: profile2
              enable: true
              gnbName: gnb1
              startImsi: 2089300007492
              ueCount: 5
              plmnId:
                mcc: 208
                mnc: 93
              dataPktCount: 5 # Number of UL user data packets to be transmitted. Common for all UEs
            - profileType: deregister
              profileName: profile3
              enable: false
              gnbName: gnb1
              startImsi: 2089300007497
              ueCount: 5
              plmnId:
                mcc: 208
                mnc: 93
        logger:
          logLevel: info # how detailed the log will be, values: trace, debug, info, warn, error, fatal, panic 
