Many thanks, now I think I understand the desired behavior with the
helper objects.

Now the following works:

$ nft add secmark inet filter sshtag
\"system_u:object_r:ssh_server_packet_t:s0\"
$ nft add rule inet filter input tcp dport 22 meta secmark set sshtag
$ nft add map inet filter secmapping { type inet_service : secmark_tag \; }
$ nft add element inet filter secmapping { 22 : sshtag }
$  nft list ruleset
table inet filter {
        secmark sshtag {
                system_u:object_r:ssh_server_packet_t:s0
        }

        map secmapping {
                type inet_service : secmark_tag
                elements = { ssh : "sshtag" }
        }

        chain input {
                type filter hook input priority 0; policy accept;
                tcp dport ssh secmark name "sshtag"
        }

        chain forward {
                type filter hook forward priority 0; policy accept;
        }

        chain output {
                type filter hook output priority 0; policy accept;
        }
}

But the complex case does not work yet:
$ nft add rule inet filter input meta secmark set tcp dport map @secmapping
Error: Expression is not a map
add rule inet filter input meta secmark set tcp dport map @secmapping
                                                          ^^^^^^^^^^^

even though it is a map:
$ nft list map inet filter secmapping
table inet filter {
        map secmapping {
                type inet_service : secmark_tag
                elements = { ssh : "sshtag" }
        }
}


Any ideas?



Best regards
      Christian Göttsche

Reply via email to