From patchwork Sat Aug 17 04:53:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Myers, Charles" X-Patchwork-Id: 57733 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 081EF2C6D; Sat, 17 Aug 2019 06:53:27 +0200 (CEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-eopbgr770122.outbound.protection.outlook.com [40.107.77.122]) by dpdk.org (Postfix) with ESMTP id 6E784A69 for ; Sat, 17 Aug 2019 06:53:24 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OOmRiglHc+q8URYTWH+GefhXlfpgCQiqnsirdQq4O62vSikfcj4orUcHzD8IbrTjDu2WPduUMNjqQoPk5g5zB5WLOQl9kmYffXDxojJKJ2/ttdz9XlkNVfkBbS8f+0H9KoHnIKVtXq6sL1TRWI8Ei+kepA8Qe2BamWJxcaMNZoTu+NF3q5MClTIEM8KVaDstCfnOrUfZUPOoVjZPNdS+IqU0wT2VZEKS/deLjn21glO8dd4p4zF7MTo70HsYvnxi3Ta5ZnOxzu2pWBZmOljkn0c5CGDFY8JJJtUxbYdDFrwlbMlnocEnALaVndG1XSxHHUiZ1qkIIbn99+cOlpHRjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ng0ZJLUD9ecrz4tthlZyzHz4mh4JQFY5yfBma8iIv18=; b=SICT9bvpsLUKtuD2+LXZ5nFYdRV7nNGtGU9KJnR9cMT3qoAfR5R7tWTSfc61LA7TCkJLYUcRpH3rFmVuOrA6CLT7PJvkJq2wfuJRo27cRZIOL32SPoNDV4eIT06iyz0OJ9c87Re2OGs/prlJd94g33nGdregYrUlgnbsR5vqYB9yaOv3cbchmUHkwbBDQsd/wQ8yr95hfLJ/c8pVYBnTdPyoXAr1cUH+0oWtuLZCrfH9mKUbz7n7FvdFucRvVRQImKShfHWUJXpqIokTFncxnM0F5Kex4v0bX+V2Tq+nLoI6Ez7DzJyy6cdjPQ8sn6OIB8l09+YQ2Gwhkcj/hzxvMg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=spirent.com; dmarc=pass action=none header.from=spirent.com; dkim=pass header.d=spirent.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=spirent1.onmicrosoft.com; s=selector2-spirent1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ng0ZJLUD9ecrz4tthlZyzHz4mh4JQFY5yfBma8iIv18=; b=n3+vmjYklUItKx0DhUFApPg3ig9QxBr5iN24nF8lPQKWSEGQcVImSGwNGNdg2bT/qpaZl7wLFFzXILgxzpo95rScAEcuubGdkCP7lLkEwTRn7mG+b46vSCEZ1wNgiPsbnSq7yIDM9Tb6tjv306TdliFdgIIO6WA0L9m4hR7ADVQ= Received: from BYAPR10MB2664.namprd10.prod.outlook.com (52.135.217.27) by BYAPR10MB3206.namprd10.prod.outlook.com (20.179.156.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2157.20; Sat, 17 Aug 2019 04:53:22 +0000 Received: from BYAPR10MB2664.namprd10.prod.outlook.com ([fe80::60f5:7961:f02e:6ff1]) by BYAPR10MB2664.namprd10.prod.outlook.com ([fe80::60f5:7961:f02e:6ff1%7]) with mapi id 15.20.2157.022; Sat, 17 Aug 2019 04:53:22 +0000 From: "Myers, Charles" To: "dev@dpdk.org" CC: "Myers, Charles" Thread-Topic: [PATCH] net/vmxnet3: Added mtu_set() function to allow setting MTU. Thread-Index: AQHVVLexfmrPQ+01BU6CxfMzFN62AA== Date: Sat, 17 Aug 2019 04:53:21 +0000 Message-ID: <1566017542-26938-1-git-send-email-Charles.Myers@spirent.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [74.62.253.130] x-clientproxiedby: BYAPR03CA0013.namprd03.prod.outlook.com (2603:10b6:a02:a8::26) To BYAPR10MB2664.namprd10.prod.outlook.com (2603:10b6:a02:b2::27) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Charles.Myers@spirent.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.7.4 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f6a6c38a-9bfd-4ee9-0f23-08d722ced43c x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:BYAPR10MB3206; x-ms-traffictypediagnostic: BYAPR10MB3206: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-forefront-prvs: 0132C558ED x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39850400004)(136003)(376002)(346002)(396003)(366004)(199004)(189003)(476003)(6436002)(50226002)(6512007)(2501003)(2616005)(316002)(66446008)(66556008)(256004)(64756008)(3846002)(99286004)(8936002)(14454004)(6486002)(5640700003)(53936002)(36756003)(2906002)(66476007)(386003)(6506007)(6116002)(25786009)(102836004)(107886003)(81166006)(6916009)(5660300002)(71200400001)(71190400001)(26005)(478600001)(52116002)(66946007)(1730700003)(4326008)(86362001)(81156014)(7736002)(305945005)(486006)(8676002)(186003)(2351001)(66066001); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR10MB3206; H:BYAPR10MB2664.namprd10.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: spirent.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: QPKJaN/bzMOwqqtuIkg66fvZWpCp4+mCTOUjqqsumLSfPLNur30ZxL6HZ8sMvNP4H/Q14dSfvULxY4zh7Upw13/wv18aKdc8Z5riYNq/DAyJaBLqepG9VXD9hjmX60QsslXEgDmXoE/p7zPXCIUbqUHVxsCBvn/N3YsT7AyVJjrGu86+ZuA2vh3QCau4iv/Z0gVmHEsKvz3SMqw6NbIDOQ2pE7NSpOk51OVI3/YKBQdgyOqfWdG/urSsKtnKkWD4w/YHBKBs7i3j3LJj9YysHW0K69woXOKbVm1rojOfAi2rS9U2FYS+tDppFhkou8W6NM+oJl/cDQkEsL+oi2zCbmvCzSqt17BOZd+cVmzASopHtwTBEJH4Pz+A0J6K4fH36ztV8uGNwj4e0XWsgRBE7YsL7inu79dlKRacpt9CkIQ= MIME-Version: 1.0 X-OriginatorOrg: spirent.com X-MS-Exchange-CrossTenant-Network-Message-Id: f6a6c38a-9bfd-4ee9-0f23-08d722ced43c X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Aug 2019 04:53:21.9615 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: eb68cad0-6bd5-483f-a802-0f72f974373f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: iar87Fff98DKIl4EnoOsB7z2v+7pYZMMFasBGq9lawUy+bFGwoBkKu4heCvpLD6Z12tPayX1j+D92JixVq/6G4wO1VSG4JKwrbsxJ28L934= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3206 Subject: [dpdk-dev] [PATCH] net/vmxnet3: Added mtu_set() function to allow setting MTU. X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" When the mtu_set() function is not implemented, rte_eth_dev_set_mtu() fails with -ENOTSUP and mtu is not stored in the mtu field in the rte_eth_dev_data. This causes the mtu in Vmxnet3_MiscConf which is shared with hypervisor to always be set to 1500. This may cause issues receiving jumbo frames on Enhanced Data Path N-VDS. Signed-off-by: Charles Myers --- drivers/net/vmxnet3/vmxnet3_ethdev.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c index 57feb37..c32c92d 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c @@ -88,6 +88,7 @@ static void vmxnet3_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info); static const uint32_t * vmxnet3_dev_supported_ptypes_get(struct rte_eth_dev *dev); +static int vmxnet3_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu); static int vmxnet3_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vid, int on); static int vmxnet3_dev_vlan_offload_set(struct rte_eth_dev *dev, int mask); @@ -125,6 +126,7 @@ static const struct eth_dev_ops vmxnet3_eth_dev_ops = { .mac_addr_set = vmxnet3_mac_addr_set, .dev_infos_get = vmxnet3_dev_info_get, .dev_supported_ptypes_get = vmxnet3_dev_supported_ptypes_get, + .mtu_set = vmxnet3_dev_mtu_set, .vlan_filter_set = vmxnet3_dev_vlan_filter_set, .vlan_offload_set = vmxnet3_dev_vlan_offload_set, .rx_queue_setup = vmxnet3_dev_rx_queue_setup, @@ -1161,6 +1163,8 @@ vmxnet3_dev_info_get(struct rte_eth_dev *dev __rte_unused, dev_info->max_tx_queues = VMXNET3_MAX_TX_QUEUES; dev_info->min_rx_bufsize = 1518 + RTE_PKTMBUF_HEADROOM; dev_info->max_rx_pktlen = 16384; /* includes CRC, cf MAXFRS register */ + dev_info->min_mtu = VMXNET3_MIN_MTU; + dev_info->max_mtu = VMXNET3_MAX_MTU; dev_info->speed_capa = ETH_LINK_SPEED_10G; dev_info->max_mac_addrs = VMXNET3_MAX_MAC_ADDRS; @@ -1205,6 +1209,24 @@ vmxnet3_dev_supported_ptypes_get(struct rte_eth_dev *dev) } static int +vmxnet3_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) +{ + if (mtu < VMXNET3_MIN_MTU || mtu > VMXNET3_MAX_MTU) { + PMD_DRV_LOG(ERR, "MTU should be between %d and %d", + VMXNET3_MIN_MTU, VMXNET3_MAX_MTU); + return -EINVAL; + } + + if (dev->data->dev_started) { + PMD_DRV_LOG(ERR, "Port %d must be stopped to configure MTU", + dev->data->port_id); + return -EBUSY; + } + + return 0; +} + +static int vmxnet3_mac_addr_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr) { struct vmxnet3_hw *hw = dev->data->dev_private;