[ovs-dev] [PATCH] datapath: Update inner offsets when expanding headroom.

Pravin Shelar pshelar at nicira.com
Tue Mar 31 20:12:51 UTC 2015


On Tue, Mar 31, 2015 at 11:44 AM, Jesse Gross <jesse at nicira.com> wrote:
> On Tue, Mar 31, 2015 at 11:02 AM, Pravin Shelar <pshelar at nicira.com> wrote:
>> On Tue, Mar 31, 2015 at 9:34 AM, Jesse Gross <jesse at nicira.com> wrote:
>>> skb protocol offsets are relative to the beginning of the
>>> buffer and therefore must be updated if the buffer size is
>>> expanded. Kernel functions do this automatically for existing
>>> fields but obviously not for anything that we backport. This
>>> introduces a wrapper for pskb_expand_head() to update the
>>> inner protocol fields that we have backported.
>>>
>>> Without this, a kernel crash can be triggered with tunnel
>>> packets that do not have enough headroom and need to be
>>> segmented.
>>>
>> which pskb_expand head actually causes this issue for vxlan?
>
> This is the result of skb_cow_head() in vxlan_xmit_skb().
>

Dont we also need to fix skb_cow_head()? otherwise OVS could use
kernel defined function to expand skb and could skip compat version
entirely.



More information about the dev mailing list