udp_unexpected_gso(sk, skb))) return udp_queue_rcv_one_skb(sk, skb); BUILD_BUG_ON(sizeof(struct udp_skb_cb) > SKB_GSO_CB_OFFSET); __skb_push(skb, -skb_mac_offset(skb)); segs = udp_rcv_segment(sk, skb, true); skb_list_walk_safe(segs, skb, next) { __skb_pull...
If there are only a few v4 clients and the connection rates are low, you can make this more or less work, which is what the NAT-PT design did. If you are at ISP scale, with millions of clients and billions of connections, and throw in various TTL values on the DNS answers coming ...