Update qemu hook to facilitate Multicast
mdns AND IPv6 Neighbour Discovery Protocol use multicast packets and the macvtap interface drops these packets by default. Since there is no way to tell libvirt to make this better, lets at least use the hook to make the macvtap interface change such that multicast packets will pass. With this, iPXE should work... and mdns should be testable in CI. Change-Id: I397d211675fd7668b8fd19e989d740d6bad2c70e
This commit is contained in:
parent
a3b875ab23
commit
c59dc1386f
@ -17,8 +17,10 @@
|
||||
import datetime
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
# This script is run as a libvirt hook.
|
||||
# More information here: https://libvirt.org/hooks.html
|
||||
|
||||
@ -42,6 +44,18 @@ def main():
|
||||
guest_name = sys.argv[1]
|
||||
action = sys.argv[2]
|
||||
|
||||
if action == "started":
|
||||
interfaces = str(
|
||||
subprocess.check_output(
|
||||
['ip', 'link', 'show', 'type', 'macvtap']
|
||||
)).split("\n")
|
||||
for iface_line in interfaces:
|
||||
if 'macvtap' in iface_line:
|
||||
iface_string = iface_line.split('@')
|
||||
ifaces = iface_string[0].split(' ')
|
||||
subprocess.call(['ip', 'link', 'set', 'dev', ifaces[1],
|
||||
'multicast', 'on', 'allmulticast', 'on'])
|
||||
|
||||
if action != "release":
|
||||
return
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user