Re: [PATCH net-next] net/vxlan: Avoid unaligned access in vxlan_build_skb()
flat view
From: Sowmini Varadhan <hidden>
Date: 2016-09-28 19:56:53
On (09/28/16 11:08), Alexander Duyck wrote:
quoted
- then udp_gro_receive -> vxlan_gro_receive pulls up vxlan header into linear part, and then..This is the point where we need to stop, drop the existing headers, call skb_reserve(NET_IP_ALIGN), and then pick back up where we left off. We just have to make sure the skbuff isn't shared.
:
In general the interface behind the tunnel shouldn't need to know about any of the data in front of the tunnel, so you should be able to drop the original header offsets and reset things if you want so you could overwrite the old headers.
Except that some of these encapsulations may be doing things like [inner-mac, outer-ip] fdb learning, so we may not be able to lose the outer headers at this early point in all cases.
If I am not mistaken I think the multi-buffer approach is the approach taken by other OSes, although for us it is more difficult since we
yes, I think that's approximately what gets done with mblk/mbufs (with pullups as needed). But as you point out, this type of ->frag_list chaining is a non-trivial change.
I'm sure we are all going to be talking about this in great detail next week at netdev/netconf.. :-)
Agree. --Sowmini