diff options
author | Christian Poessinger <christian@poessinger.com> | 2020-12-23 14:00:05 +0100 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2020-12-23 14:00:05 +0100 |
commit | 24cce893acf0a5f62230c7f12f07e569b9233db0 (patch) | |
tree | 05515d13465c1ceb5928686b1bdeca910114537f /src | |
parent | b95e5d120fb13b7ade66db7523b56e3f55bf6439 (diff) | |
download | vyos-1x-24cce893acf0a5f62230c7f12f07e569b9233db0.tar.gz vyos-1x-24cce893acf0a5f62230c7f12f07e569b9233db0.zip |
xdp: T2666: require at least 2 TX queues
Diffstat (limited to 'src')
-rwxr-xr-x | src/conf_mode/interfaces-ethernet.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/conf_mode/interfaces-ethernet.py b/src/conf_mode/interfaces-ethernet.py index 1f622c003..18ee85178 100755 --- a/src/conf_mode/interfaces-ethernet.py +++ b/src/conf_mode/interfaces-ethernet.py @@ -16,6 +16,7 @@ import os +from glob import glob from sys import exit from vyos.config import Config @@ -28,6 +29,7 @@ from vyos.configverify import verify_mtu_ipv6 from vyos.configverify import verify_vlan_config from vyos.configverify import verify_vrf from vyos.ifconfig import EthernetIf +from vyos.util import dict_search from vyos import ConfigError from vyos import airbag airbag.enable() @@ -66,6 +68,12 @@ def verify(ethernet): verify_address(ethernet) verify_vrf(ethernet) + # XDP requires multiple TX queues + if dict_search('offload.xdp', ethernet) != None: + queues = glob('/sys/class/net/{ifname}/queues/tx-*'.format(**ethernet)) + if len(queues) < 2: + raise ConfigError('XDP requires additional TX queues, too few available!') + if {'is_bond_member', 'mac'} <= set(ethernet): print(f'WARNING: changing mac address "{mac}" will be ignored as "{ifname}" ' f'is a member of bond "{is_bond_member}"'.format(**ethernet)) |