On 12/12/2020 06:31, Pravin Shelar wrote:
On Fri, Dec 11, 2020 at 4:28 AM Jonas Bonn <jo...@norrbonn.se> wrote:

Signed-off-by: Jonas Bonn <jo...@norrbonn.se>
---
  drivers/net/gtp.c | 8 +++++++-
  1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c
index 236ebbcb37bf..7bbeec173113 100644
--- a/drivers/net/gtp.c
+++ b/drivers/net/gtp.c
@@ -536,7 +536,11 @@ static int gtp_xmit_ip4(struct sk_buff *skb, struct 
net_device *dev)
         if (unlikely(r))
                 goto err_rt;

-       skb_reset_inner_headers(skb);
+       r = udp_tunnel_handle_offloads(skb, true);
+       if (unlikely(r))
+               goto err_rt;
+
+       skb_set_inner_protocol(skb, skb->protocol);

This should be skb_set_inner_ipproto(), since GTP is L3 protocol.

I think you're right, but I barely see the point of this. It all ends up in the same place, as far as I can tell. Is this supposed to be some sort of safeguard against trying to offload tunnels-in-tunnels?

/Jonas

Reply via email to