Index: client/tests/kvm/scripts/multicast_guest.py |
diff --git a/client/tests/kvm/scripts/multicast_guest.py b/client/tests/kvm/scripts/multicast_guest.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..350cd5fd9ca674e3f6ca4c9bfba221e0a3c74eda |
--- /dev/null |
+++ b/client/tests/kvm/scripts/multicast_guest.py |
@@ -0,0 +1,37 @@ |
+#!/usr/bin/python |
+import socket, struct, os, signal, sys |
+# -*- coding: utf-8 -*- |
+ |
+""" |
+Script used to join machine into multicast groups. |
+ |
+@author Amos Kong <akong@redhat.com> |
+""" |
+ |
+if __name__ == "__main__": |
+ if len(sys.argv) < 4: |
+ print """%s [mgroup_count] [prefix] [suffix] |
+ mgroup_count: count of multicast addresses |
+ prefix: multicast address prefix |
+ suffix: multicast address suffix""" % sys.argv[0] |
+ sys.exit() |
+ |
+ mgroup_count = int(sys.argv[1]) |
+ prefix = sys.argv[2] |
+ suffix = int(sys.argv[3]) |
+ |
+ s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) |
+ for i in range(mgroup_count): |
+ mcast = prefix + "." + str(suffix + i) |
+ try: |
+ mreq = struct.pack("4sl", socket.inet_aton(mcast), |
+ socket.INADDR_ANY) |
+ s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) |
+ except: |
+ s.close() |
+ print "Could not join multicast: %s" % mcast |
+ raise |
+ |
+ print "join_mcast_pid:%s" % os.getpid() |
+ os.kill(os.getpid(), signal.SIGSTOP) |
+ s.close() |