Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Announcing the new RouteFlow design
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  21 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Christian Esteve Rothenberg  
View profile  
 More options May 31 2012, 1:08 pm
From: Christian Esteve Rothenberg <est...@cpqd.com.br>
Date: Thu, 31 May 2012 14:08:42 -0300
Local: Thurs, May 31 2012 1:08 pm
Subject: Announcing the new RouteFlow design

*What's new*
We're glad to announce an entirely new version of RouteFlow, with many new
features in response to our first year´s experiences and the requests from
users and developers!
The version has been in an experimental branch for some time now and is
stable enough to become mainstream.

 In this new version, we have introduced:

   - Centralized database and IPC
      - We leverage MongoDB for storing the core system´s state and the
      OpenFlow network statistics. A JSON-based IPC service (aka RouteFlow
      protocol) is also implemented on top of it.
   - Cleaner code base
      - Much of the code was rewritten and organized, making it easier for
      developers to play with RouteFlow.
      This includes the renaming of some components: RF-Slave becomes
      RFClient, RF-Controller becomes RFProxy.
       - POX support
      - Support for using the new POX controller was added.
   - Web monitoring interface (requires POX)
      - Inspect network topology, RouteFlow internal messages and network
      state.
   - Open vSwich v1.4
      - To attach the virtual interfaces (eth1 to ethX) of the VMs.
       - Used also in the control network that (attaching et0) and running
      in bridge mode removes the requirement of a second controller instance to
      act as a simple L2 switch.
       - Tools for testing
      - A new module (rftest) introduces several scripts to facilitate
      testing and environment creation.
   - SNMP support
      - Export OpenFlow stats via SNMP. [Contribution by Joe
Stringer<https://github.com/joestringer>
      ]

 <https://sites.google.com/site/routeflow/updates/announcingthenewroute...>

 The detailed description of these new features is available in the README
<https://github.com/CPqD/RouteFlow/blob/master/README>file.

You can download the new pre-configured VM (3.7GB) from
here<ftp://ftp.cpqd.com.br/pub/routeflow/RouteFlow.zip>:
ftp://ftp.cpqd.<https://sites.google.com/site/routeflow/updates/goog_66211347>
com.br/pub/routeflow/RouteFlow.zip
or get it via github <https://github.com/CPqD/RouteFlow/>.

 *What's next*
The list is long!

   - Foremost we want to make RouteFlow more and easier configurable.
   Currently, there's no trivial way to associate VMs and datapaths
   statically, but we want to solve this through a new configuration apporach.
   - RouteFlow with NOX requires Ubuntu 11.04 (POX users should be fine in
   newer versions). We will be adding support for Ubuntu 11.10 and 12.04.
   - Embrace OpenFlow v1.X. We have working prototypes of NOX and
   software-based reference switch using OpenFlow 1.1 and 1.2.
   - Extensions to support LDP label information.
    - Exploration of possibilities opened by the use of a central database
   (e.g., keep state history and allow queries like "show me flow table at
   timestamp x").
   - Address High Availability.
   - New routing abstractions implemented as Services on top of the
   RF-Server.
    - ... a number of additions under investigation by students and project
   collaborators.

 Stay tuned for further news!

Thank you all!

--
Christian Esteve Rothenberg, Ph.D.
Converged Networks Business Unit
CPqD - Center for Research and Development in Telecommunications
Tel. (+55 19) 3705 4479 / Cel. (+55 19) 8193-7087


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
joshb  
View profile  
 More options Jun 4 2012, 5:14 am
From: joshb <jo...@google.com>
Date: Mon, 4 Jun 2012 02:14:42 -0700 (PDT)
Local: Mon, Jun 4 2012 5:14 am
Subject: Re: Announcing the new RouteFlow design

Hi Christian;

Nice to see! Definitely fewer moving pieces in the new design which is
great! Also being able to use pox as well will be helpful.

Unfortunately the new setup doesn't appear to work for me with neither
nox nor pox - no packets are received by the control VM rfvm1. I used
Ubuntu 11.0.4 (x64).

I can build fine (though I had to add CPPFLAGS=-fPIC, LDFLAGS=-fPIC).
It's also a bit scary that mongodb is built with prefix /usr which
would overwrite any packaged distribution - but no big deal.

Also the README says to use --nox vs --pox for testing. The scripts
though are actually rftest1 and rftest1_pox and they don't take
command line arguments - and the default user password is root/root
not routeflow.

Anyway - on to the actual problem. :-) switch1 is correctly set up and
when I ping from b1 or b2, ARP packets are tunnelled to the
controller. However rfvm1 never sees them. I uncommented the logging
line in RouteFlow/pox/ext/rfproxy.py:

        results = rftable.find({VS_ID: str(event.dpid)})
        if results.count() == 0 or results[0][VM_ID] == "":
            results = rftable.find({VS_ID: {"$ne": ""}, DP_ID:
str(event.dpid), DP_PORT: str(event.port)})
            if results.count() == 0:
                log.info("Datapath not associated with a VM")
                return

