Re: [PATCH net] net: Handle negative checksum offset in skb-checksum-help
flat view
From: Pravin Shelar <hidden>
Date: 2015-09-22 04:44:04
On Mon, Sep 21, 2015 at 8:21 PM, Eric Dumazet [off-list ref] wrote:
On Mon, 2015-09-21 at 19:49 -0700, Pravin Shelar wrote:quoted
On Mon, Sep 21, 2015 at 7:14 PM, Eric Dumazet [off-list ref] wrote:quoted
On Mon, 2015-09-21 at 18:04 -0700, Pravin Shelar wrote:quoted
On Mon, Sep 21, 2015 at 5:14 PM, David Miller [off-list ref] wrote:quoted
From: Pravin B Shelar <redacted> Date: Sun, 20 Sep 2015 23:53:17 -0700quoted
VXLAN device can receive skb with checksum partial. But the checksum offset could be in outer header which is pulled on receive.Such a scenerio is a bug. Anything that pulls off a header should use a utility function such as skb_pull_rcsum() or skb_postpull_rcsum() to make sure this gets fixed up properly.skb_postpull_rcsum() does not change checksum-offset. vxlan receive already calls this function.Then the bug is here. Otherwise we might have to 'fix' other places.I posted a patch to fix skb_postpull_rcsum() to handle this case. But that was not accepted. https://patchwork.ozlabs.org/patch/512625/ And specific solution for skb_checksum_help() was suggested. http://marc.info/?l=linux-netdev&m=144108078931774&w=2If we pull a header where the csum is, then for sure CHECKSUM_PARTIAL becomes buggy and void. Tom was not advocating doing an operation (skb_postpull_rcsum()) leaving skb in a wrong state. We should fix callers that are pulling header in such a way.
So same as first patch but set skb checksum flag to CHECKSUM_NONE?