Hi Gabor, We have two ported TCP/IP stacks: (1) A port of liblwip-1.4.1: https://github.com/seL4/camkes-vm/tree/master/liblwip which is used generally when we need a network implementation. It's used for benchmarking and in the x86 VMM implementation. My understanding is that the library there is self-contained, and that you have to write the plumbing and gluecode to actually link it to your environment manually. So things like providing virtual memory, page mapping and unmapping, a malloc() implementation etc, are left up to the person attempting to use the library. I'm not very familiary with the VM repositories, but from a quick skim I can probably point you at the following bits to use as a starting point: * https://github.com/seL4/camkes-vm/tree/master/templates Some of these templates look like the glue code that links liblwip to the CAmkES environment. Specifically, the ones of interest for liblwip seem to be: ** seL4ProdCon-from.template.c ** seL4ProdCon-to.template.c ** seL4UDPRecv-from.template.c ** seL4UDPRecv-to.template.c ** seL4UDPSend-from.template.c ** seL4UDPSend-to.template.c ** seL4VMNet.template.c * https://github.com/seL4/camkes-vm/tree/master/components/Echo This looks like a sample CAmkES component that uses liblwip * https://github.com/seL4/camkes-vm/tree/master/components/UDPServer This looks like another sample CAmkES component that also uses liblwip. It appears that only glue code for UDP has ever been written, and not any for TCP -- don't take my word as gospel though, I'm not familiar with these repos. (2) A recent port of picoTCP: https://github.com/seL4/util_libs/tree/master/libpicotcp , but only the build system glue and configuration header for building it is included there, and we haven't yet pushed out the library itself. The rest of the gluecode for binding the picoTCP to an environment is also not yet pushed out as far as I can tell. Sorry, and I hope this gives you something to start with, -- Kofi Doku Atuah Kernel engineer DATA61 | CSIRO
Hi,
I would like to use network (TCP) on seL4, I know that I should probably be using lwip, however I have no idea how to properly initialize it (this is the first time I'm working in such a hardware close environment), so I need some help or some kind of example, but I don't know where to look. I'm working on ia32.
I also tried to run the rumprun hello world, the compillation finishes, however I get the following output when I try to run it: https://pastebin.com/MiMB0N62
Regards, Gábor Székely