From 793d850b4eec094ba693bafcde7764b6531b52b2 Mon Sep 17 00:00:00 2001 From: code-a1 <68858676+code-a1@users.noreply.github.com> Date: Thu, 19 Feb 2026 10:47:01 +0100 Subject: [PATCH 1/2] Added support for priority queues in switch configuration --- utils/p4runtime_switch.py | 6 ++++++ utils/run_exercise.py | 12 ++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/utils/p4runtime_switch.py b/utils/p4runtime_switch.py index 18ec0ecb..542b41c4 100644 --- a/utils/p4runtime_switch.py +++ b/utils/p4runtime_switch.py @@ -94,6 +94,10 @@ def __init__(self, name, sw_path = None, json_path = None, if "cpu_port" in kwargs: self.cpu_port = kwargs["cpu_port"] + self.priority_queues = None + if "priority_queues" in kwargs: + self.priority_queues = kwargs["priority_queues"] + def check_switch_started(self, pid): for _ in range(SWITCH_START_TIMEOUT * 2): @@ -129,6 +133,8 @@ def start(self, controllers): args.append("-- --grpc-server-addr 0.0.0.0:" + str(self.grpc_port)) if self.cpu_port: args.append("--cpu-port " + str(self.cpu_port)) + if self.priority_queues: + args.append("--priority-queues " + str(self.priority_queues)) cmd = ' '.join(args) info(cmd + "\n") print(cmd + "\n") diff --git a/utils/run_exercise.py b/utils/run_exercise.py index a2169fe9..9ffd9487 100755 --- a/utils/run_exercise.py +++ b/utils/run_exercise.py @@ -93,9 +93,17 @@ def __init__(self, hosts, switches, links, log_dir, bmv2_exe, pcap_dir, **opts): # add default switch switchClass = None if "cpu_port" in params: - self.addSwitch(sw, log_file="%s/%s.log" %(log_dir, sw), cpu_port=params["cpu_port"], cls=switchClass) + if "priority_queues" in params: + self.addSwitch(sw, log_file="%s/%s.log" % (log_dir, sw), cpu_port=params["cpu_port"], + priority_queues=params["priority_queues"], cls=switchClass) + else: + self.addSwitch(sw, log_file="%s/%s.log" % (log_dir, sw), cpu_port=params["cpu_port"], cls=switchClass) else: - self.addSwitch(sw, log_file="%s/%s.log" %(log_dir, sw), cls=switchClass) + if "priority_queues" in params: + self.addSwitch(sw, log_file="%s/%s.log" % (log_dir, sw), priority_queues=params["priority_queues"], + cls=switchClass) + else: + self.addSwitch(sw, log_file="%s/%s.log" % (log_dir, sw), cls=switchClass) for link in host_links: host_name = link['node1'] From 7aedae6c45a384f67fd77a556c818e09abbd3263 Mon Sep 17 00:00:00 2001 From: code-a1 <68858676+code-a1@users.noreply.github.com> Date: Thu, 19 Feb 2026 10:47:01 +0100 Subject: [PATCH 2/2] Added support for priority queues in switch configuration Signed-off-by: code-a1 <68858676+code-a1@users.noreply.github.com> --- utils/p4runtime_switch.py | 6 ++++++ utils/run_exercise.py | 12 ++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/utils/p4runtime_switch.py b/utils/p4runtime_switch.py index 18ec0ecb..542b41c4 100644 --- a/utils/p4runtime_switch.py +++ b/utils/p4runtime_switch.py @@ -94,6 +94,10 @@ def __init__(self, name, sw_path = None, json_path = None, if "cpu_port" in kwargs: self.cpu_port = kwargs["cpu_port"] + self.priority_queues = None + if "priority_queues" in kwargs: + self.priority_queues = kwargs["priority_queues"] + def check_switch_started(self, pid): for _ in range(SWITCH_START_TIMEOUT * 2): @@ -129,6 +133,8 @@ def start(self, controllers): args.append("-- --grpc-server-addr 0.0.0.0:" + str(self.grpc_port)) if self.cpu_port: args.append("--cpu-port " + str(self.cpu_port)) + if self.priority_queues: + args.append("--priority-queues " + str(self.priority_queues)) cmd = ' '.join(args) info(cmd + "\n") print(cmd + "\n") diff --git a/utils/run_exercise.py b/utils/run_exercise.py index a2169fe9..9ffd9487 100755 --- a/utils/run_exercise.py +++ b/utils/run_exercise.py @@ -93,9 +93,17 @@ def __init__(self, hosts, switches, links, log_dir, bmv2_exe, pcap_dir, **opts): # add default switch switchClass = None if "cpu_port" in params: - self.addSwitch(sw, log_file="%s/%s.log" %(log_dir, sw), cpu_port=params["cpu_port"], cls=switchClass) + if "priority_queues" in params: + self.addSwitch(sw, log_file="%s/%s.log" % (log_dir, sw), cpu_port=params["cpu_port"], + priority_queues=params["priority_queues"], cls=switchClass) + else: + self.addSwitch(sw, log_file="%s/%s.log" % (log_dir, sw), cpu_port=params["cpu_port"], cls=switchClass) else: - self.addSwitch(sw, log_file="%s/%s.log" %(log_dir, sw), cls=switchClass) + if "priority_queues" in params: + self.addSwitch(sw, log_file="%s/%s.log" % (log_dir, sw), priority_queues=params["priority_queues"], + cls=switchClass) + else: + self.addSwitch(sw, log_file="%s/%s.log" % (log_dir, sw), cls=switchClass) for link in host_links: host_name = link['node1']