From 30643ca50d4646a790080ee12fa3fbe874bfcf73 Mon Sep 17 00:00:00 2001 From: trinity-1686a Date: Wed, 31 Aug 2022 21:29:18 +0200 Subject: [PATCH] add support for limiting queue len --- mknet | 8 +++++--- net.py | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/mknet b/mknet index 9081aeb..34608a3 100755 --- a/mknet +++ b/mknet @@ -87,19 +87,21 @@ class Bandwidth: class LinkInfo: - def __init__(self, bandwidth, latency, jitter = None, offset = None, **kwargs): + def __init__(self, bandwidth, latency, jitter = None, offset = None, limit = None, **kwargs): self.bandwidth = Bandwidth(bandwidth) self.latency = Latency(latency, offset) self.jitter = Latency(jitter or 0) + self.limit = limit def __eq__(self, o): return (isinstance(o, LinkInfo) and o.bandwidth == self.bandwidth and o.latency == self.latency and - o.jitter == self.jitter) + o.jitter == self.jitter and + o.limit == self.limit) def __str__(self): - return f'LinkInfo{{bw: {self.bandwidth}, latency: {self.latency}, jitter: {self.jitter}}}' + return f'LinkInfo{{bw: {self.bandwidth}, latency: {self.latency}, jitter: {self.jitter}, limit: {self.limit}}}' class Server: def __init__(self, name, link): diff --git a/net.py b/net.py index 8d0a248..8e8725b 100644 --- a/net.py +++ b/net.py @@ -66,4 +66,6 @@ def tc(namespace, name, link, invert=False): options += ["rate", str(link.bandwidth.down)] else: options += ["rate", str(link.bandwidth.up)] + if link.limit: + options += ["limit", str(link.limit)] run_netns("exec", namespace, "tc", "qdisc", "add", "dev", name, "root", "netem", *options)