Hello everyone, I am working for an embedded Linux firmware running on a CPE and I am using an IP4 over IPv6 tunnel configured as following: ip -f inet6 tunnel add tun1 mode ipip6 remote XX:XX:XX local XX:XX:XX dev eth0 And it works fine until I don't try to test the fragment case: I send a too big UDP packet and my expectation - and requirement (sob) - would be a IPv6 packet fragmentation but what I get is a double fragmentation (IPv4 and IPv6), then, summarizing: IPv4 --> [IPv4-1-segment][IPv6] [IPv4-2-segment][IPv6] Looking at the kernel code - which in I am not an expert - I observed that the function ip_finish_output : #if defined(CONFIG_NETFILTER) && defined(CONFIG_XFRM) /* Policy lookup after SNAT yielded a new policy */ if (skb_dst(skb)->xfrm != NULL) { IPCB(skb)->flags |= IPSKB_REROUTED; return dst_output(skb); } #endif #if defined(CONFIG_INET_IPSEC_OFFLOAD) if ((skb->ipsec_offload == 0) && skb->len > ip_skb_dst_mtu(skb) && !skb_is_gso(skb)) #else if (skb->len > ip_skb_dst_mtu(skb) && !skb_is_gso(skb)) #endif return ip_fragment(skb, ip_finish_output2); else return ip_finish_output2(skb); Does not care about it, it just fragments if the MTU does not match. Is there any options to disable the fragmentation on IPV4 ? I am misconfiguring something ? Why does the ipip6 has this wrong behavior ? Thanks in advance, Pietro. Pietro Paolini pulsarpietro@xxxxxxx _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies