summaryrefslogtreecommitdiff
path: root/src/system
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-08-30 21:29:22 +0200
committerChristian Poessinger <christian@poessinger.com>2021-08-30 21:45:25 +0200
commitc1b298e5ec11313156eb3a9f871fe4f3cd4cbd64 (patch)
tree7b2aedfbe10b8722842b69582239163a14c34148 /src/system
parentf731a710813d354d570494227a2c2eaa7c9caa88 (diff)
downloadvyos-1x-c1b298e5ec11313156eb3a9f871fe4f3cd4cbd64.tar.gz
vyos-1x-c1b298e5ec11313156eb3a9f871fe4f3cd4cbd64.zip
ethernet: T3619: fix VyOS 1.2 -> 1.3 performance degradation
An analysis of the code base from VyOS 1.2 -> 1.3 -> 1.4 revealed the following "root-cause" VyOS 1.2 uses the "old" node.def file format for: * Generic Segmentation Offloading * Generic Receive Offloading So if any of the above settings is available on the configuration CLI, the node.def file will be executed - this is how it works. By default, this CLI option is not enabled in VyOS 1.2 - but the Linux Kernel enables offloading "under the hood" by default for GRO, GSO... which will boost the performance for users magically. With the rewrite in VyOS 1.3 of all the interface related code T1579, and especially T1637 this was moved to a new approach. There is now only one handler script which is called whenever a user changes something under the interfaces ethernet tree. The Full CLI configuration is assembled by get_interface_dict() - a wrapper for get_config_dict() which abstracts and works for all of our interface types - single source design. The problem now comes into play when the gathered configuration is actually written to the hardware, as there is no GSO, GRO or foo-offloading setting defined - we behave as instructed and disable the offloading. So the real bug originates from VyOS 1.2 and the old Vyatta codebase, but the recent XML Python rewrites brought that one up to light. Solution: A configuration migration script will be provided starting with VyOS 1.3 which will read in the CLI configuration of the ethernet interfaces and if not enabled, will query the adapter if offloading is supported at all, and if so, will enable the CLI nodes. One might say that this will "blow" the CLI configuration but it only represents the truth - which was masked in VyOS 1.2. (cherry picked from commit a515212f4efb08846df04405f31a828edcd63552)
Diffstat (limited to 'src/system')
0 files changed, 0 insertions, 0 deletions