Hello all, sorry for the late report. Here is the progress since my last email:

During Week 3 I had problems with my computer. Turns out it was a power supply issue, and it has been fixed. All code and documents were backed up and readily available, so work wasn't interrupted that week. I had to use a desktop in my research group laboratory for a while... On the plus side, I found it has a 10Gb, netmap/DPDK enabled NIC -- this could be useful later on for testing performance.

I have also requested academic access to the QNX networking source code, with the help of the research group and our responsible professor. We were actually redirected to a QNX representative in Brazil, which requested additional information. No further response was given, but meanwhile I can at least access the manuals.

The lightweight IP stack is not really optimized yet, but it already works. Since I obtained access to QNX documentation, I have been reading more and more about networking stack architecture and performance / scalability improvements. This is inspiring from an academic point of view, but its needed to evaluate what fits into LwIP. Working on the IP layer has allowed me to explore and leverage different, higher level parts of the OpenDataPlane API than before (the first milestone mostly involved raw I/O and platform-specific behavior). For example, I have recently been using the Timer API.

This week I plan to finish the IP layer, then focus on running at least a sample application to demonstrate functionality. I also need to open the Github repository for the project; as soon as I get the submodule / remote referencing right I will post the URL.

---
Ricardo de Freitas Gesuatto


Em Segunda-feira, 2 de Junho de 2014 11:56, Ricardo de Freitas Gesuatto <ricard_brasil@yahoo.com.br> escreveu:


Hello all,

Here is the report for the first two weeks of the "Lightweight IP Stack on top of OpenDataPlane" project. Fortunately no blocking issues were found for now, and I believe the work is progressing well (on schedule). I have written the progress on a per-week basis, and included the current plans for this week as well.


=== Week 1 Progress ===
Worked Hours: 44

-> Set up the development environment for the project, including necessary dependencies and documentation / testing tools. 

-> Started porting LwIP from a bottom up approach, using the ODP API as adequate. 

-> Started porting the sys_arch / netif layer to use ODP as a platform. This layer abstracts low level I/O operations and other platform-specific behavior from the userspace IP stack itself. I believe ODP fits well in terms of architecture and functionality here. It is important to note that the linux-generic implementation is used as a basis for this project. 


=== Week 2 Progress ===
Worked Hours: 40

-> Finished porting the LwIP sys_arch / netif layers. Now all platform-specific behavior and low-level I/O operations is based on OpenDataPlane; for now only the linux-generic implementation was considered, but after this initial work other ports should be relatively straightforward.

-> Fixed (hopefuly) a buffer usage issue that blocked me from testing what was already implemented. It was actually a programming mistake on my part that went unnoticed, so I did not report it earlier.

-> A set of LwIP examples were tested using ODP as a platform, to test current functionality.

-> Generated a call-graph diagram from LwIP. This should assist the porting and optimization of the next layers in the stack.


=== Plans for Week 3 ===

-> Start porting the IP Layer to use ODP platform-independent features (Milestone 2 of the project proposal). Now the fun part starts :)

-> Post available project information/documentation (both past and current) to the gsoc.linaro.org wiki, organized into sub-sections. [High priority]

-> Create a git repository and make available the first version of LwIP-ODP on it.


=== Issues ===

-> During the Community Bonding phase, it was suggested that I could study the QNX networking code and see how it applies to this project and ODP in general. However, it seems the QNX source code is not really open, or at least not easily acessible [1]. I really don't know how to proceed on this front, or how to fit it in the GSOC project scope...  [Non-blocker; low priority?]


[1] http://community.qnx.com/sf/wiki/do/viewPage/projects.core_os/wiki/Os_source_guide
[2] http://community.qnx.com/sf/wiki/do/viewPage/projects.community/wiki/UpdatedQNXSourceAccessPolicyFAQ


---
Ricardo de Freitas Gesuatto


_______________________________________________
linaro-gsoc mailing list
linaro-gsoc@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-gsoc