Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
?
EE Times-Asia > Embedded
?
?
Embedded??

Multi-core networking in Linux user space with zero overhead

Posted: 02 Jul 2012 ?? ?Print Version ?Bookmark and Share

Keywords:accelerators? application software? Partitioning?

Packet processing internally uses whatever hardware mechanisms are available to receive and send packets, hiding these details from application modules. The execution engine handles initialization and termination of the instance, including release of resources back to Linux.

The engine also provides a whole host of utilities such as timers, locking mechanisms, RCUs, buffers management, statistics counters and so on that leverage SoC capabilities, but can be used by applications in a hardware agnostic way.

The packet execution engine drives the network service layer. This layer provides essential support for layer 2 & layer 3 packet processing, including neighbor table learning, bridging, and IP forwarding with fragmentation/re-assembly.

The network databases such as routing, ARP and interface databases are synced with kernel databases, so that routing and bridging control plane (routing protocols, spanning trees etc.) can continue to work as usual. Applications may register hooks with the network service layer to intercept and process packets, similar to netfilter hooks in Linux Kernel.

To access SoC components like accelerators, a driver layer exists between the packet engine and the network services layer. This layer provides the capability to work with the hardware directly from user-space through memory mapped configuration and operational address spaces. These components thus represent user-space versions of hardware drivers.

Above the network services layer, applications may register with the L4 services layer. This layer supports session/flow management commonly required for stateful networking applications such as firewalls, QoS functions, intrusion detection, VPNs and so on.

The Session manager manages these flows, allows application modules to store module-specific state in these flows, and orchestrates packet flow through the modules. The session manager also provides support for network address translation and proper sequencing of TCP packets. Application modules may work with session manager registered hooks, to receive, process and send out packets without dealing with hardware specifics.

Conclusions
The required number of VortiQa PSP instances, hardware and resource configurations, and execution modes are all controlled through policy files. Depending on the specific hardware platform and application requirements, policy files may be created to manage execution under the VortiQa PSP environment.

Applications do not have to change when moving from one hardware platform to another, or to another of the same family. Either the VortiQa PSP code underneath, its policy files, or both would change to facilitate this migration.

VortiQa PSP provides an efficient operating environment to many classes of networking applications. The framework is highly optimized for performance, and leverages Freescale QorIQ processor family and provides the software application developer an easy to use performance optimized framework in Linux user space.

About the authors
Subramanyam Dronamraju is responsible for Software Business Development with Freescale Semiconductor. He has more than 22 years of experience in the software industry and holds degrees in electrical engineering and management.

Srini Addepalli is Chief Software Architect at Freescale Semiconductor and previously served at HP, NEC and Holontech. He has over 20 years of experience mainly in networking and security technologies.

John Rekesh is a Software Architect with Freescale and holds an MS degree from Indian Institute of Technology, Madras. He has over 20 years of experience in the software industry.

To download the PDF version of this article, click here.


?First Page?Previous Page 1???2???3???4???5???6



Article Comments - Multi-core networking in Linux user ...
Comments:??
*? You can enter [0] more charecters.
*Verify code:
?
?
Webinars

Seminars

Visit Asia Webinars to learn about the latest in technology and get practical design tips.

?
?
Back to Top