feat(dscp): implemented multiple dscps per user
This commit is contained in:
19
sender.py
19
sender.py
@@ -35,7 +35,7 @@ def main():
|
||||
parser.add_argument("--log-level", type=str, default="INFO")
|
||||
parser.add_argument("--bandwidth", type=str, default="1Mbps")
|
||||
parser.add_argument("--duration", type=int, default=10)
|
||||
parser.add_argument("--dscp", type=str, default="")
|
||||
parser.add_argument("--dscp", action='append', default=[])
|
||||
args = parser.parse_args()
|
||||
logger.remove()
|
||||
logger.add(sys.stderr, level=args.log_level)
|
||||
@@ -44,16 +44,25 @@ def main():
|
||||
time_between_packets = PACKET_SIZE / bandwidth
|
||||
packet_cnt = 0
|
||||
logger.info(f"Connecting to {args.host}:{args.port}")
|
||||
sock = socket(AF_INET, SOCK_DGRAM)
|
||||
dscp = int(args.dscp) if args.dscp else 0
|
||||
|
||||
|
||||
sockets = []
|
||||
dscp = [int(x) for x in args.dscp]
|
||||
if dscp:
|
||||
sock.setsockopt(IPPROTO_IP, IP_TOS, dscp << 2)
|
||||
for value in dscp:
|
||||
sock = socket(AF_INET, SOCK_DGRAM)
|
||||
sock.setsockopt(IPPROTO_IP, IP_TOS, value << 2)
|
||||
sockets.append(sock)
|
||||
else:
|
||||
sock = socket(AF_INET, SOCK_DGRAM)
|
||||
sockets.append(sock)
|
||||
CODE_WORD = "CAFEABBA"
|
||||
payload = (CODE_WORD + "A" * (PACKET_SIZE - len(CODE_WORD))).encode()
|
||||
t0 = time.time()
|
||||
while True:
|
||||
logger.debug("Sending message:")
|
||||
sock.sendto(payload, (args.host, args.port))
|
||||
for sock in sockets:
|
||||
sock.sendto(payload, (args.host, args.port))
|
||||
packet_cnt += 1
|
||||
t1 = time.time() - t0
|
||||
if t1 > args.duration:
|
||||
|
||||
Reference in New Issue
Block a user