I notice in your code below you are using CACHE_TIMEOUT as the idle timeout. Assuming you're modifying pyswitch, that's only 5 seconds. Is this the actual code you're using? Are you sure your flows aren't just timing out? If you change that to OFP_FLOW_PERMANENT, will it start doing what you want?
-- Murphy On Mon, 2011-02-21 at 23:04 -0800, [email protected] wrote: > I am using a Fulcrum microsystems switch that has provided an > openvswitch implementation for their switches. > I need to run ovs-openflowd on the switch that connects to the > specified nox controller and supports the standard openvswitch flow > insertion rules etc. > > ----- Original Message ----- > From: "Kyriakos Zarifis" <[email protected]> > To: [email protected] > Cc: "Murphy McCauley" <[email protected]>, "nox-dev" > <[email protected]> > Sent: Monday, February 21, 2011 10:40:15 PM GMT -08:00 US/Canada > Pacific > Subject: Re: [nox-dev] Matching wildcard flows with different > priorities > > Hey Malveeka, > > > what kind of switch are you using? (sorry if you mentioned this and I > missed it) > > On Mon, Feb 21, 2011 at 9:08 PM, <[email protected]> wrote: > So if I insert the rules in the order flow1, flow2 then you're > right flow2 doesn't get installed . > However, if I insert flow2 and then flow1, both rule do get > installed but in that case, even packets that should match > flow1 (because it's higher priority) match against flow2 and > get forwarded incorrectly. > > > > > > ----- Original Message ----- > From: "Murphy McCauley" <[email protected]> > To: [email protected] > Cc: "nox-dev" <[email protected]> > > > Sent: Monday, February 21, 2011 8:28:38 PM GMT -08:00 > US/Canada Pacific > Subject: Re: [nox-dev] Matching wildcard flows with different > priorities > > I think my next step would be to inspect the switch and see if > the flows I'm expecting are there (that is... is flow2 > actually getting installed?). If you're using the reference > switch or Open vSwitch, I'd just use the appropriate dpctl > tool to dump the flow table. > > > -- Murphy > > On Feb 21, 2011, at 8:09 PM, [email protected] wrote: > > I am not building the match by hand. > > > I am specifying the flow as a dictionary and calling > the install_datapath_flow method: > > > inst.install_datapath_flow(dpid, flow, CACHE_TIMEOUT, > > openflow.OFP_FLOW_PERMANENT, actions, > bufid, priority, > port, buf) > where flow is simply a dictionary .. > flow1 = {'dl_dst': array('B', [0, 96, 221, 70, 81, > 94]), 'dl_src': array('B', [0, 96, 221, 70, 81, 94])} > flow2 = {'dl_src': array('B', [0, 96, 221, 70, 81, > 94])} > > > and I invoke install_datapath_flow to insert entries > flow flow1 and flow2. > > > From what I understand install_datapath_flow > internally calls set_match to create the ofp_match > object for the flow. > I even tried creating a ofp_match object for the given > flow and passing it to the install_datapath_flow > command in place of flow but that gave me an > AttributeError > > > Following is the traceback. > > > Traceback (most recent call last): > File "./nox/lib/util.py", line 138, in f > ret = f.cb(event.datapath_id, attrs) > File "./nox/coreapps/examples/hybriddc.py", line 66, > in datapath_join_callback > rules.insert_static_rules(inst, dpid, 1) > File "./nox/coreapps/examples/staticrules.py", line > 38, in insert_static_rules > self.insert_rules_pod01(inst, dpid) > File "./nox/coreapps/examples/staticrules.py", line > 112, in insert_rules_pod01 > None, None) > File "./nox/coreapps/examples/staticrules.py", line > 288, in insert_forwarding_rule > port, buf) > File "./nox/lib/core.py", line 380, in > install_datapath_flow > (idle_timeout, actions, buffer_id), hard_timeout) > File "./nox/lib/core.py", line 253, in > send_flow_command > m = set_match(attrs) > File "./nox/lib/util.py", line 250, in set_match > if attrs.has_key(core.IN_PORT): > File "./nox/lib/openflow.py", line 756, in <lambda> > __getattr__ = lambda self, name: > _swig_getattr(self, ofp_match, name) > File "./nox/lib/openflow.py", line 54, in > _swig_getattr > raise AttributeError(name) > > > > > > > > ----- Original Message ----- > From: "Murphy McCauley" <[email protected]> > To: [email protected] > Cc: "nox-dev" <[email protected]> > Sent: Monday, February 21, 2011 7:41:47 PM GMT -08:00 > US/Canada Pacific > Subject: Re: [nox-dev] Matching wildcard flows with > different priorities > > The expected behavior is as you expect, not what > you're observing. Are you building the match by hand, > or are you using set_match() (in util) or something > that calls it? If you're building it by hand, are you > accounting for byte order in the wildcards field using > htonl()? > > > -- Murphy > > On Feb 21, 2011, at 6:18 > PM, [email protected] wrote: > > Hi > > > I thought I'd start another thread for this > issue.. > > > I am inserting the following two flow entries > in the switch. > > > 1) match: (src1, dst1, *) , action: send out > on port x, priority = 101 (higher priority) > > 2) match: (src1, *) action: send out on port > y, priority = 5 (lower priority) > > > The flow between src1 and dst1 is correctly > being sent on port x. This is expected because > flow entry 1 has a higher priority. > > > However for a flow between src1 and dst2, the > packets are being sent to the controller > instead of being sent out on port y. > > > I had expected that since the match will fail > for a higher priority flow entry it'll be > matched against the lower priority entry and > sent out on port y but this doesn't seem to be > the case. > Is this the expected behavior ? > > > If so, what should I change so that the flows > between src1 and destination other than dst1 > are sent out on port y ? > > > Thanks! > Malveeka > _______________________________________________ > nox-dev mailing list > [email protected] > > http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org > > > > > > > > _______________________________________________ > nox-dev mailing list > [email protected] > http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org > > > _______________________________________________ nox-dev mailing list [email protected] http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org
