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
next prev parent 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.