# 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
    singleInterface: false
    networkTopo:
      - upfAddr: "192.168.252.3/32"
        upfGw: "192.168.251.1"
    sriov:
      enabled: disabled
      resourceName: "intel.com/intel_sriov_vfio"
    ipam: static
    cniPlugin: macvlan # supported CNIs: sriov, macvlan, host-device
    iface: data # master in macvlan or device in host-device
    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
    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
