Datapath: "R1" (ea301732-761b-4863-a795-d4b7a93c9a34) Pipeline: ingress table=0 (lr_in_admission ), priority=110 , match=(((ip4 && icmp4.type == 3 && icmp4.code == 4) || (ip6 && icmp6.type == 2 && icmp6.code == 0)) && flags.tunnel_rx == 1), action=(drop;) table=0 (lr_in_admission ), priority=100 , match=(vlan.present || eth.src[40]), action=(drop;) table=0 (lr_in_admission ), priority=50 , match=(eth.dst == 00:00:01:01:02:03 && inport == "foo"), action=(xreg0[0..47] = 00:00:01:01:02:03; next;) table=0 (lr_in_admission ), priority=50 , match=(eth.dst == 00:00:01:01:02:04 && inport == "bar"), action=(xreg0[0..47] = 00:00:01:01:02:04; next;) table=0 (lr_in_admission ), priority=50 , match=(eth.dst == 00:00:04:01:02:03 && inport == "R1_join"), action=(xreg0[0..47] = 00:00:04:01:02:03; next;) table=0 (lr_in_admission ), priority=50 , match=(eth.mcast && inport == "R1_join"), action=(xreg0[0..47] = 00:00:04:01:02:03; next;) table=0 (lr_in_admission ), priority=50 , match=(eth.mcast && inport == "bar"), action=(xreg0[0..47] = 00:00:01:01:02:04; next;) table=0 (lr_in_admission ), priority=50 , match=(eth.mcast && inport == "foo"), action=(xreg0[0..47] = 00:00:01:01:02:03; next;) table=0 (lr_in_admission ), priority=0 , match=(1), action=(drop;) table=1 (lr_in_lookup_neighbor), priority=100 , match=(arp.op == 2), action=(reg9[2] = lookup_arp(inport, arp.spa, arp.sha); next;) table=1 (lr_in_lookup_neighbor), priority=100 , match=(inport == "R1_join" && arp.spa == 20.0.0.0/24 && arp.op == 1), action=(reg9[2] = lookup_arp(inport, arp.spa, arp.sha); next;) table=1 (lr_in_lookup_neighbor), priority=100 , match=(inport == "bar" && arp.spa == 192.168.2.0/24 && arp.op == 1), action=(reg9[2] = lookup_arp(inport, arp.spa, arp.sha); next;) table=1 (lr_in_lookup_neighbor), priority=100 , match=(inport == "foo" && arp.spa == 192.168.1.0/24 && arp.op == 1), action=(reg9[2] = lookup_arp(inport, arp.spa, arp.sha); next;) table=1 (lr_in_lookup_neighbor), priority=100 , match=(nd_na), action=(reg9[2] = lookup_nd(inport, nd.target, nd.tll); next;) table=1 (lr_in_lookup_neighbor), priority=100 , match=(nd_ns), action=(reg9[2] = lookup_nd(inport, ip6.src, nd.sll); next;) table=1 (lr_in_lookup_neighbor), priority=0 , match=(1), action=(reg9[2] = 1; next;) table=2 (lr_in_learn_neighbor), priority=100 , match=(reg9[2] == 1), action=(mac_cache_use; next;) table=2 (lr_in_learn_neighbor), priority=95 , match=(nd_na && nd.tll == 0), action=(put_nd(inport, nd.target, eth.src); next;) table=2 (lr_in_learn_neighbor), priority=95 , match=(nd_ns && (ip6.src == 0 || nd.sll == 0)), action=(next;) table=2 (lr_in_learn_neighbor), priority=90 , match=(arp), action=(put_arp(inport, arp.spa, arp.sha); next;) table=2 (lr_in_learn_neighbor), priority=90 , match=(nd_na), action=(put_nd(inport, nd.target, nd.tll); next;) table=2 (lr_in_learn_neighbor), priority=90 , match=(nd_ns), action=(put_nd(inport, ip6.src, nd.sll); next;) table=2 (lr_in_learn_neighbor), priority=0 , match=(1), action=(drop;) table=3 (lr_in_ip_input ), priority=100 , match=(ip4.src == {192.168.1.1, 192.168.1.255} && reg9[0] == 0), action=(drop;) table=3 (lr_in_ip_input ), priority=100 , match=(ip4.src == {192.168.2.1, 192.168.2.255} && reg9[0] == 0), action=(drop;) table=3 (lr_in_ip_input ), priority=100 , match=(ip4.src == {20.0.0.1, 20.0.0.255} && reg9[0] == 0), action=(drop;) table=3 (lr_in_ip_input ), priority=100 , match=(ip4.src_mcast ||ip4.src == 255.255.255.255 || ip4.src == 127.0.0.0/8 || ip4.dst == 127.0.0.0/8 || ip4.src == 0.0.0.0/8 || ip4.dst == 0.0.0.0/8), action=(drop;) table=3 (lr_in_ip_input ), priority=100 , match=(ip6.dst == 2001::1 && udp.src == 547 && udp.dst == 546), action=(reg0 = 0; handle_dhcpv6_reply;) table=3 (lr_in_ip_input ), priority=100 , match=(ip6.dst == 2002::1 && udp.src == 547 && udp.dst == 546), action=(reg0 = 0; handle_dhcpv6_reply;) table=3 (lr_in_ip_input ), priority=100 , match=(ip6.dst == 4000::1 && udp.src == 547 && udp.dst == 546), action=(reg0 = 0; handle_dhcpv6_reply;) table=3 (lr_in_ip_input ), priority=100 , match=(ip6.dst == fe80::200:1ff:fe01:203 && udp.src == 547 && udp.dst == 546), action=(reg0 = 0; handle_dhcpv6_reply;) table=3 (lr_in_ip_input ), priority=100 , match=(ip6.dst == fe80::200:1ff:fe01:204 && udp.src == 547 && udp.dst == 546), action=(reg0 = 0; handle_dhcpv6_reply;) table=3 (lr_in_ip_input ), priority=100 , match=(ip6.dst == fe80::200:4ff:fe01:203 && udp.src == 547 && udp.dst == 546), action=(reg0 = 0; handle_dhcpv6_reply;) table=3 (lr_in_ip_input ), priority=90 , match=(inport == "R1_join" && arp.op == 1 && arp.tpa == 20.0.0.1 && arp.spa == 20.0.0.0/24), action=(eth.dst = eth.src; eth.src = xreg0[0..47]; arp.op = 2; /* ARP reply */ arp.tha = arp.sha; arp.sha = xreg0[0..47]; arp.tpa <-> arp.spa; outport = inport; flags.loopback = 1; output;) table=3 (lr_in_ip_input ), priority=90 , match=(inport == "R1_join" && ip6.dst == {4000::1, ff02::1:ff00:1} && nd_ns && nd.target == 4000::1), action=(nd_na_router { eth.src = xreg0[0..47]; ip6.src = nd.target; nd.tll = xreg0[0..47]; outport = inport; flags.loopback = 1; output; };) table=3 (lr_in_ip_input ), priority=90 , match=(inport == "R1_join" && ip6.dst == {fe80::200:4ff:fe01:203, ff02::1:ff01:203} && nd_ns && nd.target == fe80::200:4ff:fe01:203), action=(nd_na_router { eth.src = xreg0[0..47]; ip6.src = nd.target; nd.tll = xreg0[0..47]; outport = inport; flags.loopback = 1; output; };) table=3 (lr_in_ip_input ), priority=90 , match=(inport == "bar" && arp.op == 1 && arp.tpa == 192.168.2.1 && arp.spa == 192.168.2.0/24), action=(eth.dst = eth.src; eth.src = xreg0[0..47]; arp.op = 2; /* ARP reply */ arp.tha = arp.sha; arp.sha = xreg0[0..47]; arp.tpa <-> arp.spa; outport = inport; flags.loopback = 1; output;) table=3 (lr_in_ip_input ), priority=90 , match=(inport == "bar" && ip6.dst == {2002::1, ff02::1:ff00:1} && nd_ns && nd.target == 2002::1), action=(nd_na_router { eth.src = xreg0[0..47]; ip6.src = nd.target; nd.tll = xreg0[0..47]; outport = inport; flags.loopback = 1; output; };) table=3 (lr_in_ip_input ), priority=90 , match=(inport == "bar" && ip6.dst == {fe80::200:1ff:fe01:204, ff02::1:ff01:204} && nd_ns && nd.target == fe80::200:1ff:fe01:204), action=(nd_na_router { eth.src = xreg0[0..47]; ip6.src = nd.target; nd.tll = xreg0[0..47]; outport = inport; flags.loopback = 1; output; };) table=3 (lr_in_ip_input ), priority=90 , match=(inport == "foo" && arp.op == 1 && arp.tpa == 192.168.1.1 && arp.spa == 192.168.1.0/24), action=(eth.dst = eth.src; eth.src = xreg0[0..47]; arp.op = 2; /* ARP reply */ arp.tha = arp.sha; arp.sha = xreg0[0..47]; arp.tpa <-> arp.spa; outport = inport; flags.loopback = 1; output;) table=3 (lr_in_ip_input ), priority=90 , match=(inport == "foo" && ip6.dst == {2001::1, ff02::1:ff00:1} && nd_ns && nd.target == 2001::1), action=(nd_na_router { eth.src = xreg0[0..47]; ip6.src = nd.target; nd.tll = xreg0[0..47]; outport = inport; flags.loopback = 1; output; };) table=3 (lr_in_ip_input ), priority=90 , match=(inport == "foo" && ip6.dst == {fe80::200:1ff:fe01:203, ff02::1:ff01:203} && nd_ns && nd.target == fe80::200:1ff:fe01:203), action=(nd_na_router { eth.src = xreg0[0..47]; ip6.src = nd.target; nd.tll = xreg0[0..47]; outport = inport; flags.loopback = 1; output; };) table=3 (lr_in_ip_input ), priority=90 , match=(ip4.dst == 192.168.1.1 && icmp4.type == 8 && icmp4.code == 0), action=(ip4.dst <-> ip4.src; ip.ttl = 255; icmp4.type = 0; flags.loopback = 1; next; ) table=3 (lr_in_ip_input ), priority=90 , match=(ip4.dst == 192.168.2.1 && icmp4.type == 8 && icmp4.code == 0), action=(ip4.dst <-> ip4.src; ip.ttl = 255; icmp4.type = 0; flags.loopback = 1; next; ) table=3 (lr_in_ip_input ), priority=90 , match=(ip4.dst == 20.0.0.1 && icmp4.type == 8 && icmp4.code == 0), action=(ip4.dst <-> ip4.src; ip.ttl = 255; icmp4.type = 0; flags.loopback = 1; next; ) table=3 (lr_in_ip_input ), priority=90 , match=(ip6.dst == {2001::1, fe80::200:1ff:fe01:203} && icmp6.type == 128 && icmp6.code == 0), action=(ip6.dst <-> ip6.src; ip.ttl = 255; icmp6.type = 129; flags.loopback = 1; next; ) table=3 (lr_in_ip_input ), priority=90 , match=(ip6.dst == {2002::1, fe80::200:1ff:fe01:204} && icmp6.type == 128 && icmp6.code == 0), action=(ip6.dst <-> ip6.src; ip.ttl = 255; icmp6.type = 129; flags.loopback = 1; next; ) table=3 (lr_in_ip_input ), priority=90 , match=(ip6.dst == {4000::1, fe80::200:4ff:fe01:203} && icmp6.type == 128 && icmp6.code == 0), action=(ip6.dst <-> ip6.src; ip.ttl = 255; icmp6.type = 129; flags.loopback = 1; next; ) table=3 (lr_in_ip_input ), priority=85 , match=(arp || nd), action=(drop;) table=3 (lr_in_ip_input ), priority=84 , match=(nd_rs || nd_ra), action=(next;) table=3 (lr_in_ip_input ), priority=83 , match=(ip6.mcast_rsvd), action=(drop;) table=3 (lr_in_ip_input ), priority=82 , match=(ip4.mcast || ip6.mcast), action=(drop;) table=3 (lr_in_ip_input ), priority=60 , match=(ip4.dst == {192.168.1.1}), action=(drop;) table=3 (lr_in_ip_input ), priority=60 , match=(ip4.dst == {192.168.2.1}), action=(drop;) table=3 (lr_in_ip_input ), priority=60 , match=(ip4.dst == {20.0.0.1}), action=(drop;) table=3 (lr_in_ip_input ), priority=60 , match=(ip6.dst == {2001::1, fe80::200:1ff:fe01:203}), action=(drop;) table=3 (lr_in_ip_input ), priority=60 , match=(ip6.dst == {2002::1, fe80::200:1ff:fe01:204}), action=(drop;) table=3 (lr_in_ip_input ), priority=60 , match=(ip6.dst == {4000::1, fe80::200:4ff:fe01:203}), action=(drop;) table=3 (lr_in_ip_input ), priority=50 , match=(eth.bcast), action=(drop;) table=3 (lr_in_ip_input ), priority=32 , match=(ip.ttl == {0, 1} && !ip.later_frag && (ip4.mcast || ip6.mcast)), action=(drop;) table=3 (lr_in_ip_input ), priority=31 , match=(inport == "R1_join" && ip4 && ip.ttl == {0, 1} && !ip.later_frag), action=(icmp4 {eth.dst <-> eth.src; icmp4.type = 11; /* Time exceeded */ icmp4.code = 0; /* TTL exceeded in transit */ ip4.dst = ip4.src; ip4.src = 20.0.0.1 ; ip.ttl = 254; outport = "R1_join"; flags.loopback = 1; output; };) table=3 (lr_in_ip_input ), priority=31 , match=(inport == "R1_join" && ip6 && ip6.src == 4000::/64 && ip.ttl == {0, 1} && !ip.later_frag), action=(icmp6 {eth.dst <-> eth.src; ip6.dst = ip6.src; ip6.src = 4000::1 ; ip.ttl = 254; icmp6.type = 3; /* Time exceeded */ icmp6.code = 0; /* TTL exceeded in transit */ outport = "R1_join"; flags.loopback = 1; output; };) table=3 (lr_in_ip_input ), priority=31 , match=(inport == "bar" && ip4 && ip.ttl == {0, 1} && !ip.later_frag), action=(icmp4 {eth.dst <-> eth.src; icmp4.type = 11; /* Time exceeded */ icmp4.code = 0; /* TTL exceeded in transit */ ip4.dst = ip4.src; ip4.src = 192.168.2.1 ; ip.ttl = 254; outport = "bar"; flags.loopback = 1; output; };) table=3 (lr_in_ip_input ), priority=31 , match=(inport == "bar" && ip6 && ip6.src == 2002::/64 && ip.ttl == {0, 1} && !ip.later_frag), action=(icmp6 {eth.dst <-> eth.src; ip6.dst = ip6.src; ip6.src = 2002::1 ; ip.ttl = 254; icmp6.type = 3; /* Time exceeded */ icmp6.code = 0; /* TTL exceeded in transit */ outport = "bar"; flags.loopback = 1; output; };) table=3 (lr_in_ip_input ), priority=31 , match=(inport == "foo" && ip4 && ip.ttl == {0, 1} && !ip.later_frag), action=(icmp4 {eth.dst <-> eth.src; icmp4.type = 11; /* Time exceeded */ icmp4.code = 0; /* TTL exceeded in transit */ ip4.dst = ip4.src; ip4.src = 192.168.1.1 ; ip.ttl = 254; outport = "foo"; flags.loopback = 1; output; };) table=3 (lr_in_ip_input ), priority=31 , match=(inport == "foo" && ip6 && ip6.src == 2001::/64 && ip.ttl == {0, 1} && !ip.later_frag), action=(icmp6 {eth.dst <-> eth.src; ip6.dst = ip6.src; ip6.src = 2001::1 ; ip.ttl = 254; icmp6.type = 3; /* Time exceeded */ icmp6.code = 0; /* TTL exceeded in transit */ outport = "foo"; flags.loopback = 1; output; };) table=3 (lr_in_ip_input ), priority=30 , match=(ip.ttl == {0, 1}), action=(drop;) table=3 (lr_in_ip_input ), priority=0 , match=(1), action=(next;) table=4 (lr_in_unsnat ), priority=0 , match=(1), action=(next;) table=5 (lr_in_defrag ), priority=100 , match=(inport == "R1_join" && ip4.src == 0.0.0.0/0), action=(ct_next;) table=5 (lr_in_defrag ), priority=100 , match=(inport == "R1_join" && ip6.src == ::/0), action=(ct_next;) table=5 (lr_in_defrag ), priority=100 , match=(reg7 == 0 && ip4.dst == 0.0.0.0/0), action=(ct_next;) table=5 (lr_in_defrag ), priority=100 , match=(reg7 == 0 && ip6.dst == ::/0), action=(ct_next;) table=5 (lr_in_defrag ), priority=0 , match=(1), action=(next;) table=6 (lr_in_lb_aff_check ), priority=0 , match=(1), action=(next;) table=7 (lr_in_dnat ), priority=0 , match=(1), action=(next;) table=8 (lr_in_lb_aff_learn ), priority=0 , match=(1), action=(next;) table=9 (lr_in_ecmp_stateful), priority=100 , match=(inport == "R1_join" && ip4.src == 0.0.0.0/0 && !ct.rpl && (ct.new || ct.est)), action=(ct_commit { ct_label.ecmp_reply_eth = eth.src; ct_mark.ecmp_reply_port = 3;}; next;) table=9 (lr_in_ecmp_stateful), priority=100 , match=(inport == "R1_join" && ip6.src == ::/0 && !ct.rpl && (ct.new || ct.est)), action=(ct_commit { ct_label.ecmp_reply_eth = eth.src; ct_mark.ecmp_reply_port = 3;}; next;) table=9 (lr_in_ecmp_stateful), priority=0 , match=(1), action=(next;) table=10(lr_in_nd_ra_options), priority=0 , match=(1), action=(next;) table=11(lr_in_nd_ra_response), priority=0 , match=(1), action=(next;) table=12(lr_in_ip_routing_pre), priority=0 , match=(1), action=(reg7 = 0; next;) table=13(lr_in_ip_routing ), priority=10550, match=(nd_rs || nd_ra), action=(drop;) table=13(lr_in_ip_routing ), priority=10300, match=(ct.rpl && ct_mark.ecmp_reply_port == 3 && reg7 == 0 && ip4.dst == 0.0.0.0/0), action=(ip.ttl--; flags.loopback = 1; eth.src = 00:00:04:01:02:03; reg1 = 20.0.0.1; outport = "R1_join"; next;) table=13(lr_in_ip_routing ), priority=10300, match=(ct.rpl && ct_mark.ecmp_reply_port == 3 && reg7 == 0 && ip6.dst == ::/0), action=(ip.ttl--; flags.loopback = 1; eth.src = 00:00:04:01:02:03; xxreg1 = 4000::1; outport = "R1_join"; next;) table=13(lr_in_ip_routing ), priority=194 , match=(inport == "R1_join" && ip6.dst == fe80::/64), action=(ip.ttl--; reg8[0..15] = 0; xxreg0 = ip6.dst; xxreg1 = fe80::200:4ff:fe01:203; eth.src = 00:00:04:01:02:03; outport = "R1_join"; flags.loopback = 1; next;) table=13(lr_in_ip_routing ), priority=194 , match=(inport == "bar" && ip6.dst == fe80::/64), action=(ip.ttl--; reg8[0..15] = 0; xxreg0 = ip6.dst; xxreg1 = fe80::200:1ff:fe01:204; eth.src = 00:00:01:01:02:04; outport = "bar"; flags.loopback = 1; next;) table=13(lr_in_ip_routing ), priority=194 , match=(inport == "foo" && ip6.dst == fe80::/64), action=(ip.ttl--; reg8[0..15] = 0; xxreg0 = ip6.dst; xxreg1 = fe80::200:1ff:fe01:203; eth.src = 00:00:01:01:02:03; outport = "foo"; flags.loopback = 1; next;) table=13(lr_in_ip_routing ), priority=194 , match=(ip6.dst == 2001::/64), action=(ip.ttl--; reg8[0..15] = 0; xxreg0 = ip6.dst; xxreg1 = 2001::1; eth.src = 00:00:01:01:02:03; outport = "foo"; flags.loopback = 1; next;) table=13(lr_in_ip_routing ), priority=194 , match=(ip6.dst == 2002::/64), action=(ip.ttl--; reg8[0..15] = 0; xxreg0 = ip6.dst; xxreg1 = 2002::1; eth.src = 00:00:01:01:02:04; outport = "bar"; flags.loopback = 1; next;) table=13(lr_in_ip_routing ), priority=194 , match=(ip6.dst == 4000::/64), action=(ip.ttl--; reg8[0..15] = 0; xxreg0 = ip6.dst; xxreg1 = 4000::1; eth.src = 00:00:04:01:02:03; outport = "R1_join"; flags.loopback = 1; next;) table=13(lr_in_ip_routing ), priority=74 , match=(ip4.dst == 192.168.1.0/24), action=(ip.ttl--; reg8[0..15] = 0; reg0 = ip4.dst; reg1 = 192.168.1.1; eth.src = 00:00:01:01:02:03; outport = "foo"; flags.loopback = 1; next;) table=13(lr_in_ip_routing ), priority=74 , match=(ip4.dst == 192.168.2.0/24), action=(ip.ttl--; reg8[0..15] = 0; reg0 = ip4.dst; reg1 = 192.168.2.1; eth.src = 00:00:01:01:02:04; outport = "bar"; flags.loopback = 1; next;) table=13(lr_in_ip_routing ), priority=74 , match=(ip4.dst == 20.0.0.0/24), action=(ip.ttl--; reg8[0..15] = 0; reg0 = ip4.dst; reg1 = 20.0.0.1; eth.src = 00:00:04:01:02:03; outport = "R1_join"; flags.loopback = 1; next;) table=13(lr_in_ip_routing ), priority=1 , match=(reg7 == 0 && ip4.dst == 0.0.0.0/0), action=(ip.ttl--; flags.loopback = 1; reg8[0..15] = 2; reg8[16..31] = select(1, 2);) table=13(lr_in_ip_routing ), priority=1 , match=(reg7 == 0 && ip6.dst == ::/0), action=(ip.ttl--; flags.loopback = 1; reg8[0..15] = 1; reg8[16..31] = select(1, 2);) table=13(lr_in_ip_routing ), priority=0 , match=(1), action=(drop;) table=14(lr_in_ip_routing_ecmp), priority=150 , match=(reg8[0..15] == 0), action=(next;) table=14(lr_in_ip_routing_ecmp), priority=100 , match=(reg8[0..15] == 1 && reg8[16..31] == 1), action=(xxreg0 = 4000::2; xxreg1 = 4000::1; eth.src = 00:00:04:01:02:03; outport = "R1_join"; next;) table=14(lr_in_ip_routing_ecmp), priority=100 , match=(reg8[0..15] == 1 && reg8[16..31] == 2), action=(xxreg0 = 4000::3; xxreg1 = 4000::1; eth.src = 00:00:04:01:02:03; outport = "R1_join"; next;) table=14(lr_in_ip_routing_ecmp), priority=100 , match=(reg8[0..15] == 2 && reg8[16..31] == 1), action=(reg0 = 20.0.0.3; reg1 = 20.0.0.1; eth.src = 00:00:04:01:02:03; outport = "R1_join"; next;) table=14(lr_in_ip_routing_ecmp), priority=100 , match=(reg8[0..15] == 2 && reg8[16..31] == 2), action=(reg0 = 20.0.0.2; reg1 = 20.0.0.1; eth.src = 00:00:04:01:02:03; outport = "R1_join"; next;) table=14(lr_in_ip_routing_ecmp), priority=0 , match=(1), action=(drop;) table=15(lr_in_policy ), priority=65535, match=(ct.rpl && ct_mark.ecmp_reply_port == 3), action=(next;) table=15(lr_in_policy ), priority=0 , match=(1), action=(reg8[0..15] = 0; next;) table=16(lr_in_policy_ecmp ), priority=150 , match=(reg8[0..15] == 0), action=(next;) table=16(lr_in_policy_ecmp ), priority=0 , match=(1), action=(drop;) table=17(lr_in_arp_resolve ), priority=500 , match=(ip4.mcast || ip6.mcast), action=(next;) table=17(lr_in_arp_resolve ), priority=200 , match=(ct.rpl && ct_mark.ecmp_reply_port == 3), action=(push(xxreg1); xxreg1 = ct_label; eth.dst = xxreg1[32..79]; pop(xxreg1); next;) table=17(lr_in_arp_resolve ), priority=100 , match=(outport == "R1_join" && reg0 == 20.0.0.2), action=(eth.dst = 00:00:04:01:02:04; next;) table=17(lr_in_arp_resolve ), priority=100 , match=(outport == "R1_join" && reg0 == 20.0.0.3), action=(eth.dst = 00:00:04:01:02:05; next;) table=17(lr_in_arp_resolve ), priority=100 , match=(outport == "R1_join" && xxreg0 == {4000::2, fe80::200:4ff:fe01:204}), action=(eth.dst = 00:00:04:01:02:04; next;) table=17(lr_in_arp_resolve ), priority=100 , match=(outport == "R1_join" && xxreg0 == {4000::3, fe80::200:4ff:fe01:205}), action=(eth.dst = 00:00:04:01:02:05; next;) table=17(lr_in_arp_resolve ), priority=100 , match=(outport == "bar" && reg0 == 192.168.2.2), action=(eth.dst = f0:00:00:01:02:05; next;) table=17(lr_in_arp_resolve ), priority=100 , match=(outport == "bar" && xxreg0 == 2002::2), action=(eth.dst = f0:00:00:01:02:05; next;) table=17(lr_in_arp_resolve ), priority=100 , match=(outport == "foo" && reg0 == 192.168.1.2), action=(eth.dst = f0:00:00:01:02:03; next;) table=17(lr_in_arp_resolve ), priority=100 , match=(outport == "foo" && xxreg0 == 2001::2), action=(eth.dst = f0:00:00:01:02:03; next;) table=17(lr_in_arp_resolve ), priority=1 , match=(ip4), action=(get_arp(outport, reg0); next;) table=17(lr_in_arp_resolve ), priority=1 , match=(ip6), action=(get_nd(outport, xxreg0); next;) table=17(lr_in_arp_resolve ), priority=0 , match=(1), action=(drop;) table=18(lr_in_chk_pkt_len ), priority=0 , match=(1), action=(next;) table=19(lr_in_larger_pkts ), priority=0 , match=(1), action=(next;) table=20(lr_in_gw_redirect ), priority=0 , match=(1), action=(next;) table=21(lr_in_arp_request ), priority=200 , match=(eth.dst == 00:00:00:00:00:00 && ip6 && xxreg0 == 4000::2), action=(nd_ns { eth.dst = 33:33:ff:00:00:02; ip6.dst = ff02::1:ff00:2; nd.target = 4000::2; output; };) table=21(lr_in_arp_request ), priority=200 , match=(eth.dst == 00:00:00:00:00:00 && ip6 && xxreg0 == 4000::3), action=(nd_ns { eth.dst = 33:33:ff:00:00:03; ip6.dst = ff02::1:ff00:3; nd.target = 4000::3; output; };) table=21(lr_in_arp_request ), priority=100 , match=(eth.dst == 00:00:00:00:00:00 && ip4), action=(arp { eth.dst = ff:ff:ff:ff:ff:ff; arp.spa = reg1; arp.tpa = reg0; arp.op = 1; output; };) table=21(lr_in_arp_request ), priority=100 , match=(eth.dst == 00:00:00:00:00:00 && ip6), action=(nd_ns { nd.target = xxreg0; output; };) table=21(lr_in_arp_request ), priority=0 , match=(1), action=(output;) Datapath: "R1" (ea301732-761b-4863-a795-d4b7a93c9a34) Pipeline: egress table=0 (lr_out_chk_dnat_local), priority=0 , match=(1), action=(reg9[4] = 0; next;) table=1 (lr_out_undnat ), priority=0 , match=(1), action=(next;) table=2 (lr_out_post_undnat ), priority=0 , match=(1), action=(next;) table=3 (lr_out_snat ), priority=120 , match=(nd_ns), action=(next;) table=3 (lr_out_snat ), priority=0 , match=(1), action=(next;) table=4 (lr_out_post_snat ), priority=0 , match=(1), action=(next;) table=5 (lr_out_egr_loop ), priority=0 , match=(1), action=(next;) table=6 (lr_out_delivery ), priority=100 , match=(outport == "R1_join"), action=(output;) table=6 (lr_out_delivery ), priority=100 , match=(outport == "bar"), action=(output;) table=6 (lr_out_delivery ), priority=100 , match=(outport == "foo"), action=(output;) table=6 (lr_out_delivery ), priority=0 , match=(1), action=(drop;)