Thanks Michael for reporting this and Dumitru for fixing it! @Michael, I guess that this bug is only relevant for the non-DVR case right? ie. if the NAT entry for the FIP has both the external_mac and logical_port fields, then the ARP reply will happen on the compute node hosting the target VM and that'd be fine as it doesn't need to traverse the gw node. Am I right?
On Tue, Mar 24, 2020 at 12:17 PM Dumitru Ceara <dce...@redhat.com> wrote: > On 3/24/20 8:50 AM, Plato, Michael wrote: > > Hi Dumitru, > > > > thank you very much for the patch. I tried it and it works. VM1 can now > reach VM2. > > > > Best regards! > > > > Michael > > Hi Michael, > > The fix is now merged in OVN master and branch 20.03: > > > https://github.com/ovn-org/ovn/commit/d2ab98463f299e67a9f9a31e8b7c42680b8645cf > > Regards, > Dumitru > > > > > > > -----Ursprüngliche Nachricht----- > > Von: Dumitru Ceara <dce...@redhat.com> > > Gesendet: Montag, 23. März 2020 13:28 > > An: Plato, Michael <michael.pl...@tu-berlin.de>; > ovs-discuss@openvswitch.org > > Betreff: Re: [ovs-discuss] No connectivity due to missing ARP reply > > > > On 3/21/20 7:04 PM, Plato, Michael wrote: > >> > >> Hi all, > >> > >> we use OVN with Openstack and have a problem with the following setup: > >> > >> > >> | | > >> ------- | 10.176.0.156 | ------- > >> | VM1 |----- | 192.168.0.1 |---| VM2 | > >> ------- | -------- | > ------- > >> 10.176.0.3.123 |------| R1 |-------------| 192.168.0.201 / > GW: 192.168.0.1 > >> GW:10.176.0.1 | |(test)| | FIP: > 10.176.2.19 > >> | -------- | > >> Outside test > >> (10.176.0.0/16) (192.168.0.0/24) > >> (VLAN) (GENEVE) > >> > >> > >> Versions: > >> - OVN (20.03) > >> - OVS (2.13) > >> - networking-ovn (7.1.0) > >> > >> Problem: > >> - no connectivity due to missing ARP reply for FIP 10.176.2.19 from > >> VM1 (if VM1 is not on GW Chassis for R1 -> is_chassis_resident rules > >> not applied) > >> - after moving VM1 to chassis hosting R1 ARP reply appears (due to > >> local "is_chassis_resident" ARP responder rules) > >> - temporarily removing priority 75 rules (inserted by commit [0]) > >> restores functionality (even on non gateway chassis), because ARP > >> requests were flooded to complete L2 domain (but this creates a > >> scaling issue) > >> > >> > >> Analysis: > >> - according to ovs-detrace the ARP requests were dropped instead of > >> being forwarded to remote chassis hosting R1 (as intended by [0]) > >> > >> > >> Flow: > >> arp,in_port=61,vlan_tci=0x0000,dl_src=fa:16:3e:5e:79:d9,dl_dst=ff:ff:f > >> f:ff:ff:ff,arp_spa=10.176.3.123,arp_tpa=10.176.2.19,arp_op=1,arp_sha=f > >> a:16:3e:5e:79:d9,arp_tha=00:00:00:00:00:00 > >> > >> > >> bridge("br-int") > >> ---------------- > >> 0. in_port=61, priority 100, cookie 0x862b95fc > >> set_field:0x1->reg13 > >> set_field:0x7->reg11 > >> set_field:0x5->reg12 > >> set_field:0x1a->metadata > >> set_field:0x4->reg14 > >> resubmit(,8) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) > >> * Port Binding: logical_port "b19ceab1-c7fe-4c3b-8733-d88cabaa0a23", > tunnel_key 4, chassis-name "383eb44a-de85-485a-9606-2fc649a9cbb9", > chassis-str "os-compute-01" > >> 8. reg14=0x4,metadata=0x1a,dl_src=fa:16:3e:5e:79:d9, priority 50, > >> cookie 0x9a357820 > >> resubmit(,9) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=0 (ls_in_port_sec_l2), priority=50, > >> match=(inport == "b19ceab1-c7fe-4c3b-8733-d88cabaa0a23" && eth.src == > >> {fa:16:3e:5e:79:d9}), actions=(next;) > >> * Logical Switch Port: b19ceab1-c7fe-4c3b-8733-d88cabaa0a23 type > >> (addresses ['fa:16:3e:5e:79:d9 10.176.3.123'], dynamic addresses [], > >> security ['fa:16:3e:5e:79:d9 10.176.3.123'] 9. metadata=0x1a, priority > >> 0, cookie 0x1a478ee1 > >> resubmit(,10) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=1 (ls_in_port_sec_ip), priority=0, match=(1), > >> actions=(next;) 10. > >> arp,reg14=0x4,metadata=0x1a,dl_src=fa:16:3e:5e:79:d9,arp_spa=10.176.3. > >> 123,arp_sha=fa:16:3e:5e:79:d9, priority 90, cookie 0x8c5af8ff > >> resubmit(,11) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=2 (ls_in_port_sec_nd), priority=90, > >> match=(inport == "b19ceab1-c7fe-4c3b-8733-d88cabaa0a23" && eth.src == > >> fa:16:3e:5e:79:d9 && arp.sha == fa:16:3e:5e:79:d9 && arp.spa == > >> {10.176.3.123}), actions=(next;) > >> * Logical Switch Port: b19ceab1-c7fe-4c3b-8733-d88cabaa0a23 type > >> (addresses ['fa:16:3e:5e:79:d9 10.176.3.123'], dynamic addresses [], > >> security ['fa:16:3e:5e:79:d9 10.176.3.123'] 11. metadata=0x1a, > >> priority 0, cookie 0x13f72632 > >> resubmit(,12) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=3 (ls_in_pre_acl), priority=0, match=(1), > >> actions=(next;) 12. metadata=0x1a, priority 0, cookie 0xe38d6752 > >> resubmit(,13) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=4 (ls_in_pre_lb), priority=0, match=(1), > >> actions=(next;) 13. metadata=0x1a, priority 0, cookie 0xa9a6ed5 > >> resubmit(,14) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=5 (ls_in_pre_stateful), priority=0, > >> match=(1), actions=(next;) 14. metadata=0x1a, priority 0, cookie > >> 0xcf9951d4 > >> resubmit(,15) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=6 (ls_in_acl), priority=0, match=(1), > >> actions=(next;) 15. metadata=0x1a, priority 0, cookie 0xcc08c09e > >> resubmit(,16) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=7 (ls_in_qos_mark), priority=0, match=(1), > >> actions=(next;) 16. metadata=0x1a, priority 0, cookie 0x918349d8 > >> resubmit(,17) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=8 (ls_in_qos_meter), priority=0, match=(1), > >> actions=(next;) 17. metadata=0x1a, priority 0, cookie 0x944ba2a > >> resubmit(,18) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=9 (ls_in_lb), priority=0, match=(1), > >> actions=(next;) 18. metadata=0x1a, priority 0, cookie 0xcbae6cab > >> resubmit(,19) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=10 (ls_in_stateful), priority=0, match=(1), > >> actions=(next;) 19. metadata=0x1a, priority 0, cookie 0xf96fbcc8 > >> resubmit(,20) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] 20. metadata=0x1a, > >> priority 0, cookie 0x5b9711bf > >> resubmit(,21) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=12 (ls_in_hairpin), priority=0, match=(1), > >> actions=(next;) 21. metadata=0x1a, priority 0, cookie 0x120d1c68 > >> resubmit(,22) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=13 (ls_in_arp_rsp), priority=0, match=(1), > >> actions=(next;) 22. metadata=0x1a, priority 0, cookie 0xd446226f > >> resubmit(,23) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=14 (ls_in_dhcp_options), priority=0, > >> match=(1), actions=(next;) 23. metadata=0x1a, priority 0, cookie > >> 0x31b45717 > >> resubmit(,24) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=15 (ls_in_dhcp_response), priority=0, > >> match=(1), actions=(next;) 24. metadata=0x1a, priority 0, cookie > >> 0x715db0f1 > >> resubmit(,25) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=16 (ls_in_dns_lookup), priority=0, match=(1), > >> actions=(next;) 25. metadata=0x1a, priority 0, cookie 0xd12f2910 > >> resubmit(,26) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=17 (ls_in_dns_response), priority=0, > >> match=(1), actions=(next;) 26. metadata=0x1a, priority 0, cookie > >> 0x97f5a6b7 > >> resubmit(,27) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=18 (ls_in_external_port), priority=0, > >> match=(1), actions=(next;) 27. > >> arp,reg10=0/0x2,metadata=0x1a,arp_tpa=10.176.2.19,arp_op=1, priority > >> 75, cookie 0x4a641791 > >> set_field:0x5->reg15 > >> resubmit(,32) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [ingress] > >> * Logical flow: table=19 (ls_in_l2_lkup), priority=75, > >> match=(flags[1] == 0 && arp.op == 1 && arp.tpa == { 10.176.2.19, > >> 10.176.0.156}), actions=(outport = > >> "9f1c631b-ea6c-4f50-85f0-a5b0bb6e2e8e"; output;) > >> * Logical Switch Port: 9f1c631b-ea6c-4f50-85f0-a5b0bb6e2e8e type > >> router (addresses ['router'], dynamic addresses [], security [] 32. > >> priority 0 > >> resubmit(,33) > >> 33. reg15=0x5,metadata=0x1a, priority 100 > >> set_field:0x7->reg11 > >> set_field:0x5->reg12 > >> resubmit(,34) > >> 34. priority 0 > >> set_field:0->reg0 > >> set_field:0->reg1 > >> set_field:0->reg2 > >> set_field:0->reg3 > >> set_field:0->reg4 > >> set_field:0->reg5 > >> set_field:0->reg6 > >> set_field:0->reg7 > >> set_field:0->reg8 > >> set_field:0->reg9 > >> resubmit(,40) > >> 40. metadata=0x1a, priority 0, cookie 0xf960a9ea > >> resubmit(,41) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [egress] > >> * Logical flow: table=0 (ls_out_pre_lb), priority=0, match=(1), > >> actions=(next;) 41. metadata=0x1a, priority 0, cookie 0x31e15a58 > >> resubmit(,42) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [egress] > >> * Logical flow: table=1 (ls_out_pre_acl), priority=0, match=(1), > >> actions=(next;) 42. metadata=0x1a, priority 0, cookie 0x7089b16e > >> resubmit(,43) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [egress] > >> * Logical flow: table=2 (ls_out_pre_stateful), priority=0, > >> match=(1), actions=(next;) 43. metadata=0x1a, priority 0, cookie > >> 0x8ab997b2 > >> resubmit(,44) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [egress] > >> * Logical flow: table=3 (ls_out_lb), priority=0, match=(1), > >> actions=(next;) 44. metadata=0x1a, priority 0, cookie 0x62e08a84 > >> resubmit(,45) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [egress] > >> * Logical flow: table=4 (ls_out_acl), priority=0, match=(1), > >> actions=(next;) 45. metadata=0x1a, priority 0, cookie 0x19ac76fa > >> resubmit(,46) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [egress] > >> * Logical flow: table=5 (ls_out_qos_mark), priority=0, match=(1), > >> actions=(next;) 46. metadata=0x1a, priority 0, cookie 0x826c6009 > >> resubmit(,47) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [egress] > >> * Logical flow: table=6 (ls_out_qos_meter), priority=0, match=(1), > >> actions=(next;) 47. metadata=0x1a, priority 0, cookie 0xbaa04ed8 > >> resubmit(,48) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [egress] > >> * Logical flow: table=7 (ls_out_stateful), priority=0, match=(1), > >> actions=(next;) 48. metadata=0x1a, priority 0, cookie 0x7c014dc6 > >> resubmit(,49) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [egress] > >> * Logical flow: table=8 (ls_out_port_sec_ip), priority=0, > >> match=(1), actions=(next;) 49. > >> metadata=0x1a,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00, priority > >> 100, cookie 0x3a1562c4 > >> resubmit(,64) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) [egress] > >> * Logical flow: table=9 (ls_out_port_sec_l2), priority=100, > >> match=(eth.mcast), actions=(output;) 64. priority 0 > >> resubmit(,65) > >> 65. reg15=0x5,metadata=0x1a, priority 100, cookie 0x99c3e9ca > >> clone(ct_clear,set_field:0->reg11,set_field:0->reg12,set_field:0->reg1 > >> 3,set_field:0x3->reg11,set_field:0x4->reg12,set_field:0x26->metadata,s > >> et_field:0x1->reg14,set_field:0->reg10,set_field:0->reg15,set_field:0- > >>> reg0,set_field:0->reg1,set_field:0->reg2,set_field:0->reg3,set_field: > >> 0->reg4,set_field:0->reg5,set_field:0->reg6,set_field:0->reg7,set_fiel > >> d:0->reg8,set_field:0->reg9,resubmit(,8)) > >> ct_clear > >> set_field:0->reg11 > >> set_field:0->reg12 > >> set_field:0->reg13 > >> set_field:0x3->reg11 > >> set_field:0x4->reg12 > >> set_field:0x26->metadata > >> set_field:0x1->reg14 > >> set_field:0->reg10 > >> set_field:0->reg15 > >> set_field:0->reg0 > >> set_field:0->reg1 > >> set_field:0->reg2 > >> set_field:0->reg3 > >> set_field:0->reg4 > >> set_field:0->reg5 > >> set_field:0->reg6 > >> set_field:0->reg7 > >> set_field:0->reg8 > >> set_field:0->reg9 > >> resubmit(,8) > >> * Logical datapath: "neutron-c2a82a31-632b-4d24-8f35-8a79e2a207a7" > >> (d516056b-19a6-4613-9838-8c62452fe31d) > >> * Port Binding: logical_port > >> "9f1c631b-ea6c-4f50-85f0-a5b0bb6e2e8e", tunnel_key 5, 8. > >> reg14=0x1,metadata=0x26,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00, > >> priority 50, cookie 0x12ef5598 > >> resubmit(,9) > >> * Logical datapath: "neutron-673c043b-5c3a-4eae-90d9-bf6c87c1fc37" > >> (f7fad4e5-71bc-42cd-8a1b-048e25137dc0) [ingress] > >> * Logical flow: table=0 (lr_in_admission), priority=50, > >> match=(eth.mcast && inport == > >> "lrp-9f1c631b-ea6c-4f50-85f0-a5b0bb6e2e8e), actions=(next;) > >> * Logical Router Port: lrp-9f1c631b-ea6c-4f50-85f0-a5b0bb6e2e8e > >> mac fa:16:3e:58:84:8c networks ['10.176.0.156/16'] ipv6_ra_configs {} > >> 9. metadata=0x26, priority 0, cookie 0xab1b8863 > >> load:0x1->OXM_OF_PKT_REG4[3] > >> resubmit(,10) > >> * Logical datapath: "neutron-673c043b-5c3a-4eae-90d9-bf6c87c1fc37" > >> (f7fad4e5-71bc-42cd-8a1b-048e25137dc0) [ingress] > >> * Logical flow: table=1 (lr_in_lookup_neighbor), priority=0, > >> match=(1), actions=(reg9[3] = 1; next;) 10. > >> reg9=0x8/0x8,metadata=0x26, priority 100, cookie 0x742e0523 > >> resubmit(,11) > >> * Logical datapath: "neutron-673c043b-5c3a-4eae-90d9-bf6c87c1fc37" > >> (f7fad4e5-71bc-42cd-8a1b-048e25137dc0) [ingress] > >> * Logical flow: table=2 (lr_in_learn_neighbor), priority=100, > >> match=(reg9[3] == 1 || reg9[2] == 1), actions=(next;) 11. > >> arp,metadata=0x26, priority 85, cookie 0xb1c400fe drop > >> * Logical datapath: "neutron-673c043b-5c3a-4eae-90d9-bf6c87c1fc37" > >> (f7fad4e5-71bc-42cd-8a1b-048e25137dc0) [ingress] > >> * Logical flow: table=3 (lr_in_ip_input), priority=85, match=(arp > >> || nd), actions=(drop;) > >> > >> > >> Final flow: > >> arp,reg11=0x7,reg12=0x5,reg13=0x1,reg14=0x4,reg15=0x5,metadata=0x1a,in > >> _port=61,vlan_tci=0x0000,dl_src=fa:16:3e:5e:79:d9,dl_dst=ff:ff:ff:ff:f > >> f:ff,arp_spa=10.176.3.123,arp_tpa=10.176.2.19,arp_op=1,arp_sha=fa:16:3 > >> e:5e:79:d9,arp_tha=00:00:00:00:00:00 > >> Megaflow: > >> recirc_id=0,ct_state=-new-est-rel-rpl-inv-trk,ct_label=0/0x1,eth,arp,i > >> n_port=61,dl_src=fa:16:3e:5e:79:d9,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=10 > >> .176.3.123,arp_tpa=10.176.2.19,arp_op=1,arp_sha=fa:16:3e:5e:79:d9 > >> Datapath actions: ct_clear > >> > >> > >> Looks like theres a rule missing for tunneling ARP/ND to remote chassis > in case of distributed router? > >> > >> > >> Thanks a lot, > >> > >> > >> Michael > >> > >> > >> [0] > >> http://quarantine.tu-berlin.de:32224/?dmVyPTEuMDAxJiZiZDJlODk1MjVhZTY4 > >> ODkyNT01RTc4QUI1QV8yOTc4MV8yNTkxXzEmJjhkN2M3MGQ1ZmU4MjU5ZT0xMjMyJiZ1cm > >> w9aHR0cHMlM0ElMkYlMkZnaXRodWIlMkVjb20lMkZvdm4tb3JnJTJGb3ZuJTJGY29tbWl0 > >> JTJGMzJmNWViYjA2MjI2ZTM0MzNlNTNlMDViZGM3NWQxNjc1Mjg1OWEwZSVFMiU4MCU4Qg > >> == > >> > > > > Hi Michael, > > > > Thanks for reporting this. Could you please try this patch? > > > http://quarantine.tu-berlin.de:32224/?dmVyPTEuMDAxJiZiNjMzOWMxMzRiZTJjYmQyND01RTc4QUI1QV8yOTc4MV8yNTkxXzEmJmRjZGM4NDI0M2I0MmRjMz0xMjMyJiZ1cmw9aHR0cHMlM0ElMkYlMkZwYXRjaHdvcmslMkVvemxhYnMlMkVvcmclMkZwYXRjaCUyRjEyNTk5ODIlMkY= > > > > From what I understand it should fix the problem you're seeing. > > > > Thanks, > > Dumitru > > > > _______________________________________________ > discuss mailing list > disc...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss >
_______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss