ethdev: increase RETA entry size
authorNelio Laranjeiro <nelio.laranjeiro@6wind.com>
Tue, 12 Jan 2016 10:49:08 +0000 (11:49 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 3 Mar 2016 19:39:47 +0000 (20:39 +0100)
Several NICs can handle 512 entries/queues in their RETA table,
an 8 bit field is not large enough for them.

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
app/test-pmd/cmdline.c
doc/guides/rel_notes/deprecation.rst
lib/librte_ether/rte_ethdev.c
lib/librte_ether/rte_ethdev.h

index 52e9f5f..828b41f 100644 (file)
@@ -1769,7 +1769,7 @@ parse_reta_config(const char *str,
        int i;
        unsigned size;
        uint16_t hash_index, idx, shift;
-       uint8_t nb_queue;
+       uint16_t nb_queue;
        char s[256];
        const char *p, *p0 = str;
        char *end;
@@ -1802,7 +1802,7 @@ parse_reta_config(const char *str,
                }
 
                hash_index = (uint16_t)int_fld[FLD_HASH_INDEX];
-               nb_queue = (uint8_t)int_fld[FLD_QUEUE];
+               nb_queue = (uint16_t)int_fld[FLD_QUEUE];
 
                if (hash_index >= nb_entries) {
                        printf("Invalid RETA hash index=%d\n", hash_index);
index 9cb288c..9930b5a 100644 (file)
@@ -15,11 +15,6 @@ Deprecation Notices
 * The ethdev structures rte_eth_link, rte_eth_dev_info and rte_eth_conf
   must be updated to support 100G link and to have a cleaner link speed API.
 
-* ABI changes is planned for the reta field in struct rte_eth_rss_reta_entry64
-  which handles at most 256 queues (8 bits) while newer NICs support larger
-  tables (512 queues).
-  It should be integrated in release 2.3.
-
 * ABI changes are planned for struct rte_eth_fdir_flow in order to support
   extend flow director's input set. The release 2.2 does not contain these ABI
   changes, but release 2.3 will, and no backwards compatibility is planned.
index 1257965..5c2b416 100644 (file)
@@ -1819,7 +1819,7 @@ rte_eth_check_reta_mask(struct rte_eth_rss_reta_entry64 *reta_conf,
 static int
 rte_eth_check_reta_entry(struct rte_eth_rss_reta_entry64 *reta_conf,
                         uint16_t reta_size,
-                        uint8_t max_rxq)
+                        uint16_t max_rxq)
 {
        uint16_t i, idx, shift;
 
index 16da821..d53e362 100644 (file)
@@ -520,7 +520,7 @@ struct rte_eth_mirror_conf {
 struct rte_eth_rss_reta_entry64 {
        uint64_t mask;
        /**< Mask bits indicate which entries need to be updated/queried. */
-       uint8_t reta[RTE_RETA_GROUP_SIZE];
+       uint16_t reta[RTE_RETA_GROUP_SIZE];
        /**< Group of 64 redirection table entries. */
 };