feat(dscp): implemented multiple dscps per user
This commit is contained in:
17
sender.py
17
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,15 +44,24 @@ 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:")
|
||||
for sock in sockets:
|
||||
sock.sendto(payload, (args.host, args.port))
|
||||
packet_cnt += 1
|
||||
t1 = time.time() - t0
|
||||
|
||||
@@ -2,6 +2,7 @@ import socket
|
||||
import argparse
|
||||
import time
|
||||
import sys
|
||||
from loguru import logger
|
||||
|
||||
def main():
|
||||
# Parse command-line arguments
|
||||
@@ -20,10 +21,13 @@ def main():
|
||||
sock.settimeout(args.timeout)
|
||||
|
||||
try:
|
||||
count = 0
|
||||
while True:
|
||||
try:
|
||||
# Wait for a UDP packet
|
||||
data, addr = sock.recvfrom(1024) # Buffer size is 1024 bytes
|
||||
count += 1
|
||||
logger.debug(f"Received packet {count} from {addr}")
|
||||
except socket.timeout:
|
||||
print(f"No packets received for {args.timeout} seconds. Shutting down.")
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user