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

images:
  repository: "" #default docker hub
  tags:
    init: omecproject/pod-init:1.0.0
    gnbsim: omecproject/5gc-gnbsim:main-6e34bd2
  pullPolicy: IfNotPresent

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

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

config:
  useExistingConfigMap: false
  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 #user plane IP at gnb if 2 separate interface provided
    profile:
      enable: true
      port: 5000
    ngapp:
      port: 38412
      nodePort:
        enabled: false
        port: 30071
    singleInterface: false
    networkTopo:
      - upfAddr: "192.168.252.3/32"
        upfGw: "192.168.251.1"
    yamlCfgFiles:
      gnb.conf:
        info:
          version: 1.0.0
          description: gNodeB sim initial configuration
        logger:
          logLevel: info # how detailed the log will be, values: trace, debug, info, warn, error, fatal, panic
        configuration:
          #singleInterface: #this will be added thorugh configmap script
          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: 208930100007487 #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
              defaultAs: "192.168.250.1" #default icmp pkt destination
              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: 208930100007492
              ueCount: 5
              plmnId:
                mcc: 208
                mnc: 93
              dataPktCount: 5 # Number of UL user data packets to be transmitted. Common for all UEs
              defaultAs: "192.168.250.1" #default icmp pkt destination
            - profileType: anrelease
              profileName: profile3
              enable: false
              gnbName: gnb1
              startImsi: 208930100007497
              ueCount: 5
              plmnId:
                mcc: 208
                mnc: 93
              defaultAs: "192.168.250.1" #default icmp pkt destination
            - profileType: uetriggservicereq
              profileName: profile4
              enable: false
              gnbName: gnb1
              startImsi: 208930100007497
              ueCount: 5
              plmnId:
                mcc: 208
                mnc: 93
              defaultAs: "192.168.250.1" #default icmp pkt destination
            - profileType: deregister
              profileName: profile5
              enable: false
              gnbName: gnb1
              startImsi: 208930100007497
              ueCount: 5
              plmnId:
                mcc: 208
                mnc: 93
              defaultAs: "192.168.250.1" #default icmp pkt destination
            - profileType: nwtriggeruedereg # profile type
              profileName: profile6 # 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: 208930100007497 # First IMSI. Subsequent values will be used if ueCount is more than 1
              ueCount: 5 # Number of UEs for for which the profile will be executed
              defaultAs: "192.168.250.1" #default icmp pkt destination
              perUserTimeout: 100 #if no expected event received in this time then treat it as failure
              plmnId: # Public Land Mobile Network ID, <PLMN ID> = <MCC><MNC>. Should match startImsi
                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: uereqpdusessrelease # profile type
              profileName: profile7 # 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: 208930100007497 # First IMSI. Subsequent values will be used if ueCount is more 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>. Should match startImsi
                mcc: 208 # Mobile Country Code (3 digits string, digit: 0~9)
                mnc: 93 # Mobile Network Code (2 or 3 digits string, digit: 0~9)
              defaultAs: "192.168.250.1" #default icmp pkt destination
