All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v2 0/2] vxlan: misc fdb fixes
@ 2017-01-24  4:44 Roopa Prabhu
  2017-01-24  4:44 ` [PATCH net-next v2 1/2] vxlan: don't flush static fdb entries on admin down Roopa Prabhu
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Roopa Prabhu @ 2017-01-24  4:44 UTC (permalink / raw)
  To: davem; +Cc: netdev, ramanb, stephen, jbenc, pshelar

From: Roopa Prabhu <roopa@cumulusnetworks.com>

Balakrishnan Raman (1):
  vxlan: do not age static remote mac entries

Roopa Prabhu (1):
  vxlan: don't flush static fdb entries on admin down

 drivers/net/vxlan.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

-- 
v1 -> v2: use bool as suggested by DavidM

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH net-next v2 1/2] vxlan: don't flush static fdb entries on admin down
  2017-01-24  4:44 [PATCH net-next v2 0/2] vxlan: misc fdb fixes Roopa Prabhu
@ 2017-01-24  4:44 ` Roopa Prabhu
  2017-01-24  4:44 ` [PATCH net-next v2 2/2] vxlan: do not age static remote mac entries Roopa Prabhu
  2017-01-24 20:02 ` [PATCH net-next v2 0/2] vxlan: misc fdb fixes David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: Roopa Prabhu @ 2017-01-24  4:44 UTC (permalink / raw)
  To: davem; +Cc: netdev, ramanb, stephen, jbenc, pshelar

From: Roopa Prabhu <roopa@cumulusnetworks.com>

This patch skips flushing static fdb entries in
ndo_stop, but flushes all fdb entries during vxlan
device delete. This is consistent with the bridge
driver fdb

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
---
 drivers/net/vxlan.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 19b1653..b34822f 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -2354,7 +2354,7 @@ static int vxlan_open(struct net_device *dev)
 }
 
 /* Purge the forwarding table */
-static void vxlan_flush(struct vxlan_dev *vxlan)
+static void vxlan_flush(struct vxlan_dev *vxlan, bool do_all)
 {
 	unsigned int h;
 
@@ -2364,6 +2364,8 @@ static void vxlan_flush(struct vxlan_dev *vxlan)
 		hlist_for_each_safe(p, n, &vxlan->fdb_head[h]) {
 			struct vxlan_fdb *f
 				= container_of(p, struct vxlan_fdb, hlist);
+			if (!do_all && (f->state & (NUD_PERMANENT | NUD_NOARP)))
+				continue;
 			/* the all_zeros_mac entry is deleted at vxlan_uninit */
 			if (!is_zero_ether_addr(f->eth_addr))
 				vxlan_fdb_destroy(vxlan, f);
@@ -2385,7 +2387,7 @@ static int vxlan_stop(struct net_device *dev)
 
 	del_timer_sync(&vxlan->age_timer);
 
-	vxlan_flush(vxlan);
+	vxlan_flush(vxlan, false);
 	vxlan_sock_release(vxlan);
 
 	return ret;
@@ -3058,6 +3060,8 @@ static void vxlan_dellink(struct net_device *dev, struct list_head *head)
 	struct vxlan_dev *vxlan = netdev_priv(dev);
 	struct vxlan_net *vn = net_generic(vxlan->net, vxlan_net_id);
 
+	vxlan_flush(vxlan, true);
+
 	spin_lock(&vn->sock_lock);
 	if (!hlist_unhashed(&vxlan->hlist))
 		hlist_del_rcu(&vxlan->hlist);
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH net-next v2 2/2] vxlan: do not age static remote mac entries
  2017-01-24  4:44 [PATCH net-next v2 0/2] vxlan: misc fdb fixes Roopa Prabhu
  2017-01-24  4:44 ` [PATCH net-next v2 1/2] vxlan: don't flush static fdb entries on admin down Roopa Prabhu
@ 2017-01-24  4:44 ` Roopa Prabhu
  2017-01-24 20:02 ` [PATCH net-next v2 0/2] vxlan: misc fdb fixes David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: Roopa Prabhu @ 2017-01-24  4:44 UTC (permalink / raw)
  To: davem; +Cc: netdev, ramanb, stephen, jbenc, pshelar

From: Balakrishnan Raman <ramanb@cumulusnetworks.com>

Mac aging is applicable only for dynamically learnt remote mac
entries. Check for user configured static remote mac entries
and skip aging.

Signed-off-by: Balakrishnan Raman <ramanb@cumulusnetworks.com>
Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
---
 drivers/net/vxlan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index b34822f..09aa52e 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -2268,7 +2268,7 @@ static void vxlan_cleanup(unsigned long arg)
 				= container_of(p, struct vxlan_fdb, hlist);
 			unsigned long timeout;
 
-			if (f->state & NUD_PERMANENT)
+			if (f->state & (NUD_PERMANENT | NUD_NOARP))
 				continue;
 
 			timeout = f->used + vxlan->cfg.age_interval * HZ;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH net-next v2 0/2] vxlan: misc fdb fixes
  2017-01-24  4:44 [PATCH net-next v2 0/2] vxlan: misc fdb fixes Roopa Prabhu
  2017-01-24  4:44 ` [PATCH net-next v2 1/2] vxlan: don't flush static fdb entries on admin down Roopa Prabhu
  2017-01-24  4:44 ` [PATCH net-next v2 2/2] vxlan: do not age static remote mac entries Roopa Prabhu
@ 2017-01-24 20:02 ` David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2017-01-24 20:02 UTC (permalink / raw)
  To: roopa; +Cc: netdev, ramanb, stephen, jbenc, pshelar


Series applied, thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-01-24 20:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-24  4:44 [PATCH net-next v2 0/2] vxlan: misc fdb fixes Roopa Prabhu
2017-01-24  4:44 ` [PATCH net-next v2 1/2] vxlan: don't flush static fdb entries on admin down Roopa Prabhu
2017-01-24  4:44 ` [PATCH net-next v2 2/2] vxlan: do not age static remote mac entries Roopa Prabhu
2017-01-24 20:02 ` [PATCH net-next v2 0/2] vxlan: misc fdb fixes David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.