summaryrefslogtreecommitdiffstats
path: root/src/mnl.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2020-03-03 13:14:59 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2020-03-03 14:16:51 +0100
commitd42bd56cff1a22301703d2b9d6d6fc937ea7cfbd (patch)
tree4bba0412324834f49303f0cf237991232daa033c /src/mnl.c
parent8ab720e343af35366f02dc0b9bac102eeedcdbad (diff)
src: support for offload chain flag
This patch extends the basechain definition to allow users to specify the offload flag. This flag enables hardware offload if your drivers supports it. # cat file.nft table netdev x { chain y { type filter hook ingress device eth0 priority 10; flags offload; } } # nft -f file.nft Note: You have to enable offload via ethtool: # ethtool -K eth0 hw-tc-offload on Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/mnl.c')
-rw-r--r--src/mnl.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mnl.c b/src/mnl.c
index bca5add0..a517712c 100644
--- a/src/mnl.c
+++ b/src/mnl.c
@@ -624,6 +624,10 @@ int mnl_nft_chain_add(struct netlink_ctx *ctx, struct cmd *cmd,
nftnl_chain_set_u32(nlc, NFTNL_CHAIN_FAMILY, cmd->handle.family);
if (cmd->chain) {
+ if (cmd->chain->flags & CHAIN_F_HW_OFFLOAD) {
+ nftnl_chain_set_u32(nlc, NFTNL_CHAIN_FLAGS,
+ CHAIN_F_HW_OFFLOAD);
+ }
if (cmd->chain->flags & CHAIN_F_BASECHAIN) {
nftnl_chain_set_u32(nlc, NFTNL_CHAIN_HOOKNUM,
cmd->chain->hooknum);