diff options
-rwxr-xr-x | mknet | 8 | ||||
-rw-r--r-- | net.py | 3 | ||||
-rw-r--r-- | topo/1mbps.yml | 1 | ||||
-rw-r--r-- | topo/with-vdsl.yml | 3 |
4 files changed, 12 insertions, 3 deletions
@@ -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): @@ -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 |