From 2e27f2468ea69bd4ef15b7582e5d0ebe85c80da8 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Thu, 22 Aug 2013 17:26:31 +0200 Subject: src: allow to specify the base chain type This patch allows you to specify the type of the base chain, eg. add table mangle add chain mangle OUTPUT { type route hook NF_INET_LOCAL_OUT 0; } The chain type determines the semantics of the chain, we currently have three types: * filter, used for plain packet filtering. * nat, it only sees the first packet of the flow. * route, which is the equivalent of the iptables mangle table, that triggers a re-route if there is any change in some of the packet header fields, eg. IP TOS/DSCP, or the packet metainformation, eg. mark. Signed-off-by: Pablo Neira Ayuso --- src/parser.y | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/parser.y') diff --git a/src/parser.y b/src/parser.y index ff8de47f..f0eb8e32 100644 --- a/src/parser.y +++ b/src/parser.y @@ -766,16 +766,18 @@ map_block : /* empty */ { $$ = $-1; } } ; -hook_spec : HOOK HOOKNUM NUM +hook_spec : TYPE STRING HOOK HOOKNUM NUM { - $0->hooknum = $2; - $0->priority = $3; + $0->type = $2; + $0->hooknum = $4; + $0->priority = $5; $0->flags |= CHAIN_F_BASECHAIN; } - | HOOK HOOKNUM DASH NUM + | TYPE STRING HOOK HOOKNUM DASH NUM { - $0->hooknum = $2; - $0->priority = -$4; + $0->type = $2; + $0->hooknum = $4; + $0->priority = -$6; $0->flags |= CHAIN_F_BASECHAIN; } ; -- cgit v1.2.3