
Nokia, ARM, Enea craft new TCP/IP stack for the cloud - timthorn
http://www.theregister.co.uk/2015/12/08/nokia_arm_enea_craft_tcpip_stack_for_the_cloud/
======
rzzzt
There's a link to the actual project in the article; the technical overview
page gives a reasonable summary of the components [1]. Looks like it relies on
another, lower level API, called OpenDataPlane [2].

[1]
[http://www.openfastpath.org/index.php/service/technicaloverv...](http://www.openfastpath.org/index.php/service/technicaloverview/)

[2] [http://www.opendataplane.org/about/](http://www.opendataplane.org/about/)

------
walterbell
_> They say the stack is optimised for OpenDataPlane (ODP) programming
interfaces. This will let OpenFastPath take advantage of acceleration in
systems-on-a-chip that support ODP, and make the protocol programmable via the
ODP environment._

Are those SoCs optimised for line rate packet processing / DPI?

~~~
virtuallynathan
There are some, stuff like the Freescale LS2085A, Cavium ARM chips, etc. They
have networking / ODP offload capabilities.

------
mschuster91
Hmm. Shouldn't the data packets arrive in kernel space at the beginning (in
the HW driver, or if the driver is implemented in userspace, the PCIe-bus
driver in the kernel) - thus making at least one context switch to userspace
(with copying the packet, possibly) neccessary?

A full-kernel TCP/IP stack should not need to leave kernelspace or copy stuff
around, except when passing control to the userland application.

~~~
joshAg
The idea is to allow user space direct access to the necessary buffers, so
there's no user/system copying or context switching.

------
api
Andrew Tenenbaum, thou art avenged!

Seeing a lot of this these days.

~~~
pjmlp
He is already avenged, as the majority of real time OS and embedded systems
use micro-kernels.

------
jedisct1
What does "for the cloud" even mean? Previous TCP/IP stacks were not able to
connect to someone else's computer?

~~~
cgh
"Better suited for the cloud" would probably be better. It looks like it's
meant to work with OpenDataPlane. In general, it's another piece in the puzzle
of providing heterogenous compute resources without a reliance on a specific
kernel or operating system.

