> I sent out a patch for formal review: > http://openvswitch.org/pipermail/dev/2016-May/070666.html
Thanks Ben. I tested on master and it fixes the mdb problem. The next problem is that any existing flows don't seem to get updated or invalidated after the mdb gets another entry for a group. I'm using OpenStack with a Neutron VLAN provider network. Multicast is enabled on br-int and not on the physical bridge. The physical switch has an IGMP querier running on the VLAN. And other_config:mcast-snooping-disable-flood-unregistered=true. Here are the steps to reproduce: On another node iperf is sending to a mcast group on the VLAN: # iperf -c 226.94.1.1 -u -b 1M -t 3600 On a VM start iperf listening to the group: $ iperf -s -u -B 226.94.1.1 It appears in the mdb: # ovs-appctl mdb/show br-int port VLAN GROUP Age 3 1 226.94.1.1 2 19 1 querier 20 The VM starts receiving packets and there is a flow: # ovs-dpctl dump-flows | grep 01:00:5e:5e:01:01 in_port(19),eth(src=fa:16:3e:da:c1:08,dst=01:00:5e:5e:01:01),eth_type( 0x8100),vlan(vid=32,pcp=0),encap(eth_type(0x0800),ipv4(dst=226.94.1.1, proto=17,frag=no)), packets:2694, bytes:4073328, used:0.004s, actions:8,pop_vlan,7 Now in another VM on the same host, start another iperf listening on the same group. The mdb gets updated and shows 2 ports # ovs-appctl mdb/show br-int port VLAN GROUP Age 1 1 226.94.1.1 9 3 1 226.94.1.1 7 19 1 querier 17 But the new VM does not receive packets and the flow did not get updated. in_port(19),eth(src=fa:16:3e:da:c1:08,dst=01:00:5e:5e:01:01),eth_type( 0x8100),vlan(vid=32,pcp=0),encap(eth_type(0x0800),ipv4(dst=226.94.1.1, proto=17,frag=no)), packets:10835, bytes:16382520, used:0.000s, actions:8,pop_vlan,7 Stop the sending iperf and the flow expires after 10 seconds. Now with both VMs listening, start the sending iperf, and both VMs start receiving and the flow has both ports: # ovs-dpctl dump-flows | grep 01:00:5e:5e:01:01 in_port(19),eth(src=fa:16:3e:da:c1:08,dst=01:00:5e:5e:01:01),eth_type( 0x8100),vlan(vid=32,pcp=0),encap(eth_type(0x0800),ipv4(dst=226.94.1.1, proto=17,frag=no)), packets:365, bytes:551880, used:0.013s, actions:8,pop_vlan,7,9 Also stopping an iperf listener causes its port to be removed from the flow immediately. root@pod30-cp1-comp0004-mgmt:/home/stack# ovs-dpctl show ... port 7: qvof52d0100-c2 port 8: br-bond1 (internal) port 9: qvobcaee33d-39 ... # ovs-ofctl show br-int ... 1(qvobcaee33d-39) 3(qvof52d0100-c2) 19(int-br-bond1) ... Thanks, Darragh. _______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss