{"repo":"p4lang/p4pi","free":true,"listed":false,"github":"https://github.com/p4lang/p4pi","clone":"git clone https://github.com/p4lang/p4pi.git","description":"P4 on Raspberry Pi for Networking Education","language":"JavaScript","stars":134,"topics":["raspberry-pi","p4","wifi"],"license":"Apache-2.0","category":"self-hosted-apps","readme_excerpt":"------------------------------------------------------------------------------- P4Pi (pronounced papi or puppy) allows to design and deploy network data planes written in P4 using the Raspberry Pi platform. Getting Started Please refer to the P4Pi Wiki Pages. The following instructions are for experts looking to build their own image. We recommend starting from the generated P4Pi images, as detailed in the wiki. Common To setup your Raspberry Pi for the first time, follow the instructions on the Raspberry Pi Website, using the operating system noted below. Start from the latest( at the time of writing ) 64 bit Raspberry Pi OS lite Update packages To use pcap poll mode driver install libpcap-dev before compiling dpdk Performance tuning Isolate CPU core(s) Add kernel parameters for cpu isolation in /boot/cmdline.txt eg: Tap Poll Mode Driver Install bridge-utils Use --vdev net tap0 in opts dpdk.cfg Start basic mirror to create dtap0 then bridge it to eth0/wlan0: Pi as WiFi AP Based on this Install hostapd and dnsmasq Configure static ip for the pi Append to /etc/dhcpcd.conf Configure dhcp Replace /etc/dnsmasq.conf with Configure hostapd Edit /etc/hostapd/hostapd.conf : (fiddle with channel if needed, unfortunately the auto channel scan is not supported by the hardware) Start hostapd On the pc add a manual arp entry for a non-existant destination in the same subnet and run iperf with that as a destination eg Configuration settings Environmental variables Creating veth pairs By de","default_branch":null,"files":null,"tree":[],"storefront":"/r/p4lang","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/p4lang/p4pi/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}