AETHER-17 Add support of BESS upf to comac-in-a-box
Also converged various configs under config.spgwu
Change-Id: I4f3383bb280494326a417ec6172427f806829f71
diff --git a/omec/omec-user-plane/Chart.yaml b/omec/omec-user-plane/Chart.yaml
index 59b50bc..b3e54c4 100644
--- a/omec/omec-user-plane/Chart.yaml
+++ b/omec/omec-user-plane/Chart.yaml
@@ -7,4 +7,4 @@
name: omec-user-plane
icon: https://guide.opencord.org/logos/cord.svg
-version: 0.1.4
+version: 0.1.5
diff --git a/omec/omec-user-plane/templates/config/_spgwu.json.tpl b/omec/omec-user-plane/templates/config/_spgwu.json.tpl
index ba36cc7..e667a86 100644
--- a/omec/omec-user-plane/templates/config/_spgwu.json.tpl
+++ b/omec/omec-user-plane/templates/config/_spgwu.json.tpl
@@ -1,6 +1,7 @@
{
- "ue_cidr": {{ .Values.networks.ue.subnet | quote }},
- "enb_cidr": {{ .Values.networks.enb.subnet | quote }},
+ "mode": {{ .Values.config.spgwu.mode | quote }},
+ "ue_cidr": {{ .Values.config.spgwu.ue.subnet | quote }},
+ "enb_cidr": {{ .Values.config.spgwu.enb.subnet | quote }},
"s1u": {
"ifname": {{ .Values.config.spgwu.s1u.device | quote }}
},
diff --git a/omec/omec-user-plane/templates/networks.yaml b/omec/omec-user-plane/templates/networks.yaml
index 40ca04b..d9bd41a 100644
--- a/omec/omec-user-plane/templates/networks.yaml
+++ b/omec/omec-user-plane/templates/networks.yaml
@@ -9,15 +9,15 @@
kind: NetworkAttachmentDefinition
metadata:
name: s1u-net
-{{- if $.Values.networks.sriov.enabled }}
+{{- if $.Values.config.spgwu.sriov.enabled }}
annotations:
k8s.v1.cni.cncf.io/resourceName: intel.com/sriov_vfio_s1u_net
{{- end }}
spec:
config: '{
- "type": {{ .Values.networks.cniPlugin | quote }},
+ "type": {{ .Values.config.spgwu.cniPlugin | quote }},
"ipam": {
- "type": {{ .Values.networks.ipam | quote }}
+ "type": {{ .Values.config.spgwu.ipam | quote }}
}
}'
---
@@ -25,14 +25,14 @@
kind: NetworkAttachmentDefinition
metadata:
name: sgi-net
-{{- if $.Values.networks.sriov.enabled }}
+{{- if $.Values.config.spgwu.sriov.enabled }}
annotations:
k8s.v1.cni.cncf.io/resourceName: intel.com/sriov_vfio_sgi_net
{{- end }}
spec:
config: '{
- "type": {{ .Values.networks.cniPlugin | quote }},
+ "type": {{ .Values.config.spgwu.cniPlugin | quote }},
"ipam": {
- "type": {{ .Values.networks.ipam | quote }}
+ "type": {{ .Values.config.spgwu.ipam | quote }}
}
}'
diff --git a/omec/omec-user-plane/templates/service-spgwu.yaml b/omec/omec-user-plane/templates/service-spgwu.yaml
index efa09ba..ddb2967 100644
--- a/omec/omec-user-plane/templates/service-spgwu.yaml
+++ b/omec/omec-user-plane/templates/service-spgwu.yaml
@@ -34,4 +34,4 @@
- name: bess-web
protocol: TCP
port: 8000
- nodePort: {{ .Values.config.bess.web.nodePort }}
+ nodePort: {{ .Values.config.spgwu.bess.web.nodePort }}
diff --git a/omec/omec-user-plane/templates/statefulset-spgwu.yaml b/omec/omec-user-plane/templates/statefulset-spgwu.yaml
index 57fc312..963f27a 100644
--- a/omec/omec-user-plane/templates/statefulset-spgwu.yaml
+++ b/omec/omec-user-plane/templates/statefulset-spgwu.yaml
@@ -46,8 +46,9 @@
imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
command: ["sh", "-xec"]
args:
- - ip route add {{ .Values.networks.enb.subnet }} via {{ .Values.networks.s1u.gateway }};
- ip route add default via {{ .Values.networks.sgi.gateway }} metric 110;
+ - ip route replace {{ .Values.config.spgwu.enb.subnet }} via {{ .Values.config.spgwu.s1u.gateway }};
+ ip route replace default via {{ .Values.config.spgwu.sgi.gateway }} metric 110;
+ iptables -I OUTPUT -p icmp --icmp-type port-unreachable -j DROP;
securityContext:
capabilities:
add:
@@ -66,7 +67,13 @@
- NET_ADMIN
stdin: true
tty: true
- command: ["/bin/bash", "-xc", "bessd -f -grpc-url=0.0.0.0:10514;"]
+ command: ["/bin/bash", "-xc"]
+ args:
+ {{- if .Values.config.spgwu.hugepage.enabled }}
+ - bessd -f -grpc-url=0.0.0.0:10514
+ {{- else }}
+ - bessd -m 0 -f -grpc-url=0.0.0.0:10514
+ {{- end }}
lifecycle:
postStart:
exec:
@@ -81,7 +88,10 @@
{{- if .Values.resources.enabled }}
{{ toYaml .Values.resources.bess.requests | indent 12 }}
{{- end }}
- {{- if .Values.networks.sriov.enabled }}
+ {{- if .Values.config.spgwu.hugepage.enabled }}
+ hugepages-1Gi: 2Gi
+ {{- end }}
+ {{- if .Values.config.spgwu.sriov.enabled }}
intel.com/sriov_vfio_s1u_net: 1
intel.com/sriov_vfio_sgi_net: 1
{{- end }}
@@ -89,7 +99,10 @@
{{- if .Values.resources.enabled }}
{{ toYaml .Values.resources.bess.limits | indent 12 }}
{{- end }}
- {{- if .Values.networks.sriov.enabled }}
+ {{- if .Values.config.spgwu.hugepage.enabled }}
+ hugepages-1Gi: 2Gi
+ {{- end }}
+ {{- if .Values.config.spgwu.sriov.enabled }}
intel.com/sriov_vfio_s1u_net: 1
intel.com/sriov_vfio_sgi_net: 1
{{- end }}
@@ -97,8 +110,10 @@
- name: CONF_FILE
value: /etc/bess/conf/spgwu.json
volumeMounts:
+ {{- if .Values.config.spgwu.hugepage.enabled }}
- name: hugepages
mountPath: /dev/hugepages
+ {{- end }}
- name: configs
mountPath: /etc/bess/conf
{{- if .Values.config.coreDump.enabled }}
@@ -161,9 +176,11 @@
configMap:
name: spgwu
defaultMode: 493
+ {{- if .Values.config.spgwu.hugepage.enabled }}
- name: hugepages
emptyDir:
medium: HugePages
+ {{- end }}
{{- if .Values.config.coreDump.enabled }}
- name: host-rootfs
hostPath:
diff --git a/omec/omec-user-plane/values.yaml b/omec/omec-user-plane/values.yaml
index eaba8c9..5877ed7 100644
--- a/omec/omec-user-plane/values.yaml
+++ b/omec/omec-user-plane/values.yaml
@@ -5,8 +5,8 @@
images:
tags:
init: docker.io/omecproject/pod-init:1.0.0
- bess: registry.central.aetherproject.net/upf-epc-bess:0.1.0-dev
- cpiface: registry.central.aetherproject.net/upf-epc-cpiface:0.1.0-dev
+ bess: docker.io/omecproject/upf-epc-bess:master-latest
+ cpiface: docker.io/omecproject/upf-epc-cpiface:master-latest
pullPolicy: Always
nodeSelectors:
@@ -19,11 +19,9 @@
enabled: true
bess:
requests:
- hugepages-1Gi: 2Gi
cpu: 2
memory: 256Mi
limits:
- hugepages-1Gi: 2Gi
cpu: 2
memory: 256Mi
routectl:
@@ -52,42 +50,44 @@
coreDump:
enabled: false
path: /tmp/coredump
- # Provide UPF interface driver.
- # Available options are dpdk, af_xdp, af_packet.
- mode: "dpdk"
spgwu:
- name: "dp-staging"
+ hugepage:
+ enabled: true
+ sriov:
+ enabled: true
+ # Provide UPF interface driver.
+ # Available options are dpdk, af_xdp, af_packet.
+ mode: "dpdk"
+ name: "dp-name"
workers: 1
maxSessions: 50000
# Provide the S1U and SGI networks facing device name and IP address
s1u:
device: s1u
- ip: 192.168.252.7/24
+ subnet: 192.168.252.0/24
+ gateway: 192.168.252.1
+ ip: 192.168.252.3/24
sgi:
device: sgi
- ip: 192.168.250.7/24
+ subnet: 192.168.250.0/24
+ gateway: 192.168.250.1
+ ip: 192.168.250.3/24
+ enb:
+ subnet: 192.168.251.0/24
+ ue:
+ subnet: 10.250.0.0/16
zmq:
recvPort: 20
spgwc:
- addr: spgwc-headless.omec.svc.staging.central
+ addr: spgwc-headless
port: 21
- bess:
- web:
- nodePort: 36000
-
-networks:
- sriov:
- enabled: true
- cniPlugin: vfioveth
- # Dynamic IP allocation is not supported for the user plane interfaces
- ipam: static
- enb:
- subnet: 192.168.251.0/24
- ue:
- subnet: 10.250.0.0/16
- sgi:
- subnet: 192.168.250.0/24
- gateway: 192.168.250.1
- s1u:
- subnet: 192.168.252.0/24
- gateway: 192.168.252.1
+ bess:
+ web:
+ nodePort: 36000
+ # Dynamic IP allocation is not supported for the user plane interfaces
+ ipam: static
+ cniPlugin: vfioveth
+ hugepage:
+ enabled: true
+ sriov:
+ enabled: true