Signed-off-by: Isaku Yamahata <yamah...@valinux.co.jp> --- 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 dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev