On Tue, Mar 18, 2014 at 04:58:29PM -0700, Andy Zhou wrote: > On Tue, Mar 18, 2014 at 4:25 PM, Ben Pfaff <b...@nicira.com> wrote: > > On Tue, Mar 11, 2014 at 04:56:21PM -0700, Andy Zhou wrote: > > > Infrastructure to enable megaflow support for bond ports using > > > recirculation. This patch adds the following features: > > > * Generate RECIRC action when bond can benefit from recirculation. > > > * Populate post recirculation rules in table 254. > > > * Uses post recirculation rules for bond rebalancing > > > * Logic to detect whether data path supports recirculation. > > > > > > Bond port using recirculation is currently turned off by always > > > detect the data path as not supporting recirculation. > > > > > > Signed-off-by: Andy Zhou <az...@nicira.com>
... > > In rule_dpif_lookup(), it's unsafe to use a pointer to 'recirc_flow' > > outside the block that declares it; it needs to be declared at > > function level. But I'm not sure I agree with what's going on there > > at a higher level, or maybe I just don't understand it. It looks to > > me like this always replaces the metadata by the recirc_id as part of > > the lookup. Why not just initialize the metadata from the recirc_id > > as part of receiving the packet, instead of doing it as part of the > > lookup? Not sure of the rationale, in any case. > > > I tried to keep flow as it was received from the datapath, so it won't be > confusing when we dump it out. Hmm, OK, but it seems like there's a trade-off between confusion there and confusion of "Why did this flow match that rule, there's no metadata in there?!" > > It makes me nervous to see bond.c retaining a pointer to the rules > > that it creates, especially when the table is no longer being marked > > read-only (so that "ovs-ofctl del-flows br0 table=254" could blow > > these flows away). Can we take a reference to the rules, or mark the > > table read-only again (and add some kind of override for use by > > internal flow_mods), or otherwise make this safer? > > > How about make it controller read-only? ovs-ofctl is a debugging > tool. I think that's my second suggestion, so yeah that's fine. > > Does update_recirc_rules() properly update rules following a > > rebalancing? It looks to me like add_pr_rule() never updates the > > output port if it finds a matching rule, so I'm not sure whether the > > new port assignments would properly take effect. > > > It seems there is still a bug there. Will debug it. I think add_pr_rule() just needs to update the other fields in the rule instead of just changing the op to ADD. > > I see dpif-netdev makes recirculation optional via ->enable_recirc, > > but that variable is initially true and I see no way to change it to > > false. Is that a feature for later? > > > I plan to add a unixctl command to change it so I can write test cases > against it. > I have been manually setting it during development. OK, any reason not to add it here? > > OFTABLE_READONLY is now unused. I don't know whether it is worth > > keeping it. Maybe it is useful to some hardware implementation, > > though. > > > Keep it and interpret it as controller read only? I like that solution, thanks! _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev