Lewati ke isi

Skenario uji

Checklist manual, dijalankan setelah lab.sh test lulus.

  • Persistensi setelah reboot
  • Commit gagal → rollback otomatis
  • Rollback ke commit sebelumnya
  • VPP restart / crash
  • Bukti trafik lewat VPP
  • Restart cidr-config tanpa restart VPP
  • VM diperkecil (CPU worker tidak ada)

a. Persistensi setelah reboot

tests/qemu/lab.sh ssh r1 reboot
tests/qemu/lab.sh ssh r2 reboot

Tunggu sekitar 1 menit, lalu jalankan tests/qemu/lab.sh test. Semua test harus PASS, karena konfigurasi dimuat dari /config/config.boot oleh cidr-config.service.

b. Commit gagal → rollback otomatis

admin@r1# set interfaces eth9 unit 0 family inet address 10.9.9.9/24
admin@r1# commit
% configuration is not valid:
  interfaces eth9: no such dataplane port (available: eth1, eth2, eth3)
admin@r1# discard

c. Rollback ke commit sebelumnya

admin@r1# delete protocols static route 2.2.2.2/32
admin@r1# commit
admin@r1# run ping 2.2.2.2 source 1.1.1.1      <- gagal
admin@r1# rollback 1
admin@r1# commit
admin@r1# run ping 2.2.2.2 source 1.1.1.1      <- jalan lagi

d. VPP restart / crash

tests/qemu/lab.sh ssh r1 "systemctl restart vpp"

Tunggu sekitar 15 detik, lalu jalankan lab.sh test. cidr-config.service menerapkan ulang seluruh konfigurasi setiap kali VPP start.

e. Bukti trafik lewat VPP

tests/qemu/lab.sh ssh r1 "vppctl clear interfaces; vppctl trace add dpdk-input 20"
tests/qemu/lab.sh ssh r2 "ping -c3 10.10.0.2"
tests/qemu/lab.sh ssh r1 "vppctl show trace | grep -E 'nat44|ip4-rewrite|eth2-output' | head"

Trace menunjukkan paket dari R2 diproses node VPP (dpdk-input → ip4-lookup → nat44-… → eth2-output) tanpa melewati kernel.

f. Restart cidr-config tanpa restart VPP

tests/qemu/lab.sh ssh r2 "systemctl restart cidr-config && systemctl restart cidr-config && echo OK"

Keduanya berhasil. Log menunjukkan changes since the last apply (same VPP process), dan handoff tetap terpasang sekali per port:

tests/qemu/lab.sh ssh r2 "vppctl show interface features eth1 | sed -n '/^device-input:/,/^$/p'"

g. VM diperkecil

tests/qemu/lab.sh ssh r1 "sed -i 's/^workers = .*/workers = 1-5/' /etc/cidr/dataplane.conf && systemctl restart vpp"

VPP tetap berjalan, dan show dataplane menampilkan 2 workers on CPU 1-2 (configured; ignored CPU 3-5: not available). Kembalikan dengan workers = auto.

Temuan yang ditemukan lab

Lab menemukan bug yang tidak terlihat di unit test. Semuanya sudah diperbaiki:

Temuan Perbaikan
Paket vpp langsung start dan mengambil semua NIC yang down Start diblok saat install; no-pci kalau belum ada port
/sys/class/net/X/device virtio menunjuk virtio2, bukan PCI Naik ke node PCI induk
rx-buffer-size ditolak VPP 26.x (fatal) Diganti nl-rx-buffer-size
Kernel cloud Debian tanpa vfio no-IOMMU Driver otomatis: vfio → no-IOMMU → uio_pci_generic
linux-nl VPP 26.x mengabaikan VLAN dari Linux Sub-interface dot1q N exact-match dibuat di VPP
virtio membuang frame VLAN untuk DPDK Port yang punya VLAN dijadikan promiscuous
ping dari CLI bisa menunggu selamanya Selalu ada batas waktu
Handoff tercatat di dua arc, dan bisa terpasang ganda Hanya device-input yang dihitung; enable idempoten
Restart cidr-config membuat ulang loopback dan VLAN Penerapan inkremental untuk proses VPP yang sama
Membuat bridge domain/BVI yang sudah ada ditolak VPP (returned -119) Error itu dikenali; aksi create dilewati kalau objeknya sudah ada