All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v2 0/2] net: vrf: Fixup PKTINFO to return enslaved device index
@ 2016-05-07  1:49 David Ahern
  2016-05-07  1:49 ` [PATCH net-next v2 1/2] net: l3mdev: Add hook in ip and ipv6 David Ahern
  2016-05-07  1:49 ` [PATCH net-next 2/2] net: original ingress device index in PKTINFO David Ahern
  0 siblings, 2 replies; 14+ messages in thread
From: David Ahern @ 2016-05-07  1:49 UTC (permalink / raw)
  To: netdev; +Cc: David Ahern

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. 

David Ahern (2):
  net: l3mdev: Add hook in ip and ipv6
  net: original ingress device index in PKTINFO

 drivers/net/vrf.c         | 188 ++++++++++++++++++++++------------------------
 include/linux/ipv6.h      |  17 ++++-
 include/linux/netdevice.h |   2 +
 include/net/ip.h          |   1 +
 include/net/l3mdev.h      |  43 +++++++++++
 include/net/tcp.h         |   4 +-
 net/core/dev.c            |   3 +-
 net/ipv4/ip_input.c       |   8 ++
 net/ipv4/ip_sockglue.c    |   7 +-
 net/ipv6/ip6_input.c      |   7 ++
 10 files changed, 178 insertions(+), 102 deletions(-)

-- 
2.1.4

^ permalink raw reply	[flat|nested] 14+ messages in thread
* [PATCH net-next v4 0/2] net: vrf: Fixup PKTINFO to return enslaved device index
@ 2016-05-10 18:19 David Ahern
  2016-05-10 18:19 ` [PATCH net-next 2/2] net: original ingress device index in PKTINFO David Ahern
  0 siblings, 1 reply; 14+ messages in thread
From: David Ahern @ 2016-05-10 18:19 UTC (permalink / raw)
  To: netdev; +Cc: David Ahern

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.

David Ahern (2):
  net: l3mdev: Add hook in ip and ipv6
  net: original ingress device index in PKTINFO

 drivers/net/vrf.c         | 189 ++++++++++++++++++++++------------------------
 include/linux/ipv6.h      |  17 ++++-
 include/linux/netdevice.h |   2 +
 include/net/ip.h          |   1 +
 include/net/l3mdev.h      |  42 +++++++++++
 include/net/tcp.h         |   4 +-
 net/core/dev.c            |   3 +-
 net/ipv4/ip_input.c       |   8 ++
 net/ipv4/ip_sockglue.c    |   7 +-
 net/ipv6/ip6_input.c      |   7 ++
 10 files changed, 178 insertions(+), 102 deletions(-)

-- 
2.1.4

^ permalink raw reply	[flat|nested] 14+ messages in thread
* [PATCH net-next v3 0/2] net: vrf: Fixup PKTINFO to return enslaved device index
@ 2016-05-08  4:16 David Ahern
  2016-05-08  4:16 ` [PATCH net-next 2/2] net: original ingress device index in PKTINFO David Ahern
  0 siblings, 1 reply; 14+ messages in thread
From: David Ahern @ 2016-05-08  4:16 UTC (permalink / raw)
  To: netdev; +Cc: David Ahern

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.

David Ahern (2):
  net: l3mdev: Add hook in ip and ipv6
  net: original ingress device index in PKTINFO

 drivers/net/vrf.c         | 189 ++++++++++++++++++++++------------------------
 include/linux/ipv6.h      |  17 ++++-
 include/linux/netdevice.h |   2 +
 include/net/ip.h          |   1 +
 include/net/l3mdev.h      |  43 +++++++++++
 include/net/tcp.h         |   4 +-
 net/core/dev.c            |   3 +-
 net/ipv4/ip_input.c       |   8 ++
 net/ipv4/ip_sockglue.c    |   7 +-
 net/ipv6/ip6_input.c      |   7 ++
 10 files changed, 179 insertions(+), 102 deletions(-)

-- 
2.1.4

^ permalink raw reply	[flat|nested] 14+ messages in thread
* [PATCH net-next 0/2] net: vrf: Fixup PKTINFO to return enslaved device index
@ 2016-05-05 19:37 David Ahern
  2016-05-05 19:37 ` [PATCH net-next 2/2] net: original ingress device index in PKTINFO David Ahern
  0 siblings, 1 reply; 14+ messages in thread
From: David Ahern @ 2016-05-05 19:37 UTC (permalink / raw)
  To: netdev; +Cc: David Ahern

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.

David Ahern (2):
  net: l3mdev: Add hook in ip and ipv6
  net: original ingress device index in PKTINFO

 drivers/net/vrf.c         | 186 ++++++++++++++++++++++------------------------
 include/linux/ipv6.h      |   3 +-
 include/linux/netdevice.h |   2 +
 include/net/ip.h          |   1 +
 include/net/l3mdev.h      |  43 +++++++++++
 include/net/tcp.h         |   3 +-
 net/core/dev.c            |   3 +-
 net/ipv4/ip_input.c       |   8 ++
 net/ipv4/ip_sockglue.c    |   7 +-
 net/ipv6/ip6_input.c      |   7 ++
 10 files changed, 161 insertions(+), 102 deletions(-)

-- 
2.1.4

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2016-05-10 18:20 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-07  1:49 [PATCH net-next v2 0/2] net: vrf: Fixup PKTINFO to return enslaved device index David Ahern
2016-05-07  1:49 ` [PATCH net-next v2 1/2] net: l3mdev: Add hook in ip and ipv6 David Ahern
2016-05-07  8:30   ` Shmulik Ladkani
2016-05-07 14:50     ` David Ahern
2016-05-07 18:32       ` Shmulik Ladkani
2016-05-08  2:25         ` David Ahern
2016-05-08  5:44           ` Shmulik Ladkani
2016-05-07  1:49 ` [PATCH net-next 2/2] net: original ingress device index in PKTINFO David Ahern
2016-05-07  8:41   ` Shmulik Ladkani
2016-05-07 14:53     ` David Ahern
2016-05-07 19:08       ` Shmulik Ladkani
  -- strict thread matches above, loose matches on Subject: below --
2016-05-10 18:19 [PATCH net-next v4 0/2] net: vrf: Fixup PKTINFO to return enslaved device index David Ahern
2016-05-10 18:19 ` [PATCH net-next 2/2] net: original ingress device index in PKTINFO David Ahern
2016-05-08  4:16 [PATCH net-next v3 0/2] net: vrf: Fixup PKTINFO to return enslaved device index David Ahern
2016-05-08  4:16 ` [PATCH net-next 2/2] net: original ingress device index in PKTINFO David Ahern
2016-05-05 19:37 [PATCH net-next 0/2] net: vrf: Fixup PKTINFO to return enslaved device index David Ahern
2016-05-05 19:37 ` [PATCH net-next 2/2] net: original ingress device index in PKTINFO David Ahern

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.