All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: David L Stevens <dlstevens@us.ibm.com>
Cc: David Miller <davem@davemloft.net>,
	Stephen Hemminger <shemminger@vyatta.com>,
	Cong Wang <amwang@redhat.com>,
	netdev@vger.kernel.org
Subject: Re: [PATCHv4 net-next] VXLAN: fix nonfunctional neigh_reduce
Date: Tue, 18 Mar 2014 12:58:04 -0700	[thread overview]
Message-ID: <20140318125804.341cebbb@nehalam.linuxnetplumber.net> (raw)
In-Reply-To: <201403181931.s2IJVLPA016342@lab1.dls>

On Tue, 18 Mar 2014 15:31:21 -0400
David L Stevens <dlstevens@us.ibm.com> wrote:

> 
> 	The VXLAN neigh_reduce() code is completely non-functional since
> check-in. Specific errors:
> 
> 1) The original code drops all packets with a multicast destination address,
> 	even though neighbor solicitations are sent to the solicited-node
> 	address, a multicast address. The code after this check was never run.
> 2) The neighbor table lookup used the IPv6 header destination, which is the
> 	solicited node address, rather than the target address from the
> 	neighbor solicitation. So neighbor lookups would always fail if it
> 	got this far. Also for L3MISSes.
> 3) The code calls ndisc_send_na(), which does a send on the tunnel device.
> 	The context for neigh_reduce() is the transmit path, vxlan_xmit(),
> 	where the host or a bridge-attached neighbor is trying to transmit
> 	a neighbor solicitation. To respond to it, the tunnel endpoint needs
> 	to do a *receive* of the appropriate neighbor advertisement. Doing a
> 	send, would only try to send the advertisement, encapsulated, to the
> 	remote destinations in the fdb -- hosts that definitely did not do the
> 	corresponding solicitation.
> 4) The code uses the tunnel endpoint IPv6 forwarding flag to determine the
> 	isrouter flag in the advertisement. This has nothing to do with whether
> 	or not the target is a router, and generally won't be set since the
> 	tunnel endpoint is bridging, not routing, traffic.
> 
> 	The patch below creates a proxy neighbor advertisement to respond to
> neighbor solicitions as intended, providing proper IPv6 support for neighbor
> reduction.
> 
> Changes since v3:
> 	- code cleanup suggested by Brian Haley
> Changes since v2:
> 	- code cleanup suggested by Stephen Hemminger and Daniel Baluta
> Changes since v1:
> 	- reworked code to be structurally similar to arp_reduce()
> 
> Signed-Off-By: David L Stevens <dlstevens@us.ibm.com>

Minor checkpatch nits.

WARNING: 'Signed-off-by:' is the preferred signature form
#94: 
Signed-Off-By: David L Stevens <dlstevens@us.ibm.com>

ERROR: trailing whitespace
#182: FILE: drivers/net/vxlan.c:1417:
+^I^I&pip6->daddr, sizeof(*na)+olen, IPPROTO_ICMPV6, $

total: 1 errors, 3 warnings, 157 lines checked

  reply	other threads:[~2014-03-18 19:58 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-18 19:31 [PATCHv4 net-next] VXLAN: fix nonfunctional neigh_reduce David L Stevens
2014-03-18 19:58 ` Stephen Hemminger [this message]
2014-03-18 20:13   ` Or Gerlitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140318125804.341cebbb@nehalam.linuxnetplumber.net \
    --to=stephen@networkplumber.org \
    --cc=amwang@redhat.com \
    --cc=davem@davemloft.net \
    --cc=dlstevens@us.ibm.com \
    --cc=netdev@vger.kernel.org \
    --cc=shemminger@vyatta.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.