]> git.ipfire.org Git - thirdparty/nftables.git/commit
src: add ability to set/get secmarks to/from connection
authorChristian Göttsche <cgzones@googlemail.com>
Sat, 23 Nov 2019 16:22:39 +0000 (17:22 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 25 Nov 2019 14:44:00 +0000 (15:44 +0100)
commit2250296370752e516dc367f1239753b15efbea94
treedb51d55ea3f2fec79477ab35614994fb726d5fee
parent3ecea86f855dd964c95b0481c9010ae200e90560
src: add ability to set/get secmarks to/from connection

Labeling established and related packets requires the secmark to be stored in the connection.
Add the ability to store and retrieve secmarks like:

    ...
    chain input {
        ...

        # label new incoming packets
        ct state new meta secmark set tcp dport map @secmapping_in

        # add label to connection
        ct state new ct secmark set meta secmark

        # set label for est/rel packets from connection
        ct state established,related meta secmark set ct secmark

        ...
    }
    ...
    chain output {
        ...

        # label new outgoing packets
        ct state new meta secmark set tcp dport map @secmapping_out

        # add label to connection
        ct state new ct secmark set meta secmark

        # set label for est/rel packets from connection
        ct state established,related meta secmark set ct secmark

        ...
        }
    ...

This patch also disallow constant value on the right hand side.

    # nft add rule x y meta secmark 12
    Error: Cannot be used with right hand side constant value
    add rule x y meta secmark 12
                 ~~~~~~~~~~~~ ^^
    # nft add rule x y ct secmark 12
    Error: Cannot be used with right hand side constant value
    add rule x y ct secmark 12
                 ~~~~~~~~~~ ^^
    # nft add rule x y ct secmark set 12
    Error: ct secmark must not be set to constant value
    add rule x y ct secmark set 12
                 ^^^^^^^^^^^^^^^^^

This patch improves 3bc84e5c1fdd ("src: add support for setting secmark").

Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/ct.c
src/evaluate.c
src/meta.c
src/parser_bison.y