net/ice: clean input set macro definition
[dpdk.git] / app / test-pmd / cmdline_flow.c
index f7d58b1..49d9f9c 100644 (file)
@@ -583,6 +583,7 @@ struct rte_flow_action_count sample_count[RAW_SAMPLE_CONFS_MAX_NUM];
 struct rte_flow_action_port_id sample_port_id[RAW_SAMPLE_CONFS_MAX_NUM];
 struct rte_flow_action_raw_encap sample_encap[RAW_SAMPLE_CONFS_MAX_NUM];
 struct action_rss_data sample_rss_data[RAW_SAMPLE_CONFS_MAX_NUM];
+struct rte_flow_action_vf sample_vf[RAW_SAMPLE_CONFS_MAX_NUM];
 
 static const char *const modify_field_ops[] = {
        "set", "add", "sub", NULL
@@ -7888,7 +7889,7 @@ cmd_set_raw_parsed_sample(const struct buffer *in)
                        rss = action->conf;
                        rte_memcpy(&sample_rss_data[idx].conf,
                                   (const void *)rss, size);
-                       if (rss->key_len) {
+                       if (rss->key_len && rss->key) {
                                sample_rss_data[idx].conf.key =
                                                sample_rss_data[idx].key;
                                rte_memcpy((void *)((uintptr_t)
@@ -7896,7 +7897,7 @@ cmd_set_raw_parsed_sample(const struct buffer *in)
                                           (const void *)rss->key,
                                           sizeof(uint8_t) * rss->key_len);
                        }
-                       if (rss->queue_num) {
+                       if (rss->queue_num && rss->queue) {
                                sample_rss_data[idx].conf.queue =
                                                sample_rss_data[idx].queue;
                                rte_memcpy((void *)((uintptr_t)
@@ -7918,6 +7919,14 @@ cmd_set_raw_parsed_sample(const struct buffer *in)
                                (const void *)action->conf, size);
                        action->conf = &sample_port_id[idx];
                        break;
+               case RTE_FLOW_ACTION_TYPE_PF:
+                       break;
+               case RTE_FLOW_ACTION_TYPE_VF:
+                       size = sizeof(struct rte_flow_action_vf);
+                       rte_memcpy(&sample_vf[idx],
+                                       (const void *)action->conf, size);
+                       action->conf = &sample_vf[idx];
+                       break;
                default:
                        printf("Error - Not supported action\n");
                        return;