blob: 8d01742b00a494bb2e91b0d59944105a64dbeedd [file] [log] [blame]
---
# Copyright 2017-present Open Networking Foundation
#
# 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: ngiccp-config
data:
adc_rules.cfg: |
[GLOBAL]
NUM_ADC_RULES = 5
;FORMAT ::
;ADC_TYPE : [ DOMAIN = 0 | IP = 1 | IP PREFIX =2 ]
;
;if ADC_TYPE = 0
; DOMAIN
;elseif ADC_TYPE = 1
; IP
;elseif ADC_TYPE = 2
; IP
; PREFIX
;else
; NONE
;
;NOTE :
;Rules defined first have a higher priority, unless DROP is specified
;(i.e. multiple rules for the same IP).
;When specifying DROP with an IP address, use a prefix of 32 to prevent DNS
;results from overwriting rule.
[ADC_RULE_1]
ADC_TYPE = 2
IP = 0.0.0.0
PREFIX = 0
[ADC_RULE_2]
ADC_TYPE = 2
IP = 13.1.1.0
PREFIX = 24
[ADC_RULE_3]
ADC_TYPE = 1
IP = 13.1.1.254
[ADC_RULE_4]
ADC_TYPE = 0
DOMAIN = www.example.gov
[ADC_RULE_5]
ADC_TYPE = 0
DOMAIN = www.drop_example.com
cdr.cfg: |
CDR_PATH=./cdr
MASTER_CDR=./cdr/master.csv
cp_config.cfg: |
if [ ! -d "/dev/hugepages" ]; then
MEMORY="--no-huge -m $((MEM_LIMIT-1024))"
fi
SGW_S1U_IP=$(netstat -ie | grep -A1 s1u-net | tail -1 | awk '{print $2}' | tr -d addr:)
SHARED_DIR="/opt/ngic/config/shared"
if [ -d ${SHARED_DIR} ]; then
while [ ! -f ${SHARED_DIR}/SGW_S1U_IP ]; do echo "Waiting for SGW_S1U_IP"; sleep 2; done
SGW_S1U_IP=$(cat ${SHARED_DIR}/SGW_S1U_IP)
fi
SGW_S11_IP=$(hostname)
MGMT_INFO="-s ${SGW_S11_IP} -m ${MME_S11_IP} -w ${SGW_S1U_IP}"
APN_INFO="-i ${IP_POOL_IP} -p ${IP_POOL_MASK} -a ${APN}"
SPGW_CFG="-d 03 -l 2 -r 7.7.7.7 -g 6.6.6.6 -v 4.4.4.4 -u 5.5.5.5"
TEID_INFO="-t ${S11_TEID_POOL_START} -e ${S11_TEID_POOL_STOP} -q ${S1U_TEID_POOL_START} -o ${S1U_TEID_POOL_STOP}"
APP_ARGS="${MGMT_INFO} ${APN_INFO} ${SPGW_CFG} ${TEID_INFO}"
CORES="-c $(taskset -p $$ | awk '{print $NF}')"
DEVICES="--no-pci"
EAL_ARGS="${CORES} ${MEMORY} ${DEVICES}"
dp_config.cfg: |
get_pcimac_addr () {
ifname=$1
cid="$(sed -ne '/hostname/p' /proc/1/task/1/mountinfo | awk -F '/' '{print $6}' |tr -d " " )"
cid="$cid-$ifname"
eval "export $2=$(awk -F '"' '{print $4}' /sriov-cni/$cid)"
eval "export $3=$(awk -F '"' '{print $8}' /sriov-cni/$cid)"
eval "export $4=$(awk -F '"' '{print $12}' /sriov-cni/$cid)"
}
if [ -d "/sriov-cni" ]; then
echo "================== SR-IOV FOUND ============"
get_pcimac_addr s1u-net SGW_S1U_PCI S1U_MAC SGW_S1U_IP
get_pcimac_addr sgi-net SGW_SGI_PCI SGI_MAC SGW_SGI_IP
DEVICES="-w $SGW_S1U_PCI -w $SGW_SGI_PCI"
SHARED_DIR="/opt/ngic/config/shared"
echo $SGW_S1U_IP > ${SHARED_DIR}/SGW_S1U_IP
else #dev --vdev af_packt
echo "vdev (AF_PACKET)"
# set the variables we provide
SGW_S1U_IP=$(netstat -ie | grep -A1 s1u-net | tail -1 | awk '{print $2}' | tr -d addr:)
SGW_SGI_IP=$(netstat -ie | grep -A1 sgi-net | tail -1 | awk '{print $2}' | tr -d addr:)
S1U_MAC=$( netstat -ie | grep -B1 $SGW_S1U_IP | head -n1 | awk '{print $5}' )
SGI_MAC=$( netstat -ie | grep -B1 $SGW_SGI_IP | head -n1 | awk '{print $5}' )
DEVICES="--no-pci --vdev eth_af_packet0,iface=s1u-net --vdev eth_af_packet1,iface=sgi-net"
fi
if [ ! -d "/dev/hugepages" ]; then
MEMORY="--no-huge -m $((MEM_LIMIT-1024))"
fi
CORES="-c $(taskset -p $$ | awk '{print $NF}')"
SPGW_CFG="--spgw_cfg 03"
EAL_ARGS="${CORES} ${MEMORY} ${DEVICES}"
S1U="--s1u_ip ${SGW_S1U_IP} --s1u_mac ${S1U_MAC}"
SGI="--sgi_ip ${SGW_SGI_IP} --sgi_mac ${SGI_MAC} --sgi_gw_ip ${RTR_SGI_IP} --sgi_mask ${SGI_MASK}"
WORKERS="--num_workers 1"
MISC="--log 1"
APP_ARGS="${S1U} ${SGI} ${WORKERS} ${MISC} ${SPGW_CFG}"
interface.cfg: |
[0]
dp_comm_ip = {{ .Values.spgwu_hostname }}
dp_comm_port = {{ .Values.spgwu_port }}
cp_comm_ip = 127.0.0.1
cp_comm_port = 21
meter_profile.cfg: |
[GLOBAL]
NUM_OF_IDX = 7
[ENTRY_1]
;Committed Information Rate (CIR). Measured in bytes per second.
;MBR is mapped into CIR, convert MBR from bits to Bytes and set CIR.
CIR = 2342400
;Committed Burst Size unit = Bytes
CBS = 5856
;Excess Burst Size unit = Bytes
EBS = 11712
;Meter profile index. Refer this index in static_pcc.cfg to set AMBR/MBR
MTR_PROFILE_IDX = 3
[ENTRY_2]
;1200 = 1756800
;1400 = 2049600
;1600 = 2342400
CIR = 2342400
CBS = 5856
EBS = 11712
MTR_PROFILE_IDX = 4
[ENTRY_3]
; QCI5,QCI7 15.571kbps = 1947 B
CIR = 2342400
CBS = 5856
EBS = 11712
MTR_PROFILE_IDX = 5
[ENTRY_4]
; QCI1, 44kbps = 5500 B
CIR = 2342400
CBS = 5856
EBS = 11712
MTR_PROFILE_IDX = 6
[ENTRY_5]
; QCI9, 31.143kbps = 3893 B
CIR = 2342400
CBS = 5856
EBS = 11712
MTR_PROFILE_IDX = 7
[ENTRY_6]
; 128B, 7pps
CIR = 2342400
CBS = 512
EBS = 1024
MTR_PROFILE_IDX = 8
[ENTRY_7]
; 128B, 2pps
CIR = 2342400
CBS = 512
EBS = 1024
MTR_PROFILE_IDX = 9
pcc_rules.cfg: |
[GLOBAL]
NUM_PCC_FILTERS = 9
;To config AMBR/MBR values refer meter_profile.cfg. specify only the
;meter profile index to be set here.
UL_AMBR_MTR_PROFILE_IDX = 3
DL_AMBR_MTR_PROFILE_IDX = 4
;default filter - must be first for now (until DP doesn't install any filters)
;associated with default adc rule
[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
;Specify the meter profile index from meter_profile.cfg
UL_MBR_MTR_PROFILE_IDX = 7
DL_MBR_MTR_PROFILE_IDX = 7
;List of ADC filter indices
SDF_FILTER_IDX = 99998
[PCC_FILTER_2]
RULE_NAME = sdf_rule_1
RATING_GROUP = 5
SERVICE_ID = 0
RULE_STATUS = 0
GATE_STATUS = 1
SESSION_CONT = 0
REPORT_LEVEL = 2
CHARGING_MODE = 0
METERING_METHOD = 0
MUTE_NOTIFY = 0
MONITORING_KEY = 0
SPONSOR_ID = 0
REDIRECT_INFO = 0
PRECEDENCE = 1
DROP_PKT_COUNT = 0
UL_MBR_MTR_PROFILE_IDX = 5
DL_MBR_MTR_PROFILE_IDX = 5
;List of SDF filter indices
SDF_FILTER_IDX = 1
[PCC_FILTER_3]
RULE_NAME = sdf_rule_2
RATING_GROUP = 1
SERVICE_ID = 0
RULE_STATUS = 0
GATE_STATUS = 1
SESSION_CONT = 0
REPORT_LEVEL = 3
CHARGING_MODE = 0
METERING_METHOD = 0
MUTE_NOTIFY = 0
MONITORING_KEY = 0
SPONSOR_ID = 0
REDIRECT_INFO = 0
PRECEDENCE = 18
DROP_PKT_COUNT = 0
UL_MBR_MTR_PROFILE_IDX = 6
DL_MBR_MTR_PROFILE_IDX = 6
;List of SDF filter indices
SDF_FILTER_IDX = 2
[PCC_FILTER_4]
RULE_NAME = adc_rule_1
RATING_GROUP = Zero-Rate
SERVICE_ID = Internet
RULE_STATUS = 0
GATE_STATUS = 1
SESSION_CONT = 0
REPORT_LEVEL = 8
CHARGING_MODE = 0
METERING_METHOD = 0
MUTE_NOTIFY = 0
MONITORING_KEY = 0
REDIRECT_INFO = 0
SPONSOR_ID = Example
PRECEDENCE = 15
DROP_PKT_COUNT = 0
UL_MBR_MTR_PROFILE_IDX = 7
DL_MBR_MTR_PROFILE_IDX = 7
;List of SDF filter indices
ADC_FILTER_IDX = 1
[PCC_FILTER_5]
RULE_NAME = adc_rule_2
RATING_GROUP = 0
SERVICE_ID = CIPA
RULE_STATUS = 0
GATE_STATUS = 1
SESSION_CONT = 0
REPORT_LEVEL = 9
CHARGING_MODE = 0
METERING_METHOD = 0
MUTE_NOTIFY = 0
MONITORING_KEY = 0
SPONSOR_ID = Example
REDIRECT_INFO = 0
SPONSOR_ID = Example
REDIRECT_INFO = 0
PRECEDENCE = 4
DROP_PKT_COUNT = 0
UL_MBR_MTR_PROFILE_IDX = 0
DL_MBR_MTR_PROFILE_IDX = 0
;List of SDF filter indices
ADC_FILTER_IDX = 2
[PCC_FILTER_6]
RULE_NAME = sdf_rule_3
RATING_GROUP = 7
SERVICE_ID = 0
RULE_STATUS = 0
GATE_STATUS = 1
SESSION_CONT = 0
REPORT_LEVEL = 4
CHARGING_MODE = 0
METERING_METHOD = 0
MUTE_NOTIFY = 0
MONITORING_KEY = 0
SPONSOR_ID = 0
REDIRECT_INFO = 0
PRECEDENCE = 17
DROP_PKT_COUNT = 0
UL_MBR_MTR_PROFILE_IDX = 5
DL_MBR_MTR_PROFILE_IDX = 5
;List of SDF filter indices
SDF_FILTER_IDX = 3
[PCC_FILTER_7]
RULE_NAME = adc_rule_3
RATING_GROUP = Zero-Rate
SERVICE_ID = Internet
RULE_STATUS = 0
GATE_STATUS = 1
SESSION_CONT = 0
REPORT_LEVEL = 5
CHARGING_MODE = 0
METERING_METHOD = 0
MUTE_NOTIFY = 0
MONITORING_KEY = 0
SPONSOR_ID = Example
REDIRECT_INFO = 0
PRECEDENCE = 210
DROP_PKT_COUNT = 0
UL_MBR_MTR_PROFILE_IDX = 7
DL_MBR_MTR_PROFILE_IDX = 7
;List of SDF filter indices
ADC_FILTER_IDX = 4
[PCC_FILTER_8]
RULE_NAME = adc_rule_4
RATING_GROUP = Zero-Rate
SERVICE_ID = Management
RULE_STATUS = 0
GATE_STATUS = 1
SESSION_CONT = 0
REPORT_LEVEL = 6
CHARGING_MODE = 0
METERING_METHOD = 0
MUTE_NOTIFY = 0
MONITORING_KEY = 0
SPONSOR_ID = Example
REDIRECT_INFO = 0
PRECEDENCE = 200
DROP_PKT_COUNT = 0
UL_MBR_MTR_PROFILE_IDX = 7
DL_MBR_MTR_PROFILE_IDX = 7
;List of SDF filter indices
ADC_FILTER_IDX = 12
[PCC_FILTER_9]
RULE_NAME = adc_rule_5
RATING_GROUP = Zero-Rate
SERVICE_ID = Provisioning
RULE_STATUS = 0
GATE_STATUS = 1
SESSION_CONT = 0
REPORT_LEVEL = 7
CHARGING_MODE = 0
METERING_METHOD = 0
MUTE_NOTIFY = 0
MONITORING_KEY = 0
SPONSOR_ID = Example
REDIRECT_INFO = 0
PRECEDENCE = 220
DROP_PKT_COUNT = 0
UL_MBR_MTR_PROFILE_IDX = 7
DL_MBR_MTR_PROFILE_IDX = 7
;List of SDF filter indices
ADC_FILTER_IDX = 3
sdf_rules.cfg: |
[GLOBAL]
NUM_SDF_FILTERS = 4
[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
[SDF_FILTER_2]
DIRECTION = uplink_only
IPV4_LOCAL = 16.255.255.0
IPV4_LOCAL_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
[SDF_FILTER_3]
DIRECTION = downlink_only
IPV4_REMOTE = 130.10.0.0
IPV4_REMOTE_MASK = 255.255.0.0
PROTOCOL = 17
REMOTE_LOW_LIMIT_PORT = 5060
REMOTE_HIGH_LIMIT_PORT = 5060
[SDF_FILTER_4]
DIRECTION = uplink_only
IPV4_REMOTE = 103.1.0.0
IPV4_REMOTE_MASK = 255.255.0.0
PROTOCOL = 17
LOCAL_LOW_LIMIT_PORT = 17000
LOCAL_HIGH_LIMIT_PORT = 17010
---
apiVersion: v1
kind: ConfigMap
metadata:
name: cassandra
data:
cassandra-rackdc.properties: |
dc=DC1
rack=RAC1
prefer_local=true
---
apiVersion: v1
kind: ConfigMap
metadata:
name: hss
data:
acl.conf: |
ALLOW_OLD_TLS *.cluster.local
hss.conf: |
# -------- Local ---------
# The first parameter in this section is Identity, which will be used to
# identify this peer in the Diameter network. The Diameter protocol mandates
# that the Identity used is a valid FQDN for the peer. This parameter can be
# omitted, in that case the framework will attempt to use system default value
# (as returned by hostname --fqdn).
Identity = "HSS_IDENTITY";
# In Diameter, all peers also belong to a Realm. If the realm is not specified,
# the framework uses the part of the Identity after the first dot.
Realm = "HSS_REALM";
# This parameter is mandatory, even if it is possible to disable TLS for peers
# connections. A valid certificate for this Diameter Identity is expected.
TLS_Cred = "./conf/HSS_HOST.cert.pem", "./conf/HSS_HOST.key.pem";
TLS_CA = "./conf/cacert.pem";
# Disable use of TCP protocol (only listen and connect in SCTP)
# Default : TCP enabled
No_SCTP;
# This option is ignored if freeDiameter is compiled with DISABLE_SCTP option.
# Prefer TCP instead of SCTP for establishing new connections.
# This setting may be overwritten per peer in peer configuration blocs.
# Default : SCTP is attempted first.
Prefer_TCP;
# Disable use of IPv6 addresses (only IP)
# Default : IPv6 enabled
No_IPv6;
# Overwrite the number of SCTP streams. This value should be kept low,
# especially if you are using TLS over SCTP, because it consumes a lot of
# resources in that case. See tickets 19 and 27 for some additional details on
# this.
# Limit the number of SCTP streams
SCTP_streams = 3;
# By default, freeDiameter acts as a Diameter Relay Agent by forwarding all
# messages it cannot handle locally. This parameter disables this behavior.
NoRelay;
# Use RFC3588 method for TLS protection, where TLS is negociated after CER/CEA exchange is completed
# on the unsecure connection. The alternative is RFC6733 mechanism, where TLS protects also the
# CER/CEA exchange on a dedicated secure port.
# This parameter only affects outgoing connections.
# The setting can be also defined per-peer (see Peers configuration section).
# Default: use RFC6733 method with separate port for TLS.
#TLS_old_method;
# Number of parallel threads that will handle incoming application messages.
# This parameter may be deprecated later in favor of a dynamic number of threads
# depending on the load.
AppServThreads = 4;
# Specify the addresses on which to bind the listening server. This must be
# specified if the framework is unable to auto-detect these addresses, or if the
# auto-detected values are incorrect. Note that the list of addresses is sent
# in CER or CEA message, so one should pay attention to this parameter if some
# adresses should be kept hidden.
#ListenOn = "127.0.0.1";
Port = {{ .Values.hss.ports.s6a }};
SecPort = {{ .Values.hss.ports.secs6a }};
LoadExtension = "acl_wl.fdx" : "./conf/acl.conf";
# -------- Extensions ---------
#LoadExtension = "/usr/local/lib/freeDiameter/_sample.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/app_acct.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/app_diameap.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/app_radgw.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/app_redirect.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/app_sip.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dbg_interactive.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dbg_monitor.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dbg_msg_dumps.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dbg_msg_timings.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dbg_rt.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_3gpp2_avps.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_CreditControl.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_CxDx.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_Gx.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_NAS.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_Ro.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_Rx.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_S6mS6n.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_SGd.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_SLh.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_Sd.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_Sh.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_T4.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_T6aT6bT7.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_Tsp.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_dcca.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_dcca_3gpp.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_dcca_starent.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_draftload_avps.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_eap.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_etsi283034_avps.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_legacy_xml.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_mip6a.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_mip6i.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_nas_mipv6.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_nasreq.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4004_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4006bis_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4072_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4590_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5447_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5580_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5777_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5778_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6734_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6942_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7155_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7683_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7944_avps.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_sip.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29061_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29128_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29154_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29173_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29212_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29214_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29215_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29217_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29229_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29272_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29273_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29329_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29336_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29337_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29338_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29343_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29344_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29345_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29368_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29468_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts32299_avps.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/rt_busypeers.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/rt_default.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/rt_ereg.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/rt_ignore_dh.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/rt_load_balance.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/rt_randomize.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/rt_redirect.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/test_acct.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/test_app.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/test_hss.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/test_netemul.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/test_rt_any.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/test_sip.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_Rf.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_S6as6d.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_S6t.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_S6c.fdx";
# Load RFC4072 dictionary objects
#LoadExtension = "dict_eap.fdx";
# Load the Diameter EAP server extension (requires diameap.conf)
#LoadExtension = "app_diameap.fdx" : "diameap.conf";
# Load the Accounting Server extension (requires app_acct.conf)
#LoadExtension = "app_acct.fdx" : "app_acct.conf";
# -------- Peers ---------
# The framework will actively attempt to establish and maintain a connection
# with the peers listed here.
# For only accepting incoming connections, see the acl_wl.fx extension.
#ConnectPeer = "peer1.localdomain" { ConnectTo = "127.0.0.1"; };
hss.json: |
{"common": {
"fdcfg": "conf/hss.conf",
"originhost": "HSS_IDENTITY",
"originrealm": "HSS_REALM"
},
"hss": {
"gtwhost": "*",
"gtwport" : 9080,
"restport" : 9081,
"casssrv": "CASSANDRA_ADDR",
"cassusr": "root",
"casspwd": "root",
"cassdb" : "vhss",
"randv" : true,
"optkey" : "63bfa50ee6523365ff14c1f45f88737d",
"reloadkey" : true
}
}
launch.sh: |
#!/bin/bash
cd /opt/c3po/hss
cp /etc/hss/conf/{acl.conf,hss.json,hss.conf} conf
HSS_HOST=$(hostname)
HSS_DOMAIN=$(dnsdomainname)
CASSANDRA_ADDR=${CASSANDRA_ADDR:-localhost}
# from hss.json
sed -i "s/HSS_IDENTITY/$HSS_HOST.$HSS_DOMAIN/g" conf/hss.json
sed -i "s/HSS_REALM/$HSS_DOMAIN/g" conf/hss.json
sed -i "s/CASSANDRA_ADDR/$CASSANDRA_ADDR/g" conf/hss.json
# from hss.conf
sed -i "s/HSS_IDENTITY/$HSS_HOST.$HSS_DOMAIN/g" conf/hss.conf
sed -i "s/HSS_REALM/$HSS_DOMAIN/g" conf/hss.conf
sed -i "s/HSS_HOST/$HSS_HOST/g" conf/hss.conf
# If necessary, calculate the OPc value for each UE (User Equipment).
#./bin/hss -j conf/hss.json --onlyloadkey
cd conf
make_certs.sh $(hostname) $(dnsdomainname)
cd ..
# finally, launch
hss -j conf/hss.json
---
apiVersion: v1
kind: ConfigMap
metadata:
name: mme
data:
launch.sh: |
#!/bin/bash
cd /opt/c3po/mme/bin
cp /etc/mme/conf/{vbsm_cfg.txt,vbfd.conf} .
# from vbsm_cfg.txt
SGW_S11_IP=${SGW_S11_IP:-sgw.localdomain}
ENB_S1AP_IP=${ENB_S1AP_IP:-enb1.localdomain}
ENB_S1AP_PORT=${ENB_S1AP_PORT:-36412}
MME_ETH0_IP=${MME_ETH0_IP:-0.0.0.0}
# from vbfd.conf
CONNECT_PEER=${CONNECT_PEER:-hss.localdomain}
HSS_S6A_IP=${HSS_S6A_IP:-hss.localdomain}
HSS_PORT=${HSS_PORT:-3868}
VAR_HSS_REALM=${VAR_HSS_REALM:-openair4G.eur}
sed -i "s/SGW_S11_IP/$(dig $SGW_S11_IP +short)/g" vbsm_cfg.txt
sed -i "s/ENB_S1AP_IP/$ENB_S1AP_IP/g" vbsm_cfg.txt
sed -i "s/ENB_S1AP_PORT/$ENB_S1AP_PORT/g" vbsm_cfg.txt
sed -i "s/MME_ETH0_IP/$MME_ETH0_IP/g" vbsm_cfg.txt
sed -i "s/VAR_HSS_HOST/$CONNECT_PEER/g" vbsm_cfg.txt
sed -i "s/VAR_HSS_REALM/$VAR_HSS_REALM/g" vbsm_cfg.txt
MME_HOST=$(hostname)
MME_DOMAIN=$(dnsdomainname)
sed -i "s/CONNECT_PEER/$CONNECT_PEER/g" vbfd.conf
sed -i "s/HSS_S6A_IP/$HSS_S6A_IP/g" vbfd.conf
sed -i "s/HSS_PORT/$HSS_PORT/g" vbfd.conf
sed -i "s/MME_IDENTITY/$MME_HOST.$MME_DOMAIN/g" vbfd.conf
sed -i "s/MME_REALM/$MME_DOMAIN/g" vbfd.conf
sed -i "s/MME_HOST/$MME_HOST/g" vbfd.conf
# generate the certs
# ./make_certs.sh mme localdomain
./make_certs.sh $MME_HOST $MME_DOMAIN
# finally, launch
./vb_acc
vbfd.conf: |
# -------- Test configuration ---------
# Identity = "<diameter_host>.<diameter_realm>";
Identity = "MME_IDENTITY";
Realm = "MME_REALM";
# Port = 3868;
# SecPort = 3869;
ConnectPeer = "CONNECT_PEER" { ConnectTo = "HSS_S6A_IP"; No_TLS; port = HSS_PORT; };
# TLS_Cred = "<diameter_host>.cert.pem", "<diameter_host>.key.pem";
TLS_Cred = "MME_HOST.cert.pem",
"MME_HOST.key.pem";
TLS_CA = "cacert.pem";
LoadExtension = "/usr/local/lib/freeDiameter/dict_3gpp2_avps.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_CreditControl.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_base_rfc6733.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_draftload_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_etsi283034_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4004_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4006bis_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4072_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4590_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5447_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5580_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5777_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5778_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6734_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6942_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7155_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7683_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7944_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29061_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29128_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29154_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29173_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29212_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29214_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29215_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29217_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29229_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29272_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29273_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29329_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29336_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29337_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29338_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29343_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29344_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29345_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29368_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29468_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts32299_avps.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_CxDx.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_Gx.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_NAS.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_Rf.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_Ro.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_Rx.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_S6as6d.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_S6c.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_S6mS6n.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_S6t.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_S9.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_SGd.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_SLh.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_Sd.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_Sh.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_T4.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_T6aT6bT7.fdx";
#LoadExtension = "/usr/local/lib/freeDiameter/dict_Tsp.fdx";
vbsm_cfg.txt: |
# Configuration file for MME
##### NOTE: Please Do NOT change the order of the parameters #####
# EGTP related
VBSM_EG_DFLT_PORT 2123 # EGTP Default port
VBSM_EG_NONDFLT_PORT 2124 # EGTP Non Default port
VBSM_EG_S10_NONDFLT_PORT 2125 # EGTP Non Default
VBSM_EG_S3_NONDFLT_PORT 2126 # EGTP Non Default port for S3 interface towards SGSN
# port for S10
VBSM_EG_DFLT_HOST_NAME "sutlej.ccin.ccpu.com" # EGTP host name
# E-NodeB related
VBSM_ENB_ADDR_1 "ENB_S1AP_IP" # IP address of eNodeB
VBSM_ENB_PORT_1 "ENB_S1AP_PORT" # eNodeB port
#VBSM_ENB_ADDR_2 "172.26.20.180" # IP address of eNodeB
#VBSM_ENB_PORT_2 36422 # eNodeB port
# MME related
VBSM_MME_IPADDR "MME_ETH0_IP" # MME IP address
VBSM_MME_S1AP_IPADDR "MME_ETH0_IP" # MME IP address associated with the S1AP interface
VBSM_MME_EGTP_IPADDR "MME_ETH0_IP" # MME IP address associated with the EGTP interface
VBSM_MME_SCTP_PORT {{ .Values.mme.ports.s1ap }} # MME SCTP port
VBSM_SGW_IPADDR "SGW_S11_IP" # SGW IP address
VBSM_PGW_IPADDR "192.168.1.105" # PDN-GW IP address
VBSM_UE_NUM 1000 # Support 1000 UE's
VBSM_SCTP_UDP_SERV_TYPE 0 #service type,default 0 SCTP
# Debug mask to be set; each represent
#different debug masks to be set (1 and 0 to unset)
#in the form |LVB_DBGMASK_INFO|LVB_DBGMASK_ERROR|LVB_DBGMASK_TRC|LVB_DBGMASK_MEM
VBSM_MME_DBG_MASK 1111
VBSM_DBG_MASK 1111
VBSM_NW_INIATED_DETACH_TIMER 1000
VBSM_MCC_DIG1 3
VBSM_MCC_DIG2 0
VBSM_MCC_DIG3 2
VBSM_MNC_DIG1 7
VBSM_MNC_DIG2 2
VBSM_MNC_DIG3 0
# Target PLMN ID format [ MCC + MNC], + is concatination operator
# If MNC has two digits, the last charater shall be 'f'
# Valid Configurations: 11223f, 112345.
VBSM_TARGET_MME_PLMN_ID 31310f
VBSM_TARGET_MME_IP_ADDR "192.25.1.100"
VBSM_T3412 32
VBSM_SGSN_IP_ADDR "192.25.1.195"
VBSM_SGSN_PLMN_ID 31311f
VBSM_FD_CFG "vbfd.conf"
VBSM_HSS_HOST "VAR_HSS_HOST"
VBSM_HSS_REALM "VAR_HSS_REALM"
# set VBSM_DISABLE_EPC_DNS 0 - enable DNS, 1 - disable DNS
VBSM_DISABLE_EPC_DNS 1
VBSM_DISABLE_EIA0 1
VBSM_REL_CAP 1
VBSM_MME_NAME "vmmestandalone"
VBSM_S1C_SCTP_INSTREAMS 10
VBSM_S1C_SCTP_OUTSTREAMS 10
VBSM_MAX_ENB 2
VBSM_NO_OFGUMMEIS 1
VBSM_MMECODE 1
VBSM_MMEGRPID 1
VBSM_NO_OF_TAI 1
VBSM_TAI_LIST {{"{{ 1,2,0,8,0,1,1 }}"}}
VBSM_SMS_ROUTER_HOST "smsrouter.test3gpp.net"
VBSM_SMS_ROUTER_REALM "test3gpp.net"