summaryrefslogtreecommitdiffstats
path: root/net/sched
diff options
context:
space:
mode:
authorwenxu <wenxu@ucloud.cn>2019-08-07 09:13:53 +0800
committerDavid S. Miller <davem@davemloft.net>2019-08-08 18:44:30 -0700
commit1150ab0f1b333ca310431dac65d8fa403b8471da (patch)
treee76988b1fcc67bada541027d124e5cc1b1501019 /net/sched
parent4e481908c51bf02457aecdedc2d80e1be22e0146 (diff)
downloadlinux-stable-1150ab0f1b333ca310431dac65d8fa403b8471da.tar.gz
linux-stable-1150ab0f1b333ca310431dac65d8fa403b8471da.tar.bz2
linux-stable-1150ab0f1b333ca310431dac65d8fa403b8471da.zip
flow_offload: support get multi-subsystem block
It provide a callback list to find the blocks of tc and nft subsystems Signed-off-by: wenxu <wenxu@ucloud.cn> Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched')
-rw-r--r--net/sched/cls_api.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index 0b0dde26783d..e0d8b456e9f5 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -621,7 +621,7 @@ static void tc_indr_block_call(struct tcf_block *block,
};
INIT_LIST_HEAD(&bo.cb_list);
- flow_indr_block_call(dev, tc_indr_block_get_and_ing_cmd, &bo, command);
+ flow_indr_block_call(dev, &bo, command);
tcf_block_setup(block, &bo);
}
@@ -3183,6 +3183,11 @@ static struct pernet_operations tcf_net_ops = {
.size = sizeof(struct tcf_net),
};
+static struct flow_indr_block_ing_entry block_ing_entry = {
+ .cb = tc_indr_block_get_and_ing_cmd,
+ .list = LIST_HEAD_INIT(block_ing_entry.list),
+};
+
static int __init tc_filter_init(void)
{
int err;
@@ -3195,6 +3200,8 @@ static int __init tc_filter_init(void)
if (err)
goto err_register_pernet_subsys;
+ flow_indr_add_block_ing_cb(&block_ing_entry);
+
rtnl_register(PF_UNSPEC, RTM_NEWTFILTER, tc_new_tfilter, NULL,
RTNL_FLAG_DOIT_UNLOCKED);
rtnl_register(PF_UNSPEC, RTM_DELTFILTER, tc_del_tfilter, NULL,