netfilter: flowtable: add nf_flow_table_block_offload_init()
authorwenxu <wenxu@ucloud.cn>
Mon, 24 Feb 2020 05:22:52 +0000 (13:22 +0800)
committerPablo Neira Ayuso <pablo@netfilter.org>
Sun, 15 Mar 2020 14:22:32 +0000 (15:22 +0100)
Add nf_flow_table_block_offload_init prepare for the indr block
offload patch

Signed-off-by: wenxu <wenxu@ucloud.cn>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_flow_table_offload.c

index 88695ff44e769655dfa068587ca44000a2ef2150..c4cb03555315f794d1678954ab23456ed14ef9cf 100644 (file)
@@ -812,6 +812,21 @@ static int nf_flow_table_block_setup(struct nf_flowtable *flowtable,
        return err;
 }
 
+static void nf_flow_table_block_offload_init(struct flow_block_offload *bo,
+                                            struct net *net,
+                                            enum flow_block_command cmd,
+                                            struct nf_flowtable *flowtable,
+                                            struct netlink_ext_ack *extack)
+{
+       memset(bo, 0, sizeof(*bo));
+       bo->net         = net;
+       bo->block       = &flowtable->flow_block;
+       bo->command     = cmd;
+       bo->binder_type = FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS;
+       bo->extack      = extack;
+       INIT_LIST_HEAD(&bo->cb_list);
+}
+
 static int nf_flow_table_offload_cmd(struct flow_block_offload *bo,
                                     struct nf_flowtable *flowtable,
                                     struct net_device *dev,
@@ -823,14 +838,8 @@ static int nf_flow_table_offload_cmd(struct flow_block_offload *bo,
        if (!dev->netdev_ops->ndo_setup_tc)
                return -EOPNOTSUPP;
 
-       memset(bo, 0, sizeof(*bo));
-       bo->net         = dev_net(dev);
-       bo->block       = &flowtable->flow_block;
-       bo->command     = cmd;
-       bo->binder_type = FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS;
-       bo->extack      = extack;
-       INIT_LIST_HEAD(&bo->cb_list);
-
+       nf_flow_table_block_offload_init(bo, dev_net(dev), cmd, flowtable,
+                                        extack);
        err = dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_FT, bo);
        if (err < 0)
                return err;