Signed-off-by: Isaku Yamahata <yamah...@valinux.co.jp> --- lib/ofp-actions.c | 3 +++ lib/ofp-parse.c | 9 +++++++++ lib/ofp-util.c | 2 ++ lib/ofp-util.def | 10 ++++++++++ lib/ofp-util.h | 3 +++ 5 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c index 2f80a29..a826078 100644 --- a/lib/ofp-actions.c +++ b/lib/ofp-actions.c @@ -231,6 +231,7 @@ ofpact_from_nxast(const union ofp_action *a, enum ofputil_action_code code, case OFPUTIL_ACTION_INVALID: #define OFPAT10_ACTION(ENUM, STRUCT, NAME) case OFPUTIL_##ENUM: #define OFPAT11_ACTION(ENUM, STRUCT, NAME) case OFPUTIL_##ENUM: +#define OFPIT11_ACTION(ENUM, STRUCT, NAME) case OFPUTIL_##ENUM: #include "ofp-util.def" NOT_REACHED(); @@ -340,6 +341,7 @@ ofpact_from_openflow10(const union ofp_action *a, struct ofpbuf *out) switch (code) { case OFPUTIL_ACTION_INVALID: #define OFPAT11_ACTION(ENUM, STRUCT, NAME) case OFPUTIL_##ENUM: +#define OFPIT11_ACTION(ENUM, STRUCT, NAME) case OFPUTIL_##ENUM: #include "ofp-util.def" NOT_REACHED(); @@ -609,6 +611,7 @@ ofpact_from_openflow11(const union ofp_action *a, struct ofpbuf *out) switch (code) { case OFPUTIL_ACTION_INVALID: #define OFPAT10_ACTION(ENUM, STRUCT, NAME) case OFPUTIL_##ENUM: +#define OFPIT11_ACTION(ENUM, STRUCT, NAME) case OFPUTIL_##ENUM: #include "ofp-util.def" NOT_REACHED(); diff --git a/lib/ofp-parse.c b/lib/ofp-parse.c index 32d3836..65b3f0f 100644 --- a/lib/ofp-parse.c +++ b/lib/ofp-parse.c @@ -434,6 +434,15 @@ parse_named_action(enum ofputil_action_code code, const struct flow *flow, case OFPUTIL_NXAST_CONTROLLER: parse_controller(ofpacts, arg); break; + + case OFPUTIL_OFPIT11_GOTO_TABLE: + case OFPUTIL_OFPIT11_WRITE_METADATA: + case OFPUTIL_OFPIT11_WRITE_ACTIONS: + case OFPUTIL_OFPIT11_APPLY_ACTIONS: + case OFPUTIL_OFPIT11_CLEAR_ACTIONS: + /* TODO:XXX */ + NOT_REACHED(); + break; } } diff --git a/lib/ofp-util.c b/lib/ofp-util.c index a62b554..d4154b3 100644 --- a/lib/ofp-util.c +++ b/lib/ofp-util.c @@ -3991,6 +3991,7 @@ ofputil_put_action(enum ofputil_action_code code, struct ofpbuf *buf) #define OFPAT10_ACTION(ENUM, STRUCT, NAME) \ case OFPUTIL_##ENUM: return ofputil_put_##ENUM(buf); #define OFPAT11_ACTION OFPAT10_ACTION +#define OFPIT11_ACTION OFPAT10_ACTION #define NXAST_ACTION(ENUM, STRUCT, EXTENSIBLE, NAME) \ case OFPUTIL_##ENUM: return ofputil_put_##ENUM(buf); #include "ofp-util.def" @@ -4015,6 +4016,7 @@ ofputil_put_action(enum ofputil_action_code code, struct ofpbuf *buf) return s; \ } #define OFPAT11_ACTION OFPAT10_ACTION +#define OFPIT11_ACTION OFPAT10_ACTION #define NXAST_ACTION(ENUM, STRUCT, EXTENSIBLE, NAME) \ void \ ofputil_init_##ENUM(struct STRUCT *s) \ diff --git a/lib/ofp-util.def b/lib/ofp-util.def index 974cd8f..bf12625 100644 --- a/lib/ofp-util.def +++ b/lib/ofp-util.def @@ -36,6 +36,15 @@ OFPAT11_ACTION(OFPAT11_SET_TP_DST, ofp_action_tp_port, "mod_tp_dst") //OFPAT11_ACTION(OFPAT11_SET_NW_TTL, ofp11_action_nw_ttl, "set_nw_ttl") //OFPAT11_ACTION(OFPAT11_DEC_NW_TTL, ofp_action_header, "dec_ttl") +#ifndef OFPIT11_ACTION +#define OFPIT11_ACTION(ENUM, STRUCT, NAME) +#endif +OFPIT11_ACTION(OFPIT11_GOTO_TABLE, ofp11_instruction_goto_table, "goto_table") +OFPIT11_ACTION(OFPIT11_WRITE_METADATA, ofp11_instruction_write_metadata, "write_metadata") +OFPIT11_ACTION(OFPIT11_WRITE_ACTIONS, ofp11_instruction_actions, "write_actions") +OFPIT11_ACTION(OFPIT11_APPLY_ACTIONS, ofp11_instruction_actions, "apply_actions") +OFPIT11_ACTION(OFPIT11_CLEAR_ACTIONS, ofp11_instruction_actions, "clear_actions") + #ifndef NXAST_ACTION #define NXAST_ACTION(ENUM, STRUCT, EXTENSIBLE, NAME) #endif @@ -61,4 +70,5 @@ NXAST_ACTION(NXAST_CONTROLLER, nx_action_controller, 0, "controller") #undef OFPAT10_ACTION #undef OFPAT11_ACTION +#undef OFPIT11_ACTION #undef NXAST_ACTION diff --git a/lib/ofp-util.h b/lib/ofp-util.h index f7d3307..f645b38 100644 --- a/lib/ofp-util.h +++ b/lib/ofp-util.h @@ -651,6 +651,7 @@ enum OVS_PACKED_ENUM ofputil_action_code { OFPUTIL_ACTION_INVALID, #define OFPAT10_ACTION(ENUM, STRUCT, NAME) OFPUTIL_##ENUM, #define OFPAT11_ACTION(ENUM, STRUCT, NAME) OFPUTIL_##ENUM, +#define OFPIT11_ACTION(ENUM, STRUCT, NAME) OFPUTIL_##ENUM, #define NXAST_ACTION(ENUM, STRUCT, EXTENSIBLE, NAME) OFPUTIL_##ENUM, #include "ofp-util.def" }; @@ -659,6 +660,7 @@ enum OVS_PACKED_ENUM ofputil_action_code { enum { #define OFPAT10_ACTION(ENUM, STRUCT, NAME) + 1 #define OFPAT11_ACTION(ENUM, STRUCT, NAME) + 1 +#define OFPIT11_ACTION(ENUM, STRUCT, NAME) + 1 #define NXAST_ACTION(ENUM, STRUCT, EXTENSIBLE, NAME) + 1 OFPUTIL_N_ACTIONS = 1 #include "ofp-util.def" @@ -688,6 +690,7 @@ void *ofputil_put_action(enum ofputil_action_code, struct ofpbuf *buf); #define OFPAT11_ACTION(ENUM, STRUCT, NAME) \ void ofputil_init_##ENUM(struct STRUCT *); \ struct STRUCT *ofputil_put_##ENUM(struct ofpbuf *); +#define OFPIT11_ACTION OFPAT11_ACTION #define NXAST_ACTION(ENUM, STRUCT, EXTENSIBLE, NAME) \ void ofputil_init_##ENUM(struct STRUCT *); \ struct STRUCT *ofputil_put_##ENUM(struct ofpbuf *); -- 1.7.1.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev