Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
TCP offload engine
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Support in Linux== Unlike other operating systems, such as FreeBSD, the Linux kernel does not include support for TOE (not to be confused with other types of network offload).<ref>[https://lwn.net/Articles/148697/ "Linux and TCP offload engines"], August 22, 2005, LWN.net</ref> While there are patches from the hardware manufacturers such as [[Chelsio]] or [[Qlogic]] that add TOE support, the Linux kernel developers are opposed to this technology for several reasons:<ref>{{citation | url = https://wiki.linuxfoundation.org/networking/toe | title = Networking:TOE | publisher = Linux Foundation}}.</ref> * ''Security'' β because TOE is implemented in hardware, patches must be applied to the TOE [[firmware]], instead of just software, to address any security vulnerabilities found in a particular TOE implementation. This is further compounded by the newness and vendor-specificity of this hardware, as compared to a well tested TCP/IP stack as is found in an operating system that does not use TOE. * ''Limitations'' of hardware β because connections are buffered and processed on the TOE chip, resource starvation can more easily occur as compared to the generous CPU and memory available to the operating system. * ''Complexity'' β TOE breaks the assumption that kernels make about having access to all resources at all times β details such as memory used by open connections are not available with TOE. TOE also requires very large changes to a networking stack in order to be supported properly, and even when that is done, features like [[quality of service]] and [[packet filtering]] might not work. * ''Proprietary'' β TOE is implemented differently by each hardware vendor. This means more code must be rewritten to deal with the various TOE implementations, at a cost of the aforementioned complexity and, possibly, security. Furthermore, TOE firmware cannot be easily modified since it is closed-source. * ''Obsolescence'' β Each TOE NIC has a limited lifetime of usefulness, because system hardware rapidly catches up to TOE performance levels, and eventually exceeds TOE performance levels.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)