Lines Matching full:ns2

40  *    NS1             NS2             NS3
55 * NS1/NS2 are configured to route packets to IP*_ADDR_GRE via IP*_ADDR_8
60 * 1. Routes NS2->IP*_ADDR_DST are brought down, so the only way a ping
98 static int set_top_addr(const char *ns1, const char *ns2, const char *ns3) in set_top_addr() argument
101 SYS(fail, "ip -n %s a add %s/24 dev veth2", ns2, IP4_ADDR_2); in set_top_addr()
102 SYS(fail, "ip -n %s a add %s/24 dev veth3", ns2, IP4_ADDR_3); in set_top_addr()
105 SYS(fail, "ip -n %s -6 a add %s/128 dev veth2", ns2, IP6_ADDR_2); in set_top_addr()
106 SYS(fail, "ip -n %s -6 a add %s/128 dev veth3", ns2, IP6_ADDR_3); in set_top_addr()
110 SYS(fail, "ip -n %s link set dev veth2 up", ns2); in set_top_addr()
111 SYS(fail, "ip -n %s link set dev veth3 up", ns2); in set_top_addr()
119 static int set_bottom_addr(const char *ns1, const char *ns2, const char *ns3) in set_bottom_addr() argument
122 SYS(fail, "ip -n %s a add %s/24 dev veth6", ns2, IP4_ADDR_6); in set_bottom_addr()
123 SYS(fail, "ip -n %s a add %s/24 dev veth7", ns2, IP4_ADDR_7); in set_bottom_addr()
126 SYS(fail, "ip -n %s -6 a add %s/128 dev veth6", ns2, IP6_ADDR_6); in set_bottom_addr()
127 SYS(fail, "ip -n %s -6 a add %s/128 dev veth7", ns2, IP6_ADDR_7); in set_bottom_addr()
131 SYS(fail, "ip -n %s link set dev veth6 up", ns2); in set_bottom_addr()
132 SYS(fail, "ip -n %s link set dev veth7 up", ns2); in set_bottom_addr()
140 static int configure_vrf(const char *ns1, const char *ns2) in configure_vrf() argument
142 if (!ns1 || !ns2) in configure_vrf()
152 SYS(fail, "ip -n %s link add red type vrf table 1001", ns2); in configure_vrf()
153 SYS(fail, "ip -n %s link set red up", ns2); in configure_vrf()
154 SYS(fail, "ip -n %s route add table 1001 unreachable default metric 8192", ns2); in configure_vrf()
155 SYS(fail, "ip -n %s -6 route add table 1001 unreachable default metric 8192", ns2); in configure_vrf()
156 SYS(fail, "ip -n %s link set veth2 vrf red", ns2); in configure_vrf()
157 SYS(fail, "ip -n %s link set veth3 vrf red", ns2); in configure_vrf()
158 SYS(fail, "ip -n %s link set veth6 vrf red", ns2); in configure_vrf()
159 SYS(fail, "ip -n %s link set veth7 vrf red", ns2); in configure_vrf()
197 static int configure_ns2(const char *ns2, const char *vrf) in configure_ns2() argument
201 if (!ns2 || !vrf) in configure_ns2()
204 nstoken = open_netns(ns2); in configure_ns2()
205 if (!ASSERT_OK_PTR(nstoken, "open ns2")) in configure_ns2()
208 SYS(fail, "ip netns exec %s sysctl -wq net.ipv4.ip_forward=1", ns2); in configure_ns2()
209 SYS(fail, "ip netns exec %s sysctl -wq net.ipv6.conf.all.forwarding=1", ns2); in configure_ns2()
274 static int setup_network(char *ns1, char *ns2, char *ns3, const char *vrf) in setup_network() argument
276 if (!ns1 || !ns2 || !ns3 || !vrf) in setup_network()
279 SYS(fail, "ip -n %s link add veth1 type veth peer name veth2 netns %s", ns1, ns2); in setup_network()
280 SYS(fail, "ip -n %s link add veth3 type veth peer name veth4 netns %s", ns2, ns3); in setup_network()
281 SYS(fail, "ip -n %s link add veth5 type veth peer name veth6 netns %s", ns1, ns2); in setup_network()
282 SYS(fail, "ip -n %s link add veth7 type veth peer name veth8 netns %s", ns2, ns3); in setup_network()
285 if (!ASSERT_OK(configure_vrf(ns1, ns2), "configure vrf")) in setup_network()
288 if (!ASSERT_OK(set_top_addr(ns1, ns2, ns3), "set top addresses")) in setup_network()
291 if (!ASSERT_OK(set_bottom_addr(ns1, ns2, ns3), "set bottom addresses")) in setup_network()
297 if (!ASSERT_OK(configure_ns2(ns2, vrf), "configure ns2 routes")) in setup_network()
307 ns2, IP4_ADDR_GRE, IP4_ADDR_8, vrf); in setup_network()
311 ns2, IP6_ADDR_GRE, IP6_ADDR_8, vrf); in setup_network()
318 static int remove_routes_to_gredev(const char *ns1, const char *ns2, const char *vrf) in remove_routes_to_gredev() argument
321 SYS(fail, "ip -n %s route del %s dev veth7 %s", ns2, IP4_ADDR_GRE, vrf); in remove_routes_to_gredev()
323 SYS(fail, "ip -n %s -6 route del %s/128 dev veth7 %s", ns2, IP6_ADDR_GRE, vrf); in remove_routes_to_gredev()
330 static int add_unreachable_routes_to_gredev(const char *ns1, const char *ns2, const char *vrf) in add_unreachable_routes_to_gredev() argument
333 SYS(fail, "ip -n %s route add unreachable %s/32 %s", ns2, IP4_ADDR_GRE, vrf); in add_unreachable_routes_to_gredev()
335 SYS(fail, "ip -n %s -6 route add unreachable %s/128 %s", ns2, IP6_ADDR_GRE, vrf); in add_unreachable_routes_to_gredev()
437 char ns2[NETNS_NAME_SIZE] = NETNS_BASE "-2-"; in lwt_ip_encap() local
446 if (!ASSERT_OK(create_ns(ns2, NETNS_NAME_SIZE), "create ns2")) in lwt_ip_encap()
451 if (!ASSERT_OK(setup_network(ns1, ns2, ns3, vrf), "setup network")) in lwt_ip_encap()
458 /* Remove NS2->DST routes, ping fails */ in lwt_ip_encap()
459 SYS(out, "ip -n %s route del %s/32 dev veth3 %s", ns2, IP4_ADDR_DST, vrf); in lwt_ip_encap()
460 SYS(out, "ip -n %s -6 route del %s/128 dev veth3 %s", ns2, IP6_ADDR_DST, vrf); in lwt_ip_encap()
472 ns2, IP4_ADDR_DST, BPF_FILE, sec, vrf); in lwt_ip_encap()
474 ns2, IP6_ADDR_DST, BPF_FILE, sec, vrf); in lwt_ip_encap()
489 if (!ASSERT_OK(remove_routes_to_gredev(ns1, ns2, vrf), "remove routes to gredev")) in lwt_ip_encap()
495 if (!ASSERT_OK(add_unreachable_routes_to_gredev(ns1, ns2, vrf), in lwt_ip_encap()
502 SYS_NOFAIL("ip netns del %s", ns2); in lwt_ip_encap()