[ovs-dev] Implementation of Packet-Out in Bundles

André Mantas andremantas7 at gmail.com
Thu Mar 3 17:54:42 UTC 2016


Hi again.

For now, I'm testing the implementation with a floodlight controller that
opens a bundle, adds a packet_out message and tries to commit the bundle.
I'm using mininet to start a simple topology with 1 switch and 2 hosts and
connect the switch to the remote controller. I followed INSTALL.md to start
ovs before running the mininet script.

Everything works like before if the controller does not send a packet_out
in a bundle. However, when I try to send the packet_out to the bundle, the
switch disconnects from the controller after the commit request message is
sent and all ovs-ofctl commands fail on that bridge.

To debug, I added some VLOG_INFO calls in handle_bundle_add and
do_bundle_commit functions. The prints (found in /var/log/syslog) are below
together with the output of "ovs-ofctl snoop s1"

Looks like adding the message to the bundle and committing the bundle is ok
but something happens afterwards?
Where would be a good place to look for the problem?

*/var/log/syslog:*

Mar  3 16:46:08 ubuntu-vbox ovs-vswitchd: ovs|00093|ofproto|INFO|bundle add
message - after decode, error: 0
Mar  3 16:46:08 ubuntu-vbox ovs-vswitchd: ovs|00094|ofproto|INFO|bundle add
message: In if case for Packet_Out
Mar  3 16:46:08 ubuntu-vbox ovs-vswitchd: ovs|00095|ofproto|INFO|bundle add
message: no error in Packet_Out if case
Mar  3 16:46:08 ubuntu-vbox ovs-vswitchd: ovs|00099|ofproto|INFO|bundle
commit - init
Mar  3 16:46:08 ubuntu-vbox ovs-vswitchd: ovs|00100|ofproto|INFO|bundle
commit - phase 1 - packet out detected
Mar  3 16:46:08 ubuntu-vbox ovs-vswitchd: ovs|00102|ofproto|INFO|bundle
commit - phase 2 - sending packet out
Mar  3 16:46:08 ubuntu-vbox ovs-vswitchd: ovs|00103|ofproto|INFO|bundle
commit - phase 2 - packet out sent!
Mar  3 16:46:08 ubuntu-vbox ovs-vswitchd: ovs|00104|ofproto|INFO|bundle
commit - phase 2 - payload deleted
Mar  3 16:46:08 ubuntu-vbox ovs-vswitchd: ovs|00108|ofproto|INFO|bundle
commit - phase 2 ended
Mar  3 16:46:08 ubuntu-vbox ovs-vswitchd: ovs|00109|ofproto|INFO|bundle
commit - flush and mutex unlock done
Mar  3 16:46:08 ubuntu-vbox ovs-vswitchd: ovs|00110|ofproto|INFO|bundle
commit - run_rule_executes done
(no more ovs related lines after this)

*ovs-ofctl snoop s1:*

OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x27):
 bundle_id=0xb type=OPEN_REQUEST flags=ordered
OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x27):
 bundle_id=0xb type=OPEN_REPLY flags=0
OFPT_BUNDLE_ADD_MESSAGE (OF1.4) (xid=0x28):
 bundle_id=0xb flags=ordered
OFPT_PACKET_OUT (OF1.4) (xid=0x28): in_port=CONTROLLER
actions=CONTROLLER:65535 data_len=25
vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=ff:ff:ff:ff:ff:ff,dl_type=0xffff
OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x2c):
 bundle_id=0xb type=CLOSE_REQUEST flags=ordered
OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x2c):
 bundle_id=0xb type=CLOSE_REPLY flags=0
OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x2d):
 bundle_id=0xb type=COMMIT_REQUEST flags=ordered
ovs-ofctl: vconn_recv (End of file)

Ben Pfaff <blp at ovn.org> escreveu no dia domingo, 28/02/2016 às 00:00:

> On Sat, Feb 27, 2016 at 11:15:58PM +0000, André Mantas wrote:
> > Ben Pfaff <blp at ovn.org> escreveu no dia sábado, 27/02/2016 às 22:30:
> >
> > > On Sat, Feb 27, 2016 at 06:24:23PM +0000, André Mantas wrote:
> > > > Ok, I'll try to do that.
> > > >
> > > > Now related with tests for ofproto.at, if I'm not mistaken, in
> version
> > > 2.3
> > > > we had the "bundle" command in ovs-ofctl and do things like:
> > > >
> > > > ovs-ofctl bundle <bridge> "open_bundle_id=<id>,add_bundle_id=<id>
> > > > message=<message>[,add_bundle_id=<id>
> > > > message=<message>...],close_bundle_id=<id>,commit_bundle_id=<id>"
> > > >
> > > > Is this not supported any more? The only way to send "bundle-add"
> > > messages
> > > > is with with the option --bundle for add-flow, mod-flows, etc?
> > >
> > > OVS 2.3 didn't support bundles.  ovs-ofctl never supported a "bundle"
> > > command.
> >
> > Oh, ok. I thought it was supported from here:
> > http://www.pica8.com/document/v2.3/html/ovs-commands-reference/#1081528
>
> Perhaps Pica8 forked OVS for use on their switches, as is their right.
> However, they have never contributed even a single patch, so I guess
> they have no desire to be part of the Open vSwitch development
> community.
>
> > > > If so, is the right approach to add a "--bundle" option for the
> > > packet-out
> > > > command?
> > >
> > > Well, I suppose you could, and perhaps we should to be thorough, but
> > > packet-out only supports sending packet-outs, so it's going to have
> > > limited value in practice.
> > >
> > > For more usefulness in practice, I guess we could add a more general
> > > command that accepts a variety of commands.  One could think of this as
> > > an extension of "ovs-ofctl add-flows", which already allows a variety
> of
> > > OFPT_FLOW_MODs in its input, although it might make more sense to give
> > > it a new name.
> >
> > So, in which one do you think I should start working right now?
>
> I'd be happy with either one to start, but the more general command
> would be more useful.
>



More information about the dev mailing list