On Wed, Jul 18, 2012 at 09:29:31AM -0700, Ben Pfaff wrote: > On Wed, Jul 18, 2012 at 08:41:17PM +0900, Isaku Yamahata wrote: > > Signed-off-by: Isaku Yamahata <yamah...@valinux.co.jp> > > It looks like your intended strategy for handling Apply-Actions is to > put those actions into a nested set of ofpacts. I see how this would > work--it is one strategy that I have considered--but the strategy that > I have been leaning toward is instead to put ofpacts for all the > instructions together, in the correct order, without using any > nesting. OF1.1 specifies the order in which instructions are > executed, so the order is simple enough. There is some overlap > between what Apply-Actions and Write-Actions can do, but we should be > able to distinguish them one way or another.
I see. Let me check my understanding and I need some feedback before starting to rewrite the patch series. The basic strategy is - don't introduce actions that directly corresponds to instruction. - distinguish Apply-Actions and Write-Actions somehow - teach encoder/decoder those distinction - teach do_xlate_actions()/struct action_xlate_ctx those distinction to track mode. i.e. in apply actions or in write-actions somehow. Anyway for action-set and group table, some enhancements to xlate_actions()is necessary. Once I finished apply-action/goto-table instruction, I'd like to address action-set and group table. Then, the remaining issue is how to differentiate Apply-Action and Write-Action. Which way do you prefer? My preference is B. A. always put clear-actions with parameter OFPACT_INST_CLEAR_ACTIONS struct ofpact_instruction_clear_action { struct ofpact ofpact; uint8_t clear; /* true: OFPIT11_CLEAR_ACTION is speicfied * false: OFPIT11_CLEAR_ACTION is not specified. * serves as marker for starting write-actions */ } B. add meta action for marker. Its real action is nop. something like OFPACT_INSTRUCTION_WRITE_ACTIONS_START struct ofpact; (No additional parameter) or OFPACT_INSTRUCTION_DELIMITER struct ofpact_instruction_delimiter { struct ofpact ofpact; uint8_t instruction_type; } At this moment, only instruction_type = OVSINST_OFPIT11_WRITE_ACTIONS is used. C. add flag member to struct ofpact I think this is overkill. D. any other idea? thanks, -- yamahata _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev