Laine Stump 97061d576b network: use previously saved list of firewall removal commands
When destroying a network, the network driver has always assumed that
it knew what firewall rules had been added as the network was
started. This was usually correct - I only recall one time in the past
that the firewall rules added by libvirt were changed. But if the
exact rules used for a network *were* ever changed from one
build/version of libvirt to another, then we would end up attempting
to remove rules that hadn't been added, and could possibly *not*
remove rules that had been added.

The solution to this to not make such brash assumptions about the
past, but instead to save (in the network status object at network
start time) a list of all the rules needed to remove the rules that
were added for the network, and then use that saved list during
network destroy to remove exactly what was previous added.

Beyond making net-destroy more precise, there are other benefits:

1) We can change the details of the rules we add for networks from one
build/release of libvirt to another and painlessly upgrade.

2) The user can switch from one firewall backend to another by simply
changing the setting in network.conf and restarting
libvirtd/virtnetworkd.

In both cases, the restarted libvirtd/virtnetworkd will remove all the
rules that had been previously added (based on the network status),
and then add new rules (saving the new removal commands back into the
network status)

Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2024-05-22 23:20:07 -04:00
..
2024-03-12 17:37:51 +01:00
2024-03-12 17:37:51 +01:00
2024-03-21 14:42:27 +01:00
2022-06-16 06:43:58 +02:00
2024-03-14 15:17:48 +01:00
2024-03-21 14:42:20 +01:00
2024-03-14 15:17:48 +01:00
2024-03-14 15:17:48 +01:00
2024-03-14 15:17:48 +01:00
2024-03-14 15:17:48 +01:00
2024-05-16 09:03:48 +02:00
2024-03-14 15:17:48 +01:00
2024-03-14 15:17:48 +01:00