Re: [PATCH net-next v3 2/2] vxlan: allow specifying multiple default destinations
From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2013-06-03 15:57:41
On Sun, 2 Jun 2013 13:29:42 +0300 Mike Rapoport [off-list ref] wrote:
On Fri, May 31, 2013 at 7:17 PM, Stephen Hemminger [off-list ref] wrote:quoted
Looking at this code in more detail, I see a slew of problems. First the list of destinations isn't really a list. The default one is still embedded in the fdb entry. This means you can't change it safely. Also the notification via netlink only sends back a single destination value. And the lack of locking on the open coded link list means it is not safe since the forwarding table is used with RCU. In order to be safe, proper RCU barriers would be needed or better yet convert to list_rcu.. Overall, I feel guilty for not inspecting this more closely and am surprised that others did not catch the lack of locking.I've tried to convert remotes list to use hlist_rcu. The patch below implements the conversion, but it does not address the netlink notification issue.
Ok, let me have a go at this. 1. Using list rather than hlist makes more sense for handling simple list 2. The complexity is in how do do the netlink API. 3. If we can't work this out for 3.11, the multiple remotes may have to be reverted; I don't want the existing API to be exposed in a release