P4-vSwitch / vagrant

PISCES Simulation Environment
30 stars 15 forks source link

PISCES on Raspberry Pi3 #14

Open TaeyunKim123 opened 5 years ago

TaeyunKim123 commented 5 years ago

Hello, this is Taeyun Kim, studying for a master's degree at Korea University.

I have a question about PISCES.

In our study, We want to use Raspberry Pi 3 as a P4 Switch.

How can I put the PISCES on Raspberry Pi 3?

Could you tell us any advice or references?

Thanks.

Taeyun Kim.

blp commented 5 years ago

I don't know why it would be different from loading it on anything else. What problems do you see?

Johnao commented 5 years ago

Hello,

I decided to post my message here because I thought it could help Taeyun Kim.

I'm also studying for a master's degree (in France) and had the same goal as you, but I encountered several issues.

I know PISCES uses DPDK 2.1 datapath, but I found that in this specific version, arm64 architectures weren't yet supported: they are only supported since DPDK 2.2.

So I tried to use the most recent version of DPDK at the time, DPDK 19.0.2. Unfortunately, I still had some compilation problems, maybe related to the linux kernel/headers used by the Raspbian OS I used now that I think about it. Maybe I should try and compile it from a Fedora 30 for instance, I know that this OS supports ARM architectures (didn't try it).

What I did instead is that I tried to cross-compile it from a PC under a Fedora 29 OS (x86_64 CPU architecture) for a ARM64 architecture following the tutorial provided by the DPDK doc. It didn't work too as I had two kernel modules to compile (rte_kni and igb_uio) but since they have to be compiled by the same linux headers used by the OS of my RPi, this solution failed. Now again, maybe I can try and find an OS that will do the trick, but in that case the solution depicted in the previous paragraph is more straightforward.

Eventually I gave up the RPi 3 and used a LattePanda which has a x86_64 CPU. I installed a Fedora 30 so as to get the same DPDK target as the one used in the vagrant simulation environment (ie. T=x86_64-native-linuxapp-gcc). I managed to get DPDK properly compiled, but when I try to configure OVS using this command :

./configure --with-dpdk=$DPDK_BUILD CFLAGS="-g -O2 -Wno-cast-align" \
            p4inputfile=./include/p4/examples/l2_switch/l2_switch.p4 \
            p4outputdir=./include/p4/src

I get a "configure: error: cannot link with dpdk" error message. Do you think it may be due to the fact that my DPDK is too recent for the OVS version used by PISCES?

Thanks for reading, John

paaguti commented 4 years ago

Maybe it could help if we got a better understanding (documentation ;-) ) of how the vagrant box is created.

Just my .02 cents,/PA