From patchwork Thu Mar 8 19:07:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh X-Patchwork-Id: 35786 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 0F8855F4F; Thu, 8 Mar 2018 20:08:01 +0100 (CET) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0082.outbound.protection.outlook.com [104.47.33.82]) by dpdk.org (Postfix) with ESMTP id 3DA235F38 for ; Thu, 8 Mar 2018 20:07:59 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=DM4+k4JHa/tHn9tBveTzv5akkb5TTlOAqvXzuraRG3I=; b=Eye8VbK12y4QGzUoVvMol4gPQN4qmFw2K/9FJwj00Ly/eWEu+HlvMS8VbkanLQiFhCu8NYOXE+WtxiYlqXzgBumaONMKeiF9JLU0KfRx4+yRO+cnFZ5SOT13j+5URCqEWcBR57Thw+JJvUtMIX+ObBz4uEXXRfKZTKScV58jkno= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Pavan.Bhagavatula@cavium.com; Received: from localhost.localdomain (111.93.218.67) by BN6PR07MB3459.namprd07.prod.outlook.com (10.161.153.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.548.13; Thu, 8 Mar 2018 19:07:54 +0000 From: Pavan Nikhilesh To: jerin.jacob@caviumnetworks.com, santosh.shukla@caviumnetworks.com, ferruh.yigit@intel.com Cc: dev@dpdk.org, Pavan Nikhilesh Date: Fri, 9 Mar 2018 00:37:16 +0530 Message-Id: <20180308190716.31061-1-pbhagavatula@caviumnetworks.com> X-Mailer: git-send-email 2.16.2 MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: SG2PR0302CA0023.apcprd03.prod.outlook.com (10.170.129.33) To BN6PR07MB3459.namprd07.prod.outlook.com (10.161.153.22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 461f14af-2899-4334-474d-08d58527e77f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(2017052603328)(7153060)(7193020); SRVR:BN6PR07MB3459; X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3459; 3:kxV5Kd+N6kh+aoxd4Rpf1M5Vwu9FpOAx/Iu4zO4JneJe9EypAc8h9pfhf0V7y9Y1YmFL84EhInuAiRVRQxGtgJ0z/ulDnzxYg3C80sJqib0V2JDsDYBIgVD2rzAbAmid5icbzitDyS2e+otPsxk6DCZer8+qlpz/FNP8CdkjA/IcecSHYpeoUOLKQc3RiariVF5gobHoCKkJHaKMIqJoHMpiv8Nd1Ph86YCox/+hb8VElDOXzFAc3dTSwzARuyvP; 25:OKs6mu4gyENUo67susAJCWx9FeBaHgXKWzkXOl6/DUH/r424+UwucGRfgnWTZKbNxRZwo+CUAE1l/EUoDKM0teUNvL4vrevR2p8PQo6CzTwG9PIH9U9q3/d/eVxeFXw8IaI4ePH9VEGXwDkFsIszC/HTD3VxPHKWg4U5Fx+tQH9KGfrpd67/tfcgYsjeXXNOmSFluFLfhIkQLx8+3qsD0azOkVThV5TfNpF/ci8xLtIZyn9Ub/9/uB8qs9m3jI5xmJc0tyJ006znuxsIJ+ZfYYqVz6p8UKBxcrAFEvFq2370efgL+qSrZtZ3hbxmUPz6dkXQWTtLDmO7gNj/myMibg==; 31:xvo7Iz0H6qDYWgyO9vGd//mkXRZB0Wg1zoGhjws4e1Sj8yroOzVjZ+NVJY/LY2evP/bdR4s0JGS/zDUHoZ4tKZijAAPhXc2doRCp3g0NASONeIQd9t5lXnz4HlowT95Ee/Awo1myIK3kcB+wNctvbyX6OpXa07MSv44S+lGTAri2h2ut6IVYG7JFEn7JNV73u94RAE2OhdcUxaPBFGn4ymQE2hVNhknzeRfz0KLg6Lw= X-MS-TrafficTypeDiagnostic: BN6PR07MB3459: X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3459; 20:6XS+TEho++7KoKpLudVIUeNLzIOFLIzK8JSDQ+coUQ5+kj+gVI0BEJoB7CFGoHBQ0W1kA1wUg8gFJcTQQDh+nhjq+rrenguu/0EyZeh108SgShYCElewj1D7DdSz8ENldxiG9oMLayoOeGOVbwcFfvlAvepVe/3lyibf8gN+2gO1jzJHjVoK6wKEfA1lOkryf4dbcSpyR7jHHaql9zzee7vSpSbDOGCb98yr69UrB6uvMAiA8mCLkfhYbE/OJOFYV/KJhJwZ7q+x34NMNjI12k4UfLuUdhcerGZqGcD+xDWWYtXiVNpxX3qNzXbs2JJMo/PQlQaO/P6wQ5QizWMRG6TPyq3jEZ/RGuCOAgxsash0sDTOWpuLOZQodlOvqiS4l0/1y196XDQEYSxHyrf4fIaG/9rNn3oSLHDp8m49vlTQCcyk6M50D6q0iuZiyZFjcMnLX0LtKF8FZyyY1sVKxZe2mcyvtpxQRlvrU71JQLTuh5apVWDU5Pzxq6+d1bBN9wDc8Nssp5UaA0Pq+6AJFlKehu1HykstiCIEsuM3EDv4d8XwGm0d7bT5UXKcx+WM9SsQohvxN06jvHVJOJrG1H0cJIW8WKmvEi3Ubof2+vE=; 4:SKO4lkQNVWKZKx2hBjFiqYYjLy4C47n1+KMYxFWk3LAz7FZCvI7IKM2/+F4eY+hIPUdblXF7oPb1xmEwpWZcaOym4tOR2t5O5PoiVWdAheUHBOAijjSG+Iw4HRAwI4l4Ccerqv/nGma3fL1Na7CzmqRe7i3zCT8fOYkLm15z6ORssEf9i+MMNfdPJFIrf4szqZcyqWQ4eE6Qr/F+d43wPVdujRKSaFkiPWyxa7yaBNjOhUVxZoOXPRlRlmD16U7B4yGlB22ImkzxPCdEybXTpiVd+9a3xVpR2/c4lN6Oyo7KP+TCzK4Ebz5walec36kh X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(20558992708506); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040501)(2401047)(8121501046)(5005006)(3231220)(944501244)(52105095)(3002001)(10201501046)(93006095)(6041288)(20161123558120)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(6072148)(201708071742011); SRVR:BN6PR07MB3459; BCL:0; PCL:0; RULEID:; SRVR:BN6PR07MB3459; X-Forefront-PRVS: 060503E79B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(396003)(376002)(39380400002)(39860400002)(366004)(346002)(189003)(199004)(50466002)(6506007)(50226002)(25786009)(6486002)(4326008)(52116002)(59450400001)(51416003)(6512007)(81156014)(81166006)(48376002)(42882007)(107886003)(386003)(16586007)(316002)(8676002)(575784001)(53936002)(72206003)(5660300001)(5009440100003)(3846002)(36756003)(8936002)(66066001)(6116002)(105586002)(305945005)(106356001)(47776003)(1076002)(26005)(97736004)(6666003)(2906002)(478600001)(68736007)(1857600001)(16526019)(7736002)(42262002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR07MB3459; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB3459; 23:8WYOdqG7HZjDFn1jOngTcH/bU0fzuvRl2/fRW88+K?= FkV5Ejptf9s9RVAfCnfxxUilfkS2O6t/ssqS78TEd5nSz1TybjmCDE0rWNvQ5zAJNyyLt770lZBHTaBdALZvXzV7DFHYya2H8DZIrF6myTRtPcJV4aiyqgBQJEUwSSxRxZaI+2RBZPPrDU0CJCB8HMIL8uM2jgiDRggS6cKihKALhLi8/G6iHvDXZb08w2ry7NW+ihV5cjjzeWiT8CYdi8zdILXlnmudSSTqQVuWYW+1UuIjz+FfnnJU2JVfZREkH5S76tmEplovgq3EHe9rpmh9xrfrmt+7y76a4hIfPGhALjcIjyoBLQCWYtfOM/0201j6X6zVltSGaJaare4+/fpDEmbeNPDkG/6JWXMb/pe5fdrmUs9wxqEpWwZUOwYBKs6TckHC5kAyPiwrPb0qTHZX5+aAoDztpn9XeLff7ACUTGFw+SKtD2XMXM+c4SYkbcuUM3Xdh/M8Kv9s+JJYvQSe0YxvVL9xiuIikL3XEHSmZ8+l1h2YVDaSBqClcaTKj9slWDmmoQbbmURFr1wjuM8V0X/XVxraOHmXXBRaM6BiUk8Zatj3b9sRivNERboElJRpGf/sws3BwS4KpaSoKqzXIdIDuYKAo8rqXIDOTxc76k6rk8zj8642Rf+dPxGMGaXAJTV8mBPZZHyjfkX0dXSKnJr6Ujl9HRpnrvLF/j2CxLCg6EN0XHcqwgiM82eVL04u+axggfmHW8sNVMM893jvzkFPB6VMqld8p+cxCr4K6j3CyiFTg+CJ/9bGMgKfBt/Ju7NbXlcmi5gmZovdfsB6LcbUl8Augs+viwymFqH38uyiwNbxQFaBK/VGnuQZp+lVYZwdjZSGGLTJWLqbewvr53St6OvEHG/YoOeCW/sWU+1prziVIwJuXiSL7np85VJg8KTT2y7fwTK7NRQXUUwo5qrf30KmJw4hAMs8g3dxy4UHFAZiVMZRr02qcgpuNPRTj3IVec3skOT7dhI1nxIJqX43QAv4yyvpzk8vaM+fI+dAmLAbwfuTYcuTFKAClXg/uHTV1m7uT3/WsLc1sqxz/Py+MF6INPBIh6hoIgS+dZaH7PCcK4rdhTyCx4dA//SKycQwOa04xYjW5Tm6fsgFtr/GKd4MpAs67Jl6r5aqPyjyoHrEw6uqAuPC1rQVm4HkrRZjqaAIxlxB0bq/x8Pp+u3WSEX2deJuX7X+GSFNg== X-Microsoft-Antispam-Message-Info: VL12ATmym/MGVOQmCsv/wD+bUBNJZaBKy1zXX0ODZHlMNNvnO7wS+yRC8T7g+47px0tJ4rc2mOA6mARXRWchn92QYVM1DhowjB3EtoTdzXyhcUqPeY36a3/LpispP3+HIu1bxv+jFagTzTKsFQVfXTLW0WrkTkvSDEIhSE/Jd57DZQ4+xGIf9808hn9lIgfB X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3459; 6:5eaAVRzR0tRp4+maMhPfA9UouomYvmmHkXXpcJGOGINvPtOuUDSC7r2Fm3Tt12zmFbgxRgxf0zNNqTe1dcqFsJRc8am91KX0l7kcBUWTfqpmv2Y0cEoPcZCZFVighsYzUv7oMvC/LZ3Uu7mAR2+muTwHIucuYreRzTi0lp5JWWKKePKlknSIIzdSnd4utmxrFcSOxErHNdVLjRXWxObcll8B7cMNY3Lkncsc7+LdsloAWCnWeDuy7DDeI0b6m3TvEhA/okjtoV+9XKt7NulHGpKrghnmdqBG+0qoYT0ityhV3bMC+izAk/pZkfIQpG2pzMNlntAw8cvQhmiFRHt1rW15PgufJCmXXWalO4tyvuU=; 5:H5W92C5DTAgyVPPREMMg8m3vpjuQ7y3RvD97M+Qaqw8rHOr3K8v9/dEoyZ4FH6oCAyB3VVMlpd/A801leVyhm3Ph4FofUx2Dgb08et7Xjl9UavO3bMCTwOsmDaHPIRZK5SUcGi71i2SOeqBU3zukHoBN3KlLPufQVVp5SD2Zo8k=; 24:gchBl5e1oxOXUcvylCm/n1J7+hLXbuBIaf2x0lJS891R6LU9gdIdlgk2eAEkFYml+/YaJYlBYibXGEWad0Q4l921wrtCNhLMqiAmo5ARqgs=; 7:lblumCiO3eZN0kVt0Czvka/H9ICLMFh8qIQbB1MCCZaMd4wJLyGqaAEH2dXxm/16hnSmLuU6boQeHsdqc8wbwUambK4ZbAzIZfV3uLo8Qpo9y55SdCpConCb0F0NaunhQNgraW7B2Cl8v4OVh+DCfgTiewfXb7d1IhaeeOGLmApTVQJwCblhHu6JL0cmkBJ/D+3sXLIc4S30m6MNqaa+ZpCXzeCl7nzwaC7QZs+Iyf/HyZbjxx7+pv/G09U2+a7O SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2018 19:07:54.7046 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 461f14af-2899-4334-474d-08d58527e77f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR07MB3459 Subject: [dpdk-dev] [PATCH] net/octeontx: use the new offload APIs 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" Use the new Rx/Tx offload APIs and remove the old style offloads. Signed-off-by: Pavan Nikhilesh Acked-by: Santosh Shukla --- Checkpatch reports falsepositive for PRIx64 drivers/net/octeontx/octeontx_ethdev.c | 82 ++++++++++++++++++++++++++-------- drivers/net/octeontx/octeontx_ethdev.h | 3 ++ 2 files changed, 67 insertions(+), 18 deletions(-) -- 2.16.2 diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c index b739c0b39..0448e3557 100644 --- a/drivers/net/octeontx/octeontx_ethdev.c +++ b/drivers/net/octeontx/octeontx_ethdev.c @@ -262,6 +262,8 @@ octeontx_dev_configure(struct rte_eth_dev *dev) struct rte_eth_rxmode *rxmode = &conf->rxmode; struct rte_eth_txmode *txmode = &conf->txmode; struct octeontx_nic *nic = octeontx_pmd_priv(dev); + uint64_t configured_offloads; + uint64_t unsupported_offloads; int ret; PMD_INIT_FUNC_TRACE(); @@ -283,34 +285,43 @@ octeontx_dev_configure(struct rte_eth_dev *dev) return -EINVAL; } - if (!rxmode->hw_strip_crc) { + configured_offloads = rxmode->offloads; + + if (!(configured_offloads & DEV_RX_OFFLOAD_CRC_STRIP)) { PMD_INIT_LOG(NOTICE, "can't disable hw crc strip"); - rxmode->hw_strip_crc = 1; + configured_offloads |= DEV_RX_OFFLOAD_CRC_STRIP; } - if (rxmode->hw_ip_checksum) { + if (configured_offloads & DEV_RX_OFFLOAD_CHECKSUM) { PMD_INIT_LOG(NOTICE, "rxcksum not supported"); - rxmode->hw_ip_checksum = 0; + configured_offloads &= ~DEV_RX_OFFLOAD_CHECKSUM; } - if (rxmode->split_hdr_size) { - octeontx_log_err("rxmode does not support split header"); - return -EINVAL; - } + unsupported_offloads = configured_offloads & ~OCTEONTX_RX_OFFLOADS; - if (rxmode->hw_vlan_filter) { - octeontx_log_err("VLAN filter not supported"); - return -EINVAL; + if (unsupported_offloads) { + PMD_INIT_LOG(ERR, "Rx offloads 0x%" PRIx64 " are not supported. " + "Requested 0x%" PRIx64 " supported 0x%" PRIx64 "\n", + unsupported_offloads, configured_offloads, + (uint64_t)OCTEONTX_RX_OFFLOADS); + return -ENOTSUP; } - if (rxmode->hw_vlan_extend) { - octeontx_log_err("VLAN extended not supported"); - return -EINVAL; + configured_offloads = txmode->offloads; + + if (!(configured_offloads & DEV_TX_OFFLOAD_MT_LOCKFREE)) { + PMD_INIT_LOG(NOTICE, "cant disable lockfree tx"); + configured_offloads |= DEV_TX_OFFLOAD_MT_LOCKFREE; } - if (rxmode->enable_lro) { - octeontx_log_err("LRO not supported"); - return -EINVAL; + unsupported_offloads = configured_offloads & ~OCTEONTX_TX_OFFLOADS; + + if (unsupported_offloads) { + PMD_INIT_LOG(ERR, "Tx offloads 0x%" PRIx64 " are not supported." + "Requested 0x%" PRIx64 " supported 0x%" PRIx64 ".\n", + unsupported_offloads, configured_offloads, + (uint64_t)OCTEONTX_TX_OFFLOADS); + return -ENOTSUP; } if (conf->link_speeds & ETH_LINK_SPEED_FIXED) { @@ -750,10 +761,11 @@ octeontx_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx, struct octeontx_txq *txq = NULL; uint16_t dq_num; int res = 0; + uint64_t configured_offloads; + uint64_t unsupported_offloads; RTE_SET_USED(nb_desc); RTE_SET_USED(socket_id); - RTE_SET_USED(tx_conf); dq_num = (nic->port_id * PKO_VF_NUM_DQ) + qidx; @@ -771,6 +783,17 @@ octeontx_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx, dev->data->tx_queues[qidx] = NULL; } + configured_offloads = tx_conf->offloads; + + unsupported_offloads = configured_offloads & ~OCTEONTX_TX_OFFLOADS; + if (unsupported_offloads) { + PMD_INIT_LOG(ERR, "Tx offloads 0x%" PRIx64 " are not supported." + "Requested 0x%" PRIx64 " supported 0x%" PRIx64 ".\n", + unsupported_offloads, configured_offloads, + (uint64_t)OCTEONTX_TX_OFFLOADS); + return -ENOTSUP; + } + /* Allocating tx queue data structure */ txq = rte_zmalloc_socket("ethdev TX queue", sizeof(struct octeontx_txq), RTE_CACHE_LINE_SIZE, nic->node); @@ -826,6 +849,8 @@ octeontx_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx, uint8_t gaura; unsigned int ev_queues = (nic->ev_queues * nic->port_id) + qidx; unsigned int ev_ports = (nic->ev_ports * nic->port_id) + qidx; + uint64_t configured_offloads; + uint64_t unsupported_offloads; RTE_SET_USED(nb_desc); @@ -848,6 +873,27 @@ octeontx_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx, port = nic->port_id; + configured_offloads = rx_conf->offloads; + + if (!(configured_offloads & DEV_RX_OFFLOAD_CRC_STRIP)) { + PMD_INIT_LOG(NOTICE, "can't disable hw crc strip"); + configured_offloads |= DEV_RX_OFFLOAD_CRC_STRIP; + } + + if (configured_offloads & DEV_RX_OFFLOAD_CHECKSUM) { + PMD_INIT_LOG(NOTICE, "rxcksum not supported"); + configured_offloads &= ~DEV_RX_OFFLOAD_CHECKSUM; + } + + unsupported_offloads = configured_offloads & ~OCTEONTX_RX_OFFLOADS; + + if (unsupported_offloads) { + PMD_INIT_LOG(ERR, "Rx offloads 0x%" PRIx64 " are not supported. " + "Requested 0x%" PRIx64 " supported 0x%" PRIx64 "\n", + unsupported_offloads, configured_offloads, + (uint64_t)OCTEONTX_RX_OFFLOADS); + return -ENOTSUP; + } /* Rx deferred start is not supported */ if (rx_conf->rx_deferred_start) { octeontx_log_err("rx deferred start not supported"); diff --git a/drivers/net/octeontx/octeontx_ethdev.h b/drivers/net/octeontx/octeontx_ethdev.h index 10e42e142..9d6c22b0d 100644 --- a/drivers/net/octeontx/octeontx_ethdev.h +++ b/drivers/net/octeontx/octeontx_ethdev.h @@ -28,6 +28,9 @@ #define OCTEONTX_MAX_BGX_PORTS 4 #define OCTEONTX_MAX_LMAC_PER_BGX 4 +#define OCTEONTX_RX_OFFLOADS DEV_RX_OFFLOAD_CRC_STRIP +#define OCTEONTX_TX_OFFLOADS DEV_TX_OFFLOAD_MT_LOCKFREE + static inline struct octeontx_nic * octeontx_pmd_priv(struct rte_eth_dev *dev) {