Merge branch 'vrf-pktinfo'
David Ahern says:
====================
net: vrf: Fixup PKTINFO to return enslaved device index
Applications such as OSPF and BFD need the original ingress device not
the VRF device; the latter can be derived from the former. To that end
move the packet intercept from an rx handler that is invoked by
__netif_receive_skb_core to the ipv4 and ipv6 receive processing.
IPv6 already saves the skb_iif to the control buffer in ipv6_rcv. Since
the skb->dev has not been switched the cb has the enslaved device. Make
the same happen for IPv4 by adding the skb_iif to inet_skb_parm and set
it in ipv4 code after clearing the skb control buffer similar to IPv6.
From there the pktinfo can just pull it from cb with the PKTINFO_SKB_CB
cast.
====================
Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- drivers/net/vrf.c 91 additions, 98 deletionsdrivers/net/vrf.c
- include/linux/ipv6.h 16 additions, 1 deletioninclude/linux/ipv6.h
- include/linux/netdevice.h 2 additions, 0 deletionsinclude/linux/netdevice.h
- include/net/ip.h 1 addition, 0 deletionsinclude/net/ip.h
- include/net/l3mdev.h 42 additions, 0 deletionsinclude/net/l3mdev.h
- include/net/tcp.h 3 additions, 1 deletioninclude/net/tcp.h
- net/core/dev.c 2 additions, 1 deletionnet/core/dev.c
- net/ipv4/ip_input.c 8 additions, 0 deletionsnet/ipv4/ip_input.c
- net/ipv4/ip_sockglue.c 6 additions, 1 deletionnet/ipv4/ip_sockglue.c
- net/ipv6/ip6_input.c 7 additions, 0 deletionsnet/ipv6/ip6_input.c
Loading
Please register or sign in to comment