Thread (11 messages) 11 messages, 2 authors, 2020-02-24

Re: [PATCH net-next v7 1/2] net: UDP tunnel encapsulation module for tunnelling different protocols like MPLS,IP,NSH etc.

From: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
Date: 2020-02-17 05:20:18

quoted
quoted
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index cec1a54..1bf8065 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -1027,6 +1027,12 @@ struct dst_entry *ip6_dst_lookup_flow(struct net *net, const struct sock *sk, st
 struct dst_entry *ip6_sk_dst_lookup_flow(struct sock *sk, struct flowi6 *fl6,
                                         const struct in6_addr *final_dst,
                                         bool connected);
+struct dst_entry *ip6_dst_lookup_tunnel(struct sk_buff *skb,
+                                       struct net_device *dev,
+                                       struct net *net, struct socket *sock,
+                                       struct in6_addr *saddr,
+                                       const struct ip_tunnel_info *info,
+                                       u8 protocol, bool use_cache);
 struct dst_entry *ip6_blackhole_route(struct net *net,
                                      struct dst_entry *orig_dst);
diff --git a/include/net/route.h b/include/net/route.h
index a9c60fc..81750ae 100644
--- a/include/net/route.h
+++ b/include/net/route.h
@@ -128,6 +128,12 @@ static inline struct rtable *__ip_route_output_key(struct net *net,

 struct rtable *ip_route_output_flow(struct net *, struct flowi4 *flp,
                                    const struct sock *sk);
+struct rtable *ip_route_output_tunnel(struct sk_buff *skb,
+                                     struct net_device *dev,
+                                     struct net *net, __be32 *saddr,
+                                     const struct ip_tunnel_info *info,
+                                     u8 protocol, bool use_cache);
+
 struct dst_entry *ipv4_blackhole_route(struct net *net,
                                       struct dst_entry *dst_orig);
Ah, I now see where the difference between net/ipv4/route.c and
net/ipv6/ip6_output.c come from. It follows from existing locations of
 ip6_sk_dst_lookup_flow and ip_route_output_flow.

Looking for the ipv6 analog of ip_route_output_flow, I see that, e.g.,
ipvlan uses ip6_route_output from net/ipv6/route.c without a NULL sk.
But ping calls ip6_sk_dst_lookup_flow.

It might be a better fit behind ip6_route_output_flags, but it's
probably moot, really.
Actually i considered both the files but i felt this function
should naturally sit with ip6_sk_dst_lookup_flow.
If you dont have strong objection i would like to keep the
function in ip6_output.c
Yes, sounds good, thanks. The difference stood out to me in an initial
git show --stat, but on closer reading both choices can be argued for.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help