From: Ben Pfaff Date: Fri, 19 Aug 2011 21:29:27 +0000 (-0700) Subject: ofproto-dpif: Delete MAC learning entries when they expire. X-Git-Tag: v1.2.1~1 X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=commitdiff_plain;h=003c21671fc68fa8bcd06844a7fb8c14f525e8b1 ofproto-dpif: Delete MAC learning entries when they expire. Commit fa066f015f716c7 "bridge: Move packet processing functionality into ofproto" deleted the call to mac_learning_run() that deletes MAC learning table entries when they expire. This fixes the problem. --- diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index 633d0d44e..8a175dc9d 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -564,6 +564,8 @@ run(struct ofproto *ofproto_) bundle_run(bundle); } + mac_learning_run(ofproto->ml, &ofproto->revalidate_set); + /* Now revalidate if there's anything to do. */ if (ofproto->need_revalidate || !tag_set_is_empty(&ofproto->revalidate_set)) { @@ -611,6 +613,7 @@ wait(struct ofproto *ofproto_) HMAP_FOR_EACH (bundle, hmap_node, &ofproto->bundles) { bundle_wait(bundle); } + mac_learning_wait(ofproto->ml); if (ofproto->need_revalidate) { /* Shouldn't happen, but if it does just go around again. */ VLOG_DBG_RL(&rl, "need revalidate in ofproto_wait_cb()");