From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id DA7F7A00BE; Tue, 28 Apr 2020 14:41:51 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5CF5E1D5E4; Tue, 28 Apr 2020 14:41:38 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id A519E1D579 for ; Tue, 28 Apr 2020 14:41:36 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 03SCf1q5029174 for ; Tue, 28 Apr 2020 05:41:36 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=pfpt0818; bh=nsQOGQN2L2Y7KFlapKKpNEN3Y3GmxCZr6NGAvAlMyuM=; b=f+bmDhEDCcy+cmqsSCxYhH2DE28fRtOINSImYJoqUXnEkZQNUxDeXsPYc5RnIXwW7Ibv EamhkXfYVkvvHcwVv7/iwrWMSJrECLbSLJYl9oyLJxuiJqf+HlGhCxpUuVmNKOJI8/Bw 2cv/Vaf21MBj/PxvqzjnFyZF3H0p6P6ZdPY1Rw4sYH6Chh67tfvaHvmCCKPyajXXPBQ7 oLd3gSTHvj1uxoEqHbCDjOa0xs80vr+Hjnc8w1JP9MKJhQ8LfZZEbsC4bxlqSBoz5FqN 1ynYUOYHx2JrYdH6BeQLdKvrYFSI9oI5cZQsoCs+O8AcXU9TxYgzY9OeUuC1v5UPZLwo Ww== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0b-0016f401.pphosted.com with ESMTP id 30mmqmksv4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Tue, 28 Apr 2020 05:41:36 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 28 Apr 2020 05:41:33 -0700 Received: from NAM04-BN3-obe.outbound.protection.outlook.com (104.47.46.55) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Tue, 28 Apr 2020 05:41:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y/ycGFdoHCbHmjTX3H4ea7mSGnQaIQalLTQvVRDwt0fz26sXVMjkXLo4lTTrVviNYrwXsgTr8/OupPUWUkanbDmgyapdZPK0tI9YGsAqgRNP1JRUsYMuZ0kCqZG6o/QqZaPv2c7nFXOVHZ9zE7SXf/bKJK6KWXtClZfh0+U8D+mfJ0Ov0+SueqSMgjsh687VBdhHP0tRYmYUYRRmdJQ60yviI27xe6SF5OmtPZnrGEBzgm2MyNFaFv6yQ1mnsaYfuDMH6E0yWYWonOjEBCCbLgN7rd4LRYQBCHst918WiFVZRLCxm9+tigiJURr64UZbAnjwsIA6WeRXfY+XhZW7aw== 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=nsQOGQN2L2Y7KFlapKKpNEN3Y3GmxCZr6NGAvAlMyuM=; b=bX/UxVBPJDaXYcGG5JNLs3cJXXBV5ExsVLlXD+Ucq3EKtCw6RJBF5dok1gUSD6b1JhVQ5v+k1eacCV+4OwLFnJxM9AvCfeKduTE72gVhhBRF9HLvNdCoC053yd8H861OiGhtwWrbUpEBKKVXpj3xGnmq5Jq361c0JmwxykkdM2BjLIMlE/tZ8huWLUvyJq1B704JsgTSYb0jYZOgw7lu/3SI4QPUVZcfvsuY/8Zh1AMTebwuDOuefCOAgGJcwtJ1bkTPNkWidKlNwxTz28fOahr6LZ2Tnqq6lJRUFRfknzQqHKQ3V839uiwTdFZKQfVzT5uNB5ec6HAjBc4jlxMN7w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nsQOGQN2L2Y7KFlapKKpNEN3Y3GmxCZr6NGAvAlMyuM=; b=ZSxKeXbuLDFgXFUB4+BHDE+6M0LmYg49bFaGF9+YHRfjxPNeTOXQmPhrvktvfcyK0iiVHKYvH0PbWArsbCmFPpdEspgWJNVqWva0LKPeZCJtXt1bMjBxiorhQK/kW9l9B3Rcjsesf+xcZk4vsfYh+ELt34rd4NlQKASqvJGtEXE= Received: from MN2PR18MB2848.namprd18.prod.outlook.com (2603:10b6:208:38::19) by MN2PR18MB3328.namprd18.prod.outlook.com (2603:10b6:208:165::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.22; Tue, 28 Apr 2020 12:41:31 +0000 Received: from MN2PR18MB2848.namprd18.prod.outlook.com ([fe80::a8b1:45c4:b84:9c02]) by MN2PR18MB2848.namprd18.prod.outlook.com ([fe80::a8b1:45c4:b84:9c02%7]) with mapi id 15.20.2937.026; Tue, 28 Apr 2020 12:41:31 +0000 From: Harman Kalra To: CC: , Vamsi Attunuru Date: Tue, 28 Apr 2020 18:10:11 +0530 Message-ID: <1588077612-15905-4-git-send-email-hkalra@marvell.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1588077612-15905-1-git-send-email-hkalra@marvell.com> References: <1588077612-15905-1-git-send-email-hkalra@marvell.com> Content-Type: text/plain X-ClientProxiedBy: BMXPR01CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:c::17) To MN2PR18MB2848.namprd18.prod.outlook.com (2603:10b6:208:38::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from hkarlara-OptiPlex-3046.marvell.com (115.113.156.2) by BMXPR01CA0031.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.2937.13 via Frontend Transport; Tue, 28 Apr 2020 12:41:30 +0000 X-Mailer: git-send-email 2.7.4 X-Originating-IP: [115.113.156.2] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 13f79ff2-87f8-4577-e2d3-08d7eb717a59 X-MS-TrafficTypeDiagnostic: MN2PR18MB3328: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:220; X-Forefront-PRVS: 0387D64A71 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR18MB2848.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(346002)(396003)(366004)(136003)(376002)(39860400002)(478600001)(6666004)(81156014)(16526019)(2616005)(8676002)(8936002)(956004)(6636002)(26005)(86362001)(316002)(7696005)(52116002)(4326008)(66556008)(34206002)(6486002)(66946007)(2906002)(55236004)(186003)(37006003)(66476007)(5660300002)(107886003)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3iE1EK4Tk0u3XLtX2ppInb8ajkbvCYbnowfdxk1hn7woebCW+R2i2AxkS9lKbfXYHvxdeD3XVJwTlO8lcRmXfheTHfdWB7LXNxvgN2TvYBpReF+OgOCU+FaEA1LM2aEDXfA30axHzPjWLLQmaHaYOXHALRcCLJ6MjqloM9yJZwojxnHsQdRqVfbUdz0kWSh7OlnzTc7hlNKMHz893uzuBzaqC8tBzGcQYM6Ue5j3E7zrgE94Mkc1a44CTtFZ1VZLfiQp6wdUTMi8OyT3b2/ZCipBXZClVecbJIr8UKaH1AGXbt5sSxdfolkKIn87UtfTF2yoNGZ9MI68LtCqzOcs2DJOQ+E4+Sp+t9W1U+Fx6pyFSnpKnAcaS670yuRSNM5xfZr5mahnfOBpJVebLqs/QjzK0oshbFanZ67A/iIEIHReJGqYO2VekZk+R9RfLzWW X-MS-Exchange-AntiSpam-MessageData: +AD/IwHdTjYYb851XQ+N4wgbHKyoxvrzuQM9lbx4pLGVqnGTjf8yu7Sm0sIDhF1P2ibzn6to+AywW7/hrSjMw4+6MAm9JR0u0cTziDVkVpVJ/UpRjnhRY/px4s/0Zow0Bp84EyLqQwSeEnHf+q2NQCM5xx+ISdpEFFhHL+zTOGEuuat86IeS7YAlA00B9gdNOI/6ijlPUONtd1qfnOgSqQ4y2q04JjAGSWHIrckLrDKU48cBsv/iNRUhin4d+PhlaQudbtaZbRdPYoBtJHo4eCmoCRFTsUKFEEgra4KcgeYOWl8k/09EJKEvNmA9KV9Tudj1ZtpkXNUlg1D3A2X3IGTZpFWtc7dxM4DccHkUi7y2VQRvTekIIWLTfaE0uyoOO9rS85BZcaQjbW/iAmGuh8ajGDxbPOOD06Sy6JsS+/X6yvutKNiQ9lACv+xcDzayyL5Re7NScu/Lk1EItGWOfpTvDX4EpLFqjRkeWvIzQeE5GM31REW7cQyi0os2isZS22zUYOFzIdbRuXyJa1nK1BPY9UeASh9taBi97Gcuhz2xA2ryG/3+lr26ejUg17r/n/PzcEE8e4/qrYansGCaRd8Z8DlO/2E11BbUEJrQEHrlkMkXVF5kFvVIedCnn3O8ziDeUVZng0neFiOJiYTM7qawCl93/xLRavCNMRNQRtAzujcssdd/EHLJ8Y0FbpLVu+1s3ASZvInDWWAX4tcW/qdR7QsCMGaAc0SIi7j7KG0EV4NR/g7zDw5OxiHJm1azdZp7p8SvTNILCPIFeHiIZk1XCgYdH21UHwmRLUwIavw= X-MS-Exchange-CrossTenant-Network-Message-Id: 13f79ff2-87f8-4577-e2d3-08d7eb717a59 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2020 12:41:31.4796 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: I7M7YR74wCX1w3aJ2Cz4mXscLDB8fUYmMfSGwNKzAMbjAK4t9WHDCGtxIbFQuLPLbOPeOU9gZmqds+UzfQSWnw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB3328 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676 definitions=2020-04-28_09:2020-04-28, 2020-04-28 signatures=0 Subject: [dpdk-dev] [PATCH v2 3/4] event/octeontx: add VLAN filter offload support 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" From: Vamsi Attunuru Adding rx burst function pointer hooks for vlan filter offload in event PMD. Signed-off-by: Vamsi Attunuru --- drivers/event/octeontx/ssovf_worker.c | 38 +++++++++++++++------------ drivers/event/octeontx/ssovf_worker.h | 9 +++++++ drivers/net/octeontx/octeontx_rxtx.h | 11 +++++--- 3 files changed, 37 insertions(+), 21 deletions(-) diff --git a/drivers/event/octeontx/ssovf_worker.c b/drivers/event/octeontx/ssovf_worker.c index b5873c3fa..a276269d7 100644 --- a/drivers/event/octeontx/ssovf_worker.c +++ b/drivers/event/octeontx/ssovf_worker.c @@ -91,7 +91,7 @@ ssows_release_event(struct ssows *ws) ssows_swtag_untag(ws); } -#define R(name, f0, flags) \ +#define R(name, f1, f0, flags) \ static uint16_t __rte_noinline __rte_hot \ ssows_deq_ ##name(void *port, struct rte_event *ev, uint64_t timeout_ticks) \ { \ @@ -347,49 +347,53 @@ SSO_TX_ADPTR_ENQ_FASTPATH_FUNC dev->txa_enqueue_same_dest = dev->txa_enqueue; /* Assigning dequeue func pointers */ - const event_dequeue_t ssow_deq[2] = { -#define R(name, f0, flags) \ - [f0] = ssows_deq_ ##name, + const event_dequeue_t ssow_deq[2][2] = { +#define R(name, f1, f0, flags) \ + [f1][f0] = ssows_deq_ ##name, SSO_RX_ADPTR_ENQ_FASTPATH_FUNC #undef R }; dev->dequeue = ssow_deq + [!!(edev->rx_offload_flags & OCCTX_RX_VLAN_FLTR_F)] [!!(edev->rx_offload_flags & OCCTX_RX_MULTI_SEG_F)]; - const event_dequeue_burst_t ssow_deq_burst[2] = { -#define R(name, f0, flags) \ - [f0] = ssows_deq_burst_ ##name, + const event_dequeue_burst_t ssow_deq_burst[2][2] = { +#define R(name, f1, f0, flags) \ + [f1][f0] = ssows_deq_burst_ ##name, SSO_RX_ADPTR_ENQ_FASTPATH_FUNC #undef R }; dev->dequeue_burst = ssow_deq_burst + [!!(edev->rx_offload_flags & OCCTX_RX_VLAN_FLTR_F)] [!!(edev->rx_offload_flags & OCCTX_RX_MULTI_SEG_F)]; if (edev->is_timeout_deq) { - const event_dequeue_t ssow_deq_timeout[2] = { -#define R(name, f0, flags) \ - [f0] = ssows_deq_timeout_ ##name, + const event_dequeue_t ssow_deq_timeout[2][2] = { +#define R(name, f1, f0, flags) \ + [f1][f0] = ssows_deq_timeout_ ##name, SSO_RX_ADPTR_ENQ_FASTPATH_FUNC #undef R }; - dev->dequeue = ssow_deq_timeout - [!!(edev->rx_offload_flags & OCCTX_RX_MULTI_SEG_F)]; + dev->dequeue = ssow_deq_timeout + [!!(edev->rx_offload_flags & OCCTX_RX_VLAN_FLTR_F)] + [!!(edev->rx_offload_flags & OCCTX_RX_MULTI_SEG_F)]; - const event_dequeue_burst_t ssow_deq_timeout_burst[2] = { -#define R(name, f0, flags) \ - [f0] = ssows_deq_timeout_burst_ ##name, + const event_dequeue_burst_t ssow_deq_timeout_burst[2][2] = { +#define R(name, f1, f0, flags) \ + [f1][f0] = ssows_deq_timeout_burst_ ##name, SSO_RX_ADPTR_ENQ_FASTPATH_FUNC #undef R }; - dev->dequeue_burst = ssow_deq_timeout_burst - [!!(edev->rx_offload_flags & OCCTX_RX_MULTI_SEG_F)]; + dev->dequeue_burst = ssow_deq_timeout_burst + [!!(edev->rx_offload_flags & OCCTX_RX_VLAN_FLTR_F)] + [!!(edev->rx_offload_flags & OCCTX_RX_MULTI_SEG_F)]; } } diff --git a/drivers/event/octeontx/ssovf_worker.h b/drivers/event/octeontx/ssovf_worker.h index 0eacec69a..b2bcc27c3 100644 --- a/drivers/event/octeontx/ssovf_worker.h +++ b/drivers/event/octeontx/ssovf_worker.h @@ -80,6 +80,15 @@ ssovf_octeontx_wqe_to_pkt(uint64_t work, uint16_t port_info, mbuf->data_len = mbuf->pkt_len; } + if (!!(flag & OCCTX_RX_VLAN_FLTR_F)) { + if (likely(wqe->s.w2.vv)) { + mbuf->ol_flags |= PKT_RX_VLAN; + mbuf->vlan_tci = + ntohs(*((uint16_t *)((char *)mbuf->buf_addr + + mbuf->data_off + wqe->s.w4.vlptr + 2))); + } + } + mbuf->port = rte_octeontx_pchan_map[port_info >> 4][port_info & 0xF]; rte_mbuf_refcnt_set(mbuf, 1); diff --git a/drivers/net/octeontx/octeontx_rxtx.h b/drivers/net/octeontx/octeontx_rxtx.h index 144ae055b..3f2147a02 100644 --- a/drivers/net/octeontx/octeontx_rxtx.h +++ b/drivers/net/octeontx/octeontx_rxtx.h @@ -485,10 +485,13 @@ T(noff_ol3ol4csum_l3l4csum_mseg, 1, 1, 1, 1, 14, \ MULT_F) /* RX offload macros */ +#define VLAN_FLTR_F OCCTX_RX_VLAN_FLTR_F #define MULT_RX_F OCCTX_RX_MULTI_SEG_F -/* [MULTI_SEG] */ -#define OCCTX_RX_FASTPATH_MODES \ -R(no_offload, 0, OCCTX_RX_OFFLOAD_NONE) \ -R(mseg, 1, MULT_RX_F) \ +/* [VLAN_FLTR][MULTI_SEG] */ +#define OCCTX_RX_FASTPATH_MODES \ +R(no_offload, 0, 0, OCCTX_RX_OFFLOAD_NONE) \ +R(mseg, 0, 1, MULT_RX_F) \ +R(vlan, 1, 0, VLAN_FLTR_F) \ +R(vlan_mseg, 1, 1, VLAN_FLTR_F | MULT_RX_F) #endif /* __OCTEONTX_RXTX_H__ */ -- 2.18.0