p4lang / p4ofagent Goto Github PK
View Code? Open in Web Editor NEWOpenflow agent on a P4 dataplane
Openflow agent on a P4 dataplane
git submodule update failing
user@host:~/p4ofagent$ git submodule update --init --recursive
Cloning into '/home/user/p4ofagent/submodules/indigo/submodules/bigcode'...
Warning: Permanently added the ECDSA host key for IP address '140.82.114.3' to the list of known hosts.
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
fatal: clone of '[email protected]:floodlight/bigcode' into submodule path '/home/asad/p4ofagent/submodules/indigo/submodules/bigcode' failed
Failed to clone 'submodules/bigcode'. Retry scheduled
Cloning into '/home/asad/p4ofagent/submodules/indigo/submodules/infra'...
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
fatal: clone of '[email protected]:floodlight/infra' into submodule path '/home/asad/p4ofagent/submodules/indigo/submodules/infra' failed
Failed to clone 'submodules/infra'. Retry scheduled
Cloning into '/home/asad/p4ofagent/submodules/indigo/submodules/loxigen-artifacts'...
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
fatal: clone of '[email protected]:floodlight/loxigen-artifacts.git' into submodule path '/home/asad/p4ofagent/submodules/indigo/submodules/loxigen-artifacts' failed
Failed to clone 'submodules/loxigen-artifacts'. Retry scheduled
Cloning into '/home/asad/p4ofagent/submodules/indigo/submodules/bigcode'...
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
fatal: clone of '[email protected]:floodlight/bigcode' into submodule path '/home/asad/p4ofagent/submodules/indigo/submodules/bigcode' failed
Failed to clone 'submodules/bigcode' a second time, aborting
Failed to recurse into submodule path 'submodules/indigo'
In file included from src/cpu_packet.c:17:
src/cpu_packet.h:25:10: fatal error: netlink/netlink.h: No such file or directory
25 | #include <netlink/netlink.h>
| ^~~~~~~~~~~~~~~~~~~
compilation terminated.
We are using p4_16 and are interested in adding open flow support.
Hi, Antonin @antoninbas and other seniors :).
Thanks for your help. My process goes well. But I still have some problem about adding openflow controller to my mininet demo based on bmv2.
I refered the message on P4-dev:
I learned a lot from your words. Then I started my work.
First I overrided the method "start" of the "OpenFlowEnabledP4Switch" class in the topo.py. Sencond, I installed the repo p4ofagent and p4-build successfully, generated and compiled the PD library for my P4 program named 'sw' using p4-build:
./configure --with-bmv2 P4_NAME=switch_bmv2 P4_PATH=/home/wasdns/sw/p4src/switch_bmv2.p4
Then I write a main.c
file. Based on my understanding about p4ofagent, I have to open p4ofagent process for each switch in my topo. I referenced the main.c
here: main.c bmv2_init.c
, and my idea is, call the function p4_pd_switch_bmv2_assign_device
in pd.h
with right notification socket for each switch in my topo, like this:
p4_pd_switch_bmv2_assign_device(0, "ipc:///tmp/bmv2-0-notifications.ipc", 22222);
p4_pd_switch_bmv2_assign_device(1, "ipc:///tmp/bmv2-1-notifications.ipc", 22223);
···
Is it right?
By the way, could you give me some advice about my next step? I have a little confused with the Makefile writing because of lacking experience. I refered the Makefile of 'switch' repo. I'm not sure if I should link the libs(eg. simple_switch.lo
) of bmv2/targets/simple_switch
in Makefile.
Thank you very much!
Best regards,
Chen.
Hello,
When I follow the steps to make p4ofagent, it show me the following error:
src/state.h:26:23: fatal error: p4_sim/pd.h: No such file or directory
#include "p4_sim/pd.h"
Could anyone tell me where I can find the correct header files or how to generate them?
Thank you.
Hello,
I am trying to build the p4ofagent repository. Unfortunately, I run into build errors.
bmv2
./autogen
./configure --with-pdfixed
make
sudo make install
p4ofagent
./autogen.sh
./configure
make p4ofagent CPPFLAGS=-D_BMV2_
The p4ofagent make fails with the following message:
make -f indigo-lib.mk indigo-lib
make[1]: Entering directory './includes/p4ofagent'
Compiling[ debug ]: OFConnectionManager::cxn_instance.c
./includes/p4ofagent/submodules/indigo/modules/OFConnectionManager//module/src//cxn_instance.c: In function ‘ind_cxn_process_write_buffer’:
./includes/p4ofagent/submodules/indigo/modules/OFConnectionManager//module/src//cxn_instance.c:1391:19: error: implicit declaration of function ‘writev’ [-Werror=implicit-function-declaration]
written = writev(cxn->sd, iovecs, num_iovecs);
^~~~~~
cc1: all warnings being treated as errors
../p4ofagent/submodules/indigo/submodules/infra/builder/unix/toolchains/gcc-local/obj.mk:109: recipe for target 'build/gcc-local/obj/./includes/p4ofagent/submodules/indigo/modules/OFConnectionManager//module/src//cxn_instance.o' failed
make[1]: *** [build/gcc-local/obj/./includes/p4ofagent/submodules/indigo/modules/OFConnectionManager//module/src//cxn_instance.o] Error 1
make[1]: Leaving directory './includes/p4ofagent'
Makefile:986: recipe for target 'indigo-lib' failed
make: *** [indigo-lib] Error 2
I tried to build it using gcc 4, 5, 6, and 7, it fails at any version. Any idea what could cause this build failure?
Hi @antoninbas and other seniors
I get the following error when installing p4ofagent. I have installed bmv2 with pdfixed and p4c-bm.
Making install in inc
make[1]: Entering directory /home/omesh9/p4factory/submodules/p4ofagent/inc' make[2]: Entering directory
/home/omesh9/p4factory/submodules/p4ofagent/inc'
make[2]: Nothing to be done for install-exec-am'. /bin/mkdir -p '/usr/local/include' /bin/mkdir -p '/usr/local/include/indigo' /bin/mkdir: cannot create directory ‘/usr/local/include/indigo’: Permission denied /usr/bin/install -c -m 644 indigo/indigo.h indigo/error.h indigo/fi.h indigo/types.h indigo/port_manager.h indigo/memory.h indigo/time.h indigo/assert.h indigo/of_state_manager.h indigo/of_connection_manager.h indigo/forwarding.h '/usr/local/include/indigo' /usr/bin/install: target ‘/usr/local/include/indigo’ is not a directory make[2]: *** [install-nobase_includeHEADERS] Error 1 make[2]: Leaving directory
/home/omesh9/p4factory/submodules/p4ofagent/inc'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/home/omesh9/p4factory/submodules/p4ofagent/inc'
make: *** [install-recursive] Error 1
Any help would greatly appreciated.
Thank you
Hello
I am strugling to install websocket in lighttpd (Linux Debian 9), I am following this link
https://github.com/nori0428/mod_websocket/wiki/for-Ubuntu-Users
Facing following errors
ERROR 1
*Command# ./configure --with-websocket=[ALL, IETF-00, RFC-6455]
*configure: WARNING: you should use --build, --host, --target
configure: WARNING: invalid host type: IETF-00,
configure: WARNING: you should use --build, --host, --target
configure: WARNING: invalid host type: RFC-6455]
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking build system type... Invalid configuration IETF-00,': machine
IETF' not recognized
configure: error: /bin/bash m4/config.sub IETF-00, failed
ERROR 2
Command# make install
Making install in .
make1: se entra en el directorio '/usr/lib/lighttpd/mod_websocket'
(cd ./contrib/gtest-1.7.0; make)
make2: se entra en el directorio '/usr/lib/lighttpd/mod_websocket/contrib/gtest-1.7.0'
/bin/bash ./libtool --tag=CXX --mode=link g++ -pthread -DGTEST_HAS_PTHREAD=1 -g -O2 -o lib/libgtest.la -rpath /usr/local/lib src/gtest-all.lo
libtool: link: g++ -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o src/.libs/gtest-all.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o -pthread -g -O2 -pthread -Wl,-soname -Wl,libgtest.so.0 -o lib/.libs/libgtest.so.0.0.0
/usr/bin/ld: src/.libs/gtest-all.o: relocation R_X86_64_PC32 against symbol `_ZN7testing8internal6IsTrueEb' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Makefile:923: fallo en las instrucciones para el objetivo 'lib/libgtest.la'
make2: * [lib/libgtest.la] Error 1
make2: se sale del directorio '/usr/lib/lighttpd/mod_websocket/contrib/gtest-1.7.0'
Makefile:806: fallo en las instrucciones para el objetivo 'all-local'
make1: [all-local] Error 2
make1: se sale del directorio '/usr/lib/lighttpd/mod_websocket'
Makefile:390: fallo en las instrucciones para el objetivo 'install-recursive'
make: ** [install-recursive] Error 1
Need some urgent help
hello guy,
It's exciting to find this p4ofagent repository while doing some SDN,P4 and openflow research. I'm pretty appretiate your works. When I try to learn/use p4ofagent, I found that the tutorials is quit rare and the recommend live demo is also deprecated( p4facotry). So It would be very nice if you guys could do some toturials about uage of p4ofagent.
Jhon
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.