diff options
author | Shmulik Ladkani <shmulik@metanetworks.com> | 2019-04-29 16:39:30 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-05-01 13:28:34 -0400 |
commit | d2f0c961148f65bc73eda72b9fa3a4e80973cb49 (patch) | |
tree | 99de723ffe2f3a3222dad7f850ce0c3aaea8a0ce /net/mac80211 | |
parent | 2dcb003314032c6efb13a065ffae60d164b2dd35 (diff) | |
download | linux-d2f0c961148f65bc73eda72b9fa3a4e80973cb49.tar.bz2 |
ipv4: ip_do_fragment: Preserve skb_iif during fragmentation
Previously, during fragmentation after forwarding, skb->skb_iif isn't
preserved, i.e. 'ip_copy_metadata' does not copy skb_iif from given
'from' skb.
As a result, ip_do_fragment's creates fragments with zero skb_iif,
leading to inconsistent behavior.
Assume for example an eBPF program attached at tc egress (post
forwarding) that examines __sk_buff->ingress_ifindex:
- the correct iif is observed if forwarding path does not involve
fragmentation/refragmentation
- a bogus iif is observed if forwarding path involves
fragmentation/refragmentatiom
Fix, by preserving skb_iif during 'ip_copy_metadata'.
Signed-off-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mac80211')
0 files changed, 0 insertions, 0 deletions