Running RouteFlow with physical devices instead of Mininet

536 views
Skip to first unread message

Hsiang Huang

unread,
Apr 26, 2013, 2:35:38 AM4/26/13
to routeflo...@googlegroups.com
Hi,
We are new to RouteFlow. We already tried rftest2 with Mininet and it worked successfully.

Then We continued to try rftest2 with physical devices environment instead of Mininet

Here are the environment we used:

Switch A B C: LINKSYS WRT54GL
Switch D      : TP-LINK TL WR1043ND   

running OpenFlow Protocol but not OVS


All the linking and setting were the same as the configuration in rftest2 configuration but it did not work

We compared the messages the controller gave and found that the 'add' message did not appear




The following is the log message:

arsene@arsene-VirtualBox:~/RouteFlow/rftest$ sudo ./rftest2 --pox
-> Starting rftest2
-> Stopping and resetting LXC VMs...
-> Deleting (previous) run data...
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 23322
.-> Configuring the virtual machines...
-> Starting the virtual machines...
-> Starting the controller and RFPRoxy...
/home/arsene/RouteFlow
.POX 0.0.0 / Copyright 2011 James McCauley
.INFO:rfproxy:RFProxy running.
INFO:core:POX 0.0.0 is up.
INFO:openflow.of_01:[Con 1/None] Connection reset
INFO:openflow.of_01:[Con 1/None] closing connection
-> Starting RFServer...
-> Starting the control plane network (dp0 VS)...
INFO:openflow.of_01:[Con 3/None] closing connection
INFO:openflow.of_01:[Con 2/150873950751] Connected to 00-23-20-c9-ca-1f
INFO:openflow.topology:Switch 00-23-20-c9-ca-1f connected
INFO:rfproxy:Registering datapath port (dp_id=0x2320c9ca1f, dp_port=1)
INFO:rfproxy:Registering datapath port (dp_id=0x2320c9ca1f, dp_port=2)
INFO:rfproxy:Registering datapath port (dp_id=0x2320c9ca1f, dp_port=3)
INFO:rfproxy:Registering datapath port (dp_id=0x2320c9ca1f, dp_port=4)
INFO:rfserver:Registering datapath port as idle (dp_id=0x2320c9ca1f, dp_port=1)
INFO:rfserver:Configuring datapath (dp_id=0x2320c9ca1f)
INFO:rfserver:Registering datapath port as idle (dp_id=0x2320c9ca1f, dp_port=2)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfserver:Configuring datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfserver:Registering datapath port as idle (dp_id=0x2320c9ca1f, dp_port=3)
INFO:rfserver:Configuring datapath (dp_id=0x2320c9ca1f)
INFO:rfserver:Registering datapath port as idle (dp_id=0x2320c9ca1f, dp_port=4)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320c9ca1f)
INFO:openflow.of_01:[Con 4/150874976480] Connected to 00-23-20-d9-70-e0
INFO:openflow.topology:Switch 00-23-20-d9-70-e0 connected
INFO:rfproxy:Registering datapath port (dp_id=0x2320d970e0, dp_port=1)
INFO:rfproxy:Registering datapath port (dp_id=0x2320d970e0, dp_port=2)
INFO:rfproxy:Registering datapath port (dp_id=0x2320d970e0, dp_port=3)
INFO:rfserver:Registering datapath port as idle (dp_id=0x2320d970e0, dp_port=1)
INFO:rfproxy:Registering datapath port (dp_id=0x2320d970e0, dp_port=4)
INFO:rfserver:Configuring datapath (dp_id=0x2320d970e0)
INFO:rfserver:Registering datapath port as idle (dp_id=0x2320d970e0, dp_port=2)
INFO:rfserver:Configuring datapath (dp_id=0x2320d970e0)
INFO:rfserver:Registering datapath port as idle (dp_id=0x2320d970e0, dp_port=3)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfserver:Configuring datapath (dp_id=0x2320d970e0)
INFO:rfserver:Registering datapath port as idle (dp_id=0x2320d970e0, dp_port=4)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x2320d970e0)
---
This test is up and running.
Start Mininet:
  $ mn --custom ~/mininet/custom/topo-4sw-4host.py --topo=rftopo
    --controller=remote --ip=ADDRESS --port=6633
Replace ADDRESS with the address of this host's interface connected 
to the Mininet VM.
Then try pinging everything:
  > pingall
You can stop this test by pressing CTRL+C.
---
INFO:openflow.of_01:[Con 5/8243406406160905843] Connected to 76-73-72-66-76-73|29286
INFO:openflow.topology:Switch 76-73-72-66-76-73|29286 connected
INFO:openflow.of_01:[Con 7/None] closing connection
INFO:openflow.of_01:[Con 6/150869625645] Connected to 00-23-20-87-cb-2d
INFO:openflow.topology:Switch 00-23-20-87-cb-2d connected
INFO:rfproxy:Registering datapath port (dp_id=0x232087cb2d, dp_port=1)
INFO:rfproxy:Registering datapath port (dp_id=0x232087cb2d, dp_port=2)
INFO:rfproxy:Registering datapath port (dp_id=0x232087cb2d, dp_port=3)
INFO:rfproxy:Registering datapath port (dp_id=0x232087cb2d, dp_port=4)
INFO:rfserver:Registering datapath port as idle (dp_id=0x232087cb2d, dp_port=1)
INFO:rfserver:Configuring datapath (dp_id=0x232087cb2d)
INFO:rfserver:Registering datapath port as idle (dp_id=0x232087cb2d, dp_port=2)
INFO:rfserver:Configuring datapath (dp_id=0x232087cb2d)
INFO:rfserver:Registering datapath port as idle (dp_id=0x232087cb2d, dp_port=3)
INFO:rfserver:Configuring datapath (dp_id=0x232087cb2d)
INFO:rfserver:Registering datapath port as idle (dp_id=0x232087cb2d, dp_port=4)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x232087cb2d)
INFO:openflow.discovery:link detected: 00-23-20-c9-ca-1f.2 -> 00-23-20-d9-70-e0.2
INFO:openflow.discovery:link detected: 00-23-20-d9-70-e0.2 -> 00-23-20-c9-ca-1f.2
INFO:openflow.discovery:link detected: 00-23-20-c9-ca-1f.3 -> 00-23-20-87-cb-2d.3
INFO:openflow.discovery:link detected: 00-23-20-87-cb-2d.3 -> 00-23-20-c9-ca-1f.3
INFO:openflow.of_01:[Con 8/150864692384] Connected to 00-23-20-3c-84-a0
INFO:openflow.topology:Switch 00-23-20-3c-84-a0 connected
INFO:rfproxy:Registering datapath port (dp_id=0x23203c84a0, dp_port=1)
INFO:rfproxy:Registering datapath port (dp_id=0x23203c84a0, dp_port=2)
INFO:rfproxy:Registering datapath port (dp_id=0x23203c84a0, dp_port=3)
INFO:rfproxy:Registering datapath port (dp_id=0x23203c84a0, dp_port=4)
INFO:rfserver:Registering datapath port as idle (dp_id=0x23203c84a0, dp_port=1)
INFO:rfserver:Configuring datapath (dp_id=0x23203c84a0)
INFO:rfserver:Registering datapath port as idle (dp_id=0x23203c84a0, dp_port=2)
INFO:rfserver:Configuring datapath (dp_id=0x23203c84a0)
INFO:rfserver:Registering datapath port as idle (dp_id=0x23203c84a0, dp_port=3)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfserver:Configuring datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfserver:Registering datapath port as idle (dp_id=0x23203c84a0, dp_port=4)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:rfproxy:ofp_flow_mod(config) was sent to datapath (dp_id=0x23203c84a0)
INFO:openflow.discovery:link detected: 00-23-20-d9-70-e0.3 -> 00-23-20-3c-84-a0.2
INFO:openflow.discovery:link detected: 00-23-20-87-cb-2d.2 -> 00-23-20-3c-84-a0.3
INFO:openflow.discovery:link detected: 00-23-20-c9-ca-1f.4 -> 00-23-20-3c-84-a0.4
INFO:openflow.discovery:link detected: 00-23-20-3c-84-a0.2 -> 00-23-20-d9-70-e0.3
INFO:openflow.discovery:link detected: 00-23-20-3c-84-a0.3 -> 00-23-20-87-cb-2d.2
INFO:openflow.discovery:link detected: 00-23-20-3c-84-a0.4 -> 00-23-20-c9-ca-1f.4


