Move to vppcfg based configs - generate the initial config in vpp.service. Needs 20260406-2

This commit is contained in:
Pim van Pelt
2026-04-07 17:43:01 +00:00
parent 5838702459
commit 5edda90b62
224 changed files with 977 additions and 1167 deletions

View File

@@ -1,14 +1,6 @@
comment { Apply system defaults from the build }
exec /etc/vpp/config/defaults.vpp
exec /etc/vpp/config/loopback.vpp
exec /etc/vpp/config/interface.vpp
exec /etc/vpp/config/lcp.vpp
exec /etc/vpp/config/mpls.vpp
exec /etc/vpp/config/manual-pre.vpp
exec /etc/vpp/config/vppcfg.vpp
exec /etc/vpp/config/srv6.vpp
exec /etc/vpp/config/sflow.vpp
comment { exec /etc/vpp/config/flowprobe.vpp }
comment { Allow user to set persistent manual configs }
exec /etc/vpp/config/manual.vpp
exec /etc/vpp/config/manual-post.vpp

View File

@@ -3,4 +3,5 @@ lcp default netns dataplane
lcp lcp-sync on
lcp lcp-auto-subint off
mpls table add 0

View File

@@ -1,11 +0,0 @@
comment { Generate full IPFIX stats, send them to lab.ipng.ch }
set ipfix exporter collector 194.1.163.86 src {{node.loopback.ipv4.split("/")[0]}} port 4739 path-mtu 1450 template-interval 30
flowprobe params record l2 l3 l4 active 10 passive 60
flowprobe feature add-del GigabitEthernet10/0/0 l2 both
flowprobe feature add-del GigabitEthernet10/0/1 l2 both
flowprobe feature add-del GigabitEthernet10/0/2 l2 both
flowprobe feature add-del GigabitEthernet10/0/3 l2 both

View File

@@ -1,41 +0,0 @@
{% if node.id == 0 %}
comment { Gi10/0/0 is connected to lab.ipng.ch:lab{{lab.id}} }
set interface mtu 9000 GigabitEthernet10/0/0
set interface mtu packet 9000 GigabitEthernet10/0/0
set interface ip address GigabitEthernet10/0/0 2001:678:d78:2{{lab.id}}1::{{node.id}}:fffe/112
set interface ip address GigabitEthernet10/0/0 192.168.{{10+lab.id}}.{{5+2*node.id}}/31
set interface state GigabitEthernet10/0/0 up
{% else %}
comment { Gi10/0/0 is connected to vpp{{lab.id}}-{{node.id-1}}:Gi10/0/1 }
set interface mtu 9000 GigabitEthernet10/0/0
set interface mtu packet 9000 GigabitEthernet10/0/0
set interface ip address GigabitEthernet10/0/0 2001:678:d78:2{{lab.id}}1::{{node.id}}:{{lab.id}}{{node.id}}/112
set interface ip address GigabitEthernet10/0/0 192.168.{{10+lab.id}}.{{5+2*node.id}}/31
set interface state GigabitEthernet10/0/0 up
{% endif %}
{% if node.id < 3 %}
comment { Gi10/0/1 is connected to vpp{{lab.id}}-{{node.id+1}}:Gi10/0/0 }
set interface mtu 9000 GigabitEthernet10/0/1
set interface mtu packet 9000 GigabitEthernet10/0/1
set interface ip address GigabitEthernet10/0/1 2001:678:d78:2{{lab.id}}1::{{node.id+1}}:{{lab.id}}{{node.id}}/112
set interface ip address GigabitEthernet10/0/1 192.168.{{10+lab.id}}.{{6+2*node.id}}/31
set interface state GigabitEthernet10/0/1 up
{% else %}
comment { Gi10/0/1 is free to use }
set interface mtu 9000 GigabitEthernet10/0/1
set interface mtu packet 9000 GigabitEthernet10/0/1
set interface state GigabitEthernet10/0/1 down
{% endif %}
comment { Gi10/0/2 is free to use }
set interface mtu 9000 GigabitEthernet10/0/2
set interface mtu packet 9000 GigabitEthernet10/0/2
set interface state GigabitEthernet10/0/2 down
comment { Gi10/0/3 is free to use }
set interface mtu 9000 GigabitEthernet10/0/3
set interface mtu packet 9000 GigabitEthernet10/0/3
set interface state GigabitEthernet10/0/3 down

View File

