The dev_info_get callback does not need to check for invalid arguments
since that is already done at ethdev layer.

Make the min/max MTU values reflect the most an Ethernet type
PMD would allow.

Signed-off-by: Stephen Hemminger <[email protected]>
---
 app/test/test_pmd_null.c        | 13 +++++++++++--
 drivers/net/null/rte_eth_null.c | 11 ++++-------
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/app/test/test_pmd_null.c b/app/test/test_pmd_null.c
index c6a8bba701..ee62d7ecb5 100644
--- a/app/test/test_pmd_null.c
+++ b/app/test/test_pmd_null.c
@@ -430,6 +430,10 @@ static int
 test_null_dev_info(void)
 {
        struct rte_eth_dev_info dev_info;
+       const uint16_t jumbo_mtu = RTE_ETHER_MAX_JUMBO_FRAME_LEN
+               - RTE_ETHER_HDR_LEN - RTE_ETHER_CRC_LEN;
+       const uint16_t min_mtu = RTE_ETHER_MIN_LEN - RTE_ETHER_HDR_LEN -
+               RTE_ETHER_CRC_LEN;
        int ret;
 
        ret = rte_eth_dev_info_get(port_id, &dev_info);
@@ -438,8 +442,13 @@ test_null_dev_info(void)
        /* Verify expected device info values */
        TEST_ASSERT(dev_info.max_mac_addrs == 1,
                    "Expected max_mac_addrs=1, got %u", dev_info.max_mac_addrs);
-       TEST_ASSERT(dev_info.max_rx_pktlen == UINT32_MAX,
-                   "Unexpected max_rx_pktlen");
+
+       TEST_ASSERT(dev_info.max_mtu == jumbo_mtu,
+                   "Unexpected max_mtu: %u", dev_info.max_mtu);
+       TEST_ASSERT(dev_info.min_mtu == min_mtu,
+                   "Unexpected min_mtu: %u", dev_info.max_mtu);
+       TEST_ASSERT(dev_info.max_rx_pktlen == RTE_ETHER_MAX_JUMBO_FRAME_LEN,
+                   "Unexpected max_rx_pktlen: %u", dev_info.max_rx_pktlen);
        TEST_ASSERT(dev_info.min_rx_bufsize == 0,
                    "Expected min_rx_bufsize=0, got %u", 
dev_info.min_rx_bufsize);
 
diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c
index 46e7e7bd8c..2928f0d2d5 100644
--- a/drivers/net/null/rte_eth_null.c
+++ b/drivers/net/null/rte_eth_null.c
@@ -298,19 +298,16 @@ static int
 eth_dev_info(struct rte_eth_dev *dev,
                struct rte_eth_dev_info *dev_info)
 {
-       struct pmd_internals *internals;
-
-       if ((dev == NULL) || (dev_info == NULL))
-               return -EINVAL;
+       struct pmd_internals *internals = dev->data->dev_private;
 
-       internals = dev->data->dev_private;
        dev_info->max_mac_addrs = 1;
-       dev_info->max_rx_pktlen = (uint32_t)-1;
        dev_info->max_rx_queues = RTE_DIM(internals->rx_null_queues);
        dev_info->max_tx_queues = RTE_DIM(internals->tx_null_queues);
-       dev_info->min_rx_bufsize = 0;
        dev_info->tx_offload_capa = RTE_ETH_TX_OFFLOAD_MULTI_SEGS | 
RTE_ETH_TX_OFFLOAD_MT_LOCKFREE;
 
+       dev_info->max_rx_pktlen = RTE_ETHER_MAX_JUMBO_FRAME_LEN;
+       dev_info->max_mtu = RTE_ETHER_MAX_JUMBO_FRAME_LEN
+               - RTE_ETHER_HDR_LEN - RTE_ETHER_CRC_LEN;
        dev_info->reta_size = internals->reta_size;
        dev_info->flow_type_rss_offloads = internals->flow_type_rss_offloads;
        dev_info->hash_key_size = sizeof(internals->rss_key);
-- 
2.51.0

Reply via email to