On Wed, Mar 04, 2015 at 11:10:49AM -0600, Cheng Jin wrote: > On Tue, Mar 3, 2015 at 3:03 PM, Ben Pfaff <b...@nicira.com> wrote: > > > On Tue, Mar 03, 2015 at 12:25:20PM -0600, Cheng Jin wrote: > > > I have a problem with updating OVS' MAC learning table, when it is in the > > > 'standalone' mode running like a legacy Ethernet bridge. > > > > > > The switch has an entry to a destination, including the destination MAC > > > (say, 00:00:00:00:00:01), an output port (say, 1), VLAN, and Age. > > However, > > > the switch sometimes does not update the entry, when it receives a packet > > > from the same destination (still 00:00:00:00:00:01) but from a new > > incoming > > > port (say, 2). Does someone know what may cause this issue? > > > > > > The MAC learning table is supposed to be updated once receiving a packet. > > > Does OVS do some optimization to process the packets so that the learning > > > table may not get updated when the packet rate is high? > > > > The optimization that OVS does should only affect cases where a MAC > > would otherwise quickly bounce back and forth between a number of > > learned ports. > > > > Is there anything unusual in your setup? Can you reproduce this with > > a simple setup? > > > > We tried a simple setup which has only three switches forming a triangle > (VLAN set up to avoid loop), and two hosts connect with two "standalone" > switches. > > The MAC learning table is allowed to stabilize (we send no traffic) and > then we send a packet from a source MAC that already exists in the MAC > table but which comes on another port than the one registered in the table. > We are checking how soon does the switch adapt. We don't do back and forth > changes often so the optimization should not happen.
I ran a test just now and could not reproduce the problem. I connected two VMs, A and B, through OVS running in a third VM C. In C, I ran "watch -n.1 ovs-appctl fdb/show br0" to observe changes in the MAC learning table. I ran a "ping" for a few seconds and saw that the MAC learning table was initialized as expected. Then I killed the ping and ran "ifconfig eth0 hw ether <address>" in each of the VMs, in each case using the other VM's MAC address, effectively swapping MAC addresses. Then I reran the ping. The displayed ports for those MACs immediately flipped. I ran the experiment a few times. Then I tried turning up the log level for ofproto_dpif_xlate and observed the kinds of messages I expected, e.g.: 2015-03-04T22:00:43Z|00002|ofproto_dpif_xlate(handler5)|DBG|bridge br0: learned that 50:54:00:00:00:05 is on port eth0 in VLAN 0 2015-03-04T22:00:43Z|00004|ofproto_dpif_xlate(handler5)|DBG|bridge br0: learned that 50:54:00:01:00:05 is on port eth1 in VLAN 0 2015-03-04T22:00:55Z|00005|ofproto_dpif_xlate(handler5)|DBG|bridge br0: learned that 50:54:00:01:00:05 is on port eth0 in VLAN 0 2015-03-04T22:00:55Z|00006|ofproto_dpif_xlate(handler5)|DBG|bridge br0: learned that 50:54:00:00:00:05 is on port eth1 in VLAN 0 _______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss