forked from Deuxfleurs/mknet
add support for limiting queue len
This commit is contained in:
parent
5a8be6fc73
commit
30643ca50d
2 changed files with 7 additions and 3 deletions
8
mknet
8
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):
|
||||
|
|
2
net.py
2
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)
|
||||
|
|
Loading…
Reference in a new issue