gitextract_qbgpc9og/ ├── .github/ │ ├── CODEOWNERS │ ├── auto_assign.yml │ └── workflows/ │ ├── pr-auto-assign.yaml │ ├── release-master.yaml │ ├── release-tag.yaml │ └── test.yaml ├── .gitignore ├── .goreleaser.yml ├── Dockerfiles/ │ ├── centos7/ │ │ ├── Dockerfile │ │ └── build.sh │ ├── cloudvpn/ │ │ ├── Dockerfile │ │ └── build.sh │ ├── ebpf/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README.md │ │ ├── build_and_attach.sh │ │ ├── detach.sh │ │ └── filter.c │ ├── frr/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ └── daemons │ ├── nginx/ │ │ ├── Dockerfile │ │ └── Makefile │ ├── pmacctd/ │ │ ├── Dockerfile │ │ └── Makefile │ └── trex/ │ ├── Dockerfile │ └── Makefile ├── LICENSE ├── Makefile ├── README.md ├── cheatsheet.md ├── command_func.go ├── commands.go ├── configs/ │ └── spec_template.yaml ├── docs/ │ ├── command-line-usage-example.md │ └── specification_yml.md ├── examples/ │ ├── bandwidth_tc/ │ │ └── spec.yaml │ ├── basic_bfd/ │ │ └── spec.yaml │ ├── basic_bgp/ │ │ ├── README.md │ │ ├── bgp_clos_evpn_vxlan/ │ │ │ └── spec.yaml │ │ ├── graceful_restart/ │ │ │ └── simple_ipv4_unicast/ │ │ │ ├── README.md │ │ │ ├── r2/ │ │ │ │ └── r2-kill-bgpd.pcap │ │ │ └── spec.yaml │ │ ├── hv_bgp_dcn/ │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ ├── hv_bgp_dcn_isol/ │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ ├── local_pref/ │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ ├── mpbgp_ipv4_labeled_unicast/ │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ ├── path_attr/ │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ ├── route_reflector/ │ │ │ └── spec.yaml │ │ ├── route_server/ │ │ │ └── spec.yaml │ │ ├── route_server_multihop/ │ │ │ └── spec.yaml │ │ ├── spec.yaml │ │ ├── unnumbered/ │ │ │ ├── r1.pcap │ │ │ └── spec.yaml │ │ ├── vpnv4_mpls/ │ │ │ ├── README.md │ │ │ ├── r1.pcap │ │ │ ├── r2.pcap │ │ │ └── spec.yaml │ │ ├── vpnv4_srmpls/ │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ ├── vpnv4_srmpls_interas_option-b/ │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ ├── vpnv4_srv6/ │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── frr.conf.srv6.R1 │ │ │ ├── frr.conf.srv6.R2 │ │ │ └── spec.yaml │ │ ├── vpnv6_srv6_rs/ │ │ │ └── spec.yaml │ │ └── vrf2vrf_rouet_leak/ │ │ ├── Makefile │ │ └── spec.yaml │ ├── basic_bond/ │ │ └── spec.yaml │ ├── basic_bufferbloat/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_clos/ │ │ ├── README.md │ │ ├── spec.v0.0.0.yaml │ │ ├── spec.v0.0.1.yaml │ │ ├── spec.v0.0.2.yaml │ │ ├── spec.v0.0.3.yaml │ │ └── spec.yaml │ ├── basic_conntrack/ │ │ └── connection_sync/ │ │ ├── Makefile │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_coredns/ │ │ └── blacklist/ │ │ ├── Corefile.NS1 │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_ebgp/ │ │ └── spec.yaml │ ├── basic_ecmp/ │ │ ├── README.md │ │ ├── scale.diff │ │ └── spec.yaml │ ├── basic_evpn/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_exabgp/ │ │ ├── Makefile │ │ ├── README.md │ │ ├── daemons.R1 │ │ ├── exabgp.conf │ │ ├── exabgp.conf.R2 │ │ ├── frr.conf.R1 │ │ └── spec.yaml │ ├── basic_fq_codel/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_gcp_hv/ │ │ └── spec.yaml │ ├── basic_geneve/ │ │ ├── in.pcap │ │ └── spec.yaml │ ├── basic_gre/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_haproxy/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_ipip/ │ │ ├── anycast_tunnel/ │ │ │ └── spec.yaml │ │ └── simple/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_ipsec/ │ │ ├── bgp/ │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ ├── bgp_ha/ │ │ │ ├── in.pcap │ │ │ └── spec.yaml │ │ ├── mesh/ │ │ │ └── spec.yaml │ │ ├── mesh_bgp/ │ │ │ └── spec.yaml │ │ ├── simple/ │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ ├── static_esp_tunnel_simple/ │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ ├── with_vti/ │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ └── xfrm_interface/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_iptables/ │ │ ├── napt/ │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ ├── test/ │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ └── u32/ │ │ └── spec.yaml │ ├── basic_isis/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_l3dsr/ │ │ └── dscp/ │ │ ├── Dockerfile │ │ ├── spec.yaml │ │ └── xdp.c │ ├── basic_ldp/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_mirror/ │ │ ├── local/ │ │ │ └── spec.yaml │ │ └── remote/ │ │ └── spec.yaml │ ├── basic_mpls/ │ │ └── spec.yaml │ ├── basic_multipath/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_namespace/ │ │ ├── README.md │ │ ├── spec.blue.yaml │ │ └── spec.green.yaml │ ├── basic_napt/ │ │ └── spec.yaml │ ├── basic_netflow/ │ │ ├── README.md │ │ ├── multipath/ │ │ │ ├── Makefile │ │ │ └── spec.yaml │ │ ├── netflow.pcap │ │ └── simple/ │ │ └── spec.yaml │ ├── basic_netns/ │ │ └── spec.yaml │ ├── basic_nftables/ │ │ ├── masquerade/ │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ └── snat/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_ospfv2_bird/ │ │ ├── README.md │ │ ├── bird/ │ │ │ ├── R1_bird.conf │ │ │ ├── R2_bird.conf │ │ │ ├── R3_bird.conf │ │ │ └── R4_bird.conf │ │ └── spec.yaml │ ├── basic_ospfv2_frr/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_ospfv3_bird_multiple_instance/ │ │ ├── R3_bird6.conf │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_ospfv3_frr/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_pbr/ │ │ └── spec.yaml │ ├── basic_peer/ │ │ └── spec.yaml │ ├── basic_pim/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_pim2/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_pppoe_WIP/ │ │ └── spec.yaml │ ├── basic_rift/ │ │ ├── README.md │ │ ├── ietf_rift_python/ │ │ │ ├── meta_topology_2c_2x2.yaml │ │ │ ├── rift_leaf1.yaml │ │ │ ├── rift_leaf2.yaml │ │ │ ├── rift_spine1.yaml │ │ │ └── rift_spine2.yaml │ │ └── spec.yaml │ ├── basic_rtbh/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_source_routing/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_srmpls/ │ │ └── spec.yaml │ ├── basic_srv6/ │ │ ├── README.md │ │ ├── linux/ │ │ │ ├── bgp_vpnv6/ │ │ │ │ └── spec.yaml │ │ │ ├── binding_sid/ │ │ │ │ ├── README.md │ │ │ │ └── spec.yaml │ │ │ ├── end_bpf_WIP/ │ │ │ │ ├── Makefile │ │ │ │ ├── bpf_helpers.h │ │ │ │ ├── filter.c │ │ │ │ └── spec.yaml │ │ │ ├── hands_on/ │ │ │ │ ├── README.md │ │ │ │ └── spec.yaml │ │ │ ├── l2vpn/ │ │ │ │ ├── README.md │ │ │ │ └── spec.yaml │ │ │ ├── sfc/ │ │ │ │ ├── README.md │ │ │ │ └── spec.yaml │ │ │ ├── srv6_unaware/ │ │ │ │ ├── README.md │ │ │ │ ├── function/ │ │ │ │ │ ├── Makefile │ │ │ │ │ └── main.cc │ │ │ │ ├── function1/ │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── edenman_chikuwa.cc │ │ │ │ │ ├── main.cc │ │ │ │ │ └── ntt_ipa.cc │ │ │ │ └── spec.yaml │ │ │ ├── transit/ │ │ │ │ ├── README.md │ │ │ │ └── spec.yaml │ │ │ ├── vpn_v4_per_ce/ │ │ │ │ ├── README.md │ │ │ │ └── spec.yaml │ │ │ ├── vpn_v4_per_vrf/ │ │ │ │ ├── README.md │ │ │ │ └── spec.yaml │ │ │ ├── vpn_v6_per_ce/ │ │ │ │ ├── README.md │ │ │ │ └── spec.yaml │ │ │ ├── vpn_v6_per_vrf/ │ │ │ │ ├── README.md │ │ │ │ └── spec.yaml │ │ │ └── vrf_redirect/ │ │ │ ├── README.md │ │ │ └── spec.yaml │ │ └── vpp/ │ │ └── vpn4_per_ce/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_sysctl/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_tc/ │ │ └── spec.yaml │ ├── basic_tproxy/ │ │ ├── dns_interceptor/ │ │ │ ├── Corefile │ │ │ ├── Dockerfile.coredns │ │ │ ├── Dockerfile.dns-interceptor │ │ │ ├── README.md │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── main.go │ │ │ ├── session-udp.go │ │ │ └── spec.yaml │ │ └── http_interceptor/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ ├── http_interceptor.go │ │ └── spec.yaml │ ├── basic_vpnv4/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_vpp/ │ │ ├── README.md │ │ ├── nat.yaml │ │ └── spec.yaml │ ├── basic_vrf/ │ │ ├── README.md │ │ ├── frr.spec.yaml │ │ └── iproute2.spec.yaml │ ├── basic_vrf2/ │ │ └── spec.yaml │ ├── basic_vrrp/ │ │ ├── conntrack/ │ │ │ ├── keepalived.conf.R1 │ │ │ ├── keepalived.conf.R2 │ │ │ └── spec.yaml │ │ └── simple/ │ │ └── spec.yaml │ ├── basic_vxlan/ │ │ ├── vxlan_mcast.yaml │ │ └── vxlan_ucast.yaml │ ├── basic_vxlan_mcast_v6/ │ │ └── spec.yaml │ ├── basic_vxlan_v6/ │ │ ├── README.md │ │ └── spec.yaml │ ├── basic_xdp/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── filter.c │ │ └── spec.yaml │ ├── bgp_test/ │ │ ├── dut.conf │ │ └── spec.yaml │ ├── bgp_test2/ │ │ └── spec.yaml │ ├── bridge_tc/ │ │ ├── README.md │ │ └── spec.yaml │ ├── flowspec/ │ │ └── spec.yaml │ ├── gobgp-grpc/ │ │ ├── README.md │ │ ├── add_path01.py │ │ ├── add_path02.py │ │ ├── gobgp01.conf │ │ ├── gobgp02.conf │ │ └── spec.yaml │ ├── ovs_port_vlan/ │ │ └── spec.yaml │ ├── simple/ │ │ └── topo2/ │ │ └── spec.yaml │ ├── srmpls_l2vpn_static_linux/ │ │ ├── README.md │ │ └── spec.yaml │ ├── srmpls_l3vpnv4_static_linux/ │ │ ├── README.md │ │ └── spec.yaml │ ├── srmpls_l3vpnv4_static_vpp/ │ │ ├── README.md │ │ └── spec.yaml │ ├── srv6_l2vpn_static_linux_hack/ │ │ ├── README.md │ │ └── spec.yaml │ ├── srv6_l2vpn_static_vpp/ │ │ ├── README.md │ │ └── spec.yaml │ ├── srv6_l3vpnv4_static_linux/ │ │ ├── README.md │ │ └── spec.yaml │ ├── srv6_l3vpnv4_static_linux_pseudo_dt4/ │ │ ├── README.md │ │ └── spec.yaml │ ├── srv6_l3vpnv4_static_vpp/ │ │ ├── README.md │ │ └── spec.yaml │ ├── srv6_l3vpnv6_static_linux/ │ │ ├── README.md │ │ └── spec.yaml │ └── trex/ │ ├── dual_node_single_instance/ │ │ ├── README.md │ │ ├── client.yaml │ │ ├── server.yaml │ │ ├── spec.yaml │ │ ├── tcp_open.py │ │ └── tcp_openclose.py │ ├── simple/ │ │ ├── README.md │ │ ├── cfg.yaml │ │ ├── new_connection_test.py │ │ ├── spec.yaml │ │ ├── tcp_open.py │ │ └── tcp_openclose.py │ └── single_node_dual_instance/ │ ├── README.md │ ├── client.yaml │ ├── server.yaml │ ├── spec.yaml │ ├── tcp_open.py │ └── tcp_openclose.py ├── go.mod ├── go.sum ├── internal/ │ └── pkg/ │ ├── shell/ │ │ ├── shell.go │ │ └── shell_test.go │ └── utils/ │ ├── utils.go │ └── utils_test.go └── main.go