Compare commits

...

26 Commits

Author SHA1 Message Date
Pim van Pelt 9f6c09cf3c Version bump 2026-05-22 09:06:40 +00:00
Pim van Pelt 5edda90b62 Move to vppcfg based configs - generate the initial config in vpp.service. Needs 20260406-2 2026-04-07 17:43:01 +00:00
Pim van Pelt 5838702459 Remove 'rc-local-perms' again, it's already present in common 2026-02-23 09:45:44 +00:00
Pim van Pelt dc25568bf9 Bump to 20260223-release with eVPN 2026-02-23 09:41:53 +00:00
Pim van Pelt 40a1a7c633 Add rc.local for host* that explains which vpp:port it is connected to 2026-02-23 09:15:52 +00:00
Pim van Pelt e5d34e5a69 Fix ipv6 loopback 2026-02-22 20:00:53 +00:00
Pim van Pelt ad72430086 Add srv6 2026-02-22 19:44:04 +00:00
Pim van Pelt 14c20554b8 Remove hvn2/hvn3.lab, they have been decommissioned 2026-02-22 19:43:52 +00:00
Pim van Pelt 1575b4f6d6 Move to Trixie by default 2025-09-29 21:48:55 +00:00
Pim van Pelt a130d293e1 Remove CPU configs, just use host passthrough 2025-09-29 20:48:35 +00:00
Pim van Pelt 4b0088f935 add sflow config 2024-10-28 16:36:06 +00:00
Pim van Pelt 1d10a2c67b Bump to 2024-10-28, with sFlow 2024-10-28 16:23:12 +00:00
Pim van Pelt a21e523ba5 Bump version to 2024-09-06, which includes sflow 2024-09-06 12:40:05 +00:00
Pim van Pelt 491987d90c Rewrite bird configs: include babel.conf; Restrict OSPF to its own lab net + defaults 2024-04-07 09:51:45 +00:00
Pim van Pelt 22b17f5db0 Add babel (commented out), allow RTS_BABEL into ospf, remove hvn2 user key, rebuild 2024-03-10 16:19:41 +00:00
Pim van Pelt 6e5773d5f4 Add Tom Jones' key 2024-02-08 16:28:39 +00:00
Pim van Pelt 0321ea9aee Refactor ovs-config.sh 2024-02-08 16:28:06 +00:00
Pim van Pelt 14ab4d4054 Remove sshd for FreeBSD build 2024-02-07 22:07:19 +00:00
Pim van Pelt e9a1ec6920 Add FreeBSD build target - only with mgmt, SSH + users for now 2024-02-07 21:44:27 +00:00
Pim van Pelt f1a51505c3 Allow any number of VLAN tags (which in practice, still means only 2) 2024-02-06 11:10:39 +00:00
Pim van Pelt a49c4519e1 bump version to 2024-01-14 2024-02-06 11:10:23 +00:00
Pim van Pelt 5e75a4904b Stretch mgmt network to a /24 2023-11-19 21:53:26 +00:00
Pim van Pelt 6119dcf5c5 Re-enable e0 OSPF for uplink, rebuild all 2023-11-19 18:27:58 +00:00
Pim van Pelt 3d60a51503 Undefine VMs upon destroy; Define VMs upon create 2023-11-19 18:27:46 +00:00
Pim van Pelt b14e7674ad Generate libvirt config files 2023-11-19 18:19:59 +00:00
Pim van Pelt 4ca17edf61 Assume vol0 on the hypervisors, not ssd-vol0 2023-11-19 17:06:49 +00:00
846 changed files with 8274 additions and 5789 deletions
+2 -2
View File
@@ -36,11 +36,11 @@ will watch this replication endpoint, and if they see new snapshots arrive, they
do an incremental pull of the data to their own ZFS filesystem as a snapshot. Old/current do an incremental pull of the data to their own ZFS filesystem as a snapshot. Old/current
running labs will not be disrupted, as they will be cloned off of old snapshots. running labs will not be disrupted, as they will be cloned off of old snapshots.
You will find the image as `ssd-vol0/hvn0.chbtl0.ipng.ch/ssd-vol0/vpp-proto-disk0`: You will find the image as `vol0/hvn0.chbtl0.ipng.ch/ssd-vol0/vpp-proto-disk0`:
``` ```
lab:~$ ssh -A root@hvn0.lab.ipng.ch 'zfs list -t snap' lab:~$ ssh -A root@hvn0.lab.ipng.ch 'zfs list -t snap'
NAME USED AVAIL REFER MOUNTPOINT NAME USED AVAIL REFER MOUNTPOINT
ssd-vol0/hvn0.chbtl0.ipng.ch/ssd-vol0/vpp-proto-disk0@20221013-release 0B - 6.04G - vol0/hvn0.chbtl0.ipng.ch/ssd-vol0/vpp-proto-disk0@20221013-release 0B - 6.04G -
``` ```
## Install ## Install
@@ -7,7 +7,7 @@ network:
accept-ra: false accept-ra: false
dhcp4: false dhcp4: false
mtu: 9000 mtu: 9000
addresses: [ 198.19.5.20/26, 2001:678:d78:50b::14/64 ] addresses: [ 198.19.5.20/24, 2001:678:d78:50b::14/64 ]
routes: routes:
- to: 0.0.0.0/0 - to: 0.0.0.0/0
via: 198.19.5.1 via: 198.19.5.1
@@ -0,0 +1,5 @@
#!/bin/sh
for port in 0 1 2 3; do
ip link set enp16s0f${port} up mtu 1500 alias "vpp0-${port}:Gi10/0/2"
done
@@ -0,0 +1,231 @@
<domain type='kvm'>
<name>host0-0</name>
<uuid>6d920a14-c1bb-9b21-6787-8fa3d066d3e0</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='host-passthrough'/>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/host0-0'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F0:00:00'/>
<source bridge='mgmt'/>
<target dev='host0-0-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:00'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-0-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:01'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-0-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:02'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-0-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:03'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-0-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>
@@ -7,7 +7,7 @@ network:
accept-ra: false accept-ra: false
dhcp4: false dhcp4: false
mtu: 9000 mtu: 9000
addresses: [ 198.19.5.21/26, 2001:678:d78:50b::15/64 ] addresses: [ 198.19.5.21/24, 2001:678:d78:50b::15/64 ]
routes: routes:
- to: 0.0.0.0/0 - to: 0.0.0.0/0
via: 198.19.5.1 via: 198.19.5.1
@@ -0,0 +1,5 @@
#!/bin/sh
for port in 0 1 2 3; do
ip link set enp16s0f${port} up mtu 1500 alias "vpp0-${port}:Gi10/0/3"
done
@@ -0,0 +1,231 @@
<domain type='kvm'>
<name>host0-1</name>
<uuid>9983b3f4-9eaf-f806-19d2-783f47041a0d</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='host-passthrough'/>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/host0-1'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F0:00:10'/>
<source bridge='mgmt'/>
<target dev='host0-1-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:10'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-1-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:11'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-1-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:12'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-1-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:10:13'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host0-1-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>
@@ -7,7 +7,7 @@ network:
accept-ra: false accept-ra: false
dhcp4: false dhcp4: false
mtu: 9000 mtu: 9000
addresses: [ 198.19.5.22/26, 2001:678:d78:50b::16/64 ] addresses: [ 198.19.5.22/24, 2001:678:d78:50b::16/64 ]
routes: routes:
- to: 0.0.0.0/0 - to: 0.0.0.0/0
via: 198.19.5.1 via: 198.19.5.1
@@ -0,0 +1,231 @@
<domain type='kvm'>
<name>tap0-0</name>
<uuid>615ede1a-9953-981e-6381-6fa4802f6c47</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='host-passthrough'/>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/tap0-0'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F0:02:00'/>
<source bridge='mgmt'/>
<target dev='tap0-0-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:12:00'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='tap0-0-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:12:01'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='tap0-0-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:12:02'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='tap0-0-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:12:03'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='tap0-0-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>
@@ -17,4 +17,5 @@ protocol kernel kernel6 {
include "core/static.conf"; include "core/static.conf";
include "core/bfd.conf"; include "core/bfd.conf";
include "core/ospf.conf"; include "core/ospf.conf";
# include "core/babel.conf";
include "manual.conf"; include "manual.conf";
@@ -0,0 +1,13 @@
protocol babel {
interface "e0", "e1" {
type wired;
extended next hop on;
rtt cost 1000;
rtt min 5ms;
rtt max 30ms;
authentication mac permissive;
password "IPng loves bird";
};
ipv6 { import all; export all; };
ipv4 { import all; export all; };
}
@@ -1,21 +1,17 @@
protocol ospf v2 ospf4 { protocol ospf v2 ospf4 {
ipv4 { export where (source = RTS_DEVICE || source = RTS_STATIC); import all; }; ipv4 { export where net ~ [ 192.168.10.0/24+, 0.0.0.0/0 ]; import where net ~ [ 192.168.10.0/24+, 0.0.0.0/0 ]; };
area 0 { area 0 {
interface "loop0" { stub yes; }; interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; }; interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; }; interface "e1" { type pointopoint; cost 5; bfd off; };
interface "e2" { type pointopoint; cost 5; bfd off; };
interface "e3" { type pointopoint; cost 5; bfd off; };
}; };
} }
protocol ospf v3 ospf6 { protocol ospf v3 ospf6 {
ipv6 { export where (source = RTS_DEVICE || source = RTS_STATIC); import all; }; ipv6 { export where net ~ [ 2001:678:d78:200::/60+, ::/0 ]; import where net ~ [ 2001:678:d78:200::/60+, ::/0]; };
area 0 { area 0 {
interface "loop0" { stub yes; }; interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; }; interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; }; interface "e1" { type pointopoint; cost 5; bfd off; };
interface "e2" { type pointopoint; cost 5; bfd off; };
interface "e3" { type pointopoint; cost 5; bfd off; };
}; };
} }
@@ -1,15 +1,12 @@
protocol static static4 { protocol static static4 {
ipv4 { export all; }; ipv4 { export all; };
# route 192.0.2.0/24 via 10.0.0.1;
route 192.168.10.0/24 unreachable; route 192.168.10.0/24 unreachable;
# route 192.0.2.0/24 via 10.0.0.1;
route 0.0.0.0/0 via 192.168.10.4;
} }
protocol static static6 { protocol static static6 {
ipv6 { export all; }; ipv6 { export all; };
# route 2001:db8:cafe::/48 via 2001:db8::1;;
route 2001:678:d78:200::/60 unreachable; route 2001:678:d78:200::/60 unreachable;
route 2001:678:d78:20f::/112 unreachable;
route ::/0 via 2001:678:d78:201::ffff; # route 2001:db8:cafe::/48 via 2001:db8::1;
} }
@@ -7,7 +7,7 @@ network:
accept-ra: false accept-ra: false
dhcp4: false dhcp4: false
mtu: 9000 mtu: 9000
addresses: [ 198.19.5.16/26, 2001:678:d78:50b::10/64 ] addresses: [ 198.19.5.16/24, 2001:678:d78:50b::10/64 ]
routes: routes:
- to: 0.0.0.0/0 - to: 0.0.0.0/0
via: 198.19.5.1 via: 198.19.5.1
@@ -1,11 +1,5 @@
comment { Apply system defaults from the build }
exec /etc/vpp/config/defaults.vpp exec /etc/vpp/config/defaults.vpp
exec /etc/vpp/config/loopback.vpp exec /etc/vpp/config/manual-pre.vpp
exec /etc/vpp/config/interface.vpp exec /etc/vpp/config/vppcfg.vpp
exec /etc/vpp/config/lcp.vpp exec /etc/vpp/config/srv6.vpp
exec /etc/vpp/config/mpls.vpp exec /etc/vpp/config/manual-post.vpp
comment { exec /etc/vpp/config/flowprobe.vpp }
comment { Allow user to set persistent manual configs }
exec /etc/vpp/config/manual.vpp
@@ -3,3 +3,4 @@ lcp default netns dataplane
lcp lcp-sync on lcp lcp-sync on
lcp lcp-auto-subint off lcp lcp-auto-subint off
mpls table add 0
@@ -1,10 +0,0 @@
comment { Generate full IPFIX stats, send them to lab.ipng.ch }
set ipfix exporter collector 194.1.163.86 src 192.168.10.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
@@ -1,24 +0,0 @@
comment { Gi10/0/0 is connected to lab.ipng.ch:lab0 }
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:201::0:fffe/112
set interface ip address GigabitEthernet10/0/0 192.168.10.5/31
set interface state GigabitEthernet10/0/0 up
comment { Gi10/0/1 is connected to vpp0-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:201::1:00/112
set interface ip address GigabitEthernet10/0/1 192.168.10.6/31
set interface state GigabitEthernet10/0/1 up
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
@@ -1,7 +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
@@ -1,6 +0,0 @@
comment { Create a loopback interface }
create loopback interface instance 0
set interface state loop0 up
set interface ip address loop0 192.168.10.0/32
set interface ip address loop0 2001:678:d78:200::/128
@@ -1,2 +0,0 @@
mpls table add 0
set interface mpls GigabitEthernet10/0/1 enable
@@ -0,0 +1,2 @@
set sr encaps source addr 2001:678:d78:200::
sr localsid address 2001:678:d78:20f:: behavior end
@@ -0,0 +1 @@
comment { This file is autogenerated from /etc/vpp/vppcfg.yaml at boot time }
@@ -0,0 +1,30 @@
loopbacks:
loop0:
description: 'Core: vpp0-0'
mtu: 9000
lcp: loop0
addresses: [ 192.168.10.0/32, 2001:678:d78:200::/128 ]
interfaces:
GigabitEthernet10/0/0:
description: 'Gi10/0/0 is connected to lab.ipng.ch:lab0'
addresses: [ 192.168.10.5/31, 2001:678:d78:201::fffe/112 ]
lcp: e0
mtu: 9000
sflow: true
GigabitEthernet10/0/1:
description: 'Gi10/0/1 is connected to vpp0-1:Gi10/0/0'
addresses: [ 192.168.10.6/31, 2001:678:d78:201::1:00/112 ]
mpls: true
lcp: e1
mtu: 9000
sflow: true
GigabitEthernet10/0/2:
description: 'Gi10/0/2 is connected to host0-0:enp16s0f0'
lcp: e2
mtu: 9000
sflow: true
GigabitEthernet10/0/3:
description: 'Gi10/0/3 is connected to host0-1:enp16s0f0'
lcp: e3
mtu: 9000
sflow: true
@@ -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
@@ -5,3 +5,8 @@ for i in frr; do
rm -f /etc/systemd/system/multi-user.target.wants/${i}.service rm -f /etc/systemd/system/multi-user.target.wants/${i}.service
ln -sf /dev/null /etc/systemd/system/${i}.service ln -sf /dev/null /etc/systemd/system/${i}.service
done done
echo " * Enabling Bird"
for i in bird-dataplane; do
ln -sf /lib/systemd/system/${i}.service /etc/systemd/system/multi-user.target.wants/${i}.service
done
@@ -0,0 +1,231 @@
<domain type='kvm'>
<name>vpp0-0</name>
<uuid>ec933791-d6af-7a93-3b8d-aab1a46d6faa</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='host-passthrough'/>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/vpp0-0'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F0:01:00'/>
<source bridge='mgmt'/>
<target dev='vpp0-0-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:00'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-0-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:01'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-0-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:02'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-0-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:03'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-0-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>
@@ -17,4 +17,5 @@ protocol kernel kernel6 {
include "core/static.conf"; include "core/static.conf";
include "core/bfd.conf"; include "core/bfd.conf";
include "core/ospf.conf"; include "core/ospf.conf";
# include "core/babel.conf";
include "manual.conf"; include "manual.conf";
@@ -0,0 +1,13 @@
protocol babel {
interface "e0", "e1" {
type wired;
extended next hop on;
rtt cost 1000;
rtt min 5ms;
rtt max 30ms;
authentication mac permissive;
password "IPng loves bird";
};
ipv6 { import all; export all; };
ipv4 { import all; export all; };
}
@@ -1,21 +1,17 @@
protocol ospf v2 ospf4 { protocol ospf v2 ospf4 {
ipv4 { export where (source = RTS_DEVICE || source = RTS_STATIC); import all; }; ipv4 { export where net ~ [ 192.168.10.0/24+, 0.0.0.0/0 ]; import where net ~ [ 192.168.10.0/24+, 0.0.0.0/0 ]; };
area 0 { area 0 {
interface "loop0" { stub yes; }; interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; }; interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; }; interface "e1" { type pointopoint; cost 5; bfd off; };
interface "e2" { type pointopoint; cost 5; bfd off; };
interface "e3" { type pointopoint; cost 5; bfd off; };
}; };
} }
protocol ospf v3 ospf6 { protocol ospf v3 ospf6 {
ipv6 { export where (source = RTS_DEVICE || source = RTS_STATIC); import all; }; ipv6 { export where net ~ [ 2001:678:d78:200::/60+, ::/0 ]; import where net ~ [ 2001:678:d78:200::/60+, ::/0]; };
area 0 { area 0 {
interface "loop0" { stub yes; }; interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; }; interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; }; interface "e1" { type pointopoint; cost 5; bfd off; };
interface "e2" { type pointopoint; cost 5; bfd off; };
interface "e3" { type pointopoint; cost 5; bfd off; };
}; };
} }
@@ -1,13 +1,12 @@
protocol static static4 { protocol static static4 {
ipv4 { export all; }; ipv4 { export all; };
# route 192.0.2.0/24 via 10.0.0.1;
route 192.168.10.0/24 unreachable; route 192.168.10.0/24 unreachable;
# route 192.0.2.0/24 via 10.0.0.1;
} }
protocol static static6 { protocol static static6 {
ipv6 { export all; }; ipv6 { export all; };
# route 2001:db8:cafe::/48 via 2001:db8::1;;
route 2001:678:d78:200::/60 unreachable; route 2001:678:d78:200::/60 unreachable;
route 2001:678:d78:20f::1:0/112 unreachable;
# route 2001:db8:cafe::/48 via 2001:db8::1;
} }
@@ -7,7 +7,7 @@ network:
accept-ra: false accept-ra: false
dhcp4: false dhcp4: false
mtu: 9000 mtu: 9000
addresses: [ 198.19.5.17/26, 2001:678:d78:50b::11/64 ] addresses: [ 198.19.5.17/24, 2001:678:d78:50b::11/64 ]
routes: routes:
- to: 0.0.0.0/0 - to: 0.0.0.0/0
via: 198.19.5.1 via: 198.19.5.1
@@ -1,11 +1,5 @@
comment { Apply system defaults from the build }
exec /etc/vpp/config/defaults.vpp exec /etc/vpp/config/defaults.vpp
exec /etc/vpp/config/loopback.vpp exec /etc/vpp/config/manual-pre.vpp
exec /etc/vpp/config/interface.vpp exec /etc/vpp/config/vppcfg.vpp
exec /etc/vpp/config/lcp.vpp exec /etc/vpp/config/srv6.vpp
exec /etc/vpp/config/mpls.vpp exec /etc/vpp/config/manual-post.vpp
comment { exec /etc/vpp/config/flowprobe.vpp }
comment { Allow user to set persistent manual configs }
exec /etc/vpp/config/manual.vpp
@@ -3,3 +3,4 @@ lcp default netns dataplane
lcp lcp-sync on lcp lcp-sync on
lcp lcp-auto-subint off lcp lcp-auto-subint off
mpls table add 0
@@ -1,10 +0,0 @@
comment { Generate full IPFIX stats, send them to lab.ipng.ch }
set ipfix exporter collector 194.1.163.86 src 192.168.10.1 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
@@ -1,24 +0,0 @@
comment { Gi10/0/0 is connected to vpp0-0: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:201::1:01/112
set interface ip address GigabitEthernet10/0/0 192.168.10.7/31
set interface state GigabitEthernet10/0/0 up
comment { Gi10/0/1 is connected to vpp0-2: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:201::2:01/112
set interface ip address GigabitEthernet10/0/1 192.168.10.8/31
set interface state GigabitEthernet10/0/1 up
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
@@ -1,7 +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
@@ -1,6 +0,0 @@
comment { Create a loopback interface }
create loopback interface instance 0
set interface state loop0 up
set interface ip address loop0 192.168.10.1/32
set interface ip address loop0 2001:678:d78:200::1/128
@@ -1,3 +0,0 @@
mpls table add 0
set interface mpls GigabitEthernet10/0/0 enable
set interface mpls GigabitEthernet10/0/1 enable
@@ -0,0 +1,2 @@
set sr encaps source addr 2001:678:d78:200::1
sr localsid address 2001:678:d78:20f::1:0 behavior end
@@ -0,0 +1 @@
comment { This file is autogenerated from /etc/vpp/vppcfg.yaml at boot time }
@@ -0,0 +1,31 @@
loopbacks:
loop0:
description: 'Core: vpp0-1'
mtu: 9000
lcp: loop0
addresses: [ 192.168.10.1/32, 2001:678:d78:200::1/128 ]
interfaces:
GigabitEthernet10/0/0:
description: 'Gi10/0/0 is connected to vpp0-0:Gi10/0/1'
addresses: [ 192.168.10.7/31, 2001:678:d78:201::1:01/112 ]
mpls: true
lcp: e0
mtu: 9000
sflow: true
GigabitEthernet10/0/1:
description: 'Gi10/0/1 is connected to vpp0-2:Gi10/0/0'
addresses: [ 192.168.10.8/31, 2001:678:d78:201::2:01/112 ]
mpls: true
lcp: e1
mtu: 9000
sflow: true
GigabitEthernet10/0/2:
description: 'Gi10/0/2 is connected to host0-0:enp16s0f1'
lcp: e2
mtu: 9000
sflow: true
GigabitEthernet10/0/3:
description: 'Gi10/0/3 is connected to host0-1:enp16s0f1'
lcp: e3
mtu: 9000
sflow: true
@@ -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
@@ -5,3 +5,8 @@ for i in frr; do
rm -f /etc/systemd/system/multi-user.target.wants/${i}.service rm -f /etc/systemd/system/multi-user.target.wants/${i}.service
ln -sf /dev/null /etc/systemd/system/${i}.service ln -sf /dev/null /etc/systemd/system/${i}.service
done done
echo " * Enabling Bird"
for i in bird-dataplane; do
ln -sf /lib/systemd/system/${i}.service /etc/systemd/system/multi-user.target.wants/${i}.service
done
@@ -0,0 +1,231 @@
<domain type='kvm'>
<name>vpp0-1</name>
<uuid>ce13980d-4aec-fed9-5d11-723e5971c333</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='host-passthrough'/>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/vpp0-1'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F0:01:10'/>
<source bridge='mgmt'/>
<target dev='vpp0-1-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:10'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-1-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:11'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-1-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:12'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-1-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:13'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-1-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>
@@ -17,4 +17,5 @@ protocol kernel kernel6 {
include "core/static.conf"; include "core/static.conf";
include "core/bfd.conf"; include "core/bfd.conf";
include "core/ospf.conf"; include "core/ospf.conf";
# include "core/babel.conf";
include "manual.conf"; include "manual.conf";
@@ -0,0 +1,13 @@
protocol babel {
interface "e0", "e1" {
type wired;
extended next hop on;
rtt cost 1000;
rtt min 5ms;
rtt max 30ms;
authentication mac permissive;
password "IPng loves bird";
};
ipv6 { import all; export all; };
ipv4 { import all; export all; };
}
@@ -1,21 +1,17 @@
protocol ospf v2 ospf4 { protocol ospf v2 ospf4 {
ipv4 { export where (source = RTS_DEVICE || source = RTS_STATIC); import all; }; ipv4 { export where net ~ [ 192.168.10.0/24+, 0.0.0.0/0 ]; import where net ~ [ 192.168.10.0/24+, 0.0.0.0/0 ]; };
area 0 { area 0 {
interface "loop0" { stub yes; }; interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; }; interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; }; interface "e1" { type pointopoint; cost 5; bfd off; };
interface "e2" { type pointopoint; cost 5; bfd off; };
interface "e3" { type pointopoint; cost 5; bfd off; };
}; };
} }
protocol ospf v3 ospf6 { protocol ospf v3 ospf6 {
ipv6 { export where (source = RTS_DEVICE || source = RTS_STATIC); import all; }; ipv6 { export where net ~ [ 2001:678:d78:200::/60+, ::/0 ]; import where net ~ [ 2001:678:d78:200::/60+, ::/0]; };
area 0 { area 0 {
interface "loop0" { stub yes; }; interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; }; interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; }; interface "e1" { type pointopoint; cost 5; bfd off; };
interface "e2" { type pointopoint; cost 5; bfd off; };
interface "e3" { type pointopoint; cost 5; bfd off; };
}; };
} }
@@ -1,13 +1,12 @@
protocol static static4 { protocol static static4 {
ipv4 { export all; }; ipv4 { export all; };
# route 192.0.2.0/24 via 10.0.0.1;
route 192.168.10.0/24 unreachable; route 192.168.10.0/24 unreachable;
# route 192.0.2.0/24 via 10.0.0.1;
} }
protocol static static6 { protocol static static6 {
ipv6 { export all; }; ipv6 { export all; };
# route 2001:db8:cafe::/48 via 2001:db8::1;;
route 2001:678:d78:200::/60 unreachable; route 2001:678:d78:200::/60 unreachable;
route 2001:678:d78:20f::2:0/112 unreachable;
# route 2001:db8:cafe::/48 via 2001:db8::1;
} }
@@ -7,7 +7,7 @@ network:
accept-ra: false accept-ra: false
dhcp4: false dhcp4: false
mtu: 9000 mtu: 9000
addresses: [ 198.19.5.18/26, 2001:678:d78:50b::12/64 ] addresses: [ 198.19.5.18/24, 2001:678:d78:50b::12/64 ]
routes: routes:
- to: 0.0.0.0/0 - to: 0.0.0.0/0
via: 198.19.5.1 via: 198.19.5.1
@@ -1,11 +1,5 @@
comment { Apply system defaults from the build }
exec /etc/vpp/config/defaults.vpp exec /etc/vpp/config/defaults.vpp
exec /etc/vpp/config/loopback.vpp exec /etc/vpp/config/manual-pre.vpp
exec /etc/vpp/config/interface.vpp exec /etc/vpp/config/vppcfg.vpp
exec /etc/vpp/config/lcp.vpp exec /etc/vpp/config/srv6.vpp
exec /etc/vpp/config/mpls.vpp exec /etc/vpp/config/manual-post.vpp
comment { exec /etc/vpp/config/flowprobe.vpp }
comment { Allow user to set persistent manual configs }
exec /etc/vpp/config/manual.vpp
@@ -3,3 +3,4 @@ lcp default netns dataplane
lcp lcp-sync on lcp lcp-sync on
lcp lcp-auto-subint off lcp lcp-auto-subint off
mpls table add 0
@@ -1,10 +0,0 @@
comment { Generate full IPFIX stats, send them to lab.ipng.ch }
set ipfix exporter collector 194.1.163.86 src 192.168.10.2 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
@@ -1,24 +0,0 @@
comment { Gi10/0/0 is connected to vpp0-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:201::2:02/112
set interface ip address GigabitEthernet10/0/0 192.168.10.9/31
set interface state GigabitEthernet10/0/0 up
comment { Gi10/0/1 is connected to vpp0-3: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:201::3:02/112
set interface ip address GigabitEthernet10/0/1 192.168.10.10/31
set interface state GigabitEthernet10/0/1 up
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
@@ -1,7 +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
@@ -1,6 +0,0 @@
comment { Create a loopback interface }
create loopback interface instance 0
set interface state loop0 up
set interface ip address loop0 192.168.10.2/32
set interface ip address loop0 2001:678:d78:200::2/128
@@ -1,3 +0,0 @@
mpls table add 0
set interface mpls GigabitEthernet10/0/0 enable
set interface mpls GigabitEthernet10/0/1 enable
@@ -0,0 +1,2 @@
set sr encaps source addr 2001:678:d78:200::2
sr localsid address 2001:678:d78:20f::2:0 behavior end
@@ -0,0 +1 @@
comment { This file is autogenerated from /etc/vpp/vppcfg.yaml at boot time }
@@ -0,0 +1,31 @@
loopbacks:
loop0:
description: 'Core: vpp0-2'
mtu: 9000
lcp: loop0
addresses: [ 192.168.10.2/32, 2001:678:d78:200::2/128 ]
interfaces:
GigabitEthernet10/0/0:
description: 'Gi10/0/0 is connected to vpp0-1:Gi10/0/1'
addresses: [ 192.168.10.9/31, 2001:678:d78:201::2:02/112 ]
mpls: true
lcp: e0
mtu: 9000
sflow: true
GigabitEthernet10/0/1:
description: 'Gi10/0/1 is connected to vpp0-3:Gi10/0/0'
addresses: [ 192.168.10.10/31, 2001:678:d78:201::3:02/112 ]
mpls: true
lcp: e1
mtu: 9000
sflow: true
GigabitEthernet10/0/2:
description: 'Gi10/0/2 is connected to host0-0:enp16s0f2'
lcp: e2
mtu: 9000
sflow: true
GigabitEthernet10/0/3:
description: 'Gi10/0/3 is connected to host0-1:enp16s0f2'
lcp: e3
mtu: 9000
sflow: true
@@ -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
@@ -5,3 +5,8 @@ for i in frr; do
rm -f /etc/systemd/system/multi-user.target.wants/${i}.service rm -f /etc/systemd/system/multi-user.target.wants/${i}.service
ln -sf /dev/null /etc/systemd/system/${i}.service ln -sf /dev/null /etc/systemd/system/${i}.service
done done
echo " * Enabling Bird"
for i in bird-dataplane; do
ln -sf /lib/systemd/system/${i}.service /etc/systemd/system/multi-user.target.wants/${i}.service
done
@@ -0,0 +1,231 @@
<domain type='kvm'>
<name>vpp0-2</name>
<uuid>4df7e187-39a9-11f4-6bea-b0e5e2610ec9</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='host-passthrough'/>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/vpp0-2'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F0:01:20'/>
<source bridge='mgmt'/>
<target dev='vpp0-2-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:20'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-2-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:21'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-2-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:22'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-2-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:23'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-2-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>
@@ -17,4 +17,5 @@ protocol kernel kernel6 {
include "core/static.conf"; include "core/static.conf";
include "core/bfd.conf"; include "core/bfd.conf";
include "core/ospf.conf"; include "core/ospf.conf";
# include "core/babel.conf";
include "manual.conf"; include "manual.conf";
@@ -0,0 +1,13 @@
protocol babel {
interface "e0", "e1" {
type wired;
extended next hop on;
rtt cost 1000;
rtt min 5ms;
rtt max 30ms;
authentication mac permissive;
password "IPng loves bird";
};
ipv6 { import all; export all; };
ipv4 { import all; export all; };
}
@@ -1,21 +1,17 @@
protocol ospf v2 ospf4 { protocol ospf v2 ospf4 {
ipv4 { export where (source = RTS_DEVICE || source = RTS_STATIC); import all; }; ipv4 { export where net ~ [ 192.168.10.0/24+, 0.0.0.0/0 ]; import where net ~ [ 192.168.10.0/24+, 0.0.0.0/0 ]; };
area 0 { area 0 {
interface "loop0" { stub yes; }; interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; }; interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; }; interface "e1" { type pointopoint; cost 5; bfd off; };
interface "e2" { type pointopoint; cost 5; bfd off; };
interface "e3" { type pointopoint; cost 5; bfd off; };
}; };
} }
protocol ospf v3 ospf6 { protocol ospf v3 ospf6 {
ipv6 { export where (source = RTS_DEVICE || source = RTS_STATIC); import all; }; ipv6 { export where net ~ [ 2001:678:d78:200::/60+, ::/0 ]; import where net ~ [ 2001:678:d78:200::/60+, ::/0]; };
area 0 { area 0 {
interface "loop0" { stub yes; }; interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; }; interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; }; interface "e1" { type pointopoint; cost 5; bfd off; };
interface "e2" { type pointopoint; cost 5; bfd off; };
interface "e3" { type pointopoint; cost 5; bfd off; };
}; };
} }
@@ -1,13 +1,12 @@
protocol static static4 { protocol static static4 {
ipv4 { export all; }; ipv4 { export all; };
# route 192.0.2.0/24 via 10.0.0.1;
route 192.168.10.0/24 unreachable; route 192.168.10.0/24 unreachable;
# route 192.0.2.0/24 via 10.0.0.1;
} }
protocol static static6 { protocol static static6 {
ipv6 { export all; }; ipv6 { export all; };
# route 2001:db8:cafe::/48 via 2001:db8::1;;
route 2001:678:d78:200::/60 unreachable; route 2001:678:d78:200::/60 unreachable;
route 2001:678:d78:20f::3:0/112 unreachable;
# route 2001:db8:cafe::/48 via 2001:db8::1;
} }
@@ -7,7 +7,7 @@ network:
accept-ra: false accept-ra: false
dhcp4: false dhcp4: false
mtu: 9000 mtu: 9000
addresses: [ 198.19.5.19/26, 2001:678:d78:50b::13/64 ] addresses: [ 198.19.5.19/24, 2001:678:d78:50b::13/64 ]
routes: routes:
- to: 0.0.0.0/0 - to: 0.0.0.0/0
via: 198.19.5.1 via: 198.19.5.1
@@ -1,11 +1,5 @@
comment { Apply system defaults from the build }
exec /etc/vpp/config/defaults.vpp exec /etc/vpp/config/defaults.vpp
exec /etc/vpp/config/loopback.vpp exec /etc/vpp/config/manual-pre.vpp
exec /etc/vpp/config/interface.vpp exec /etc/vpp/config/vppcfg.vpp
exec /etc/vpp/config/lcp.vpp exec /etc/vpp/config/srv6.vpp
exec /etc/vpp/config/mpls.vpp exec /etc/vpp/config/manual-post.vpp
comment { exec /etc/vpp/config/flowprobe.vpp }
comment { Allow user to set persistent manual configs }
exec /etc/vpp/config/manual.vpp
@@ -3,3 +3,4 @@ lcp default netns dataplane
lcp lcp-sync on lcp lcp-sync on
lcp lcp-auto-subint off lcp lcp-auto-subint off
mpls table add 0
@@ -1,10 +0,0 @@
comment { Generate full IPFIX stats, send them to lab.ipng.ch }
set ipfix exporter collector 194.1.163.86 src 192.168.10.3 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
@@ -1,22 +0,0 @@
comment { Gi10/0/0 is connected to vpp0-2: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:201::3:03/112
set interface ip address GigabitEthernet10/0/0 192.168.10.11/31
set interface state GigabitEthernet10/0/0 up
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
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
@@ -1,7 +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
@@ -1,6 +0,0 @@
comment { Create a loopback interface }
create loopback interface instance 0
set interface state loop0 up
set interface ip address loop0 192.168.10.3/32
set interface ip address loop0 2001:678:d78:200::3/128
@@ -1,2 +0,0 @@
mpls table add 0
set interface mpls GigabitEthernet10/0/0 enable
@@ -0,0 +1,2 @@
set sr encaps source addr 2001:678:d78:200::3
sr localsid address 2001:678:d78:20f::3:0 behavior end
@@ -0,0 +1 @@
comment { This file is autogenerated from /etc/vpp/vppcfg.yaml at boot time }
@@ -0,0 +1,30 @@
loopbacks:
loop0:
description: 'Core: vpp0-3'
mtu: 9000
lcp: loop0
addresses: [ 192.168.10.3/32, 2001:678:d78:200::3/128 ]
interfaces:
GigabitEthernet10/0/0:
description: 'Gi10/0/0 is connected to vpp0-2:Gi10/0/1'
addresses: [ 192.168.10.11/31, 2001:678:d78:201::3:03/112 ]
mpls: true
lcp: e0
mtu: 9000
sflow: true
GigabitEthernet10/0/1:
description: 'Gi10/0/1 is free to use'
state: down
lcp: e1
mtu: 9000
sflow: true
GigabitEthernet10/0/2:
description: 'Gi10/0/2 is connected to host0-0:enp16s0f3'
lcp: e2
mtu: 9000
sflow: true
GigabitEthernet10/0/3:
description: 'Gi10/0/3 is connected to host0-1:enp16s0f3'
lcp: e3
mtu: 9000
sflow: true
@@ -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
@@ -5,3 +5,8 @@ for i in frr; do
rm -f /etc/systemd/system/multi-user.target.wants/${i}.service rm -f /etc/systemd/system/multi-user.target.wants/${i}.service
ln -sf /dev/null /etc/systemd/system/${i}.service ln -sf /dev/null /etc/systemd/system/${i}.service
done done
echo " * Enabling Bird"
for i in bird-dataplane; do
ln -sf /lib/systemd/system/${i}.service /etc/systemd/system/multi-user.target.wants/${i}.service
done
@@ -0,0 +1,231 @@
<domain type='kvm'>
<name>vpp0-3</name>
<uuid>004d15ad-f2aa-600f-43bb-b20858089492</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='host-passthrough'/>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/vpp0-3'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F0:01:30'/>
<source bridge='mgmt'/>
<target dev='vpp0-3-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:30'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-3-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:31'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-3-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:32'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-3-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F0:11:33'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='vpp0-3-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>
@@ -7,7 +7,7 @@ network:
accept-ra: false accept-ra: false
dhcp4: false dhcp4: false
mtu: 9000 mtu: 9000
addresses: [ 198.19.5.27/26, 2001:678:d78:50b::1b/64 ] addresses: [ 198.19.5.27/24, 2001:678:d78:50b::1b/64 ]
routes: routes:
- to: 0.0.0.0/0 - to: 0.0.0.0/0
via: 198.19.5.1 via: 198.19.5.1
@@ -0,0 +1,5 @@
#!/bin/sh
for port in 0 1 2 3; do
ip link set enp16s0f${port} up mtu 1500 alias "vpp1-${port}:Gi10/0/2"
done
@@ -0,0 +1,231 @@
<domain type='kvm'>
<name>host1-0</name>
<uuid>bb46a5ac-505c-062f-bea2-f79e2125ed0d</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='host-passthrough'/>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/host1-0'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F1:00:00'/>
<source bridge='mgmt'/>
<target dev='host1-0-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F1:10:00'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host1-0-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F1:10:01'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host1-0-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F1:10:02'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host1-0-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F1:10:03'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host1-0-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>
@@ -7,7 +7,7 @@ network:
accept-ra: false accept-ra: false
dhcp4: false dhcp4: false
mtu: 9000 mtu: 9000
addresses: [ 198.19.5.28/26, 2001:678:d78:50b::1c/64 ] addresses: [ 198.19.5.28/24, 2001:678:d78:50b::1c/64 ]
routes: routes:
- to: 0.0.0.0/0 - to: 0.0.0.0/0
via: 198.19.5.1 via: 198.19.5.1
@@ -0,0 +1,5 @@
#!/bin/sh
for port in 0 1 2 3; do
ip link set enp16s0f${port} up mtu 1500 alias "vpp1-${port}:Gi10/0/3"
done
@@ -0,0 +1,231 @@
<domain type='kvm'>
<name>host1-1</name>
<uuid>527bc146-c93c-3ca4-c9aa-e51e586e5d44</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='host-passthrough'/>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/host1-1'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F1:00:10'/>
<source bridge='mgmt'/>
<target dev='host1-1-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F1:10:10'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host1-1-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F1:10:11'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host1-1-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F1:10:12'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host1-1-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F1:10:13'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='host1-1-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>
@@ -7,7 +7,7 @@ network:
accept-ra: false accept-ra: false
dhcp4: false dhcp4: false
mtu: 9000 mtu: 9000
addresses: [ 198.19.5.29/26, 2001:678:d78:50b::1d/64 ] addresses: [ 198.19.5.29/24, 2001:678:d78:50b::1d/64 ]
routes: routes:
- to: 0.0.0.0/0 - to: 0.0.0.0/0
via: 198.19.5.1 via: 198.19.5.1
@@ -0,0 +1,231 @@
<domain type='kvm'>
<name>tap1-0</name>
<uuid>57080cbb-93b0-5982-2984-74efa8d4c4ac</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://debian.org/debian/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='host-passthrough'/>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/zvol/vol0/tap1-0'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
<controller type='usb' index='0' model='qemu-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<controller type='sata' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pcie-root'/>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='2' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x14'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
</controller>
<controller type='pci' index='6' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='6' port='0x15'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
</controller>
<controller type='pci' index='7' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='7' port='0x16'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
</controller>
<controller type='pci' index='8' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='8' port='0x17'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
</controller>
<controller type='pci' index='9' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='9' port='0x18'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
</controller>
<controller type='pci' index='10' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='10' port='0x19'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
</controller>
<controller type='pci' index='11' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='11' port='0x1a'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
</controller>
<controller type='pci' index='12' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='12' port='0x1b'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
</controller>
<controller type='pci' index='13' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='13' port='0x1c'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
</controller>
<controller type='pci' index='14' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='14' port='0x1d'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
</controller>
<controller type='pci' index='15' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='15' port='0x1e'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/>
</controller>
<controller type='pci' index='16' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='16' port='0x1f'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x7'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:F1:02:00'/>
<source bridge='mgmt'/>
<target dev='tap1-0-mgmt'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F1:12:00'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='tap1-0-0'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0' multifunction='on'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F1:12:01'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='tap1-0-1'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x1'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F1:12:02'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='tap1-0-2'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x2'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:F1:12:03'/>
<source bridge='vpplan'/>
<virtualport type='openvswitch'>
</virtualport>
<target dev='tap1-0-3'/>
<model type='virtio'/>
<mtu size='9216'/>
<address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x3'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='2'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='spice' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich9'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</memballoon>
<rng model='virtio'>
<backend model='random'>/dev/urandom</backend>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</rng>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
<seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>
@@ -17,4 +17,5 @@ protocol kernel kernel6 {
include "core/static.conf"; include "core/static.conf";
include "core/bfd.conf"; include "core/bfd.conf";
include "core/ospf.conf"; include "core/ospf.conf";
# include "core/babel.conf";
include "manual.conf"; include "manual.conf";
@@ -0,0 +1,13 @@
protocol babel {
interface "e0", "e1" {
type wired;
extended next hop on;
rtt cost 1000;
rtt min 5ms;
rtt max 30ms;
authentication mac permissive;
password "IPng loves bird";
};
ipv6 { import all; export all; };
ipv4 { import all; export all; };
}
@@ -1,21 +1,17 @@
protocol ospf v2 ospf4 { protocol ospf v2 ospf4 {
ipv4 { export where (source = RTS_DEVICE || source = RTS_STATIC); import all; }; ipv4 { export where net ~ [ 192.168.11.0/24+, 0.0.0.0/0 ]; import where net ~ [ 192.168.11.0/24+, 0.0.0.0/0 ]; };
area 0 { area 0 {
interface "loop0" { stub yes; }; interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; }; interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; }; interface "e1" { type pointopoint; cost 5; bfd off; };
interface "e2" { type pointopoint; cost 5; bfd off; };
interface "e3" { type pointopoint; cost 5; bfd off; };
}; };
} }
protocol ospf v3 ospf6 { protocol ospf v3 ospf6 {
ipv6 { export where (source = RTS_DEVICE || source = RTS_STATIC); import all; }; ipv6 { export where net ~ [ 2001:678:d78:210::/60+, ::/0 ]; import where net ~ [ 2001:678:d78:210::/60+, ::/0]; };
area 0 { area 0 {
interface "loop0" { stub yes; }; interface "loop0" { stub yes; };
interface "e0" { type pointopoint; cost 5; bfd off; }; interface "e0" { type pointopoint; cost 5; bfd off; };
interface "e1" { type pointopoint; cost 5; bfd off; }; interface "e1" { type pointopoint; cost 5; bfd off; };
interface "e2" { type pointopoint; cost 5; bfd off; };
interface "e3" { type pointopoint; cost 5; bfd off; };
}; };
} }

Some files were not shown because too many files have changed in this diff Show More