And I see now "Datapath not associated with a VM" on each ping
attempt.

Please let me know if you have any suggestions? Otherwise I will
continue to troubleshoot.

Thanks.

# ./rftest1_pox
Resetting and stopping LXC VMs...
Stopping any running instances and data of rfserver, POX, OVS and
MongoDB...
Starting MongoDB...
all output going to: /dev/null
Starting the rfvm1 virtual machine...
Starting the management network (br0)...
Starting POX and the RouteFlow network controller...
POX 0.0.0 / Copyright 2011 James McCauley
2012-06-04 01:57:41,092 - ext.rfproxy - INFO - RFProxy running.
2012-06-04 01:57:42,538 - openflow.topology - INFO - Switch 60-
eb-69-21-5b-92 connected
DP is up, installing config flows... `?i![
Starting the RouteFlow server...
Starting the control plane network (dp0 OVS)...
2012-06-04 01:57:46,241 - openflow.topology - INFO - Switch
76-73-72-66-76-73|29286 connected
DP is up, installing config flows... rfvsrfv
Starting the sample network...
2012-06-04 01:57:49,744 - openflow.topology - INFO - Switch f6-39-
ee-55-73-49 connected
DP is up, installing config flows... ?9?Us
Now we'll open this test's log.
Try pinging b1 from b2:
  $ sudo lxc-console -n b1
Login and run:
  $ ping 172.31.2.2
Jun 04 01:57:22|00042|bridge|WARN|bridge dp0: using default bridge
Ethernet address c6:04:a7:73:d2:45
Jun 04 01:57:22|00043|ofproto|INFO|datapath ID changed to
7266767372667673
Jun 04 01:57:22|00044|rconn|INFO|dp0<->tcp:127.0.0.1:6633:
connecting...
Jun 04 01:57:22|00045|rconn|WARN|dp0<->tcp:127.0.0.1:6633: connection
failed (Connection refused)
Jun 04 01:57:22|00046|rconn|INFO|dp0<->tcp:127.0.0.1:6633: waiting 1
seconds before reconnect
Jun 04 01:57:22|00047|bridge|WARN|bridge switch1: using default bridge
Ethernet address 9a:2c:80:a6:9b:47
Jun 04 01:57:22|00048|ofproto|INFO|datapath ID changed to
00009a2c80a69b47
Jun 04 01:57:22|00049|rconn|INFO|switch1<->tcp:127.0.0.1:6633:
connecting...
Jun 04 01:57:22|00050|rconn|WARN|switch1<->tcp:127.0.0.1:6633:
connection failed (Connection refused)
Jun 04 01:57:22|00051|rconn|INFO|switch1<->tcp:127.0.0.1:6633: waiting
1 seconds before reconnect

# ovs-ofctl dump-flows switch1
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=580.692s, table=0, n_packets=0, n_bytes=0,
udp,nw_dst=224.0.0.9 actions=CONTROLLER:65535
 cookie=0x0, duration=580.692s, table=0, n_packets=6, n_bytes=252, arp
actions=CONTROLLER:65535
 cookie=0x0, duration=580.692s, table=0, n_packets=0, n_bytes=0,
tcp,tp_dst=179 actions=CONTROLLER:65535
 cookie=0x0, duration=580.692s, table=0, n_packets=0, n_bytes=0,
ip,nw_proto=89 actions=CONTROLLER:65535
 cookie=0x0, duration=580.692s, table=0, n_packets=0, n_bytes=0, icmp
actions=CONTROLLER:65535
# ovs-ofctl show switch1
OFPT_FEATURES_REPLY (xid=0x1): ver:0x1, dpid:0000f639ee557349
n_tables:255, n_buffers:256
features: capabilities:0xc7, actions:0xfff
 1(b1.0): addr:1e:74:db:7a:d2:ce
     config:     0
     state:      0
     current:    10GB-FD COPPER
 2(b2.0): addr:ee:1c:48:59:6c:2e
     config:     0
     state:      0
     current:    10GB-FD COPPER
 LOCAL(switch1): addr:f6:39:ee:55:73:49
     config:     0
     state:      0
OFPT_GET_CONFIG_REPLY (xid=0x3): frags=normal miss_send_len=0

On Jun 1, 5:08 am, Christian Esteve Rothenberg <est...@cpqd.com.br>
wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Allan Vidal  
View profile  
 More options Jun 4 2012, 8:28 am
From: Allan Vidal <all...@cpqd.com.br>
Date: Mon, 4 Jun 2012 09:28:57 -0300
Local: Mon, Jun 4 2012 8:28 am
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

Hi Josh,

About Mongo in /usr: yep, that's not the ideal. We plan to support Ubuntu
12.04 soon, and then it will be a matter of apt-getting mongo :)

As for the testing, the default user/password for the prebuilt VM is
routeflow/routeflow. The LXC containers are root/root.

Anyhow, I changed the scripts a lot in the last commits a few days ago. Try
pulling from the repository. I believe they're much better, though not
quite flawless :) You might have run into some troublesome commit.

There's a small glitch: in the first run of the tests after booting, OVS
behaves badly sometimes. You have to close the script and try again, then
it should work.

Please, let me know if you run into any problems :)

Allan


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Josh Bailey  
View profile  
 More options Jun 4 2012, 7:02 pm
From: Josh Bailey <jo...@google.com>
Date: Mon, 4 Jun 2012 16:02:01 -0700 (PDT)
Local: Mon, Jun 4 2012 7:02 pm
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

Hi Allan;

Thanks, things are a bit closer now but still not working. The rfvm1 VM
now receives packets but eth1 (for example) drops them all:

eth1      Link encap:Ethernet  HWaddr 12:b1:b1:b1:b1:b1
           inet addr:172.31.1.1  Bcast:172.31.1.255  Mask:255.255.255.0
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:43 errors:0 dropped:43 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:3655 (3.6 KB)  TX bytes:0 (0.0 B)

I'll keep troubleshooting but any suggestions appreciated.

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Josh Bailey  
View profile  
 More options Jun 5 2012, 8:29 am
From: Josh Bailey <jo...@google.com>
Date: Tue, 5 Jun 2012 05:29:26 -0700 (PDT)
Local: Tues, Jun 5 2012 8:29 am
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

Hi Allan;

OK, I find the problem. Firstly there's a lot of startup races in rftest1.
For example, if MongoDB fails in time to start nothing else works and just
crashes. I added some checks to make sure MongoDB starts before
proceeding. I'll send a patch.

But the actual problem is, that RFServer gets a datapath join event for
"0x60eb69215b92", which happens to be br0. The control plane datapath
joins no problem, but then switch1 tries to join. br0 has already claimed
the control plane VM so nothing works.

I just hacked rfserver.cc to never associate 0x60eb69215b92 with a VM.
Then when switch1 comes up the VM is free and everything works.

I'm not sure how the code as is currently checked in can work at all,
unless I am missing something - Eg, br0 just happens to very slow to come
up so it comes up last. Probably the right solution is to add a more
robust check for br0 to ignore it no matter when it comes up.

Thanks,

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Allan Vidal  
View profile  
 More options Jun 5 2012, 9:04 am
From: Allan Vidal <all...@cpqd.com.br>
Date: Tue, 5 Jun 2012 10:04:26 -0300
Local: Tues, Jun 5 2012 9:04 am
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

Hi Josh,

br0 shouldn't be connecting to the controller, as it should be managed by
OVS itself. But it's what seems to be happening. I'll look into it and get
back to you ASAP.

Allan

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Allan Vidal  
View profile  
 More options Jun 5 2012, 9:50 am
From: Allan Vidal <all...@cpqd.com.br>
Date: Tue, 5 Jun 2012 10:50:01 -0300
Local: Tues, Jun 5 2012 9:50 am
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

Hi Josh,

I tested here, and br0 never connects to either NOX or POX. Which version
of OVS are you using?

What happens here is the following:
-> Starting the control plane network (dp0 VS)...
INFO:openflow.of_01:[Con 1/8243406406160905843] Connected to
76-73-72-66-76-73|29286
[...]
-> Starting the sample network...
INFO:openflow.of_01:[Con 2/34042236714307] Connected to 1e-f6-13-6d-3d-43

The DP IDs are:
~$ sudo ovs-vsctl get Bridge br0 datapath-id
"0000b69ab5a1b348"
~$ sudo ovs-vsctl get Bridge switch1 datapath-id
"00001ef6136d3d43"

And OVS says the configured controllers are:
~$ sudo ovs-vsctl get-controller br0
~$ sudo ovs-vsctl get-controller switch1
tcp:127.0.0.1:6633

I'm very curious as to why your br0 is connecting to the controller...
Based on the OVS man pages, I believe this shouldn't be happening (man
ovs-vsctl):

ovs-vswitchd can perform all configured bridging and switching locally,
or it can be configured to communicate with one or more external  Open‐
Flow  controllers.   The switch is typically configured to connect to a
primary controller that takes charge of  the  bridge's  flow  table  to
implement  a network policy.  In addition, the switch can be configured
to listen to connections from service controllers.  Service controllers
are  typically  used  for occasional support and maintenance, e.g. with
ovs-ofctl.

Does this behavior persist? Do you have any theories?

As for the Mongo and other race conditions, you're right, we're still too
dependent on the order of the events. Your patch will be very helpful :)

Thank you,
Allan

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
joshb  
View profile  
 More options Jun 5 2012, 6:18 pm
From: joshb <jo...@google.com>
Date: Tue, 5 Jun 2012 15:18:30 -0700 (PDT)
Local: Tues, Jun 5 2012 6:18 pm
Subject: Re: Announcing the new RouteFlow design
Thanks! It's completely consistent - without my hack nothing works.
Bit of a puzzle why we see something different.

I am using OVS 1.4.1 per the instructions. ovs-ofctl list-br shows
only br0 dp0 and switch1.

I'll keep investigating and let you know (and also send the startup
patch).

On Jun 6, 1:50 am, Allan Vidal <all...@cpqd.com.br> wrote:

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Josh Bailey  
View profile  
 More options Jun 5 2012, 7:25 pm
From: Josh Bailey <jo...@google.com>
Date: Tue, 5 Jun 2012 16:25:25 -0700 (PDT)
Local: Tues, Jun 5 2012 7:25 pm
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

Hi Allan;

Here's my patch to rftest1 (essentially just removes all the sleeps and
waits for ports to be listening instead).

...

read more »

  rftest1.patch
2K Download

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Josh Bailey  
View profile  
 More options Jun 5 2012, 11:48 pm
From: Josh Bailey <jo...@google.com>
Date: Tue, 5 Jun 2012 20:48:13 -0700 (PDT)
Local: Tues, Jun 5 2012 11:48 pm
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

OK. I am now able to swap out "switch1" with a hardware OpenFlow switch
and have pings work. However I had to fix another problem along the way.

This problem is in RFServer.cc. My hardware switch has lots of ports, of
course, so I want to add them all. However, RFServer.cc only handles
VM_MAP messages where there are no existing entries with VS_ID set. So it
handles the first ports and then silently drops the rest because the first
ones to add, add entries with VS_ID...

I just commented out query[VS_ID] = "" (see below) and now all VM_MAP
messages are processed.

Would it be possible to commit a fix for this?

Thanks,

             else if (type == VM_MAP) {
                 VMMap *mapmsg = dynamic_cast<VMMap*>(&msg);
                 syslog(LOG_INFO, "Mapping message arrived from vm=0x%llx",
mapmsg->get_vm_id());

                 // Search for VM's with no mapping
                 map<string, string> query;
                 vector<RFEntry> results;
                 query[VM_ID] = to_string<uint64_t>(mapmsg->get_vm_id());
                 // query[VS_ID] = "";
                 ^^^^^^^^^^^^^^^^^^^^^
                 // Querying for VS_ID is enough, but we could play it safe
and query all mapping attributes
                 results = this->rftable->get_entries(query);

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Allan Vidal  
View profile  
 More options Jun 6 2012, 1:49 pm
From: Allan Vidal <all...@cpqd.com.br>
Date: Wed, 6 Jun 2012 14:49:22 -0300
Local: Wed, Jun 6 2012 1:49 pm
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

Hi Josh,

I'm not sure I understand the problem. You said RFServer handles the first
ports and then silently drops the rest, but that's not what should happen.

When a switch joins RFServer and there's an idle VM to connect, it will
create N entries, where N is the number of switch ports. The format of
these entries will be:
vm_id, -, -, -, dp_id, -

After that, the VM will be instructed to send mapping packets on each of
its interfaces. When a mapping message arrives at the controller and is
redirected to RFServer, we check if there's an unmapped entry in the format
above (thus, the check for VS_ID=""). When there's, we make it an active
entry:
vm_id, vm_port, vs_id, vs_port, dp_id, dp_port

Removing the check for VS_ID="" could potentially cause valid entries to be
overwritten in the association table.

Are you running RouteFlow under POX?
If you are, it will be interesting to see what happens (with and without
your modification) in the association table through the web interface. You
can start it by going to rfweb, running "python rfweb_server.py" and then
access http://localhost:8080/index.html
You will need pymongo as instructed in the README file.

And thanks for the patch! We really appreciate your efforts :)

Allan

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Christian Esteve Rothenberg  
View profile  
 More options Jun 6 2012, 3:05 pm
From: Christian Esteve Rothenberg <est...@cpqd.com.br>
Date: Wed, 6 Jun 2012 16:05:13 -0300
Local: Wed, Jun 6 2012 3:05 pm
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design
Thanks Josh for your efforts in debugging and the patch!

We shall extend our tests with hardware OpenFlow switches, beyond the
4-port NetFPGAs.

What is really strange is that OVS br0 uses the OpenFlow channel to
connect to the OpenFlow controller, that should not be the case when
initiating OVS in bridge mode...

We will work on a stable fix for the port mapping issue once we can
reproduce it.

Cheers,
Christian

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Josh Bailey  
View profile  
 More options Jun 6 2012, 7:52 pm
From: Josh Bailey <jo...@google.com>
Date: Wed, 6 Jun 2012 16:52:45 -0700 (PDT)
Local: Wed, Jun 6 2012 7:52 pm
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

So I have some good news on that one - the br0 problem was due to a left
over OVS config database. I got rid of that and now br0 no longer tries to
connect.

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Josh Bailey  
View profile  
 More options Jun 6 2012, 8:09 pm
From: Josh Bailey <jo...@google.com>
Date: Wed, 6 Jun 2012 17:09:22 -0700 (PDT)
Local: Wed, Jun 6 2012 8:09 pm
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

Here is a dump of the table with my patch (I used --pox here):

> db.rftable.find()

{ "_id" : ObjectId("4fcfee5af11787ac125f25d8"), "dp_id" :
"106564197374866", "dp_port" : "10", "vm_id" : "1701698025116532",
"vm_port" : "10", "vs_id" : "8243406406160905843", "vs_port" : "10" }
{ "_id" : ObjectId("4fcfee5af11787ac125f25d8"), "dp_id" :
"106564197374866", "dp_port" : "2", "vm_id" : "1701698025116532",
"vm_port" : "2", "vs_id" : "8243406406160905843", "vs_port" : "2" }
{ "_id" : ObjectId("4fcfee5af11787ac125f25d8"), "dp_id" :
"106564197374866", "dp_port" : "11", "vm_id" : "1701698025116532",
"vm_port" : "11", "vs_id" : "8243406406160905843", "vs_port" : "11" }

Note 2, 10, 11 are all up.

Here's without the patch:

> db.rftable.find()

{ "_id" : ObjectId("4fcff02a8eefc05e4c94de33"), "dp_id" :
"106564197374866", "dp_port" : "1", "vm_id" : "8680158250242133",
"vm_port" : "1", "vs_id" : "8243406406160905843", "vs_port" : "1" }
{ "_id" : ObjectId("4fcff02a8eefc05e4c94de34"), "dp_id" :
"106564197374866", "dp_port" : "2", "vm_id" : "8680158250242133",
"vm_port" : "2", "vs_id" : "8243406406160905843", "vs_port" : "2" }

As you can see ports 10 and 11 among others are missing. So I don't think
my patch is the correct solution but it does illustrate the problem.

When I ping from port 11, without the patch, I see:

DEBUG:ext.rfproxy:Datapath not associated with a VM

Which is true - it's not in rftable. Even though clearly the VM_MAP
messages are arriving.

I tweaked the logging messages slightly to make it more clear:

Jun  6 17:04:58 project-w-2 rf-server[14199]: Mapping message arrived from
vm=0x1ed68ed5199055
Jun  6 17:04:58 project-w-2 rf-server[14199]: Adding entry for
vs_id=1919317619, vs_port=1, vm_port=1, dp_port=1
Jun  6 17:04:58 project-w-2 rf-server[14199]: Mapping message arrived from
vm=0x1ed68ed5199055
Jun  6 17:04:58 project-w-2 rf-server[14199]: Adding entry for
vs_id=1919317619, vs_port=2, vm_port=2, dp_port=2
Jun  6 17:04:58 project-w-2 rf-server[14199]: Mapping message arrived from
vm=0x1ed68ed5199055
Jun  6 17:06:02 project-w-2 rf-server[14199]: last message repeated 8
times

As you can see the VM_MAP messages are arriving but RFServer only adds the
first two and ignores the rest.

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Josh Bailey  
View profile  
 More options Jun 6 2012, 9:58 pm
From: Josh Bailey <jo...@google.com>
Date: Wed, 6 Jun 2012 18:58:23 -0700 (PDT)
Local: Wed, Jun 6 2012 9:58 pm
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

So just running rftest1 --pox with unmodified code, here's what happens:

VM has registered, but switch1 is not up yet. register_vm() adds this
entry.

> db.rftable.find()

{ "_id" : ObjectId("4fd00a19a784d5bdd7305713"), "vm_id" :
"1142171972022649", "vm_port" : "", "vs_id" : "", "vs_port" : "", "dp_id"
: "", "dp_port" : "" }

Now switch1 has come up.

> db.rftable.find()

{ "_id" : ObjectId("4fd00a38a784d5bdd730571c"), "dp_id" :
"270793501641551", "dp_port" : "1", "vm_id" : "1142171972022649",
"vm_port" : "1", "vs_id" : "1919317619", "vs_port" : "1" }
{ "_id" : ObjectId("4fd00a38a784d5bdd730571d"), "dp_id" :
"270793501641551", "dp_port" : "2", "vm_id" : "1142171972022649",
"vm_port" : "2", "vs_id" : "1919317619", "vs_port" : "2" }

The "wild card" VS_ID = "" is gone. Because it's gone no new entries can
be added.

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Allan Vidal  
View profile  
 More options Jun 11 2012, 8:47 am
From: Allan Vidal <all...@cpqd.com.br>
Date: Mon, 11 Jun 2012 09:47:37 -0300
Local: Mon, Jun 11 2012 8:47 am
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

Hi Josh,

What's the number of ports informed by the switch? It's in the DatapathJoin
message that goes through the rfserver<->rfproxy channel (the collection is
named the same).
A possibility is that the config from previous runs is being kept. The
Mongo database is deleted in each run of the script so we have a clean
testing environment each time, but if isn't and the switch informed it had
two ports in a previous run, it will remain as the expected value. Again,
we plan to change that soon in a new scheme of manual, updatable
configuration.

Allan

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Josh Bailey  
View profile  
 More options Jun 11 2012, 9:11 pm
From: Josh Bailey <jo...@google.com>
Date: Mon, 11 Jun 2012 18:11:51 -0700 (PDT)
Local: Mon, Jun 11 2012 9:11 pm
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

It's 11. And I confirm that the database is being deleted.

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Allan Vidal  
View profile  
 More options Jun 12 2012, 3:02 pm
From: Allan Vidal <all...@cpqd.com.br>
Date: Tue, 12 Jun 2012 16:02:39 -0300
Local: Tues, Jun 12 2012 3:02 pm
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

Hi Josh,

I tried to setup a similar test based on your scenario, using OVS. It's
basically rftest1 modified to include more ports (1 and 2 are connected to
hosts b1 and b2, respectively, and the rest is inactive).

I had to change a few things:

1) The config file for rfvm1 to include the new interfaces (now
rfvm1.0-rfvm1.11)

2) /etc/network/interfaces in rfvm1 to setup the new interfaces

3) rftest1 to include the new ports. This is the interesting part:
For the linked interfaces in switch1 (b1.0 and b2.0), I just add them.

For the inactive interfaces in switch1 (b3.0 to b11.0), I needed to add "--
set interface b*.0 type=internal" to the add-port command so that they're
created regardless of being linked.

After we do that, we have 11 ports in the switch, so RFServer creates 11
entries in RFTable. When the mapping packets come from the VM, they should
fill the table appropriately.

I also needed to add the ports a command at a time. This is so that the
ports are added in order: we want port 1 in the switch to be associated
with port 1 in the control plane (dp0). If we add the ports in a single
command, b2.0 might end up as port 5 in the switch for example, messing
with what we configured in rfvm1. Actually, this is an issue I identified
modifying rftest1 and I will fix it soon.

I'm very puzzled by your issue. Could you try this modified version of
rftest1 to see what happens?
Are you using a hardware switch? If it's informing 11 ports in the datapath
join event, this number of entries should've been created, even if they're
blank at first.
What might be happening is that only some (the active?) ports are being
communicated by the switch. In this case, fewer entries will be created,
and so mapping messages will be discarded when they arrive from the VM.

Allan

...

read more »

  rftest1_mod
7K Download

  interfaces
1K Download

  config
2K Download

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Josh Bailey  
View profile  
 More options Jun 12 2012, 5:16 pm
From: Josh Bailey <jo...@google.com>
Date: Tue, 12 Jun 2012 14:16:09 -0700 (PDT)
Local: Tues, Jun 12 2012 5:16 pm
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

Ah! Thanks! I'll follow your suggestions and update you with the result.
Makes sense to me that there will be a mismatch based on whether ports are
active or not.

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Josh Bailey  
View profile   Translate to Translated (View Original)
 More options Jun 25 2012, 6:55 am
From: Josh Bailey <jo...@google.com>
Date: Mon, 25 Jun 2012 03:55:52 -0700 (PDT)
Local: Mon, Jun 25 2012 6:55 am
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

Hi Allan;

I finally was able to test this (add all ports on the hardware OpenFlow
switch, one at a time, in order, and do the same with the RouteFlow VM's
interfaces). Then I am able to pass traffic.

Great! Thanks for all the help.

I think the key thing now is to identify via configuration, which ports on
what switch are associated with what VM/interface. Are there any specific
plans in this area?

Thanks,

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Allan Vidal  
View profile  
 More options Jun 25 2012, 9:01 am
From: Allan Vidal <all...@cpqd.com.br>
Date: Mon, 25 Jun 2012 10:01:50 -0300
Local: Mon, Jun 25 2012 9:01 am
Subject: Re: [RouteFlow-discuss] Re: Announcing the new RouteFlow design

Hi Josh,

I'm very glad it worked!

Currently, the only possibility of configuration is manually editing
RFTable through MongoDB. But even in this case, the only configuration we
can change is the VM-DP association. The ports and interfaces are still
associated automatically.
We plan a new algorithm in which there will be a static configuration file
(a CSV file, maybe), that will be read when RFServer starts. Association
will then only be performed when there's a full match in the config file.
The plan is to implement it ASAP, but we can't give any hard deadlines. I
expect we will have something in the next two or three months.

Allan

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »