netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] seg6: inherit inner IPv4 TTL on ip4ip6 encapsulation
@ 2025-01-16  2:40 Yonglong Li
  2025-01-20 22:51 ` Jakub Kicinski
  0 siblings, 1 reply; 5+ messages in thread
From: Yonglong Li @ 2025-01-16  2:40 UTC (permalink / raw)
  To: linux-kernel; +Cc: netdev, davem, dsahern, edumazet, kuba, liyonglong

inherit inner IPv4 TTL on ip4ip6 SHR encapsulation like as inherit 
inner hop_limit on ip6ip6 SHR encapsulation

Signed-off-by: Yonglong Li <liyonglong@chinatelecom.cn>
---
 net/ipv6/seg6_iptunnel.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/net/ipv6/seg6_iptunnel.c b/net/ipv6/seg6_iptunnel.c
index 098632a..2f1f9cf 100644
--- a/net/ipv6/seg6_iptunnel.c
+++ b/net/ipv6/seg6_iptunnel.c
@@ -160,7 +160,10 @@ int seg6_do_srh_encap(struct sk_buff *skb, struct ipv6_sr_hdr *osrh, int proto)
 		hdr->hop_limit = inner_hdr->hop_limit;
 	} else {
 		ip6_flow_hdr(hdr, 0, flowlabel);
-		hdr->hop_limit = ip6_dst_hoplimit(skb_dst(skb));
+		if (skb->protocol == htons(ETH_P_IP))
+			hdr->hop_limit = ((struct iphdr *)inner_hdr)->ttl;
+		else
+			hdr->hop_limit = ip6_dst_hoplimit(skb_dst(skb));
 
 		memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
 
@@ -249,7 +252,10 @@ static int seg6_do_srh_encap_red(struct sk_buff *skb,
 		hdr->hop_limit = inner_hdr->hop_limit;
 	} else {
 		ip6_flow_hdr(hdr, 0, flowlabel);
-		hdr->hop_limit = ip6_dst_hoplimit(skb_dst(skb));
+		if (skb->protocol == htons(ETH_P_IP))
+			hdr->hop_limit = ((struct iphdr *)inner_hdr)->ttl;
+		else
+			hdr->hop_limit = ip6_dst_hoplimit(skb_dst(skb));
 
 		memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
 		IP6CB(skb)->iif = skb->skb_iif;
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-02-05  7:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-16  2:40 [PATCH] seg6: inherit inner IPv4 TTL on ip4ip6 encapsulation Yonglong Li
2025-01-20 22:51 ` Jakub Kicinski
     [not found]   ` <CAAvhMUmdse_8GJtn_dD0psRmSA_BCy-fv6eYj9CorpaeVm-H3g@mail.gmail.com>
2025-01-22 16:13     ` David Ahern
2025-01-23 15:48     ` Jakub Kicinski
2025-02-05  7:25       ` YonglongLi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).