A: 00-23-20-c9-ca-1f
B: 00-23-20-d9-70-e0
C: 00-23-20-87-cb-2d
D: 00-23-20-3c-84-a0

The topology controller detected shows as follow
The number stands for switch port number

         2                            2
      A ----------------------------- B
    3|  \4            |  3
      |  \                             | 
      |   \                          |
      |    \                      |
      |     \                   |
      |      \                |
      |       \            |
      |        \         |
      |         \     |
    3|          4\| 2
      C------------------------------D
        2                                  3


all the things were done and the host1 cannot ping host2...



Please help us. Thank you.


Hsiang

sjle...@gmail.com

unread,
Apr 26, 2013, 3:49:52 AM4/26/13
to routeflo...@googlegroups.com
hi Hsiang Huang
 
i have any question . Do u success rftest2 with mininet?
 
Can u confrim your enviroment? because i tried rftest2 with mininet . but i'm not success.
so i ask to u below table.^^; help me plz~
 
OS version & name : e.g) ubuntu, 12.04 64bit
Mininet version       : e.g) v1.0
Routeflow branch    : e.g) master. allanv authored  
 
Thx. Have a good time.
 

Allan Vidal

unread,
Apr 26, 2013, 7:25:03 AM4/26/13
to routeflo...@googlegroups.com
Hey guys,

It seems the LXC containers with RFClient aren't getting started. Try running again, and check if they are working with:
sudo lxc-console -n rfvmA

Then login and check the output of /var/log/rfclient.log

It's a separate matter, but did you change the rftest2config.csv file to match your datapath IDs?


Allan


 

--
You received this message because you are subscribed to the Google Groups "RouteFlow" group.
To unsubscribe from this group and stop receiving emails from it, send an email to routeflow-disc...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Hsiang Huang

unread,
May 3, 2013, 4:43:52 AM5/3/13
to routeflo...@googlegroups.com
We install RouteFlow at one OS, ubuntu 12.04 32bit
and Mininet at another OS, ubuntu 11.10 where is downloaded at the Mininet official website.

Mininet version is v1.0 and RouteFlow branch should be master, since we follow the RouteFlow
tutorial step by step.

Hope the info above help.

sjle...@gmail.com於 2013年4月26日星期五UTC+8下午3時49分52秒寫道:

Hsiang Huang

unread,
May 3, 2013, 4:47:42 AM5/3/13
to routeflo...@googlegroups.com
Hi Allan,

It seems that I forgot to modify the rftest2config.csv to match the datapath IDs.

It works after doing it.

Many thanks.


Allan Vidal於 2013年4月26日星期五UTC+8下午7時25分03秒寫道:
Message has been deleted

Hsiang Huang

unread,
Jul 3, 2013, 10:08:02 PM7/3/13
to routeflo...@googlegroups.com
Hi, all.

Recently we tried to add legacy routers into the link topology and let the
legacy routers and the OpenFlow switches can communicate with each other by
OSPF L3 protocol. When using the Linksys WRT54GL as the OpenFlow switch like
before, the RouteFlow worked so the host can ping each other whether at the
OpenFlow side or the legacy side. Then we substituted NEC OpenFlow switch
(IP8800) for Linksys WRT54GL and try the same test but it did not work as usual.

And the error message shows as below:

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/routeflow/RouteFlow/rflib/ipc/MongoIPC.py", line 89, in _listen_worker
    processor.process(envelope[FROM_FIELD], envelope[TO_FIELD], channel_id, msg);
  File "/home/routeflow/RouteFlow/pox/ext/rfproxy.py", line 173, in process
    ofmsg = create_flow_mod(msg)
  File "/home/routeflow/RouteFlow/pox/ext/rfofmsg.py", line 81, in create_flow_mod
    ofm.match.set_nw_dst(str(addr) + "/" + str(prefix))
  File "/home/routeflow/RouteFlow/pox/pox/openflow/libopenflow_01.py", line 1025, in set_nw_dst
    a = self._make_addr(*args, **kw)
  File "/home/routeflow/RouteFlow/pox/pox/openflow/libopenflow_01.py", line 1056, in _make_addr
    s = parse_cidr(ipOrIPAndBits, infer=False)
  File "/home/routeflow/RouteFlow/pox/pox/lib/addresses.py", line 406, in parse_cidr
    return check(IPAddr(addr[0]), wild)
  File "/home/routeflow/RouteFlow/pox/pox/lib/addresses.py", line 376, in check
    % (addr,))
