aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Dufour <quentin@deuxfleurs.fr>2022-09-19 18:02:33 +0200
committerQuentin Dufour <quentin@deuxfleurs.fr>2022-09-19 18:02:33 +0200
commit0664442648a8fd3627fc3d72c3bb33155612aadf (patch)
tree63ad37129cf8bac0b1261e5dfc804a320ba39e66
parent549c548e7cc8f99da37b931b6aa991093f097fd7 (diff)
downloadmknet-0664442648a8fd3627fc3d72c3bb33155612aadf.tar.gz
mknet-0664442648a8fd3627fc3d72c3bb33155612aadf.zip
Add support for txqueuelen
-rwxr-xr-xmknet8
-rw-r--r--net.py3
-rw-r--r--topo/1mbps.yml1
-rw-r--r--topo/with-vdsl.yml3
4 files changed, 12 insertions, 3 deletions
diff --git a/mknet b/mknet
index 60f7f74..cc0ad33 100755
--- a/mknet
+++ b/mknet
@@ -87,21 +87,23 @@ class Bandwidth:
class LinkInfo:
- def __init__(self, bandwidth, latency, jitter = None, offset = None, limit = None, **kwargs):
+ def __init__(self, bandwidth, latency, jitter = None, offset = None, limit = None, txqueuelen = None, **kwargs):
self.bandwidth = Bandwidth(bandwidth)
self.latency = Latency(latency, offset)
self.jitter = Latency(jitter or 0)
self.limit = limit
+ self.txqueuelen = txqueuelen
def __eq__(self, o):
return (isinstance(o, LinkInfo) and
o.bandwidth == self.bandwidth and
o.latency == self.latency and
o.jitter == self.jitter and
- o.limit == self.limit)
+ o.limit == self.limit and
+ o.txqueuelen == self.txqueuelen)
def __str__(self):
- return f'LinkInfo{{bw: {self.bandwidth}, latency: {self.latency}, jitter: {self.jitter}, limit: {self.limit}}}'
+ return f'LinkInfo{{bw: {self.bandwidth}, latency: {self.latency}, jitter: {self.jitter}, limit: {self.limit}, txqueuelen: {self.txqueuelen}}}'
class Server:
def __init__(self, name, link):
diff --git a/net.py b/net.py
index f78f7a6..d1fe8e3 100644
--- a/net.py
+++ b/net.py
@@ -56,6 +56,9 @@ def create_veth(name1, ns1, name2, ns2, ip = None, subnet=0, link=None):
run_netns("exec", ns2, "ip", "link", "set", "dev", name2, "up")
if link:
+ if link.txqueuelen:
+ run_netns("exec", ns1, "ip", "link", "set", "dev", name1, "txqueuelen", str(link.txqueuelen))
+ run_netns("exec", ns2, "ip", "link", "set", "dev", name2, "txqueuelen", str(link.txqueuelen))
tc(ns1, name1, link)
tc(ns2, name2, link, True)
diff --git a/topo/1mbps.yml b/topo/1mbps.yml
index 75fdfc2..0508a18 100644
--- a/topo/1mbps.yml
+++ b/topo/1mbps.yml
@@ -2,6 +2,7 @@ links:
- &slow
bandwidth: 1M
latency: 500us
+ txqueuelen: 10
- &1000
bandwidth: 1000M
latency: 100us
diff --git a/topo/with-vdsl.yml b/topo/with-vdsl.yml
index 87d167b..a676675 100644
--- a/topo/with-vdsl.yml
+++ b/topo/with-vdsl.yml
@@ -5,16 +5,19 @@ links:
- &1000
bandwidth: 1000M
latency: 100us
+ txqueuelen: 10000
- &vdsl
bandwidth:
up: 3M
down: 55M
latency: 50ms
jitter: 10ms
+ txqueuelen: 100
- &fiber
bandwidth: 400M
latency: 10ms
jitter: 3ms
+ txqueuelen: 1000
zones:
- &dc1