# 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:main-a984342
  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: anrelease
              profileName: profile3
              enable: false
              gnbName: gnb1
              startImsi: 2089300007497
              ueCount: 5
              plmnId:
                mcc: 208
                mnc: 93
            - profileType: uetriggservicereq
              profileName: profile4
              enable: false
              gnbName: gnb1
              startImsi: 208930100007497
              ueCount: 5
              plmnId:
                mcc: 208
                mnc: 93
            - profileType: deregister
              profileName: profile4
              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 
