app/testpmd: add raw flow type mode for FDIR
[dpdk.git] / app / test-pmd / config.c
index 20a31d0..957b820 100644 (file)
@@ -78,6 +78,7 @@
 #include <rte_pmd_bnxt.h>
 #endif
 #include <rte_gro.h>
+#include <cmdline_parse_etheraddr.h>
 
 #include "testpmd.h"
 
@@ -1004,6 +1005,7 @@ static const struct {
        MK_FLOW_ITEM(GTP, sizeof(struct rte_flow_item_gtp)),
        MK_FLOW_ITEM(GTPC, sizeof(struct rte_flow_item_gtp)),
        MK_FLOW_ITEM(GTPU, sizeof(struct rte_flow_item_gtp)),
+       MK_FLOW_ITEM(GENEVE, sizeof(struct rte_flow_item_geneve)),
 };
 
 /** Compute storage space needed by item specification. */
@@ -2238,6 +2240,24 @@ pkt_fwd_config_display(struct fwd_config *cfg)
        printf("\n");
 }
 
+void
+set_fwd_eth_peer(portid_t port_id, char *peer_addr)
+{
+       uint8_t c, new_peer_addr[6];
+       if (!rte_eth_dev_is_valid_port(port_id)) {
+               printf("Error: Invalid port number %i\n", port_id);
+               return;
+       }
+       if (cmdline_parse_etheraddr(NULL, peer_addr, &new_peer_addr,
+                                       sizeof(new_peer_addr)) < 0) {
+               printf("Error: Invalid ethernet address: %s\n", peer_addr);
+               return;
+       }
+       for (c = 0; c < 6; c++)
+               peer_eth_addrs[port_id].addr_bytes[c] =
+                       new_peer_addr[c];
+}
+
 int
 set_fwd_lcores_list(unsigned int *lcorelist, unsigned int nb_lc)
 {
@@ -3477,7 +3497,7 @@ port_dcb_info_display(portid_t port_id)
 }
 
 uint8_t *
-open_ddp_package_file(const char *file_path, uint32_t *size)
+open_file(const char *file_path, uint32_t *size)
 {
        int fd = open(file_path, O_RDONLY);
        off_t pkg_size;
@@ -3517,7 +3537,7 @@ open_ddp_package_file(const char *file_path, uint32_t *size)
        if (ret < 0) {
                close(fd);
                printf("%s: File read operation failed\n", __func__);
-               close_ddp_package_file(buf);
+               close_file(buf);
                return NULL;
        }
 
@@ -3530,7 +3550,7 @@ open_ddp_package_file(const char *file_path, uint32_t *size)
 }
 
 int
-save_ddp_package_file(const char *file_path, uint8_t *buf, uint32_t size)
+save_file(const char *file_path, uint8_t *buf, uint32_t size)
 {
        FILE *fh = fopen(file_path, "wb");
 
@@ -3551,7 +3571,7 @@ save_ddp_package_file(const char *file_path, uint8_t *buf, uint32_t size)
 }
 
 int
-close_ddp_package_file(uint8_t *buf)
+close_file(uint8_t *buf)
 {
        if (buf) {
                free((void *)buf);