[PATCH] examples/l3fwd: fix issue with MTU set on event mode

Nithin Kumar Dabilpuram ndabilpuram at marvell.com
Mon Jul 18 16:30:02 CEST 2022


Ping.

On 2022-06-02 1:15 PM, Jerin Jacob wrote:
> On Thu, Apr 21, 2022 at 7:47 PM Nithin Dabilpuram
> <ndabilpuram at marvell.com> wrote:
>>
>> MTU configuration is missing for ethdev when using eventmode
>> when user provides it via "--max-pkt-len" config. It is only
>> done in poll mode setup. Fix the event mode setup code to
>> do the same.
>>
>> Fixes: 1bb4a528c41f ("ethdev: fix max Rx packet length")
>> Cc: ferruh.yigit at intel.com
>> Cc: stable at dpdk.org
>>
>> Signed-off-by: Nithin Dabilpuram <ndabilpuram at marvell.com>
> 
> Acked-by: Jerin Jacob <jerinj at marvell.com>
> 
> 
>> ---
>>   examples/l3fwd/l3fwd.h       | 5 +++++
>>   examples/l3fwd/l3fwd_event.c | 6 ++++++
>>   examples/l3fwd/main.c        | 4 ++--
>>   3 files changed, 13 insertions(+), 2 deletions(-)
>>
>> diff --git a/examples/l3fwd/l3fwd.h b/examples/l3fwd/l3fwd.h
>> index ad39496..b0bfdcc 100644
>> --- a/examples/l3fwd/l3fwd.h
>> +++ b/examples/l3fwd/l3fwd.h
>> @@ -107,6 +107,8 @@ extern struct lcore_conf lcore_conf[RTE_MAX_LCORE];
>>
>>   extern struct parm_cfg parm_config;
>>
>> +extern uint32_t max_pkt_len;
>> +
>>   /* Send burst of packets on an output interface */
>>   static inline int
>>   send_burst(struct lcore_conf *qconf, uint16_t n, uint16_t port)
>> @@ -193,6 +195,9 @@ is_valid_ipv4_pkt(struct rte_ipv4_hdr *pkt, uint32_t link_len)
>>   int
>>   init_mem(uint16_t portid, unsigned int nb_mbuf);
>>
>> +int config_port_max_pkt_len(struct rte_eth_conf *conf,
>> +                           struct rte_eth_dev_info *dev_info);
>> +
>>   /* Function pointers for LPM, EM or FIB functionality. */
>>   void
>>   setup_lpm(const int socketid);
>> diff --git a/examples/l3fwd/l3fwd_event.c b/examples/l3fwd/l3fwd_event.c
>> index 7a40129..e72add8 100644
>> --- a/examples/l3fwd/l3fwd_event.c
>> +++ b/examples/l3fwd/l3fwd_event.c
>> @@ -73,6 +73,12 @@ l3fwd_eth_dev_port_setup(struct rte_eth_conf *port_conf)
>>                          rte_panic("Error during getting device (port %u) info:"
>>                                    "%s\n", port_id, strerror(-ret));
>>
>> +               ret = config_port_max_pkt_len(&local_port_conf, &dev_info);
>> +               if (ret != 0)
>> +                       rte_exit(EXIT_FAILURE,
>> +                               "Invalid max packet length: %u (port %u)\n",
>> +                               max_pkt_len, port_id);
>> +
>>                  if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE)
>>                          local_port_conf.txmode.offloads |=
>>                                                  RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE;
>> diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
>> index a629198..6585c8b 100644
>> --- a/examples/l3fwd/main.c
>> +++ b/examples/l3fwd/main.c
>> @@ -135,7 +135,7 @@ static struct rte_eth_conf port_conf = {
>>          },
>>   };
>>
>> -static uint32_t max_pkt_len;
>> +uint32_t max_pkt_len;
>>
>>   static struct rte_mempool *pktmbuf_pool[RTE_MAX_ETHPORTS][NB_SOCKETS];
>>   static struct rte_mempool *vector_pool[RTE_MAX_ETHPORTS];
>> @@ -1136,7 +1136,7 @@ eth_dev_get_overhead_len(uint32_t max_rx_pktlen, uint16_t max_mtu)
>>          return overhead_len;
>>   }
>>
>> -static int
>> +int
>>   config_port_max_pkt_len(struct rte_eth_conf *conf,
>>                  struct rte_eth_dev_info *dev_info)
>>   {
>> --
>> 2.8.4
>>


More information about the stable mailing list