Skip to content

Commit 54791bd

Browse files
committed
Fix: clean mrule entries on interface removal
1 parent 9cb1b14 commit 54791bd

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

pimdm/Kernel.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,8 @@ def remove_virtual_interface(self, interface_name):
387387
struct_vifctl = struct.pack("HBBI 4s 4s", index, 0, 0, 0, socket.inet_aton("0.0.0.0"), socket.inet_aton("0.0.0.0"))
388388

389389
self.delete_mrule(interface_name, 0)
390+
if pim_globals.MULTICAST_TABLE_ID != 0:
391+
self.delete_mrule(interface_name, pim_globals.MULTICAST_TABLE_ID)
390392
self.socket.setsockopt(socket.IPPROTO_IP, self.MRT_DEL_VIF, struct_vifctl)
391393

392394
self.stop_forwarding(index)
@@ -621,7 +623,8 @@ def remove_virtual_interface(self, interface_name):
621623
struct_vifctl = struct.pack("HBBHI", mif_index, 0, 0, physical_if_index, 0)
622624
self.socket.setsockopt(socket.IPPROTO_IPV6, self.MRT6_DEL_MIF, struct_vifctl)
623625

624-
self.delete_mrule(interface_name, 0)
626+
if pim_globals.MULTICAST_TABLE_ID != 0:
627+
self.delete_mrule(interface_name, pim_globals.MULTICAST_TABLE_ID, AF_INET6)
625628

626629
self.stop_forwarding(mif_index)
627630

0 commit comments

Comments
 (0)