On Thu, Jul 12, 2012 at 10:55:21AM +1200, Joe Stringer wrote: > In OpenFlow 1.1, we add support for OFPIT_WRITE_METADATA. This allows us to > write to the metadata field. Internally it is represented using > ofpact_metadata. > > We introduce NXAST_WRITE_METADATA to handle writing to the metadata field in > OpenFlow 1.0+. This structure reflects OFPIT_WRITE_METADATA. > > When writing out the structure to OpenFlow 1.1, it uses the > OFPIT_WRITE_METADATA > instruction only, and not the new NXAST action (which would be redundant). > > Signed-off-by: Joe Stringer <j...@wand.net.nz> > --- > v2: Dropped unused function
The semantics look a bit off to me. First, ofpacts_pull_openflow11_instructions() ignores OFPIT_WRITE_METADATA if OFPIT_APPLY_ACTIONS is specified. OF1.1 says, in contrast, that anything in OFPIT_APPLY_ACTIONS should be processed first, and then OFPIT_WRITE_METADATA. Both, in other words, not one or the other. Suppose you fix that; it should not be hard (just remove an "else" keyword, I think). Then, second, the semantics implemented here will surprise users, because if ofpacts are translated to OF1.0 then each OFPIT_WRITE_METADATA will be executed one at a time at the point where it appears in the actions, but if they are translated to OF1.1 then only a single OFPIT_WRITE_METADATA will be processed, after all other actions. I'd rather avoid that. One idea: report an error if "write_metadata" is specified more than once or if it is not specified as the last action. Thanks, Ben. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev