{{/*
Copyright 2019-present Open Networking Foundation
Copyright 2019 Intel Corporation

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/}}
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: spgwu
  labels:
{{ tuple "spgwu" . | include "omec-data-plane.metadata_labels" | indent 4 }}
data:
  dp_config.cfg: |
    if [ ! -d "/dev/hugepages" ]; then
        MEMORY="--no-huge -m $((MEM_LIMIT-1024))"
    fi
    CORES="-c $(taskset -p $$ | awk '{print $NF}')"
    EAL_ARGS="${CORES} ${MEMORY} {{ .Values.config.spgwu.devices }}"

    {{- if .Values.config.sriov.enabled }}
    S1U_DEVNAME={{ .Values.config.spgwu.s1u.device }}
    {{- else }}
    S1U_DEVNAME={{ .Values.config.spgwu.s1u.device }}-veth
    {{- end }}
    {{- if .Values.config.sriov.enabled }}
    SGI_DEVNAME={{ .Values.config.spgwu.sgi.device }}
    {{- else }}
    SGI_DEVNAME={{ .Values.config.spgwu.sgi.device }}-veth
    {{- end }}

    S1U_IP=$(ip -4 addr show dev ${S1U_DEVNAME} | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
    SGI_IP=$(ip -4 addr show dev ${SGI_DEVNAME} | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
    S1U_MAC=$(ip addr show dev ${S1U_DEVNAME} | awk '$1=="link/ether"{print $2}')
    SGI_MAC=$(ip addr show dev ${SGI_DEVNAME} | awk '$1=="link/ether"{print $2}')

    S1U="--s1u_ip ${S1U_IP} --s1u_mac ${S1U_MAC} --ul_iface ${S1U_DEVNAME}"
    SGI="--sgi_ip ${SGI_IP} --sgi_mac ${SGI_MAC} --dl_iface ${SGI_DEVNAME} --sgi_gw_ip {{ .Values.networks.sgi.gateway }} --sgi_mask {{ .Values.networks.sgi.mask }}"
    MISC="--log 1"
    SPGW_CFG="--spgw_cfg 03"

    APP_ARGS="${S1U} ${SGI} ${MISC} ${SPGW_CFG}"
  cdr.cfg: |
    CDR_PATH=./cdr
    MASTER_CDR=./cdr/master.csv
  interface.cfg: |
    [0]
    dp_comm_ip = DP_ADDR
    dp_comm_port = 20
    cp_comm_ip = {{ .Values.config.spgwu.spgwc.addr }}
    cp_comm_port = {{ .Values.config.spgwu.spgwc.port }}
{{- if not .Values.config.sriov.enabled }}
  setup-af-iface.sh: |
{{ tuple "bin/_spgwu-setup-af-iface.sh.tpl" . | include "omec-data-plane.template" | indent 4 }}
{{- end }}
  run.sh: |
{{ tuple "bin/_spgwu-run.sh.tpl" . | include "omec-data-plane.template" | indent 4 }}
