# Copyright 2018 Intel Corporation
# Copyright 2018-present Open Networking Foundation
#
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0

images:
  tags:
    init: docker.io/omecproject/pod-init:1.0.0
    hssdb: docker.io/omecproject/c3po-hssdb:master-latest
    hss: docker.io/omecproject/c3po-hss:master-latest
    mme: docker.io/omecproject/openmme:master-latest
    mmeExporter: docker.io/omecproject/mme-exporter:paging-latest
    spgwc: docker.io/omecproject/ngic-cp:central-cp-multi-upfs-latest
    depCheck: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
  pullPolicy: IfNotPresent

nodeSelectors:
  enabled: false
  hss:
    label: omec-cp
    value: enabled
  mme:
    label: omec-cp
    value: enabled
  spgwc:
    label: omec-cp
    value: enabled

resources:
  enabled: true
  hss:
    requests:
      cpu: 2
      memory: 1Gi
    limits:
      cpu: 2
      memory: 1Gi
  mme:
    # Note that MME pod is composed of 4 containers
    # Provide resources for a container, not a pod total
    requests:
      cpu: 0.5
      memory: 1Gi
    limits:
      cpu: 0.5
      memory: 1Gi
  spgwc:
    requests:
      cpu: 2
      memory: 5Gi
    limits:
      cpu: 2
      memory: 5Gi

cassandra:
  deploy: true
  fullnameOverride: cassandra
  image:
    tag: 2.1.20
  #selector:
  #  nodeSelector:
  #    cassandra: enabled
  persistence:
    enabled: false
  config:
    #cluster_size: 1
    #seed_size: 1
    endpoint_snitch: GossipingPropertyFileSnitch
  readinessProbe:
    initialDelaySeconds: 10
  resources: {}
    #requests:
    #  memory: 4Gi
    #  cpu: 2
    #limits:
    #  memory: 4Gi
    #  cpu: 2

config:
  clusterDomain: cluster.local
  coreDump:
    enabled: false
    path: /tmp/coredump
  hss:
    hssdb: cassandra
    s6a:
      nodePort:
        enabled: false
        port: 33868
    # Provide the peer whitelist extension
    # The peer name must be a fqdn. We allow also a special "*" character as the
    # first label of the fqdn, to allow all fqdn with the same domain name.
    # Example: *.example.net will allow host1.example.net and host2.example.net
    acl:
      oldTls: "*.cluster.local"
      #ipSec:
    bootstrap:
      enabled: true
      apn: internet
      key: "465b5ce8b199b49faa5f0a2ee238a6bc"
      opc: "d4416644f6154936193433dd20a0ace0"
      sqn: 96
      users:
        - imsiStart: "208014567891200"
          msisdnStart: "1122334455"
          count: 10
      staticusers:
        - imsi: "208014567891201"
          msisdn: "1122334455"
          staticAddr: 0.0.0.0
      mmes:
        - id: 1
          isdn: "19136246000"
          unreachability: 1
    # See https://github.com/omec-project/c3po for details of config options
    cfgFiles:
      hss.json:
        common:
          fdcfg: conf/hss.conf
          # Origin host and realm will be set automatically if unset
          #originhost: ""
          #originrealm: ""
        hss:
          gtwhost: "*"
          gtwport: 9080
          restport: 9081
          ossport: 9082
          # casssrv will be set to cassandra in the same cluster if unset
          #casssrv: ""
          cassusr: root
          casspwd: root
          cassdb: vhss
          casscoreconnections: 2
          cassmaxconnections: 8
          cassioqueuesize: 32768
          cassiothreads: 2
          randv: true
          optkey: "63bfa50ee6523365ff14c1f45f88737d"
          reloadkey: false
          logsize: 20
          lognumber: 5
          logname: logs/hss.log
          logqsize: 8192
          statlogsize: 20
          statlognumber: 5
          statlogname: logs/hss_stat.log
          auditlogsize: 20
          auditlognumber: 5
          auditlogname: logs/hss_audit.log
          statfreq: 2000
          numworkers: 4
          concurrent: 10
          ossfile: conf/oss.json
          verifyroamingsubscribers: false
      oss.json:
        option:
          id: url
          type: string
        services:
          - id: logger
            commands:
              - id: describe_loggers
              - id: set_logger_level
                options:
                  - id: name
                    type: string
                  - id: level
                    type: integer
          - id: stats
            commands:
              - id: describe_stats_frequency
              - id: describe_stats_live
              - id: set_stats_frequency
                options:
                  - id: frequency
                    type: integer
  mme:
    spgwAddr: spgwc
    s11:
      nodePort:
        enabled: false
        port: 32124
    s6a:
      nodePort:
        enabled: false
        port: 33869
    # See https://github.com/omec-project/openmme/blob/master/README.txt for more config options
    cfgFiles:
      config.json:
        mme:
          name: vmmestandalone
          group_id: 1
          code: 1
          logging: error
          mcc:
            dig1: 2
            dig2: 0
            dig3: 8
          mnc:
            dig1: 0
            dig2: 1
            dig3: -1
          plmnlist:
            #plmn1 - aether common plmn, plmn2 is for comac-in-box
            plmn1: "mcc=315,mnc=010"
            plmn2: "mcc=208,mnc=01"
          apnlist:
            internet: "spgwc-headless"
        s1ap:
          sctp_port: 36412
          sctp_port_external: 36412
        s11:
          egtp_default_port: 2123
          # sgw_addr and pgw_addr will be set dynamically if unset
          #sgw_addr:
          #pgw_addr:
        s6a:
          host_type: freediameter
          # host and realm will be set dynamically if unset
          #host:
          #realm:
      mme_exporter.json:
        edges:
        - id: onf-menlo
          tac: 202
          edgeName: edge-onf-menlo
        - id: oaisim
          tac: 1
          edgeName: edge-oaisim
        phoneTypes:
        - imsi: 208014567891200
          phoneType: "Pixel-4"
        - imsi: 208014567891201
          phoneType: "iPhone11-Pro"
  spgwc:
    pfcp: false
    apn: internet
    # ueStaticPool is used only when multiUpfs is not enabled.
    # In case of multiUpfs, use app_config.cfg to provide static pool per DP.
    #ueStaticPool: 10.250.255.0/24
    ueStaticPool: None
    ueIpPool:
      ip: 10.250.0.0
      mask: 255.255.0.0
    # This address must match to S1U IP address configured in omec-data-plane
    s1uAddr: 192.168.251.3
    #DNS Server - 3gpp compliant DNS server
    nameserver: 127.0.0.1
    s11:
      nodePort:
        enabled: false
        port: 32123
      port: 2123
    # ZMQ mode is used for cp-dp communication when multiple UPFs is set
    # Otherwise, direct UDP mode is used
    # Note that enabling NodePort is valid only in direct UDP mode
    multiUpfs: true
    cpComm:
      nodePort:
        enabled: false
        port: 30021
      port: 21
    # dpComm is required only when direct UDP mode is used
    # When you deploy CP and DP to separate clusters in direct UDP mode, enable nodePort
    # from both cpComm(omec-control-plane) and dpComm(omec-data-plane) and
    # set "addr" to remote cluster's entry node IP and
    # "port" to dpComm.nodePort.port value configured in omec-data-plane.
    dpComm:
      addr: spgwu
      port: 20
    jsonCfgFiles:
      subscriber_mapping.json:
        subscriber-selection-rules:
          - priority: 5
            keys:
              serving-plmn:
                mcc: 208
                mnc: 10
                tac: 1
              imsi-range:
                from: 200000000000000
                to: 299999999999999
            selected-apn-profile: apn-profile1
            selected-qos-profile: qos-profile1
            selected-access-profile:
              - access-all
            selected-user-plane-profile: user-plane1
          - priority: 10
            keys:
              match-all: true
            selected-apn-profile: apn-profile1
            selected-qos-profile: qos-profile1
            selected-access-profile:
              - access-all
            selected-user-plane-profile: user-plane1
        apn-profiles:
          apn-profile1:
            apn-name: internet
            usage: 1
            network: lbo
            gx_enabled: true
            dns_primary: 8.8.8.4
            dns_secondary: 8.8.8.8
            mtu: 1460
        user-plane-profiles:
          user-plane1:
            user-plane: spgwu-headless
            qos-tags:
              tag1: BW
            access-tags:
              tag1: ACC
        qos-profiles:
          mobile:
            apn-ambr:
              - 12345678
              - 12345678
        access-profiles:
          access-all:
            type: allow-all
          internet-only:
            type: internet-only
            filter: No_private_network
          intranet-only:
            type: intranet-only
            filter: only_private_network
          apps-only: 
            type: specific-network
            filter: only_apps_network
          specific-app:
            type: specific-destination-only
            filter: allow-app-name
          excluding-app:
            type: excluding-this-app
            filter: exclude-app-name
    cfgFiles:
      app_config.cfg: |
        [GLOBAL]
        NUM_DP_SELECTION_RULES = 2
        [DP_SELECTION_RULE_1]
        DPID = 1
        DPNAME = onf-menlo
        MCC = 315
        MNC = 010
        TAC = 202
        [DP_SELECTION_RULE_2]
        DPID = 2
        DPNAME = oaisim
        MCC = 208
        MNC = 01
        TAC = 1
      adc_rules.cfg: |
        [GLOBAL]
        NUM_ADC_RULES = 0
      meter_profile.cfg: |
        [GLOBAL]
        NUM_OF_IDX = 0
      pcc_rules.cfg: |
        [GLOBAL]
        NUM_PCC_FILTERS = 1
        UL_AMBR_MTR_PROFILE_IDX = 1
        DL_AMBR_MTR_PROFILE_IDX = 2

        [PCC_FILTER_1]
        RULE_NAME = DefaultRule
        RATING_GROUP = 9
        SERVICE_ID = 0
        RULE_STATUS = 0
        GATE_STATUS = 1
        SESSION_CONT = 0
        REPORT_LEVEL = 1
        CHARGING_MODE = 0
        METERING_METHOD = 0
        MUTE_NOTIFY = 0
        MONITORING_KEY = 0
        SPONSOR_ID = 0
        REDIRECT_INFO = 0
        PRECEDENCE = 254
        DROP_PKT_COUNT = 0
        UL_MBR_MTR_PROFILE_IDX = 3
        DL_MBR_MTR_PROFILE_IDX = 3
        SDF_FILTER_IDX = 99998
      sdf_rules.cfg: |
        [GLOBAL]
        NUM_SDF_FILTERS = 1

        [SDF_FILTER_1]
        DIRECTION = downlink_only
        IPV4_REMOTE = 13.2.1.113
        IPV4_REMOTE_MASK = 255.255.255.0
        PROTOCOL = 17
        LOCAL_LOW_LIMIT_PORT = 0
        LOCAL_HIGH_LIMIT_PORT = 65535
        REMOTE_LOW_LIMIT_PORT = 0
        REMOTE_HIGH_LIMIT_PORT = 65535

prometheusExporter:
  mme:
    enabled: true # if it is set to false, subscriber-monitoring will not be operational
    port: 33081 # for NodePort
