From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 37B9BA0A0A; Fri, 22 Jan 2021 10:50:00 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9576F140EB3; Fri, 22 Jan 2021 10:48:19 +0100 (CET) Received: from smtpbg511.qq.com (smtpbg511.qq.com [203.205.250.109]) by mails.dpdk.org (Postfix) with ESMTP id 7AF34140E97 for ; Fri, 22 Jan 2021 10:48:14 +0100 (CET) X-QQ-mid: bizesmtp9t1611308891tzjcfrykg Received: from wxdbg.localdomain.com (unknown [183.129.236.74]) by esmtp6.qq.com (ESMTP) with id ; Fri, 22 Jan 2021 17:48:10 +0800 (CST) X-QQ-SSF: 01400000002000C0D000B00A0000000 X-QQ-FEAT: s8YYpWqVDddP0vO08LtAlKO17oQKz/nbPnqcTAcVemX5Stvl/zs8zvxvz8EUM y2vYFRPGzC7Milwte9TPLKLICJq1bvNau0kW1v+Hf0S5ZjSkH6Ys6FLiMdoxW//D5GGERug j4j0dVHW3j12mnh93mSAWHxwmgW40e2oMcvG8LuZh6Cky/WuOv+VY74dv2XtCzrlHxPZQcg QXSrMvoP0l16JryYXSVZxJgFNbLnzdI6t/TleD0j0E8K3nbpsftb0OpAOCGs89v9NAhpQeY YfaYcOGREWAvl2Vd2b8hucjkWpQQrY0vnU/vd0IGbef4sBueHhOt/xqXOkPDziA00mPyjta HAX5iYLhGwlimJibgrBEXlr/9mFUA== X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu Date: Fri, 22 Jan 2021 17:47:53 +0800 Message-Id: <20210122094800.197748-14-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210122094800.197748-1-jiawenwu@trustnetic.com> References: <20210122094800.197748-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybgforeign:qybgforeign6 X-QQ-Bgrelay: 1 Subject: [dpdk-dev] [PATCH v1 13/20] net/txgbe: support to update MTU on VF device X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add MTU set operation for VF device. Signed-off-by: Jiawen Wu --- doc/guides/nics/features/txgbe_vf.ini | 1 + drivers/net/txgbe/txgbe_ethdev_vf.c | 36 +++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/doc/guides/nics/features/txgbe_vf.ini b/doc/guides/nics/features/txgbe_vf.ini index 480af52bd..37a02c6e1 100644 --- a/doc/guides/nics/features/txgbe_vf.ini +++ b/doc/guides/nics/features/txgbe_vf.ini @@ -6,6 +6,7 @@ [Features] Link status = Y Rx interrupt = Y +MTU update = Y Jumbo frame = Y Scattered Rx = Y LRO = Y diff --git a/drivers/net/txgbe/txgbe_ethdev_vf.c b/drivers/net/txgbe/txgbe_ethdev_vf.c index 58fd2c5a1..dd84a4955 100644 --- a/drivers/net/txgbe/txgbe_ethdev_vf.c +++ b/drivers/net/txgbe/txgbe_ethdev_vf.c @@ -913,6 +913,41 @@ txgbevf_set_default_mac_addr(struct rte_eth_dev *dev, return 0; } +static int +txgbevf_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu) +{ + struct txgbe_hw *hw; + uint32_t max_frame = mtu + RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN; + struct rte_eth_rxmode *rx_conf = &dev->data->dev_conf.rxmode; + + hw = TXGBE_DEV_HW(dev); + + if (mtu < RTE_ETHER_MIN_MTU || + max_frame > RTE_ETHER_MAX_JUMBO_FRAME_LEN) + return -EINVAL; + + /* refuse mtu that requires the support of scattered packets when this + * feature has not been enabled before. + */ + if (!(rx_conf->offloads & DEV_RX_OFFLOAD_SCATTER) && + (max_frame + 2 * TXGBE_VLAN_TAG_SIZE > + dev->data->min_rx_buf_size - RTE_PKTMBUF_HEADROOM)) + return -EINVAL; + + /* + * When supported by the underlying PF driver, use the TXGBE_VF_SET_MTU + * request of the version 2.0 of the mailbox API. + * For now, use the TXGBE_VF_SET_LPE request of the version 1.0 + * of the mailbox API. + */ + if (txgbevf_rlpml_set_vf(hw, max_frame)) + return -EINVAL; + + /* update max frame size */ + dev->data->dev_conf.rxmode.max_rx_pkt_len = max_frame; + return 0; +} + static int txgbevf_dev_promiscuous_enable(struct rte_eth_dev *dev) { @@ -1076,6 +1111,7 @@ static const struct eth_dev_ops txgbevf_eth_dev_ops = { .allmulticast_enable = txgbevf_dev_allmulticast_enable, .allmulticast_disable = txgbevf_dev_allmulticast_disable, .dev_infos_get = txgbevf_dev_info_get, + .mtu_set = txgbevf_dev_set_mtu, .vlan_filter_set = txgbevf_vlan_filter_set, .vlan_strip_queue_set = txgbevf_vlan_strip_queue_set, .vlan_offload_set = txgbevf_vlan_offload_set, -- 2.27.0