learning-switch: Reserved addresses are destinations, not sources.
authorBen Pfaff <blp@nicira.com>
Thu, 15 Jul 2010 23:02:46 +0000 (16:02 -0700)
committerBen Pfaff <blp@nicira.com>
Fri, 16 Jul 2010 19:04:11 +0000 (12:04 -0700)
A switch is not supposed to forward packets directed to MAC addresses
01:80:c2:00:00:0x.  This code was instead dropping packets *from* those
addresses.

(This code is only used by ovs-controller, so the bug is not a big deal.)

lib/learning-switch.c

index 7eb9e1c..413a70f 100644 (file)
@@ -410,7 +410,8 @@ process_packet_in(struct lswitch *sw, struct rconn *rconn, void *opi_)
         }
     }
 
-    if (eth_addr_is_reserved(flow.dl_src)) {
+    /* Drop frames for reserved multicast addresses. */
+    if (eth_addr_is_reserved(flow.dl_dst)) {
         goto drop_it;
     }