]> git.proxmox.com Git - mirror_ovs.git/blobdiff - ofproto/ofproto-dpif.c
instruction: support goto-table action
[mirror_ovs.git] / ofproto / ofproto-dpif.c
index 6e50885f4c44df278d12d0229ba1f2261664264c..8d8a250bcf6a818d569f6bfd5795342024dcd977 100644 (file)
@@ -5599,6 +5599,15 @@ do_xlate_actions(const struct ofpact *ofpacts, size_t ofpacts_len,
             ctx->has_fin_timeout = true;
             xlate_fin_timeout(ctx, ofpact_get_FIN_TIMEOUT(a));
             break;
+
+        case OFPACT_GOTO_TABLE: {
+            /* TODO:XXX remove recursion */
+            /* It is assumed that goto-table is last action */
+            struct ofpact_goto_table *ogt = ofpact_get_GOTO_TABLE(a);
+            assert(ctx->table_id < ogt->table_id);
+            xlate_table_action(ctx, ctx->flow.in_port, ogt->table_id, true);
+            break;
+        }
         }
     }