summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/conf_mode/interfaces-ethernet.py5
-rw-r--r--src/tests/test_ethtool.py33
-rw-r--r--[-rwxr-xr-x]src/tests/test_find_device_file.py0
-rw-r--r--src/tests/test_util.py4
4 files changed, 38 insertions, 4 deletions
diff --git a/src/conf_mode/interfaces-ethernet.py b/src/conf_mode/interfaces-ethernet.py
index e82a3e0f1..378f400b8 100755
--- a/src/conf_mode/interfaces-ethernet.py
+++ b/src/conf_mode/interfaces-ethernet.py
@@ -91,7 +91,12 @@ def verify(ethernet):
ethtool = Ethtool(ifname)
if 'ring_buffer' in ethernet:
max_rx = ethtool.get_rx_buffer()
+ if not max_rx:
+ raise ConfigError('Driver does not support RX ring-buffer configuration!')
+
max_tx = ethtool.get_tx_buffer()
+ if not max_tx:
+ raise ConfigError('Driver does not support TX ring-buffer configuration!')
rx = dict_search('ring_buffer.rx', ethernet)
if rx and int(rx) > int(max_rx):
diff --git a/src/tests/test_ethtool.py b/src/tests/test_ethtool.py
new file mode 100644
index 000000000..bc53b938a
--- /dev/null
+++ b/src/tests/test_ethtool.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2021 VyOS maintainers and contributors
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 or later as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+from unittest import TestCase
+from vyos.ethtool import Ethtool
+
+class TestVyOSEthtool(TestCase):
+ def test_ring_buffer(self):
+ tmp = Ethtool('lo')
+ self.assertEqual(tmp.get_rx_buffer(), None)
+ self.assertEqual(tmp.get_tx_buffer(), None)
+
+ def test_fixed_settings(self):
+ tmp = Ethtool('lo')
+ self.assertTrue(tmp.is_fixed_lro())
+ self.assertFalse(tmp.is_fixed_gro())
+ self.assertFalse(tmp.is_fixed_gso())
+ self.assertFalse(tmp.is_fixed_sg())
+
+
diff --git a/src/tests/test_find_device_file.py b/src/tests/test_find_device_file.py
index 43c80dc76..43c80dc76 100755..100644
--- a/src/tests/test_find_device_file.py
+++ b/src/tests/test_find_device_file.py
diff --git a/src/tests/test_util.py b/src/tests/test_util.py
index f7405cbde..22bc085c5 100644
--- a/src/tests/test_util.py
+++ b/src/tests/test_util.py
@@ -17,11 +17,7 @@
from unittest import TestCase
from vyos.util import mangle_dict_keys
-
class TestVyOSUtil(TestCase):
- def setUp(self):
- pass
-
def test_key_mangline(self):
data = {"foo-bar": {"baz-quux": None}}
expected_data = {"foo_bar": {"baz_quux": None}}