RuntimeError: Host part of CIDR address is not zero (['80.0.224.182', '0'])

ERROR:core:Exception while handling OpenFlowNexus!SwitchDescReceived...
Traceback (most recent call last):
  File "/home/routeflow/RouteFlow/pox/pox/lib/revent/revent.py", line 234, in raiseEventNoErrors
    return self.raiseEvent(event, *args, **kw)
  File "/home/routeflow/RouteFlow/pox/pox/lib/revent/revent.py", line 281, in raiseEvent
    rv = event._invoke(handler, *args, **kw)
  File "/home/routeflow/RouteFlow/pox/pox/lib/revent/revent.py", line 159, in _invoke
    return handler(self, *args, **kw)
  File "/home/routeflow/RouteFlow/pox/ext/rfstats.py", line 140, in handle_switch_desc
    db.update(dp_id, "switch", desc=StatsDB.create_desc_stats_dict(event.stats))
  File "/home/routeflow/RouteFlow/pox/ext/rfstats.py", line 44, in update
    self.collection.update({"_id": id_}, self.db[id_], upsert=True)
  File "/usr/lib/python2.7/dist-packages/pymongo/collection.py", line 409, in update
    _check_keys, self.__uuid_subtype), safe)
OverflowError: MongoDB can only handle up to 8-byte ints
ERROR:core:Exception while handling OpenFlowNexus!FlowStatsReceived...
Traceback (most recent call last):
  File "/home/routeflow/RouteFlow/pox/pox/lib/revent/revent.py", line 234, in raiseEventNoErrors
    return self.raiseEvent(event, *args, **kw)
  File "/home/routeflow/RouteFlow/pox/pox/lib/revent/revent.py", line 281, in raiseEvent
    rv = event._invoke(handler, *args, **kw)
  File "/home/routeflow/RouteFlow/pox/pox/lib/revent/revent.py", line 159, in _invoke
    return handler(self, *args, **kw)
  File "/home/routeflow/RouteFlow/pox/ext/rfstats.py", line 144, in handle_flow_stats
    db.update(dp_id, "switch", flows=StatsDB.create_flow_stats_list(event.stats))
  File "/home/routeflow/RouteFlow/pox/ext/rfstats.py", line 44, in update
    self.collection.update({"_id": id_}, self.db[id_], upsert=True)
  File "/usr/lib/python2.7/dist-packages/pymongo/collection.py", line 409, in update
    _check_keys, self.__uuid_subtype), safe)
OverflowError: MongoDB can only handle up to 8-byte ints
ERROR:core:Exception while handling OpenFlowNexus!AggregateFlowStatsReceived...
Traceback (most recent call last):
  File "/home/routeflow/RouteFlow/pox/pox/lib/revent/revent.py", line 234, in raiseEventNoErrors
    return self.raiseEvent(event, *args, **kw)
  File "/home/routeflow/RouteFlow/pox/pox/lib/revent/revent.py", line 281, in raiseEvent
    rv = event._invoke(handler, *args, **kw)
  File "/home/routeflow/RouteFlow/pox/pox/lib/revent/revent.py", line 159, in _invoke
    return handler(self, *args, **kw)
  File "/home/routeflow/RouteFlow/pox/ext/rfstats.py", line 148, in handle_aggregate_flow_stats
    db.update(dp_id, "switch", aggregate=StatsDB.create_aggregate_stats_dict(event.stats))
  File "/home/routeflow/RouteFlow/pox/ext/rfstats.py", line 44, in update
    self.collection.update({"_id": id_}, self.db[id_], upsert=True)
  File "/usr/lib/python2.7/dist-packages/pymongo/collection.py", line 409, in update
    _check_keys, self.__uuid_subtype), safe)
OverflowError: MongoDB can only handle up to 8-byte ints



Now we are stuck here....please help us!

Thank you!


Hsiang

Joe Stringer

unread,
Jul 3, 2013, 10:50:57 PM7/3/13
to routeflo...@googlegroups.com
This looks like a default route. Were you using a default route
previously with the WRT54GL? It should be fairly easy to fix this
issue in create_flow_mod() by checking for a zero-prefix before
setting the nw_dst of the match.
Can you share information about what the DPID is for each device, and
which one works? Perhaps there is some trouble with converting the ID
from the wire format into a JSON int for MongoDB.

