Subject: Re: [RFC PATCH v3 04/10] ip: factor out protocol delivery helper

From: Subash Abhinov Kasiviswanathan <[email-masked]>
Date: Thu, 01 Nov 2018 00:35:31 -0600

On 2018-10-30 11:24, Paolo Abeni wrote:
> So that we can re-use it at the UDP lavel in a later patch
> 

Hi Paolo

Minor queries -
Should it be "level" instead of "lavel"? Similar comment for the ipv6
patch as well.

> Signed-off-by: Paolo Abeni <[email-masked]>
> ---
>  net/ipv4/ip_input.c | 73 ++++++++++++++++++++++-----------------------
>  1 file changed, 36 insertions(+), 37 deletions(-)
> 
> diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
> index 35a786c0aaa0..72250b4e466d 100644
> --- a/net/ipv4/ip_input.c
> +++ b/net/ipv4/ip_input.c
> @@ -188,51 +188,50 @@ bool ip_call_ra_chain(struct sk_buff *skb)
>  	return false;
>  }
> 
> -static int ip_local_deliver_finish(struct net *net, struct sock *sk,
> struct sk_buff *skb)
> +void ip_protocol_deliver_rcu(struct net *net, struct sk_buff *skb,
> int protocol)

Would it be better if this function was declared in include/net/ip.h &
include/net/ipv6.h rather than in net/ipv4/udp.c & net/ipv6/udp.c as in
the patch "udp: cope with UDP GRO packet misdirection"

diff --git a/include/net/ip.h b/include/net/ip.h
index 72593e1..3d7fdb4 100644
--- a/include/net/ip.h
+++ b/include/net/ip.h
@@ -717,4 +717,6 @@ static inline void ip_cmsg_recv(struct msghdr *msg, 
struct sk_buff *skb)
  int rtm_getroute_parse_ip_proto(struct nlattr *attr, u8 *ip_proto,
                                 struct netlink_ext_ack *extack);

+void ip_protocol_deliver_rcu(struct net *net, struct sk_buff *skb, int 
proto);
+
  #endif /* _IP_H */
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index 8296505..4d4d2cfe 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -1101,4 +1101,8 @@ int ipv6_sock_mc_join_ssm(struct sock *sk, int 
ifindex,
                           const struct in6_addr *addr, unsigned int 
mode);
  int ipv6_sock_mc_drop(struct sock *sk, int ifindex,
                       const struct in6_addr *addr);
+
+void ip6_protocol_deliver_rcu(struct net *net, struct sk_buff *skb, int 
nexthdr,
+                              bool have_final);
+
  #endif /* _NET_IPV6_H */

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project