Add necessary macros to ofp-util for OF12 support.
This is just a place holder.

Signed-off-by: Isaku Yamahata <yamah...@valinux.co.jp>
---
v2
no change
---
 lib/ofp-actions.c |    3 +++
 lib/ofp-parse.c   |    4 ++++
 lib/ofp-print.c   |    1 +
 lib/ofp-util.c    |    3 +++
 lib/ofp-util.def  |   20 ++++++++++++++++++++
 lib/ofp-util.h    |    6 ++++++
 6 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c
index 1a45ab2..0b1945f 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 OFPAT12_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 OFPAT12_ACTION(ENUM, STRUCT, NAME) case OFPUTIL_##ENUM:
 #include "ofp-util.def"
         NOT_REACHED();
 
@@ -576,6 +578,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 OFPAT12_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 bd414eb..09fdc4a 100644
--- a/lib/ofp-parse.c
+++ b/lib/ofp-parse.c
@@ -364,6 +364,10 @@ parse_named_action(enum ofputil_action_code code, const 
struct flow *flow,
         parse_enqueue(arg, ofpacts);
         break;
 
+    case OFPUTIL_OFPAT12_SET_FIELD:
+        NOT_REACHED();  /* This will be implemented by later patch */
+        break;
+
     case OFPUTIL_NXAST_RESUBMIT:
         parse_resubmit(arg, ofpacts);
         break;
diff --git a/lib/ofp-print.c b/lib/ofp-print.c
index 7e8c789..f8128c6 100644
--- a/lib/ofp-print.c
+++ b/lib/ofp-print.c
@@ -456,6 +456,7 @@ ofputil_action_bitmap_to_name(uint32_t bit)
     case OFPUTIL_A_SET_NW_TOS:     return "SET_NW_TOS";
     case OFPUTIL_A_SET_TP_SRC:     return "SET_TP_SRC";
     case OFPUTIL_A_SET_TP_DST:     return "SET_TP_DST";
+    case OFPUTIL_A_SET_FIELD:      return "SET_FIELD";
     case OFPUTIL_A_ENQUEUE:        return "ENQUEUE";
     case OFPUTIL_A_COPY_TTL_OUT:   return "COPY_TTL_OUT";
     case OFPUTIL_A_COPY_TTL_IN:    return "COPY_TTL_IN";
diff --git a/lib/ofp-util.c b/lib/ofp-util.c
index df63155..fe95137 100644
--- a/lib/ofp-util.c
+++ b/lib/ofp-util.c
@@ -4212,6 +4212,7 @@ ofputil_action_code_from_name(const char *name)
         NULL,
 #define OFPAT10_ACTION(ENUM, STRUCT, NAME)           NAME,
 #define OFPAT11_ACTION(ENUM, STRUCT, NAME)           NAME,
+#define OFPAT12_ACTION(ENUM, STRUCT, NAME)           NAME,
 #define NXAST_ACTION(ENUM, STRUCT, EXTENSIBLE, NAME) NAME,
 #include "ofp-util.def"
     };
@@ -4241,6 +4242,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 OFPAT12_ACTION OFPAT10_ACTION
 #define NXAST_ACTION(ENUM, STRUCT, EXTENSIBLE, NAME)        \
     case OFPUTIL_##ENUM: return ofputil_put_##ENUM(buf);
 #include "ofp-util.def"
@@ -4265,6 +4267,7 @@ ofputil_put_action(enum ofputil_action_code code, struct 
ofpbuf *buf)
         return s;                                               \
     }
 #define OFPAT11_ACTION OFPAT10_ACTION
