All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Hunt <johunt@akamai.com>
To: Bill Sommerfeld <wsommerfeld@google.com>,
	"David S. Miller" <davem@davemloft.net>
Cc: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>,
	James Morris <jmorris@namei.org>,
	Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>,
	Patrick McHardy <kaber@trash.net>,
	Benjamin LaHaise <bcrl@kvack.org>,
	Eric Dumazet <edumazet@google.com>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] udp6: fix UDP/IPv6 encap resubmit path
Date: Mon, 7 Mar 2016 13:27:00 -0600	[thread overview]
Message-ID: <56DDD604.2080109@akamai.com> (raw)
In-Reply-To: <1457131641-79311-1-git-send-email-wsommerfeld@google.com>

On 03/04/2016 04:47 PM, Bill Sommerfeld wrote:
> IPv4 interprets a negative return value from a protocol handler as a
> request to redispatch to a new protocol.  In contrast, IPv6 interprets a
> negative value as an error, and interprets a positive value as a request
> for redispatch.
>
> UDP for IPv6 was unaware of this difference.  Change __udp6_lib_rcv() to
> return a positive value for redispatch.  Note that the socket's
> encap_rcv hook still needs to return a negative value to request
> dispatch, and in the case of IPv6 packets, adjust IP6CB(skb)->nhoff to
> identify the byte containing the next protocol.
>
> Signed-off-by: Bill Sommerfeld <wsommerfeld@google.com>
> ---
>   net/ipv6/udp.c | 6 ++----
>   1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
> index 0711f8f..fd25e44 100644
> --- a/net/ipv6/udp.c
> +++ b/net/ipv6/udp.c
> @@ -922,11 +922,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
>   		ret = udpv6_queue_rcv_skb(sk, skb);
>   		sock_put(sk);
>
> -		/* a return value > 0 means to resubmit the input, but
> -		 * it wants the return to be -protocol, or 0
> -		 */
> +		/* a return value > 0 means to resubmit the input */
>   		if (ret > 0)
> -			return -ret;
> +			return ret;
>
>   		return 0;
>   	}
>

This looks good to me. Thanks Bill!

Josh

  reply	other threads:[~2016-03-07 19:35 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-04 22:47 [PATCH] udp6: fix UDP/IPv6 encap resubmit path Bill Sommerfeld
2016-03-07 19:27 ` Josh Hunt [this message]
2016-03-07 20:23 ` David Miller

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=56DDD604.2080109@akamai.com \
    --to=johunt@akamai.com \
    --cc=bcrl@kvack.org \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=jmorris@namei.org \
    --cc=kaber@trash.net \
    --cc=kuznet@ms2.inr.ac.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=wsommerfeld@google.com \
    --cc=yoshfuji@linux-ipv6.org \
    /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.