Slide 26
Slide 26 text
テストと計測
• テスト駆動な開発
• OK/Failパターンのパケットを実装前に定義
• 実装物に関わるRFCからパケットパターンを決めて⽤意
• RFC2663, 3022, 7857 4787, 5382, 5508...
• 全部通れば機能要件を概ね満たしている
• 後から追加より実装上の⼿戻りも圧倒的に少ない
• CircleCIで機能単位のテストを実施
• DPDK : Gtest
• XDP : xdp_prog_run
def test_egress_ether_vlan_ipv4_icmp_packet(self):
i_pkt = Ether()/Dot1Q(vlan=10)/IP(src=”198.18.0.1", dst=”198.19.0.1")/ICMP()
o_pkt = Ether()/Dot1Q(vlan=20)/IP(src=”198.18.1.1", dst=”198.19.0.1")/ICMP()
self.xdp_test(self.egress, i_pkt, o_pkt, BPF.XDP_REDIRECT)
↑こんな感じで仮想的に実⾏して結果を確認可能