eal: remove useless PCI id header inclusions
[dpdk.git] / app / test-pmd / cmdline.c
index 0e8e579..b9d844c 100644 (file)
@@ -84,7 +84,6 @@
 #include <cmdline_parse_etheraddr.h>
 #include <cmdline_socket.h>
 #include <cmdline.h>
-#include <rte_pci_dev_ids.h>
 #ifdef RTE_LIBRTE_PMD_BOND
 #include <rte_eth_bond.h>
 #endif
@@ -652,6 +651,12 @@ static void cmd_help_long_parsed(void *parsed_result,
                        " queue (queue_id) fd_id (fd_id_value)\n"
                        "    Add/Del a SCTP type flow director filter.\n\n"
 
+                       "flow_director_filter (port_id) (add|del|update)"
+                       " flow l2_payload ether (ethertype)"
+                       " flexbytes (flexbytes_value) (drop|fwd)"
+                       " queue (queue_id) fd_id (fd_id_value)\n"
+                       "    Add/Del a l2 payload type flow director filter.\n\n"
+
                        "flush_flow_director (port_id)\n"
                        "    Flush all flow director entries of a device.\n\n"
 
@@ -662,7 +667,7 @@ static void cmd_help_long_parsed(void *parsed_result,
 
                        "flow_director_flex_mask (port_id)"
                        " flow (none|ipv4-other|ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|"
-                       "ipv6-other|ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|all)"
+                       "ipv6-other|ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|l2_payload|all)"
                        " (mask)\n"
                        "    Configure mask of flex payload.\n\n"
 
@@ -7721,6 +7726,8 @@ struct cmd_flow_director_result {
        cmdline_fixed_string_t ops;
        cmdline_fixed_string_t flow;
        cmdline_fixed_string_t flow_type;
+       cmdline_fixed_string_t ether;
+       uint16_t ether_type;
        cmdline_fixed_string_t src;
        cmdline_ipaddr_t ip_src;
        uint16_t port_src;
@@ -7879,6 +7886,12 @@ cmd_flow_director_filter_parsed(void *parsed_result,
                IPV4_ADDR_TO_UINT(res->ip_src,
                        entry.input.flow.sctp4_flow.ip.src_ip);
                /* need convert to big endian. */
+#ifdef RTE_NEXT_ABI
+               entry.input.flow.sctp4_flow.dst_port =
+                               rte_cpu_to_be_16(res->port_dst);
+               entry.input.flow.sctp4_flow.src_port =
+                               rte_cpu_to_be_16(res->port_src);
+#endif
                entry.input.flow.sctp4_flow.verify_tag =
                                rte_cpu_to_be_32(res->verify_tag_value);
                break;
@@ -7902,9 +7915,19 @@ cmd_flow_director_filter_parsed(void *parsed_result,
                IPV6_ADDR_TO_ARRAY(res->ip_src,
                        entry.input.flow.sctp6_flow.ip.src_ip);
                /* need convert to big endian. */
+#ifdef RTE_NEXT_ABI
+               entry.input.flow.sctp6_flow.dst_port =
+                               rte_cpu_to_be_16(res->port_dst);
+               entry.input.flow.sctp6_flow.src_port =
+                               rte_cpu_to_be_16(res->port_src);
+#endif
                entry.input.flow.sctp6_flow.verify_tag =
                                rte_cpu_to_be_32(res->verify_tag_value);
                break;
+       case RTE_ETH_FLOW_L2_PAYLOAD:
+               entry.input.flow.l2_flow.ether_type =
+                       rte_cpu_to_be_16(res->ether_type);
+               break;
        default:
                printf("invalid parameter.\n");
                return;
@@ -7953,7 +7976,13 @@ cmdline_parse_token_string_t cmd_flow_director_flow =
 cmdline_parse_token_string_t cmd_flow_director_flow_type =
        TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
                flow_type, "ipv4-other#ipv4-frag#ipv4-tcp#ipv4-udp#ipv4-sctp#"
-               "ipv6-other#ipv6-frag#ipv6-tcp#ipv6-udp#ipv6-sctp");
+               "ipv6-other#ipv6-frag#ipv6-tcp#ipv6-udp#ipv6-sctp#l2_payload");
+cmdline_parse_token_string_t cmd_flow_director_ether =
+       TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
+                                ether, "ether");
+cmdline_parse_token_num_t cmd_flow_director_ether_type =
+       TOKEN_NUM_INITIALIZER(struct cmd_flow_director_result,
+                             ether_type, UINT16);
 cmdline_parse_token_string_t cmd_flow_director_src =
        TOKEN_STRING_INITIALIZER(struct cmd_flow_director_result,
                                 src, "src");
@@ -8093,6 +8122,29 @@ cmdline_parse_inst_t cmd_add_del_sctp_flow_director = {
        },
 };
 
+cmdline_parse_inst_t cmd_add_del_l2_flow_director = {
+       .f = cmd_flow_director_filter_parsed,
+       .data = NULL,
+       .help_str = "add or delete a L2 flow director entry on NIC",
+       .tokens = {
+               (void *)&cmd_flow_director_filter,
+               (void *)&cmd_flow_director_port_id,
+               (void *)&cmd_flow_director_ops,
+               (void *)&cmd_flow_director_flow,
+               (void *)&cmd_flow_director_flow_type,
+               (void *)&cmd_flow_director_ether,
+               (void *)&cmd_flow_director_ether_type,
+               (void *)&cmd_flow_director_flexbytes,
+               (void *)&cmd_flow_director_flexbytes_value,
+               (void *)&cmd_flow_director_drop,
+               (void *)&cmd_flow_director_queue,
+               (void *)&cmd_flow_director_queue_id,
+               (void *)&cmd_flow_director_fd_id,
+               (void *)&cmd_flow_director_fd_id_value,
+               NULL,
+       },
+};
+
 struct cmd_flush_flow_director_result {
        cmdline_fixed_string_t flush_flow_director;
        uint8_t port_id;
@@ -8346,7 +8398,7 @@ cmdline_parse_token_string_t cmd_flow_director_flexmask_flow =
 cmdline_parse_token_string_t cmd_flow_director_flexmask_flow_type =
        TOKEN_STRING_INITIALIZER(struct cmd_flow_director_flex_mask_result,
                flow_type, "none#ipv4-other#ipv4-frag#ipv4-tcp#ipv4-udp#ipv4-sctp#"
-               "ipv6-other#ipv6-frag#ipv6-tcp#ipv6-udp#ipv6-sctp#all");
+               "ipv6-other#ipv6-frag#ipv6-tcp#ipv6-udp#ipv6-sctp#l2_payload#all");
 cmdline_parse_token_string_t cmd_flow_director_flexmask_mask =
        TOKEN_STRING_INITIALIZER(struct cmd_flow_director_flex_mask_result,
                                 mask, NULL);
@@ -8974,6 +9026,7 @@ cmdline_parse_ctx_t main_ctx[] = {
        (cmdline_parse_inst_t *)&cmd_add_del_ip_flow_director,
        (cmdline_parse_inst_t *)&cmd_add_del_udp_flow_director,
        (cmdline_parse_inst_t *)&cmd_add_del_sctp_flow_director,
+       (cmdline_parse_inst_t *)&cmd_add_del_l2_flow_director,
        (cmdline_parse_inst_t *)&cmd_flush_flow_director,
        (cmdline_parse_inst_t *)&cmd_set_flow_director_mask,
        (cmdline_parse_inst_t *)&cmd_set_flow_director_flex_mask,
@@ -9028,6 +9081,7 @@ cmd_reconfig_device_queue(portid_t id, uint8_t dev, uint8_t queue)
 }
 
 #ifdef RTE_NIC_BYPASS
+#include <rte_pci_dev_ids.h>
 uint8_t
 bypass_is_supported(portid_t port_id)
 {