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 <harry....@gmail.com> 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
> > >         nox-dev@noxrepo.org
> > >         http://noxrepo.org/mailman/listinfo/nox-dev
> > >         
> > > 
> > > 
> > > 
> > > -- 
> > > Christian
> > > _______________________________________________
> > > nox-dev mailing list
> > > nox-dev@noxrepo.org
> > > 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
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev

Reply via email to