+#define OFPAT12_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..8f21e90 100644
--- a/lib/ofp-util.def
+++ b/lib/ofp-util.def
@@ -36,6 +36,25 @@ 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 OFPAT12_ACTION
+#define OFPAT12_ACTION(ENUM, STRUCT, NAME)
+#endif
+//OFPAT12_ACTION(OFPAT12_OUTPUT, , "output")
+//OFPAT12_ACTION(OFPAT12_COPY_TTL_OUT, ofp_action_header, "copy_ttl_out")
+//OFPAT12_ACTION(OFPAT12_COPY_TTL_IN, ofp_action_header, "copy_ttl_in")
+//OFPAT12_ACTION(OFPAT12_SET_MPLS_TTL, , "set_mpls_ttl")
+//OFPAT12_ACTION(OFPAT12_DEC_MPLS_TTL, ofp_action_header, "dec_mpls_ttl")
+//OFPAT12_ACTION(OFPAT12_PUSH_VLAN, , "push_vlan")
+//OFPAT12_ACTION(OFPAT12_POP_VLAN, ofp_action_header, "pop_vlan")
+//OFPAT12_ACTION(OFPAT12_PUSH_MPLS, , "push_mpls")
+//OFPAT12_ACTION(OFPAT12_POP_MPLS, , "pop_mpls")
+//OFPAT12_ACTION(OFPAT12_SET_QUEUE, , "set_queue")
+//OFPAT12_ACTION(OFPAT12_GROUP, , "group")
+//OFPAT12_ACTION(OFPAT12_SET_NW_TTL, , "set_nw_ttl")
+//OFPAT12_ACTION(OFPAT12_DEC_NW_TTL, ofp_action_header, "dec_ttl")
+OFPAT12_ACTION(OFPAT12_SET_FIELD, ofp12_action_set_field, "set_field")
+//OFPAT12_ACTION(OFPAT12_EXPERIMENTER, , )
+
 #ifndef NXAST_ACTION
 #define NXAST_ACTION(ENUM, STRUCT, EXTENSIBLE, NAME)
 #endif
@@ -61,4 +80,5 @@ NXAST_ACTION(NXAST_CONTROLLER,     nx_action_controller,   0, 
"controller")
 
 #undef OFPAT10_ACTION
 #undef OFPAT11_ACTION
+#undef OFPAT12_ACTION
 #undef NXAST_ACTION
diff --git a/lib/ofp-util.h b/lib/ofp-util.h
index 549b5f8..d2e128c 100644
--- a/lib/ofp-util.h
+++ b/lib/ofp-util.h
@@ -477,6 +477,7 @@ enum ofputil_action_bitmap {
     OFPUTIL_A_GROUP          = 1 << 24,
     OFPUTIL_A_SET_NW_TTL     = 1 << 25,
     OFPUTIL_A_DEC_NW_TTL     = 1 << 26,
+    OFPUTIL_A_SET_FIELD      = 1 << 27,
 };
 
 /* Abstract ofp_switch_features. */
@@ -635,6 +636,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 OFPAT12_ACTION(ENUM, STRUCT, NAME)           OFPUTIL_##ENUM,
 #define NXAST_ACTION(ENUM, STRUCT, EXTENSIBLE, NAME) OFPUTIL_##ENUM,
 #include "ofp-util.def"
 };
@@ -643,6 +645,7 @@ enum OVS_PACKED_ENUM ofputil_action_code {
 enum {
 #define OFPAT10_ACTION(ENUM, STRUCT, NAME)           + 1
 #define OFPAT11_ACTION(ENUM, STRUCT, NAME)           + 1
+#define OFPAT12_ACTION(ENUM, STRUCT, NAME)           + 1
 #define NXAST_ACTION(ENUM, STRUCT, EXTENSIBLE, NAME) + 1
     OFPUTIL_N_ACTIONS = 1
 #include "ofp-util.def"
@@ -672,6 +675,9 @@ 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 OFPAT12_ACTION(ENUM, STRUCT, NAME)              \
+    void ofputil_init_##ENUM(struct STRUCT *);          \
+    struct STRUCT *ofputil_put_##ENUM(struct ofpbuf *);
 #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

Reply via email to