netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: sfeldma@gmail.com
To: netdev@vger.kernel.org, davem@davemloft.net, jiri@resnulli.us,
	roopa@cumulusnetworks.com
Subject: [PATCH net-next v3 0/7] switchdev: add IPv4 routing offload
Date: Tue,  3 Mar 2015 15:31:53 -0800	[thread overview]
Message-ID: <1425425520-34017-1-git-send-email-sfeldma@gmail.com> (raw)

From: Scott Feldman <sfeldma@gmail.com>

v3:

Changes based on v2 review comments:

  - Move check for custom rules up earlier in patch set, to keep git bisect
    safe.
  - Simplify the route add/modify failure handling to simple try until
    failure, and then on failure, undo everything.  The switchdev driver
    will return err when route can normally be installed to device, but
    the install fails for one reason or another (no space left on device,
    etc).  If a failure happens, uninstall all routes from the device,
    punting forwarding for all routes back to the kernel.
  - Scan route's full nexthop list, ensuring all nexthop devs belong
    to the same switchdev device, otherwise don't try to install route
    to device.

v2:

Changes based on v1 review comments and discussions at netconf:

  - Allow route modification, but use same ndo op used for adding route.
    Driver/device is expected to modify route in-place, if it can, to avoid
    interruption of service.
  - Add new RTNH_F_EXTERNAL flag to mark FIB entries offloaded externally.
  - Don't offload routes if using custom IP rules.  If routes are already
    offloaded, and custom IP rules are turned on, flush routes from offload
    device.  (Offloaded routes are marked with RTNH_F_EXTERNAL).
  - Use kernel's neigh resolution code to resolve route's nexthops' neigh
    MAC addrs.  (Thanks davem, works great!).
  - Use fib->fib_priority in rocker driver to give priorities to routes in
    OF-DPA unicast route table.

v1:

This patch set adds L3 routing offload support for IPv4 routes.  The idea is to
mirror routes installed in the kernel's FIB down to a hardware switch device to
offload the data forwarding path for L3.  Only the data forwarding path is
intercepted.  Control and management of the kernel's FIB remains with the
kernel.

Scott Feldman (7):
  rtnetlink: add RTNH_F_EXTERNAL flag for fib offload
  netdevice: add IPv4 fib add/del ops
  switchdev: add IPv4 fib ndo ops wrappers
  switchdev: don't support custom ip rules, for now
  switchdev: implement IPv4 fib ndo wrappers
  fib: hook IPv4 fib for hardware offload
  rocker: implement IPv4 fib offloading

 drivers/net/ethernet/rocker/rocker.c |  527 +++++++++++++++++++++++++++++++---
 include/linux/netdevice.h            |   22 ++
 include/net/ip_fib.h                 |    2 +
 include/net/switchdev.h              |   19 ++
 include/uapi/linux/rtnetlink.h       |    1 +
 net/ipv4/fib_frontend.c              |   13 +
 net/ipv4/fib_rules.c                 |    3 +
 net/ipv4/fib_trie.c                  |   63 +++-
 net/switchdev/switchdev.c            |  127 ++++++++
 9 files changed, 729 insertions(+), 48 deletions(-)

-- 
1.7.10.4

             reply	other threads:[~2015-03-03 23:30 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-03 23:31 sfeldma [this message]
2015-03-03 23:31 ` [PATCH net-next v3 1/7] rtnetlink: add RTNH_F_EXTERNAL flag for fib offload sfeldma
2015-03-03 23:31 ` [PATCH net-next v3 2/7] netdevice: add IPv4 fib add/del ops sfeldma
2015-03-03 23:31 ` [PATCH net-next v3 3/7] switchdev: add IPv4 fib ndo ops wrappers sfeldma
2015-03-03 23:31 ` [PATCH net-next v3 4/7] switchdev: don't support custom ip rules, for now sfeldma
2015-03-03 23:31 ` [PATCH net-next v3 5/7] switchdev: implement IPv4 fib ndo wrappers sfeldma
2015-03-03 23:31 ` [PATCH net-next v3 6/7] fib: hook IPv4 fib for hardware offload sfeldma
2015-03-04  0:01   ` Alexander Duyck
2015-03-04  3:16     ` Scott Feldman
2015-03-05  7:03   ` John Fastabend
2015-03-05  7:05     ` David Miller
2015-03-03 23:32 ` [PATCH net-next v3 7/7] rocker: implement IPv4 fib offloading sfeldma
2015-03-04  5:38 ` [PATCH net-next v3 0/7] switchdev: add IPv4 routing offload David Miller
2015-03-04  7:28   ` Scott Feldman
2015-03-04 21:06     ` David Miller
2015-03-05  4:50       ` Scott Feldman
2015-03-05  5:04         ` David Miller
2015-03-05  5:07         ` David Miller
2015-03-05  7:18       ` John Fastabend

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1425425520-34017-1-git-send-email-sfeldma@gmail.com \
    --to=sfeldma@gmail.com \
    --cc=davem@davemloft.net \
    --cc=jiri@resnulli.us \
    --cc=netdev@vger.kernel.org \
    --cc=roopa@cumulusnetworks.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).