Thread (19 messages) 19 messages, 4 authors, 2013-06-24

Re: [PATCH net-next v4 2/2] vxlan: allow specifying multiple default destinations

From: Mike Rapoport <hidden>
Date: 2013-06-24 05:57:56

On Mon, Jun 24, 2013 at 3:14 AM, Stephen Hemminger
[off-list ref] wrote:
On Sun, 23 Jun 2013 19:22:23 +0300
Mike Rapoport [off-list ref] wrote:
quoted
A list of multiple default destinations can be used in environments that
disable multicast on the infrastructure level, e.g. public clouds.

Signed-off-by: Mike Rapoport <redacted>
---
 drivers/net/vxlan.c          | 268 +++++++++++++++++++++++++++++++++++++++++--
 include/uapi/linux/if_link.h |  17 +++
 2 files changed, 276 insertions(+), 9 deletions(-)
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index e5fb6568..f57a0d94 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -103,6 +103,7 @@ struct vxlan_rdst {
      u32                      remote_vni;
      u32                      remote_ifindex;
      struct list_head         list;
+     struct rcu_head          rcu;
 };
The use of remotes_cnt here is not SMP safe.
You are using remotes_cnt to size the buffer for dumping, but then the list
of remotes might change during the dump.
The remotes_cnt is used only in netlink callbacks with rtnl_lock held
and it cannot be modified otherwise, so I don't see why it is not SMP
safe.
There a a couple of alternatives here:
1. Put a hard limit on the number of remotes per MAC.
2. When there are multiple destnations, just dump multiple entries, like
   multipath routing does.

I prefer #2 because it also allows for a cleaner API on creation.


--
Sincerely yours,
Mike.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help