Fwd: High Performance P4 Software Switch - Week 1

Yuri Iozzelli y.iozzelli at gmail.com
Mon May 30 08:40:17 UTC 2016


Hi

Project summary
========================
In this project I would like to implement a modified version of the
reference p4 (http://p4.org) switch on FreeBSD, which uses netmap for
faster packet I/O: the goal would be reaching the 1 Mpps order-of-magnitude
speed (current reference implementation is limited to 150 Kpps for a simple
l2 switch with 2 hosts).


Week 1
==============================================================
All the dependencies are available on FreeBSD, but the software does not
compile due to the lack of support for non-POD thread_local variables in
clang (only on freeBSD, in linux it works). Relevant bug:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192320#c2

I looked at glibc implementation (explained here:
https://sourceware.org/glibc/wiki/Destructor%20support%20for%20thread_local%20variables),
and decided that for my case I don't need to implement support for dynamic
libraries unloading, but just make sure that destructors are called at
thread exit.

The code now compiles, but it crashes at runtime. I am not sure it is
because of my implementation of this function, because when the crash
occurs no thread has exited yet.

I also fixed a bug in the original code (pull request:
https://github.com/p4lang/behavioral-model/pull/133).

Links:
  Wiki page:
https://wiki.freebsd.org/SummerOfCode2016/HighPerformanceP4SoftwareSwitch#preview
 Code (gsoc-* brances):
https://github.com/zarghul/behavioral-model

Regards,
Yuri Iozzelli


More information about the soc-status mailing list