nft add rule inet filter input tcp option sack 4 left 1
<cmdline>:1:28-49: Error: Cannot generate dependency: no network layer protocol specified
Users can avoid this via 'meta l4proto tcp', this enables implicit
dependency injection for the inet/bridge/netdev families.
Reviewed-by: Manuel Messner <mm@skelett.io>
Signed-off-by: Florian Westphal <fw@strlen.de>
const struct proto_desc *desc;
desc = ctx->pctx.protocol[pb].desc;
- if (desc == NULL)
+ if (desc == NULL) {
+ if (expr->exthdr.op == NFT_EXTHDR_OP_TCPOPT) {
+ switch (ctx->pctx.family) {
+ case NFPROTO_NETDEV:
+ case NFPROTO_BRIDGE:
+ case NFPROTO_INET:
+ desc = &proto_inet_service;
+ goto found;
+ default:
+ break;
+ }
+ }
+
return expr_error(ctx->msgs, expr,
"Cannot generate dependency: "
"no %s protocol specified",
proto_base_names[pb]);
+ }
+ found:
return payload_add_dependency(ctx, desc, dependency, expr, res);
}