ofproto-dpif: Fix format specifier.
[cascardo/ovs.git] / ofproto / ofproto-dpif.c
index a355e46..ebb3829 100644 (file)
@@ -3766,7 +3766,7 @@ handle_flow_miss_with_facet(struct flow_miss *miss, struct facet *facet,
         if (want_path != SF_FAST_PATH) {
             struct xlate_in xin;
 
-            xlate_in_init(&xin, ofproto, &facet->flow, &facet->initial_vals,
+            xlate_in_init(&xin, ofproto, &miss->flow, &miss->initial_vals,
                           facet->rule, 0, packet);
             xlate_actions_for_side_effects(&xin);
         }
@@ -3796,7 +3796,7 @@ handle_flow_miss_with_facet(struct flow_miss *miss, struct facet *facet,
             put->actions = facet->xout.odp_actions.data;
             put->actions_len = facet->xout.odp_actions.size;
         } else {
-            compose_slow_path(ofproto, &facet->flow, facet->xout.slow,
+            compose_slow_path(ofproto, &miss->flow, facet->xout.slow,
                               op->slow_stub, sizeof op->slow_stub,
                               &put->actions, &put->actions_len);
         }
@@ -8685,12 +8685,22 @@ ofproto_unixctl_dpif_dump_megaflows(struct unixctl_conn *conn,
     CLS_CURSOR_FOR_EACH (facet, cr, &cursor) {
         cls_rule_format(&facet->cr, &ds);
         ds_put_cstr(&ds, ", ");
-        ds_put_format(&ds, "n_subfacets:%"PRIu64", ",
-                      list_size(&facet->subfacets));
+        ds_put_format(&ds, "n_subfacets:%zu, ", list_size(&facet->subfacets));
         ds_put_format(&ds, "used:%.3fs, ", (now - facet->used) / 1000.0);
         ds_put_cstr(&ds, "Datapath actions: ");
-        format_odp_actions(&ds, facet->xout.odp_actions.data,
-                           facet->xout.odp_actions.size);
+        if (facet->xout.slow) {
+            uint64_t slow_path_stub[128 / 8];
+            const struct nlattr *actions;
+            size_t actions_len;
+
+            compose_slow_path(ofproto, &facet->flow, facet->xout.slow,
+                              slow_path_stub, sizeof slow_path_stub,
+                              &actions, &actions_len);
+            format_odp_actions(&ds, actions, actions_len);
+        } else {
+            format_odp_actions(&ds, facet->xout.odp_actions.data,
+                               facet->xout.odp_actions.size);
+        }
         ds_put_cstr(&ds, "\n");
     }