[ovs-dev] [PATCH] ofpaction: support OF11 pop_vlan
Isaku Yamahata
yamahata at valinux.co.jp
Wed Oct 17 18:51:58 UTC 2012
This patch adds support of OF11+ pop_vlan.
Signed-off-by: Isaku Yamahata <yamahata at valinux.co.jp>
---
lib/ofp-actions.c | 6 +++++-
lib/ofp-actions.h | 2 +-
lib/ofp-parse.c | 1 +
lib/ofp-util.def | 2 +-
4 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c
index 4a63acb..cd8c432 100644
--- a/lib/ofp-actions.c
+++ b/lib/ofp-actions.c
@@ -685,6 +685,10 @@ ofpact_from_openflow11(const union ofp_action *a, struct ofpbuf *out)
ofpact_put_SET_VLAN_PCP(out)->vlan_pcp = a->vlan_pcp.vlan_pcp;
break;
+ case OFPUTIL_OFPAT11_POP_VLAN:
+ ofpact_put_STRIP_VLAN(out);
+ break;
+
case OFPUTIL_OFPAT11_SET_DL_SRC:
memcpy(ofpact_put_SET_ETH_SRC(out)->mac,
((const struct ofp_action_dl_addr *) a)->dl_addr, ETH_ADDR_LEN);
@@ -1439,7 +1443,7 @@ ofpact_to_openflow11(const struct ofpact *a, struct ofpbuf *out)
break;
case OFPACT_STRIP_VLAN:
- /* XXX */
+ ofputil_put_OFPAT11_POP_VLAN(out);
break;
case OFPACT_SET_ETH_SRC:
diff --git a/lib/ofp-actions.h b/lib/ofp-actions.h
index c62020d..b6b31b8 100644
--- a/lib/ofp-actions.h
+++ b/lib/ofp-actions.h
@@ -177,7 +177,7 @@ ofpact_end(const struct ofpact *ofpacts, size_t ofpacts_len)
/* OFPACT_STRIP_VLAN, OFPACT_POP_QUEUE, OFPACT_EXIT, OFPACT_CLEAR_ACTIONS.
*
* Used for OFPAT10_STRIP_VLAN, NXAST_DEC_TTL, NXAST_POP_QUEUE, NXAST_EXIT,
- * OFPIT11_CLEAR_ACTIONS.
+ * OFPAT11_POP_VLAN, OFPIT11_CLEAR_ACTIONS.
*
* Action structure for actions that do not have any extra data beyond the
* action type. */
diff --git a/lib/ofp-parse.c b/lib/ofp-parse.c
index 8941e17..60d05f3 100644
--- a/lib/ofp-parse.c
+++ b/lib/ofp-parse.c
@@ -398,6 +398,7 @@ parse_named_action(enum ofputil_action_code code, const struct flow *flow,
break;
case OFPUTIL_OFPAT10_STRIP_VLAN:
+ case OFPUTIL_OFPAT11_POP_VLAN:
ofpact_put_STRIP_VLAN(ofpacts);
break;
diff --git a/lib/ofp-util.def b/lib/ofp-util.def
index 4d451b0..26a0f1b 100644
--- a/lib/ofp-util.def
+++ b/lib/ofp-util.def
@@ -31,7 +31,7 @@ OFPAT11_ACTION(OFPAT11_SET_NW_TOS, ofp_action_nw_tos, 0, "mod_nw_tos")
OFPAT11_ACTION(OFPAT11_SET_TP_SRC, ofp_action_tp_port, 0, "mod_tp_src")
OFPAT11_ACTION(OFPAT11_SET_TP_DST, ofp_action_tp_port, 0, "mod_tp_dst")
//OFPAT11_ACTION(OFPAT11_PUSH_VLAN, ofp11_action_push, 0, "push_vlan")
-//OFPAT11_ACTION(OFPAT11_POP_VLAN, ofp_action_header, 0, "pop_vlan")
+OFPAT11_ACTION(OFPAT11_POP_VLAN, ofp_action_header, 0, "pop_vlan")
//OFPAT11_ACTION(OFPAT11_SET_QUEUE, ofp11_action_set_queue, 0, "set_queue")
//OFPAT11_ACTION(OFPAT11_SET_NW_TTL, ofp11_action_nw_ttl, 0, "set_nw_ttl")
//OFPAT11_ACTION(OFPAT11_DEC_NW_TTL, ofp_action_header, 0, "dec_ttl")
--
1.7.10.4
More information about the dev
mailing list