Hsiang Huang

unread,
Jul 17, 2013, 8:44:37 PM7/17/13
to routeflo...@googlegroups.com
Hi Joe,

Sorry for a late reply. 
During the week we did many tests; some previous 
problems had been solved, but some new ones appeared.

Let's start with the previous errors.

For this part, the default route was set in the legacy router. After we
remove the default route setting in the router, the CIDR problem then
disappeared.
For this part, it confused us for a long time. 

At last we figured out two possible factors but not related to DPID.
One is that the mapping between the virtual port in Quagga and 
the physical port of the switch. Here we are still interested in the problem
and want to make sure what should be modified.

Let's say if I connect to the physical switch ports 1,2,3,4 and a non-continuous port, say, 12, 
may you please tell us what should be modified in the following files:

/RouteFlow/rftest/config/rfvmA/rootfs/etc/quagga/zebra.conf
/RouteFlow/rftest/config/rfvmA/rootfs/etc/quagga/ospfd.conf
/RouteFlow/rftest/config/rfvmA/config
/RouteFlow/rftest/rftest2
/RouteFlow/rftest/rftest2config.csv

Can we add only port 12 (or eth12) in these files?
It means that in zebra, ospfd, config, rftest2 we add eth12 directly
and in rftest2config.csv may be

vm_id, vm_port, ct_id, dp_id, dp_port
2A0A0A0A0A0,12,0,1,12

this form. Unfortunately, some error will occur in this setting

Log shows as below.

ERROR:openflow.of_01:[00-23-20-12-34-56 20] OpenFlow Error:
[00-23-20-12-34-56 20] Error: header: 
[00-23-20-12-34-56 20] Error:   version: 1
[00-23-20-12-34-56 20] Error:   type:    1 (OFPT_ERROR)
[00-23-20-12-34-56 20] Error:   length:  76
[00-23-20-12-34-56 20] Error:   xid:     1076
[00-23-20-12-34-56 20] Error: type: OFPET_BAD_ACTION (2)
[00-23-20-12-34-56 20] Error: code: OFPBAC_BAD_OUT_PORT (4)
[00-23-20-12-34-56 20] Error: datalen: 64
[00-23-20-12-34-56 20] Error: 0000: 01 0d 00 10 00 00 04 34  00 2b 94 44 00 06 00 00   .......4.+.D....
[00-23-20-12-34-56 20] Error: 0010: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
[00-23-20-12-34-56 20] Error: 0020: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
[00-23-20-12-34-56 20] Error: 0030: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................


So can we have an intuitive mapping between virtual and physical port?
Or we should continuously add port 5, 6, 7, ..., 12 in every files
if we want an intuitive mapping?          This is question 1.

BTW, we have tried the unintuitive mapping, i.e., add virtual port 5
in zebra, ospfd, config, rftest2 files for physical port 12 and
make them match by the form in rftest2config.csv

vm_id, vm_port, ct_id, dp_id, dp_port
2A0A0A0A0A0,5,0,1,12

And RouteFlow will work in this setting.

The other factor is the NEC switch IP8800 we used.
After we replaced it with NEC switch PF5240,
the Overflow problem then disappeared.
So it seems the error is not related to DPID converting problem.

Yet we still provide the DPID format

Linksys DPID starts with 0x2320 and follows six character or number like 0x23206107ce.
NEC PF5240 DPID is simply set 1, 2, and RouteFlow successfully work.


But here comes another error.

Log shows as below.

ERROR:openflow.of_01:[00-23-20-12-34-56 2] OpenFlow Error:
[00-23-20-12-34-56 2] Error: header: 
[00-23-20-12-34-56 2] Error:   version: 1
[00-23-20-12-34-56 2] Error:   type:    1 (OFPT_ERROR)
[00-23-20-12-34-56 2] Error:   length:  76
[00-23-20-12-34-56 2] Error:   xid:     26
[00-23-20-12-34-56 2] Error: type: OFPET_FLOW_MOD_FAILED (3)
[00-23-20-12-34-56 2] Error: code: OFPFMFC_ALL_TABLES_FULL (0)
[00-23-20-12-34-56 2] Error: datalen: 64
[00-23-20-12-34-56 2] Error: 0000: 01 0e 00 50 00 00 00 1a  00 10 00 0f 00 00 00 00   ...P............
[00-23-20-12-34-56 2] Error: 0010: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 86 dd   ................
[00-23-20-12-34-56 2] Error: 0020: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
[00-23-20-12-34-56 2] Error: 0030: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 80 20   ...............

