From mboxrd@z Thu Jan 1 00:00:00 1970 From: Noa Ezra Subject: [PATCH v2] examples/ip_fragmentation: support big packets Date: Sun, 13 Jan 2019 11:37:06 +0000 Message-ID: <1547379358-17310-1-git-send-email-noae@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Cc: Asaf Penso , "dev@dpdk.org" , Noa Ezra To: "konstantin.ananyev@intel.com" Return-path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60059.outbound.protection.outlook.com [40.107.6.59]) by dpdk.org (Postfix) with ESMTP id 122F01B4E2 for ; Sun, 13 Jan 2019 12:37:08 +0100 (CET) Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" In some vendors the RX and TX configuration must be the same, therefore the MTU size need to be equal to max_rx_pkt_len. The MTU is the largest size packet in bytes that can be sent on the network, therefore before changing this parameter, the NIC could not receive packets larger than 1500 bytes, which is the default MTU size. In addition, scatter-gather need to be enabled in order to receive frames bigger than mbuf size. Signed-off-by: Noa Ezra --- v2: move set_mtu() to be done after dev_configure(). examples/ip_fragmentation/main.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/m= ain.c index 17a877d..8d789b4 100644 --- a/examples/ip_fragmentation/main.c +++ b/examples/ip_fragmentation/main.c @@ -141,6 +141,7 @@ struct lcore_queue_conf { .max_rx_pkt_len =3D JUMBO_FRAME_MAX_SIZE, .split_hdr_size =3D 0, .offloads =3D (DEV_RX_OFFLOAD_CHECKSUM | + DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_JUMBO_FRAME), }, .txmode =3D { @@ -935,6 +936,16 @@ struct rte_lpm6_config lpm6_config =3D { ret, portid); } =20 + /* set the mtu to the maximum received packet size */ + ret =3D rte_eth_dev_set_mtu(portid, + local_port_conf.rxmode.max_rx_pkt_len); + if (ret < 0) { + printf("\n"); + rte_exit(EXIT_FAILURE, "Set MTU failed: " + "err=3D%d, port=3D%d\n", + ret, portid); + } + ret =3D rte_eth_dev_adjust_nb_rx_tx_desc(portid, &nb_rxd, &nb_txd); if (ret < 0) { --=20 1.8.3.1