If you want to disable that behavior, you can edit builtin/nox.cc.
Delete the following three lines from around line 1264:
if ( send_openflow_command(dpid, &ofm->header, false) == EAGAIN) {
lg.err("Error, unable to clear flow table on startup");
}
.. and that should do it.
Can I ask why the table-clearing behavior is not acceptable to you?
-- Murphy
On Fri, 2011-03-25 at 11:22 +0700, Harry wrote:
> On 3/25/2011 2:34 AM, Murphy McCauley wrote:
> > It's true that pyswitch does install flows with a timeout. However,
> > there's another reason as well: NOX deletes all flows on a switch
> > when the switch connects (in builtin/nox.cc).
> >
> >
> > If it didn't, it's difficult to reason about what installing a
> > particular flow would actually do (e.g., possibly nothing). That
> > said, I've wondered for a while whether this should actually be an
> > option, so that a clever application COULD actually inspect the flow
> > table on switch connect and decide what to do...
> >
> >
> > -- Murphy
> >
> > On Mar 24, 2011, at 7:51 AM, Christian Esteve Rothenberg wrote:
> >
> > > Harry,
> > >
> > > the problem is that the datapath flows do expire after 5 seconds
> > > of inactivity. You can change this in the pyswitch flow install
> > > timeout options.
> > > You can also check that if you keep sending ping packets between
> > > the hosts, the flow entries do not expire independent from the
> > > controller connectivity (unless you opt to change the default
> > > behaviour of switches after loosing the connection to the
> > > controller).
> > >
> > > -Christian
> > >
> > >
> > >
> > > On Thu, Mar 24, 2011 at 11:28, Harry <[email protected]> wrote:
> > > Hi all,
> > > Anyone could clear me this issue:
> > > I'm playing with the pyswitch component built on NOX. I
> > > start a single switch (ovsk switch) network in mininet
> > > with 3 hosts (h2,h3,h4), then start NOX controller with
> > > pyswitch.
> > > I ping from h2 to h3, log messages show that the
> > > controller successfully installed datapath flow for the
> > > first 3 packets (ARP & ICMP) between h2 & h3.
> > > Then I exit the controller, of course, I still ping from
> > > h2 to h3 (because datapath flows have been installed on
> > > the switch).
> > > But when I restart the controller and do the ping h2->h3
> > > again, why does the controller reinstall the datapath
> > > flows on the switch? The datapath flows on the switch seem
> > > to be cleared when I restart the controller.
> > >
> > > Thank you very much!
> > >
> > >
> > > _______________________________________________
> > > nox-dev mailing list
> > > [email protected]
> > > http://noxrepo.org/mailman/listinfo/nox-dev
> > >
> > >
> > >
> > >
> > > --
> > > Christian
> > > _______________________________________________
> > > nox-dev mailing list
> > > [email protected]
> > > http://noxrepo.org/mailman/listinfo/nox-dev
> >
> >
> Thanks Christian and Murphy,
> I did control the flow install timeout and saw the different.
> However, the main reason is as Murphy said.
> @Murphy: I understand what you've wondered. Have you do any
> modification to control the behavior of controller to Switch flow
> table at the first time they connect?
_______________________________________________
nox-dev mailing list
[email protected]
http://noxrepo.org/mailman/listinfo/nox-dev