Network Interface Controller Offloading in Linux
Akcelerace síťových karet v Linuxu
diploma thesis (DEFENDED)

View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/99083Identifiers
Study Information System: 200230
Collections
- Kvalifikační práce [11325]
Author
Advisor
Referee
Bulej, Lubomír
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software Systems
Department
Department of Distributed and Dependable Systems
Date of defense
12. 6. 2018
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
hardwarová akcelerace síť Linux Traffic ControlKeywords (English)
hardware offloading network Linux Traffic ControlModerní síťové kontrolery umožňují přesunout dílčí práci spojenou se zpracováním paketů do hard- ware za účelem zvýšení výkonu. V současnosti se v Linuxovém jádře některé pokročilé schopnosti kontrolerů využívají pro akceleraci subsystému Traffic Control. Jelikož tento subsystém byl vytvořen za zcela jiným účelem, jeho využití pro akcelerované zpracování paketů je nepraktické a nespolehlivé. Navíc v současném stavu není řešení zdaleka schopné využít všechny schopnosti kontrolerů. Informace o skutečných schopnostech kontrolerů nejsou dobře dostupné. Tato práce přistupuje k problému z jiné strany. Prozkoumali jsme pět vysoce výkonných síťových kontrolerů a podrobně zmapovali jejich schopnosti klasifikace a zpracování paketů. Spolu s předpokla- dem pro budoucí vývoj jsme identifikovali a zobecnili společné rysy. Z těchto informací jsme navrhli nový subsystém Linuxového jádra, který lépe slouží účelu hardwarové akcelerace. Model navrhovaného subsystému je dostatečně flexibilní, aby pokryl pokročilé schopnosti kontrolerů, ale zároveň dostatečně striktní, aby umožnil hardwarovou akceleraci a neopakoval problémy, kterými trpí akcelerace obecného subsystému Traffic Control.
Modern network interface controllers allow the host to offload packet processing to hardware in order to improve performance. At the present time, the advanced features are utilized in the Linux kernel by offloading the Traffic Control subsystem. Since this subsystem has been designed for a completely different purpose, its usage for hardware offloading is impractical and unreliable. Furthermore, in its current state the subsystem is not capable of utilizing all hardware features, which are often poorly documented. The presented work adopts a different approach to the problem. Five high-end controllers and their packet-processing pipelines were examined in detail. Accounting for their projected future development, common traits and features were identified. The researched information was used to draft a proposal for a new Linux subsystem, more compatible with hardware offloading than the current solution. The proposed subsystem defines a sufficiently descriptive interface to utilize the majority of hardware-offloaded features while avoiding common problems caused by excessively generalized approach of Traffic Control.