From: John Hurley <john.hurley@netronome.com>
To: netdev@vger.kernel.org
Cc: jiri@mellanox.com, ogerlitz@mellanox.com,
jakub.kicinski@netronome.com, simon.horman@netronome.com,
John Hurley <john.hurley@netronome.com>
Subject: [RFC net-next 5/6] nfp: register repr ports for bond offloads
Date: Mon, 5 Mar 2018 13:28:33 +0000 [thread overview]
Message-ID: <1520256514-27885-6-git-send-email-john.hurley@netronome.com> (raw)
In-Reply-To: <1520256514-27885-1-git-send-email-john.hurley@netronome.com>
On initialisation, register nfp repr ports to receive callbacks when tc
rules are offloaded to any bond they may be attached to. Callback
function is the same that is used for non bonded port rule offload.
Signed-off-by: John Hurley <john.hurley@netronome.com>
---
drivers/net/ethernet/netronome/nfp/flower/main.c | 24 +++++++++++++++++++---
drivers/net/ethernet/netronome/nfp/flower/main.h | 2 ++
.../net/ethernet/netronome/nfp/flower/offload.c | 4 ++--
3 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/netronome/nfp/flower/main.c b/drivers/net/ethernet/netronome/nfp/flower/main.c
index 742d6f1..0ca15f6 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/main.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/main.c
@@ -38,6 +38,7 @@
#include <linux/vmalloc.h>
#include <net/devlink.h>
#include <net/dst_metadata.h>
+#include <net/bonding.h>
#include "main.h"
#include "../nfpcore/nfp_cpp.h"
@@ -177,14 +178,31 @@ nfp_flower_repr_netdev_stop(struct nfp_app *app, struct nfp_repr *repr)
static int
nfp_flower_repr_netdev_init(struct nfp_app *app, struct net_device *netdev)
{
- return tc_setup_cb_egdev_register(netdev,
- nfp_flower_setup_tc_egress_cb,
- netdev_priv(netdev));
+ int err;
+
+ err = tc_setup_cb_bond_register(netdev, nfp_flower_setup_tc_block_cb,
+ netdev_priv(netdev));
+ if (err)
+ return err;
+
+ err = tc_setup_cb_egdev_register(netdev, nfp_flower_setup_tc_egress_cb,
+ netdev_priv(netdev));
+ if (err)
+ goto err_egdev;
+
+ return err;
+err_egdev:
+ tc_setup_cb_bond_unregister(netdev, nfp_flower_setup_tc_block_cb,
+ netdev_priv(netdev));
+ return err;
}
static void
nfp_flower_repr_netdev_clean(struct nfp_app *app, struct net_device *netdev)
{
+ tc_setup_cb_bond_unregister(netdev, nfp_flower_setup_tc_block_cb,
+ netdev_priv(netdev));
+
tc_setup_cb_egdev_unregister(netdev, nfp_flower_setup_tc_egress_cb,
netdev_priv(netdev));
}
diff --git a/drivers/net/ethernet/netronome/nfp/flower/main.h b/drivers/net/ethernet/netronome/nfp/flower/main.h
index c5cebf6..5fd7c1f 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/main.h
+++ b/drivers/net/ethernet/netronome/nfp/flower/main.h
@@ -213,5 +213,7 @@ void nfp_tunnel_request_route(struct nfp_app *app, struct sk_buff *skb);
void nfp_tunnel_keep_alive(struct nfp_app *app, struct sk_buff *skb);
int nfp_flower_setup_tc_egress_cb(enum tc_setup_type type, void *type_data,
void *cb_priv);
+int nfp_flower_setup_tc_block_cb(enum tc_setup_type type, void *type_data,
+ void *cb_priv);
#endif
diff --git a/drivers/net/ethernet/netronome/nfp/flower/offload.c b/drivers/net/ethernet/netronome/nfp/flower/offload.c
index f3586c5..eb8abeb 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/offload.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/offload.c
@@ -553,8 +553,8 @@ int nfp_flower_setup_tc_egress_cb(enum tc_setup_type type, void *type_data,
}
}
-static int nfp_flower_setup_tc_block_cb(enum tc_setup_type type,
- void *type_data, void *cb_priv)
+int nfp_flower_setup_tc_block_cb(enum tc_setup_type type, void *type_data,
+ void *cb_priv)
{
struct nfp_repr *repr = cb_priv;
--
2.7.4
next prev parent reply other threads:[~2018-03-05 13:28 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-05 13:28 [RFC net-next 0/6] offload linux bonding tc ingress rules John Hurley
2018-03-05 13:28 ` [RFC net-next 1/6] drivers: net: bonding: add tc offload infastructure to bond John Hurley
2018-03-05 13:28 ` [RFC net-next 2/6] driver: net: bonding: allow registration of tc offload callbacks in bond John Hurley
2018-03-07 10:57 ` Jiri Pirko
2018-03-05 13:28 ` [RFC net-next 3/6] drivers: net: bonding: restrict bond mods when rules are offloaded John Hurley
2018-03-05 13:28 ` [RFC net-next 4/6] nfp: add ndo_set_mac_address for representors John Hurley
2018-03-05 21:39 ` Or Gerlitz
2018-03-05 23:20 ` John Hurley
2018-03-05 13:28 ` John Hurley [this message]
2018-03-05 13:28 ` [RFC net-next 6/6] nfp: support offloading multiple rules with same cookie John Hurley
2018-03-05 21:43 ` [RFC net-next 0/6] offload linux bonding tc ingress rules Or Gerlitz
2018-03-05 23:57 ` John Hurley
2018-03-06 0:16 ` Jakub Kicinski
2018-03-05 22:08 ` Jakub Kicinski
2018-03-06 2:34 ` Roopa Prabhu
2018-03-06 7:49 ` Ido Schimmel
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=1520256514-27885-6-git-send-email-john.hurley@netronome.com \
--to=john.hurley@netronome.com \
--cc=jakub.kicinski@netronome.com \
--cc=jiri@mellanox.com \
--cc=netdev@vger.kernel.org \
--cc=ogerlitz@mellanox.com \
--cc=simon.horman@netronome.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).