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!
===Large receive offload=== '''Large receive offload''' ('''LRO''') is a technique for increasing inbound [[throughput]] of high-[[bandwidth (computing)|bandwidth]] network connections by reducing [[central processing unit]] (CPU) overhead. It works by aggregating multiple incoming [[packet (information technology)|packet]]s from a single [[stream (computing)|stream]] into a larger buffer before they are passed higher up the networking stack, thus reducing the number of packets that have to be processed. [[Linux]] implementations generally use LRO in conjunction with the [[New API]] (NAPI) to also reduce the number of [[interrupt]]s. According to benchmarks, even implementing this technique entirely in software can increase network performance significantly.<ref name=lwn-lro/><ref name=menon /><ref>{{cite mailing list |author= Andrew Gallatin |title= lro: Generic Large Receive Offload for TCP traffic |mailing-list= linux-kernel |date= 2007-07-25 |url= https://lkml.org/lkml/2007/7/25/313 |access-date= 2007-08-22 }}</ref> {{As of | 2007 | April}}, the [[Linux kernel]] supports LRO for [[Transmission Control Protocol|TCP]] in software only. [[FreeBSD]] 8 supports LRO in hardware on adapters that support it.<ref>{{cite web|url=http://www.freebsd.org/cgi/man.cgi?cxgb|title=Cxgb|website=Freebsd.org|access-date=12 July 2018}}</ref><ref>{{cite web|url=http://www.freebsd.org/cgi/man.cgi?mxge|title=Mxge|website=Freebsd.org|access-date=12 July 2018}}</ref><ref>{{cite web|url=http://www.freebsd.org/cgi/man.cgi?nxge|title=Nxge|website=Freebsd.org|access-date=12 July 2018}}</ref> <ref name=vmxnet-lro>{{cite news | date= 2011-07-04 |publisher= [[VMware]] | title= Poor TCP performance can occur in Linux virtual machines with LRO enabled |url= http://kb.vmware.com/kb/1027511 |access-date= 2011-08-17 }}</ref> LRO should not operate on machines acting as routers, as it breaks the [[end-to-end principle]] and can significantly impact performance.<ref>{{cite web|url= https://web.archive.org/web/20191124112839/http://downloadmirror.intel.com/14687/eng/readme.txt|title= Linux* Base Driver for the Intel(R) Ethernet 10 Gigabit PCI Express Family of Adapters|publisher= [[Intel Corporation]]|date= 2013-02-12|access-date= 2013-04-24}}</ref><ref>{{cite web|url= https://bugzilla.redhat.com/show_bug.cgi?id=772317|title= Disable LRO for all NICs that have LRO enabled|publisher= [[Red Hat, Inc.]]|date= 2013-01-10|access-date= 2013-04-24}}</ref> ====Generic receive offload==== '''Generic receive offload''' ('''GRO''') implements a generalised LRO in software that isn't restricted to TCP/[[IPv4]] or have the issues created by LRO.<ref>{{cite web|url=https://lwn.net/Articles/358910/|title=JLS2009: Generic receive offload|website=[[lwn.net]]}}</ref><ref>{{cite conference | last1 = Huang| first1 = Shu| last2 = Baldine| first2 = Ilia| title = Performance Evaluation of 10GE NICs with SR-IOV Support: I/O Virtualization and network Stack Optimizations| editor1-last = Schmitt| editor1-first = Jens B. | conference = Measurement, Modeling, and Evaluation of Computing Systems and Dependability and Fault Tolerance: 16th International GI/ITG Conference, MMB & DFT 2012 |location=Kaiserslautern, Germany |date=March 2012 | url = https://books.google.com/books?id=C3wQBwAAQBAJ| series = Lecture Notes in Computer Science | volume = 7201| publisher = Springer| publication-date = 2012| page = 198| isbn = 9783642285400| access-date = 2016-10-11| quote = Large-Receive-Offload (LRO) reduces the per-packet processing overhead by aggregating smaller packets into larger ones and passing them up to the network stack. Generic-Receive-Offload (GRO) provides a generalized software version of LRO [...].}} </ref>
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)