diff options
author | Jakub Kicinski <jakub.kicinski@netronome.com> | 2018-11-12 14:58:11 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-11-14 08:51:27 -0800 |
commit | 1853125889a397725420e8ef003502141269d08f (patch) | |
tree | 2efe1e6fb809c43f6f49d59ebd2c32002ad1f3bf /drivers/net/ethernet/netronome/nfp/abm/qdisc.c | |
parent | net: sched: provide notification for graft on root (diff) | |
download | linux-dev-1853125889a397725420e8ef003502141269d08f.tar.xz linux-dev-1853125889a397725420e8ef003502141269d08f.zip |
nfp: abm: remember which Qdisc is root
Keep track of which Qdisc is currently root. We need to implement
TC_SETUP_ROOT_QDISC handling, and for completeness also clear the
root Qdisc pointer when it's freed. TC_SETUP_ROOT_QDISC isn't always
sent when device is dismantled.
Remembering the root Qdisc will allow us to build the entire hierarchy
in following patches.
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: John Hurley <john.hurley@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r-- | drivers/net/ethernet/netronome/nfp/abm/qdisc.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/abm/qdisc.c b/drivers/net/ethernet/netronome/nfp/abm/qdisc.c index a6f95924656d..ba6ce2d1eda2 100644 --- a/drivers/net/ethernet/netronome/nfp/abm/qdisc.c +++ b/drivers/net/ethernet/netronome/nfp/abm/qdisc.c @@ -143,6 +143,9 @@ nfp_abm_qdisc_destroy(struct net_device *netdev, struct nfp_abm_link *alink, return; nfp_abm_qdisc_free(netdev, alink, qdisc); + + if (alink->root_qdisc == qdisc) + alink->root_qdisc = NULL; } static void @@ -450,3 +453,13 @@ int nfp_abm_setup_tc_mq(struct net_device *netdev, struct nfp_abm_link *alink, return -EOPNOTSUPP; } } + +int nfp_abm_setup_root(struct net_device *netdev, struct nfp_abm_link *alink, + struct tc_root_qopt_offload *opt) +{ + if (opt->ingress) + return -EOPNOTSUPP; + alink->root_qdisc = nfp_abm_qdisc_find(alink, opt->handle); + + return 0; +} |