@@ -1,8 +0,0 @@
comment { Create one LinuxCP Interface Pair for each phy }
lcp create loop0 host-if loop0
lcp create GigabitEthernet10/0/0 host-if e0
lcp create GigabitEthernet10/0/1 host-if e1
lcp create GigabitEthernet10/0/2 host-if e2
lcp create GigabitEthernet10/0/3 host-if e3

View File

@@ -1,6 +0,0 @@
comment { Create a loopback interface }
create loopback interface instance 0
set interface state loop0 up
set interface ip address loop0 {{ node.loopback.ipv4 }}
set interface ip address loop0 {{ node.loopback.ipv6 }}

View File

@@ -0,0 +1,3 @@
comment { Put any config for {{ node.hostname }} you'd like here. }
comment { It will persist across restarts of VPP and reboots of the VM. }

View File

@@ -1,8 +0,0 @@
mpls table add 0
{% if node.id > 0 %}
set interface mpls GigabitEthernet10/0/0 enable
{% endif %}
{% if node.id < 3 %}
set interface mpls GigabitEthernet10/0/1 enable
{% endif %}

View File

@@ -1,8 +0,0 @@
sflow header-bytes 128
sflow sampling-rate 100
sflow polling-interval 10
{% for i in range(4) %}
sflow enable GigabitEthernet10/0/{{ i }}
{% endfor %}

View File

@@ -0,0 +1 @@
comment { This file is autogenerated from /etc/vpp/vppcfg.yaml at boot time }

View File

@@ -0,0 +1,42 @@
loopbacks:
loop0:
description: 'Core: vpp{{lab.id}}-{{node.id}}'
mtu: 9000
lcp: loop0
addresses: [ {{node.loopback.ipv4}}, {{node.loopback.ipv6}} ]
interfaces:
GigabitEthernet10/0/0:
{% if node.id == 0 %}
description: 'Gi10/0/0 is connected to lab.ipng.ch:lab{{lab.id}}'
addresses: [ 192.168.{{10+lab.id}}.{{5+2*node.id}}/31, 2001:678:d78:2{{lab.id}}1::fffe/112 ]
{% else %}
description: 'Gi10/0/0 is connected to vpp{{lab.id}}-{{node.id-1}}:Gi10/0/1'
addresses: [ 192.168.{{10+lab.id}}.{{5+2*node.id}}/31, 2001:678:d78:2{{lab.id}}1::{{node.id}}:{{lab.id}}{{node.id}}/112 ]
mpls: true
{% endif %}
lcp: e0
mtu: 9000
sflow: true
GigabitEthernet10/0/1:
{% if node.id < 3 %}
description: 'Gi10/0/1 is connected to vpp{{lab.id}}-{{node.id+1}}:Gi10/0/0'
addresses: [ 192.168.{{10+lab.id}}.{{6+2*node.id}}/31, 2001:678:d78:2{{lab.id}}1::{{node.id+1}}:{{lab.id}}{{node.id}}/112 ]
mpls: true
{% else %}
description: 'Gi10/0/1 is free to use'
state: down
{% endif %}
lcp: e1
mtu: 9000
sflow: true
GigabitEthernet10/0/2:
description: 'Gi10/0/2 is connected to host{{lab.id}}-0:enp16s0f{{node.id}}'
lcp: e2
mtu: 9000
sflow: true
GigabitEthernet10/0/3:
description: 'Gi10/0/3 is connected to host{{lab.id}}-1:enp16s0f{{node.id}}'
lcp: e3
mtu: 9000
sflow: true

View File

@@ -0,0 +1,19 @@
[Unit]
Description=vector packet processing engine
After=network.target
[Service]
Type=simple
ExecStartPre=-/sbin/modprobe uio_pci_generic
ExecStartPre=-/usr/local/bin/vppcfg plan --novpp -c /etc/vpp/vppcfg.yaml -o /etc/vpp/config/vppcfg.vpp
ExecStart=/usr/bin/vpp -c /etc/vpp/startup.conf
ExecStopPost=/bin/rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api
Restart=always
# Uncomment the following line to enable VPP coredumps on crash
# You still need to configure the rest of the system to collect them, see
# https://fdio-vpp.readthedocs.io/en/latest/troubleshooting/reportingissues/reportingissues.html#core-files
# for details
#LimitCORE=infinity
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1 @@
../../../../../_common/vpp/lib/systemd/system/vpp.service

View File

@@ -0,0 +1 @@
../../../../../_common/vpp/lib/systemd/system/vpp.service