Hi Joe & Allan,
I faced the same problem like Santosh when doing the "sudo ./rftest1" or "sudo ./rftest2":
blakeyoung@Blake-PC:~/RouteFlow/rftest$ sudo ./rftest1
-> Starting rftest1
-> Stopping and resetting LXC VMs...
rfvm1 is not running
b1 is not running
b2 is not running
-> Deleting data from previous runs...
MongoDB shell version: 2.0.4
connecting to: db
false
-> Setting up the management bridge (lxcbr0)...
-> Setting up MongoDB...
mongodb stop/waiting
mongodb start/running, process 6970
.-> Starting the rfvm1 virtual machine...
-> Starting the controller and RFPRoxy...
/home/blakeyoung/RouteFlow
.POX 0.1.0 (betta) / Copyright 2011-2013 James McCauley, et al.
INFO:rfproxy:RFProxy running.
INFO:core:POX 0.1.0 (betta) is up.
-> Starting RFServer...
-> Starting the control plane network (dp0 VS)...
-> Starting the sample network...
INFO:openflow.of_01:[None 1] closed
INFO:openflow.of_01:[None 2] disconnected
INFO:openflow.of_01:[None 2] closed
INFO:openflow.of_01:[76-73-72-66-76-73|29286 3] connected
INFO:openflow.topology:Switch 76-73-72-66-76-73|29286 connected
INFO:rfproxy:Registering datapath port (dp_id=0x7266767372667673, dp_port=1)
INFO:rfproxy:Registering datapath port (dp_id=0x7266767372667673, dp_port=2)
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 504, in run
self.__target(*self.__args, **self.__kwargs)
File "/home/blakeyoung/RouteFlow/rflib/ipc/MongoIPC.py", line 89, in _listen_worker
processor.process(envelope[FROM_FIELD], envelope[TO_FIELD], channel_id, msg);
File "./rfserver/rfserver.py", line 62, in process
msg.get_dp_port())
File "./rfserver/rfserver.py", line 192, in register_dp_port
stop = self.config_dp(ct_id, dp_id)
File "./rfserver/rfserver.py", line 342, in config_dp
self.send_datapath_config_message(ct_id, dp_id, DC_ALL)
File "./rfserver/rfserver.py", line 332, in send_datapath_config_message
rm.add_action(Action.CONTROLLER())
File "/home/blakeyoung/RouteFlow/rflib/types/Action.py", line 66, in CONTROLLER
return cls(RFAT_OUTPUT, OFPP_CONTROLLER)
File "/home/blakeyoung/RouteFlow/rflib/types/Action.py", line 27, in __init__
super(Action, self).__init__(actionType, self.type_to_bin(actionType, value))
File "/home/blakeyoung/RouteFlow/rflib/types/Action.py", line 78, in type_to_bin
return int_to_bin(value, 32)
File "/home/blakeyoung/RouteFlow/rflib/types/TLV.py", line 32, in int_to_bin
return a2b_hex(hex_int_extend(hexnum, length))
TypeError: Non-hexadecimal digit found
---
This test is up and running.
Try pinging host b2 from host b1:
$ sudo lxc-console -n b1
Login and run:
$ ping 172.31.2.2
You can stop this test by pressing Ctrl+C.
---
INFO:openflow.of_01:[00-00-00-00-00-99 4] connected
INFO:openflow.topology:Switch 00-00-00-00-00-99 connected
INFO:rfproxy:Registering datapath port (dp_id=0x99, dp_port=1)
INFO:rfproxy:Registering datapath port (dp_id=0x99, dp_port=2)
INFO:rfserver:Registering client port as idle (vm_id=0x12a0a0a0a0a0, vm_port=1, eth_addr=12:a1:a1:a1:a1:a1)
INFO:rfserver:Registering client port as idle (vm_id=0x12a0a0a0a0a0, vm_port=2, eth_addr=12:a2:a2:a2:a2:a2)
Just like Allan said, I also added "sudo" in each command like "./build.sh -c", still can't work it out.
Here is my output of ./build.sh -c
:
blakeyoung@Blake-PC:~/RouteFlow$ sudo ./build.sh -c
[sudo] password for blakeyoung:
Fetching dependencies...
Requirement already satisfied (use --upgrade to upgrade): pymongo in /usr/local/lib/python2.7/dist-packages
Cleaning up...
Updated infos about 1 packages
Getting source for kernel version: 3.5.0-23-generic
Kernel headers available in /usr/src/linux-headers-3.5.0-23-generic
Creating symlink...
apt-get install build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
build-essential is already the newest version.
The following packages were automatically installed and are no longer required:
python-bson python-gridfs
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 217 not upgraded.
Done!
unpack
Extracting the package tarball, /usr/src/openvswitch-datapath.tar.bz2, please wait...
"/usr/share/modass/packages/default.sh" build KVERS=3.5.0-23-generic KSRC=/usr/src/linux KDREV=3.5.0-23.35~precise1 kdist_image
Done with /usr/src/openvswitch-datapath-module-3.5.0-23-generic_1.4.0-1ubuntu1.5_i386.deb .
dpkg -Ei /usr/src/openvswitch-datapath-module-3.5.0-23-generic_1.4.0-1ubuntu1.5_i386.deb
Version 1.4.0-1ubuntu1.5 of openvswitch-datapath-module-3.5.0-23-generic already installed, skipping.
Building RouteFlow...
Compiling Library Dependency (ipc)...
make[1]: Entering directory `/home/blakeyoung/RouteFlow/rflib/ipc'
g++ -Wall -W -I/home/blakeyoung/RouteFlow/rflib -I/home/blakeyoung/RouteFlow/rflib/ipc -I/home/blakeyoung/RouteFlow/rflib/types -I/usr/local/include/mongo -c IPC.cc -o /home/blakeyoung/RouteFlow/build/obj/ipc/IPC.o
g++ -Wall -W -I/home/blakeyoung/RouteFlow/rflib -I/home/blakeyoung/RouteFlow/rflib/ipc -I/home/blakeyoung/RouteFlow/rflib/types -I/usr/local/include/mongo -c MongoIPC.cc -o /home/blakeyoung/RouteFlow/build/obj/ipc/MongoIPC.o
g++ -Wall -W -I/home/blakeyoung/RouteFlow/rflib -I/home/blakeyoung/RouteFlow/rflib/ipc -I/home/blakeyoung/RouteFlow/rflib/types -I/usr/local/include/mongo -c RFProtocol.cc -o /home/blakeyoung/RouteFlow/build/obj/ipc/RFProtocol.o
g++ -Wall -W -I/home/blakeyoung/RouteFlow/rflib -I/home/blakeyoung/RouteFlow/rflib/ipc -I/home/blakeyoung/RouteFlow/rflib/types -I/usr/local/include/mongo -c RFProtocolFactory.cc -o /home/blakeyoung/RouteFlow/build/obj/ipc/RFProtocolFactory.o
make[1]: Leaving directory `/home/blakeyoung/RouteFlow/rflib/ipc'
done.
Compiling Library Dependency (types)...
make[1]: Entering directory `/home/blakeyoung/RouteFlow/rflib/types'
g++ -Wall -W -I/home/blakeyoung/RouteFlow/rflib -I/home/blakeyoung/RouteFlow/rflib/ipc -I/home/blakeyoung/RouteFlow/rflib/types -I/usr/local/include/mongo -c Action.cc -o /home/blakeyoung/RouteFlow/build/obj/types/Action.o
g++ -Wall -W -I/home/blakeyoung/RouteFlow/rflib -I/home/blakeyoung/RouteFlow/rflib/ipc -I/home/blakeyoung/RouteFlow/rflib/types -I/usr/local/include/mongo -c IPAddress.cc -o /home/blakeyoung/RouteFlow/build/obj/types/IPAddress.o
g++ -Wall -W -I/home/blakeyoung/RouteFlow/rflib -I/home/blakeyoung/RouteFlow/rflib/ipc -I/home/blakeyoung/RouteFlow/rflib/types -I/usr/local/include/mongo -c MACAddress.cc -o /home/blakeyoung/RouteFlow/build/obj/types/MACAddress.o
g++ -Wall -W -I/home/blakeyoung/RouteFlow/rflib -I/home/blakeyoung/RouteFlow/rflib/ipc -I/home/blakeyoung/RouteFlow/rflib/types -I/usr/local/include/mongo -c Match.cc -o /home/blakeyoung/RouteFlow/build/obj/types/Match.o
g++ -Wall -W -I/home/blakeyoung/RouteFlow/rflib -I/home/blakeyoung/RouteFlow/rflib/ipc -I/home/blakeyoung/RouteFlow/rflib/types -I/usr/local/include/mongo -c Option.cc -o /home/blakeyoung/RouteFlow/build/obj/types/Option.o
g++ -Wall -W -I/home/blakeyoung/RouteFlow/rflib -I/home/blakeyoung/RouteFlow/rflib/ipc -I/home/blakeyoung/RouteFlow/rflib/types -I/usr/local/include/mongo -c TLV.cc -o /home/blakeyoung/RouteFlow/build/obj/types/TLV.o
make[1]: Leaving directory `/home/blakeyoung/RouteFlow/rflib/types'
done.
Generating Library
make -C /home/blakeyoung/RouteFlow/rflib all;
make[1]: Entering directory `/home/blakeyoung/RouteFlow/rflib'
ar r /home/blakeyoung/RouteFlow/build/lib/rflib.a /home/blakeyoung/RouteFlow/build/obj/ipc/IPC.o /home/blakeyoung/RouteFlow/build/obj/ipc/MongoIPC.o /home/blakeyoung/RouteFlow/build/obj/ipc/RFProtocolFactory.o /home/blakeyoung/RouteFlow/build/obj/ipc/RFProtocol.o /home/blakeyoung/RouteFlow/build/obj/types/Action.o /home/blakeyoung/RouteFlow/build/obj/types/IPAddress.o /home/blakeyoung/RouteFlow/build/obj/types/MACAddress.o /home/blakeyoung/RouteFlow/build/obj/types/Match.o /home/blakeyoung/RouteFlow/build/obj/types/Option.o /home/blakeyoung/RouteFlow/build/obj/types/TLV.o
ar: creating /home/blakeyoung/RouteFlow/build/lib/rflib.a
make[1]: Leaving directory `/home/blakeyoung/RouteFlow/rflib'
Compiling Application rfclient...
make[1]: Entering directory `/home/blakeyoung/RouteFlow/rfclient'
g++ -Wall -W -I/home/blakeyoung/RouteFlow/rflib -I/home/blakeyoung/RouteFlow/rflib/ipc -I/home/blakeyoung/RouteFlow/rflib/types -I/usr/local/include/mongo -c FlowTable.cc -o /home/blakeyoung/RouteFlow/build/obj/rfclient/FlowTable.o
g++ -Wall -W -I/home/blakeyoung/RouteFlow/rflib -I/home/blakeyoung/RouteFlow/rflib/ipc -I/home/blakeyoung/RouteFlow/rflib/types -I/usr/local/include/mongo -c FPMServer.cc -o /home/blakeyoung/RouteFlow/build/obj/rfclient/FPMServer.o
g++ -Wall -W -I/home/blakeyoung/RouteFlow/rflib -I/home/blakeyoung/RouteFlow/rflib/ipc -I/home/blakeyoung/RouteFlow/rflib/types -I/usr/local/include/mongo -c RFClient.cc -o /home/blakeyoung/RouteFlow/build/obj/rfclient/RFClient.o
ar r /home/blakeyoung/RouteFlow/build/lib/rflib.a /home/blakeyoung/RouteFlow/build/obj/rfclient/FlowTable.o /home/blakeyoung/RouteFlow/build/obj/rfclient/FPMServer.o /home/blakeyoung/RouteFlow/build/obj/rfclient/RFClient.o
g++ -I/home/blakeyoung/RouteFlow/rflib -I/home/blakeyoung/RouteFlow/rflib/ipc -I/home/blakeyoung/RouteFlow/rflib/types -I/usr/local/include/mongo -o /home/blakeyoung/RouteFlow/build/rfclient /home/blakeyoung/RouteFlow/build/obj/rfclient/FlowTable.o /home/blakeyoung/RouteFlow/build/obj/rfclient/FPMServer.o /home/blakeyoung/RouteFlow/build/obj/rfclient/RFClient.o /home/blakeyoung/RouteFlow/build/lib/rflib.a -lrt -lnetlink -lutil -lpthread -lmongoclient -lboost_thread -lboost_system -lboost_filesystem -lboost_program_options;
make[1]: Leaving directory `/home/blakeyoung/RouteFlow/rfclient'
done.
Finishing up...
Looking forword for your reply,
thanx!
Blake Young