0

In nftables since v0.9.5 named sets have specification counter (for each element in set). I can use it with nft cli or configuration file like:

 set my_flows_meter { 
    type ipv4_addr . ipv4_addr . inet_service . inet_service . inet_proto
    flags dynamic, timeout
    counter
}

But I try to add named set with counter specification with libnftables-json add didn't find anything about that in mans. I tried:

 {"add": {
    "set": {
      "family": "ip",
      "name": "my_flows_meter",
      "table": "filter",
      "type": [
        "ipv4_addr",
        "ipv4_addr",
        "inet_service",
        "inet_service",
        "inet_proto"
      ],
      "handle": 2,
      "size": 65535,
      "flags": [
        "timeout"
      ],
      "counter": null
    }
  }
}

But that's not working. Looks like libnftables-json just ignored that, bc set is added.

1 Answers1

0

In version nftables v1.0.5 (Lester Gooch #4), the nft -j list set ... ... ... seem to print out the counters as well. But it prints it for each element and that's probably what you need to to as well.

{
   "nftables" : [
      {
         "metainfo" : {
            "json_schema_version" : 1,
            "release_name" : "Lester Gooch #4",
            "version" : "1.0.5"
         }
      },
      {
         "set" : {
            "elem" : [
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "udp",
                           67
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "udp",
                           25
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "udp",
                           110
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "udp",
                           220
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "udp",
                           995
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "udp",
                           873
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "udp",
                           115
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 170088,
                        "packets" : 2585
                     },
                     "val" : {
                        "concat" : [
                           "udp",
                           53
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "udp",
                           22
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "udp",
                           5900
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "udp",
                           3389
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 11418,
                        "packets" : 6
                     },
                     "val" : {
                        "concat" : [
                           "udp",
                           {
                              "range" : [
                                 1714,
                                 1764
                              ]
                           }
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           4713
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           {
                              "range" : [
                                 1714,
                                 1764
                              ]
                           }
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           143
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 240,
                        "packets" : 4
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           993
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 180,
                        "packets" : 3
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           25
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           110
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           220
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           995
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           873
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           115
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 540,
                        "packets" : 9
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           53
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           22
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           5900
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           3389
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "sctp",
                           22
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           10240
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 14200,
                        "packets" : 71
                     },
                     "val" : {
                        "concat" : [
                           "udp",
                           5678
                        ]
                     }
                  }
               },
               {
                  "elem" : {
                     "counter" : {
                        "bytes" : 0,
                        "packets" : 0
                     },
                     "val" : {
                        "concat" : [
                           "tcp",
                           8291
                        ]
                     }
                  }
               }
            ],
            "family" : "inet",
            "flags" : [
               "interval"
            ],
            "handle" : 25,
            "name" : "protocols",
            "table" : "filter",
            "type" : [
               "inet_proto",
               "inet_service"
            ]
         }
      }
   ]
}
The Moisrex
  • 1,857
  • 1
  • 14
  • 16