def ifname_to_ifindex(ifname):
- output = subprocess.check_output("ip link show %s" % ifname, shell=True)
+ output = subprocess.check_output("ip link show %s" % ifname,
+ shell=True, universal_newlines=True)
first_line = output.split("\n")[0]
re_index = re.search("^(\d+):", first_line)
)
log = logging.getLogger(__name__)
-parser = argparse.ArgumentParser(description="Multicast RX utility", version="1.0.0")
+parser = argparse.ArgumentParser(description="Multicast RX utility")
+
parser.add_argument("group", help="Multicast IP")
parser.add_argument("ifname", help="Interface name")
parser.add_argument("--port", help="UDP port", default=1000)
import socket
import struct
import time
-
+import sys
logging.basicConfig(
level=logging.DEBUG, format="%(asctime)s %(levelname)5s: %(message)s"
log = logging.getLogger(__name__)
parser = argparse.ArgumentParser(
- description="Multicast packet generator", version="1.0.0"
+ description="Multicast packet generator"
)
parser.add_argument("group", help="Multicast IP")
parser.add_argument("ifname", help="Interface name")
# https://github.com/sivel/bonding/issues/10
#
# Bind our socket to ifname
-sock.setsockopt(
- socket.SOL_SOCKET, 25, struct.pack("%ds" % len(args.ifname), args.ifname)
-)
+#
+# Note ugly python version incompatibility
+#
+if sys.version_info[0] > 2:
+ sock.setsockopt(
+ socket.SOL_SOCKET, 25, struct.pack("%ds" % len(args.ifname),
+ args.ifname.encode('utf-8'))
+ )
+else:
+ sock.setsockopt(
+ socket.SOL_SOCKET, 25, struct.pack("%ds" % len(args.ifname), args.ifname)
+ )
# We need to make sure our sendto() finishes before we close the socket
sock.setblocking(1)
ms = args.interval / 1000.0
# Send data to the multicast group
-for x in xrange(args.count):
+for x in range(args.count):
log.info(
"TX multicast UDP packet to %s:%d on %s" % (args.group, args.port, args.ifname)
)
- sent = sock.sendto("foobar %d" % x, (args.group, args.port))
+
+ #
+ # Note ugly python version incompatibility
+ #
+ if sys.version_info[0] > 2:
+ sent = sock.sendto(b"foobar %d" % x, (args.group, args.port))
+ else:
+ sent = sock.sendto("foobar %d" % x, (args.group, args.port))
if args.count > 1 and ms:
time.sleep(ms)