From: Daniel P. Berrangé <[email protected]>

The result looks like

$ nft list ruleset
...snip...
table ip6 libvirt_network {
        comment "Managed by libvirt for virtual networks:   
https://libvirt.org/firewall.html#the-virtual-network-driver";
        chain forward {
...snip...

This should reduce the number of people wondering why
these rules exists.

Signed-off-by: Daniel P. Berrangé <[email protected]>
---
 src/network/network_nftables.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/network/network_nftables.c b/src/network/network_nftables.c
index cffe8072f5..cd46ff8d83 100644
--- a/src/network/network_nftables.c
+++ b/src/network/network_nftables.c
@@ -61,6 +61,10 @@ VIR_LOG_INIT("network.nftables");
 
 #define VIR_NFTABLES_PRIVATE_TABLE "libvirt_network"
 
+#define VIR_NFTABLES_COMMENT \
+    "{ comment \"Managed by libvirt for virtual networks: " \
+    "https://libvirt.org/firewall.html#the-virtual-network-driver\";; }"
+
 /* nftables backend uses the same binary (nft) for all layers, but
  * IPv4 and IPv6 have their rules in separate classes of tables,
  * either "ip" or "ip6". (there is also an "inet" class of tables that
@@ -165,7 +169,9 @@ nftablesPrivateChainCreate(virFirewall *fw,
 
     if (!tableMatch) {
         virFirewallAddCmd(fw, layer, "add", "table",
-                          layerStr, VIR_NFTABLES_PRIVATE_TABLE, NULL);
+                          layerStr, VIR_NFTABLES_PRIVATE_TABLE,
+                          VIR_NFTABLES_COMMENT,
+                          NULL);
     }
 
     for (i = 0; i < data->nchains; i++) {
-- 
2.53.0

Reply via email to