Lets talk about firewall4 (default nftables firewall)

It's probably harder than it seems, since the vmap only includes one expr to evaluate.

    {
      "rule": {
        "family": "inet",
        "table": "fw4",
        "chain": "input",
        "handle": 1767,
        "comment": "!fw4: Handle inbound flows",
        "expr": [
          {
            "vmap": {
              "key": {
                "ct": {
                  "key": "state"
                }
              },
              "data": {
                "set": [
                  [
                    "invalid",
                    {
                      "drop": null
                    }
                  ],
                  [
                    "established",
                    {
                      "accept": null
                    }
                  ],
                  [
                    "related",
                    {
                      "accept": null
                    }
                  ]
                ]
              }
            }
          }
        ]
      }
    }

So in renderExpr, we need to add a case for vmap and somehow render the key and data in one shot.
In baby steps, I've gotten it to recognize the vmap and the key:

I'm thinking vmap needs to be considered an actionExpression so all the badges appear in the Rule actions column:

Hopefully, smarter people will chime in. :slight_smile: