Signed-off-by: Isaku Yamahata <[email protected]>
---
v2
- changed for ofp_instruction
---
lib/ofp-actions.c | 3 +--
ofproto/ofproto-dpif.c | 11 ++++++++---
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c
index 6a9633f..0c3b95f 100644
--- a/lib/ofp-actions.c
+++ b/lib/ofp-actions.c
@@ -921,8 +921,7 @@ ofpacts_pull_openflow11_instructions(struct ofpbuf
*openflow,
resubmit->table_id = oigt->table_id;
}
- if (insts[OVSINST_OFPIT11_GOTO_TABLE] ||
- insts[OVSINST_OFPIT11_WRITE_METADATA] ||
+ if (insts[OVSINST_OFPIT11_WRITE_METADATA] ||
insts[OVSINST_OFPIT11_WRITE_ACTIONS] ||
insts[OVSINST_OFPIT11_CLEAR_ACTIONS]) {
error = OFPERR_OFPBIC_UNSUP_INST;
diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
index aae60a9..0e831a5 100644
--- a/ofproto/ofproto-dpif.c
+++ b/ofproto/ofproto-dpif.c
@@ -5504,9 +5504,14 @@ do_xlate_action(const struct ofpact *a, struct
action_xlate_ctx *ctx)
ctx->flow.tp_dst = htons(ofpact_get_SET_L4_DST_PORT(a)->port);
break;
- case OFPACT_RESUBMIT:
- xlate_ofpact_resubmit(ctx, ofpact_get_RESUBMIT(a));
+ case OFPACT_RESUBMIT: {
+ struct ofpact_resubmit *resubmit = ofpact_get_RESUBMIT(a);
+ xlate_ofpact_resubmit(ctx, resubmit);
+ if (resubmit->ofpact.compat == -1) { /* TODO:XXX use symbol */
+ return false;
+ }
break;
+ }
case OFPACT_SET_TUNNEL:
ctx->flow.tun_id = htonll(ofpact_get_SET_TUNNEL(a)->tun_id);
@@ -5587,7 +5592,7 @@ do_xlate_action(const struct ofpact *a, struct
action_xlate_ctx *ctx)
NOT_REACHED(); /* TODO:XXX */
break;
case OVSINST_OFPIT11_GOTO_TABLE:
- NOT_REACHED(); /* TODO:XXX */
+ /* nothing */
break;
}
break;
--
1.7.1.1
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev