Add support for txqueuelen

This commit is contained in:
Quentin 2022-09-19 18:02:33 +02:00
parent 549c548e7c
commit 0664442648
Signed by: quentin
GPG key ID: E9602264D639FF68
4 changed files with 12 additions and 3 deletions

8
mknet
View file

@ -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):

3
net.py
View file

@ -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)

View file

@ -2,6 +2,7 @@ links:
- &slow
bandwidth: 1M
latency: 500us
txqueuelen: 10
- &1000
bandwidth: 1000M
latency: 100us

View file

@ -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