On 2/6/26 01:03, Emil Tsalapatis wrote:
> On Mon Jun 1, 2026 at 11:02 AM EDT, Leon Hwang wrote:
[...]
>> @@ -637,6 +644,10 @@ int bpf_lwt_push_ip_encap(struct sk_buff *skb, void 
>> *hdr, u32 len, bool ingress)
>>      if (ingress)
>>              skb_postpush_rcsum(skb, iph, len);
>>      skb_reset_network_header(skb);
>> +    if (ipv4 && is_udp_tunnel)
>> +            skb_set_transport_header(skb, skb_network_offset(skb) + 
>> iph->ihl * 4);
>> +    else if (!ipv4 && is_udp_tunnel)
>> +            skb_set_transport_header(skb, skb_network_offset(skb) + 
>> sizeof(struct ipv6hdr));
> 
> Minor nit: Could we do something like
> 
> if (is_udp_tunnel) {
>       size_t hrdsz = ipv4 ? iph->ihl * 4 : sizeof(struct ipv6hdr);
>       skb_set_transport_header(skb9, skb_network_offset(skb)) + hdrsz;
> }
> 
> to make the logic clearer?
> 

Make sense.

Thanks,
Leon

>>      memcpy(skb_network_header(skb), hdr, len);
>>      bpf_compute_data_pointers(skb);
>>      skb_clear_hash(skb);
> 


Reply via email to