net/sfc: rename array of SW stats descriptions
[dpdk.git] / app / test-flow-perf / main.c
index 55c8d18..9be8edc 100644 (file)
@@ -728,7 +728,7 @@ args_parse(int argc, char **argv)
                                        for (i = 0; i < RTE_DIM(flow_options); i++) {
                                                if (strcmp(flow_options[i].str, token) == 0) {
                                                        printf("%s,", token);
-                                                       encap_data |= flow_options[i].mask;
+                                                       decap_data |= flow_options[i].mask;
                                                        break;
                                                }
                                                /* Reached last item with no match */
@@ -928,13 +928,6 @@ create_meter_rule(int port_id, uint32_t counter)
 
        /*create meter*/
        params.meter_profile_id = default_prof_id;
-       params.action[RTE_COLOR_GREEN] =
-               MTR_POLICER_ACTION_COLOR_GREEN;
-       params.action[RTE_COLOR_YELLOW] =
-               MTR_POLICER_ACTION_COLOR_YELLOW;
-       params.action[RTE_COLOR_RED] =
-               MTR_POLICER_ACTION_DROP;
-
        ret = rte_mtr_create(port_id, counter, &params, 1, &error);
        if (ret != 0) {
                printf("Port %u create meter idx(%d) error(%d) message: %s\n",
@@ -1140,6 +1133,7 @@ insert_flows(int port_id, uint8_t core_id)
        struct rte_flow **flows_list;
        struct rte_flow_error error;
        clock_t start_batch, end_batch;
+       double first_flow_latency;
        double cpu_time_used;
        double insertion_rate;
        double cpu_time_per_batch[MAX_BATCHES_COUNT] = { 0 };
@@ -1198,6 +1192,16 @@ insert_flows(int port_id, uint8_t core_id)
                        encap_data, decap_data,
                        core_id, unique_data, &error);
 
+               if (!counter) {
+                       first_flow_latency = (double) (rte_get_timer_cycles() - start_batch);
+                       first_flow_latency /= rte_get_timer_hz();
+                       /* In millisecond */
+                       first_flow_latency *= 1000;
+                       printf(":: First Flow Latency :: Port %d :: First flow "
+                               "installed in %f milliseconds\n",
+                               port_id, first_flow_latency);
+               }
+
                if (force_quit)
                        counter = end_counter;
 
@@ -1434,6 +1438,9 @@ run_rte_flow_handler_cores(void *data __rte_unused)
        rte_eal_mp_wait_lcore();
 
        RTE_ETH_FOREACH_DEV(port) {
+               /* If port outside portmask */
+               if (!((ports_mask >> port) & 0x1))
+                       continue;
                if (has_meter())
                        dump_used_cpu_time("Meters:",
                                port, &mc_pool.meters_record);