summaryrefslogtreecommitdiff
path: root/src/migration-scripts/interfaces/17-to-18
diff options
context:
space:
mode:
Diffstat (limited to 'src/migration-scripts/interfaces/17-to-18')
-rw-r--r--src/migration-scripts/interfaces/17-to-1852
1 files changed, 52 insertions, 0 deletions
diff --git a/src/migration-scripts/interfaces/17-to-18 b/src/migration-scripts/interfaces/17-to-18
new file mode 100644
index 0000000..f45695a
--- /dev/null
+++ b/src/migration-scripts/interfaces/17-to-18
@@ -0,0 +1,52 @@
+# Copyright 2020-2024 VyOS maintainers and contributors <maintainers@vyos.io>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this library. If not, see <http://www.gnu.org/licenses/>.
+
+# T3043: Move "system wifi-regulatory-domain" to indicidual wireless interface.
+# Country Code will be migratred from upper to lower case.
+# T3140: Relax ethernet interface offload-options
+
+from vyos.configtree import ConfigTree
+
+def migrate(config: ConfigTree) -> None:
+ # T3140: Cleanup ethernet offload-options, remove on/off value and use
+ # valueless nodes instead.
+ eth_base = ['interfaces', 'ethernet']
+ if config.exists(eth_base):
+ for eth in config.list_nodes(eth_base):
+ offload = eth_base + [eth, 'offload-options']
+ if config.exists(offload):
+ mapping = {
+ 'generic-receive' : 'gro',
+ 'generic-segmentation' : 'gso',
+ 'scatter-gather' : 'sg',
+ 'tcp-segmentation' : 'tso',
+ 'udp-fragmentation' : 'ufo',
+ }
+ for k, v in mapping.items():
+ if config.exists(offload + [k]):
+ tmp = config.return_value(offload + [k])
+ if tmp == 'on':
+ config.set(eth_base + [eth, 'offload', v])
+
+ config.delete(offload)
+
+ # T3043: WIFI country-code should be lower-case
+ wifi_base = ['interfaces', 'wireless']
+ if config.exists(wifi_base):
+ for wifi in config.list_nodes(wifi_base):
+ ccode = wifi_base + [wifi, 'country-code']
+ if config.exists(ccode):
+ tmp = config.return_value(ccode)
+ config.set(ccode, value=tmp.lower(), replace=True)