However, RouteFlow still worked despite the error;
it just appeared in the beginning and then the RouteFlow message
(e.g. routemod) will start and then RouteFlow worked.
We tried to figure out what OFPFMFC_ALL_TABLES_FULL (0) means,
but we found out that the table was not full. We do not know
the reason it occured, please help.      This is question 2.

Another question is that, since we are running OSPF protocol,
how can we involve the bandwidth in the testbed?
Do we simply modify the setting like that

interface gigabitethernet 1?                 This is question 3.


About the last question, we guess it might be a bug in RouteFlow.

First the following shows the diagram we constructed.

                        +----------+                        +----------+
                        |             |                         |             |
                        |             |3                     3|             |
                        |   R1     +---------------------+   R2     |
                        |             |                         |             |
                        +----+-----+                       +-----+----+
                               |1                                      |1
                               |                                        |
                               |                                        |
                               |                                        |
                               |1                                      |1
                        +----+-----+                       +-----+----+
                        |              |                        |              |
                        |              |3                    3|              |
                        |   SA      +--------------------+    SB     |
                        |              |                        |              |
                        +----+-----x4                      +-----+----+
                             2|          x                              |2
                               |              x                          |
                               |                 x                       |
                               |                     x                   |
                               |                         x               |
                             1|                              x 4       |1
                        +----+-----+                         +-----+----+
                        |              |                          |              |
                        |              |3                      3|              |
                        |   SC      +---------------------+     SD    |
                        |              |                          |              |
                        +----------+                          +-----------+


R1, R2 are two legacy router, SA, SB, SC and SD are openflow switch.
The numbers on the diagram represent the port of each device.

When we start rftest2, we log in rfvm (whichever A, B, C or D) and can ping every router or switch.
Things are that if we start from R1 for example, we can not ping port 3 of SB.
Likewise, if we start from R2, we cannot ping port 3 of SA.
We are sure that we connect the topology correctly
since the routing is learned by each device.
We have no idea why we cannot ping those ports however.

This is the question 4.

Let me summarize it.

Q1. Can we use discontinuous port and intuitive mapping? (like physical port 9 to virtual port 9, physical port 18 to virtual port 18)

Q2. Error: OFPET_FLOW_MOD_FAILED (3) OFPFMFC_ALL_TABLES_FULL (0)

Q3. How to involve bandwidth issue in Quagga?

Q4. Pinging problem.


Thanks a lot!!

Joe Stringer

unread,
Aug 21, 2013, 7:21:33 AM8/21/13
to routeflo...@googlegroups.com
Apologies for the slow response. This is a long post.
 
Q1. Can we use discontinuous port and intuitive mapping? (like physical port 9 to virtual port 9, physical port 18 to virtual port 18)

I haven't tried it, but you will need to be careful regarding how the virtual port numbers are assigned, and how the OpenFlow port numbers are assigned to ensure correct behaviour. Try it out, and post back to let others know how it went.

Q2. Error: OFPET_FLOW_MOD_FAILED (3) OFPFMFC_ALL_TABLES_FULL (0)

Can you get more information? For instance, capture the OpenFlow messages using tcpdump and determine which message causes this response?
 
Q3. How to involve bandwidth issue in Quagga?

Sorry, I have no experience with this. There might be configuration for the linux containers, or perhaps in the Quagga configuration files. Whatever routes that Quagga installs in the kernel tables, RouteFlow will mirror on your OpenFlow switches.

Q4. Pinging problem.

It's difficult to trace this down as we don't have visibility into your setup. I am aware of a race condition between VM startup and virtual switch (VS) startup which may cause issues like this. However I'm not sure this is the issue in your particular circumstance.

I've rolled a fix for the race condition as part of my 'narcolepsy' branch on my github (link below), however I have not yet extensively tested this code and even if the code works, it might not fix your issues. Good luck, and please let us know how it goes! 

Reply all
Reply to author
Forward
0 new messages