On Fri, Jul 13, 2012 at 02:48:49PM +1200, Joe Stringer wrote: > On 13 July 2012 12:02, Ben Pfaff <b...@nicira.com> wrote: > > 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. > > Do we want to just limit a maximum of one ofpact_metadata per ofpacts? > > So, with the above patch:- > When OFPIT_WRITE_METADATA is converted to ofpacts, an error is thrown > if there is more than one. The conversion is done last, so we don't > care where the OFPIT_WRITE_METADATA is placed within the message; it > is parsed last, and added to the end of ofpacts. When the ofpacts are > converted back to OF1.1, we ignore the NXAST translation case and > always write OFPIT_WRITE_METADATA last. If we only have a maximum of > one ofpact_metadata in our ofpacts, then this is all fine.
Yes, all of that makes sense. > The trouble is with NXAST_WRITE_METADATA; Parsing to ofpacts may > currently cause multiple metadata_ofpacts to appear internally, but we > don't want this. If we can restrict this to one entry, then the > reverse process (ofpacts->NX), just needs to ensure that the > NXAST_WRITE_METADATA action is the last to appear in the actions list. Yes, I think that we should restrict parsing NXAST_WRITE_METADATA to one entry and only as the final entry. > Is this the preferred approach? Are there other examples which may > cause multiple instances of the ofpact_metadata to be stored in > ofpacts? There are only two important paths into ofpacts: parsing of binary instructions and actions, and parsing of text versions of instructions and actions. We'd want to make sure that both of these paths enforce the constraint. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev