RIOT TCP Stack

Hello,

I am new to RIOT OS, and I am interested in working with the TCP stack. Looking at the release notes, it seems that ever since the 2015.09 release, when the gnrc networking stack was introduced, the TCP stack has been removed from the RIOT OS kernel and is being refactored.

I was curious to learn what kinds of changes to the TCP stack that developers have been working on. I also want to learn about whether there are going to be new features and functionality added to the TCP stack, or whether the refactoring in progress is limited to a simple rewrite without changing functionality.

So I am reaching out to the developer mailing list to learn about the developments in progress on the TCP stack for RIOT OS.

Sam Kumar

Hello Sam, You are right GNRC replaced the old stack (which was also developed as a UDP stack first), since the old one was very buggy and not really manageable. The TCP component is currently under development by Simon Brunner at [1]. Since it is developed as part of a thesis which IIRC encompasses Multipath-TCP, it might be that it is added as a feature. I think it’s best if you ask around in the PR, if you are interested in the development of this particular module. There is currently no effort to implement a pure TCP stack however (gnrc_tcp will just be the TCP layer for the GNRC stack), mainly because our current interest was up until now into WPANs (where TCP isn’t feasible for the most part). However, I got my port of lwIP [2] working yesterday. If you are in dire need for TCP you can try it out. Be aware however, that there is no TCP support for the RIOT conn interface yet (and because of that no support for the posix_socket module). You can however try to use TCP with lwIP’s own API (see their documentation for that). Never tried it, but in theory it should work.

Regards, Martine

[1] https://github.com/RIOT-OS/RIOT/pull/2827 [2] https://github.com/RIOT-OS/RIOT/pull/3551