From patchwork Mon Jan 23 12:00:00 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 19901 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 [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id B377DFA77; Mon, 23 Jan 2017 13:02:39 +0100 (CET) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0075.outbound.protection.outlook.com [104.47.33.75]) by dpdk.org (Postfix) with ESMTP id 955F2F97B for ; Mon, 23 Jan 2017 13:01:52 +0100 (CET) Received: from CY1PR03CA0024.namprd03.prod.outlook.com (10.174.128.34) by BN1PR0301MB0737.namprd03.prod.outlook.com (10.160.78.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.13; Mon, 23 Jan 2017 12:01:51 +0000 Received: from BN1BFFO11FD016.protection.gbl (2a01:111:f400:7c10::1:134) by CY1PR03CA0024.outlook.office365.com (2603:10b6:600::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.13 via Frontend Transport; Mon, 23 Jan 2017 12:01:50 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; nxp.com; dmarc=fail action=none header.from=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1BFFO11FD016.mail.protection.outlook.com (10.58.144.79) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.803.8 via Frontend Transport; Mon, 23 Jan 2017 12:01:49 +0000 Received: from bf-netperf1.idc ([10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v0NC07es019311; Mon, 23 Jan 2017 05:01:46 -0700 From: Hemant Agrawal To: CC: , , , , , , Hemant Agrawal Date: Mon, 23 Jan 2017 17:30:00 +0530 Message-ID: <1485172803-17288-31-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1485172803-17288-1-git-send-email-hemant.agrawal@nxp.com> References: <1484832240-2048-1-git-send-email-hemant.agrawal@nxp.com> <1485172803-17288-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131296465095090699; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(336005)(39410400002)(39400400002)(39850400002)(39840400002)(39860400002)(39380400002)(39450400003)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(5003940100001)(8656002)(189998001)(356003)(305945005)(50226002)(54906002)(104016004)(2906002)(4326007)(68736007)(8936002)(77096006)(81156014)(85426001)(86362001)(38730400001)(81166006)(8676002)(47776003)(106466001)(92566002)(2351001)(105606002)(48376002)(50466002)(33646002)(2950100002)(6916009)(97736004)(5660300001)(50986999)(110136003)(76176999)(5890100001)(53936002)(626004)(36756003)(6666003); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1PR0301MB0737; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD016; 1:j7nc6BXcdJU7vb0MBbBayLq4uKbHoQhcgBXFNRTczZ9s4IaiJ0u7WMDfgKkmOvygH7bMZPnmCEkDGvM/QczRf8K7TZ9oVywGcTDvi5INUlkGJDu8Hf+Ps+3gAOhhCorlt5m63kxfEXTejvQww2CjqIagc9PCPCfcUYlg88qEshCHQqVNFN7WncJuXPNiva71p7+hwAOXkIT3H1H34CQtkQXdmJb4Avw77qWCYATJfMAI/Nql3Tl3XExZUuAflNjFDgwo5US5FlwVbHnotCTGaJprMwQWtXb7Ni9U/7oaHpUVR6WXXg3D+b+BbhAwkdfbpYICykaMS0WE8YufV/KWnj2eHZif4rt6LyCqPVynqSstXZWYeA6391+veciZe9OsjahH9B8Yp7gjdxcx7HlQL6rVTbomHruZMDya1odbR2TWkYgIkBUlO4bAN1Efz/+u9lz4ykbvcyTlR4Uq1YCeqqxhJsSEct6KEBLniWHdWJO2Adb3D9eJjoDhkjVsEK/TQcCVEogg/RKDz5VLQEI4pYu6sr7ouTmO28RC54YIbgtV+++tFhS035pVOhhqLJ0/3gHIKYGOnumisqzWM4I53FOUXXVc4Nr7CcmRfNq1EzTl2FQKkLIw4G2KKtSBoyhQbxdHa7cl58dmqrQ/EUOs6WAhk3slf9EM+gMVnPsdHGmxxOd7wAHI4SN4vzYPkA7aUUWvetiB/7RxDfgKmnRTy2qcAhO8BCbGDGnaT+FOVprTUWUr5gYsalILQtWOEEj+ MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 83cfb4df-9de2-4f3f-80ae-08d443879cb6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BN1PR0301MB0737; X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0737; 3:1iS4WNXO2N3XeGPhmrpIpkl0XgN9AXs2R4zEcmoMAGTvdpK1qGnmPlETH//U2krrrQAjeJflpHJIw+dCNGgAu+wwsycBfTQ0GKg6JQO9odnzhplBQUxB8fcqJ4I1cvs0eswR6LWh5RDDYfcyGEeEllT0AV5e5tFH5QiGXKLs8yaHu4zGPt8J8ksTtCKN82H52Mt/Fm+UouVINlt5O7JOYZdqNUJI6Y/NglFv/jWNE8176T2+UdcEyg2UXCEe+iPt0kJepuRPwJ6p/r2lafs8CPR0n53Q8uswR8jdec9sTDhsuZjBxA2g5zternTrkmFo6ikdwDQNnFchHHQ3fVAQXI1M83Rb5i9zUPT3esCwJDQCU1cKwvoQZgUY2VrmJYrH X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0737; 25:ohRLaJG/5rQ8qOWUoju/AIdpO88fD3xHDobAHAVxVa5AmVXynf7TWVWalanjUnFOFDmKpgPVpoW0ETawlm0DYoQ/ebt0/cVoVYdgIvd26bnazA8ealwYoWyhu73sj6tFepzUvir8zO0fQdFRe1ssgV//eyzoe9N6k6kz44gYgkVlSJODSXSZOr8nJUXyJhfm10ZTHhkauRrbJXe2ENaSPwdvfmLe3rG06TVW9H/09F+UA8m/yiU1lX6DJvtMWCEy/XIF3UmHNsOY4NF0l8avsPoVXVUUUG++IgWu9OdW9+4C93AT7QhQvZOXK5DlVq3TYgKl+zN1zswiiJ00I9Sdsr071P65S3pBn1Yn/uNRA1KA7Rz+BeaycoHEitzcRjkh5cB9DgiN+SL4KvCe0ITEUYVP6Ml5tSuHkrCKFcppYjKLkbfLq4PdSjhRnSzkifVrsrKJNPQh7lmP7z5ekOiiLfPqND/0hfFgqNrWr0W2r114LgPsayFp/dMc06xAQb1cFVMllDFXc58dky8HwoCtoqaC2YDUxfGcDI8Mf9urvZxySH9L4c1qi1Lrvqwf4AV6Y0KNkxv/y7OsQ+BLCsG4Y5CyvJQCdoBK/3wEDwPbDWLNDJcTkTCYhUb8VmuFtIjOw2fIK5o1+sQOacNI899SWvn3i2TDsGZeRWdkrnj5PI8SR4INHghaZXiWlO8v03dgwk69CvALsWmNeUmZQw0lj6hluwv6uS4F9oqSewnwNP050uKmDjEa2dzuDMAt5Zmuqldbil+jE9BuACcisAmzqhaWodt64JttYjOC746VV+GjUaTlzpz+2w9K5dEymE34 X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0737; 31:Nsyvt0ZCRRCK7MLfZWEPWSWw2SeJKyK3KJu86yqfRK0xqRn9wB3bRYemUEJ5BP0yd9gWWCNN5XOy5ELyMdJcNL3d3DVPcU6bsetkLpcuiWDZecgz2mel8vBh6uxrjCtOMHw7FMm/QEkBlVp5IYh4GflZgmzTj2mASr9vnXflXCvnsr2mC7etjQjFWdhOgJ/cP1ECU5BdUDiPW8tMpH4uatJpN+br76+RRZjwk37xaKcZI0XFhhxrPyg91d0ws160zrl2gXIn2pyBkjMoXWCRsQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(13023025)(13017025)(13015025)(13024025)(13018025)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6096035)(20161123561025)(20161123559025)(20161123556025)(20161123563025)(20161123565025); SRVR:BN1PR0301MB0737; BCL:0; PCL:0; RULEID:(400006); SRVR:BN1PR0301MB0737; X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0737; 4:PDg1R1DwJ1H4qGPgUjo4mLD6HkNDe6HSv3qFldz0fXw985DzryPIkBiVDkjj0iHb9H0LCJb1MeciZO33meWPG5XlTwS2VplZoJeac07I47863rJALUaxFGn/7Md/dv6r4EDQicQ0Ha2WViEoG6XDHT+APeV+Owp+KcAkDvhgkpNM6+FVVTZ4Yf/U2bc/4D41XqmOuJArJgz9hVrKKQofNpqCmeis56PVrBuXrWieVuEdsgV7E5qA5e8dWBng9slqVwi70G+H5NlK40b62P9WcNjrs9lLZ2FHfV4eIfYhIHqrDGWp+mckOxP0z0g995pYyIvyb/B8kj4rYI6zDzIC3BssvG2DnX8YFTOhSlK6QjOnwNBSPOjMuoz94rwEZ9ILYkmJ4UrzQ2DTUHJiQA0eGCScX50u736ApeUFiuz9Qnu3fnoQraJDcjAdqbgA/Qpq47axNk4UmVzG2X2EScuRJ2Hv9hWBDgXmkSvZmhVv0cPHxj9gjQ7QXl7vD5MzewPzh8au3e3dOzCoXWyuJwZRyNJhpZfiIg0BofJacev85mYw3lc2IogfS7KT8hCiC3ewvnSis/PFRMA36GPTPonbsE3ICVN1gl4xylx6QwG6uwbnJnxIz8D1fF3sE5qeWCIBRh7vS2TKChbxINy+bAsYkvApgFRdxmRJLW5bUNztVwsoNc2NhDzDIOZlaOMmdbZly7BdFPKktR03G6gDi1d3w6gW1BmM8JATgZ/amtc8PragTFZ+gICqfRiA5bsJGwnm X-Forefront-PRVS: 0196A226D1 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR0301MB0737; 23:wm+grqshiHcyGcaeL3thr5T3ibEGRrVM5sJucI5?= tIPD3cRuT/Ssn5OwRUsKtAKPasvxmVGYWuFeHcGc8TYDMDDnBw28QA+8udtIcYn/J/KS5wrqcZDyBTwsLqM7kOcLM92d9i9PrbmlL0KVqhoJRZxzWFtjE1NF6d/YqH7uPyq/wJ9Zaucr1yCId5fFVQHZxT8oNOp2SRv/3+V5RLTvglptccc2Squpregm5nh6zWW6++mf2trhJWPF48kppMrfuPPm+U910h3krqT1IzOB0nhNy+b/k+jEtt0Om1WaxLZv0/XyjFOHeLTw9EtYjrcJoms986KvdmjhbqSNSpDaOavYs4kiMJ7YCETLxJpo0jvfFxaysoAkiMGvswDUsupmiO8MHBNHyb6tO6v9JTXjtzQyVdgb73pzO3z8LEJM1lcWT+Z28t/3HD0bHi4hhuNHp5/HvHkIL0lg+Gjh9Nku4bcxtjOdqs1/qxFIcmkTBNVjdAeazOt60uYAa0JEDwb+13EDTBTjrKFTyTlK05Wdq2LSHZ9gw3D1tP6u6nP38jABat1Ga14GB/E+o9WrMLp90Ljo2eCGiYrWJFdyfoQva2RUJHoAiCobWH/eipvKKw/fvXM1SS4LXuGWaUHddPayjNJR31pfh/g8gOUy747R9VcK6LspxDPDvf5Xt1CKO1QTvmONYJuKv1hT0f3PjVqWU+DySsAqc4ON/Tv8sDj+vbn2f7KZMGeUE5WJTKlXlEpzLXpKRbF1lTrbDqF4XNJLw5RKrMQPrtskR77pA2muW+DvN1qCKDu9FTtj3FDUK7PWp5TwJqvLVvOJ7vE+HiCQgcsOTJBlxaqmEOnthQjKvc+GAe/7HExx7iHMCI6cflRaAenhmi8qY9TgnMMcK8Y+Ce1iWyvdVxzanDb2en+Je8DerKJL2AeJAPsMqy38vFagJ9yLjqc+tQzQyCevw44NpDqkpybOF5HBXRB6yCfIfgh//LRRjW9DNDBNJqiPuUSVKNj99EyYx6GhZ+7bjG40FsQl9KCR9OWLF9UBJnhyJlf3CgtDpF/9MgpdmltqPI0OfyFytXq7dL7VwKbvaKAPAmY00KvVasbVvEIRb45TyqBxq1RUhTWQP4fRWoiaES0yVXpc4uUR3eUP5LbBFDLsC72cjsYKfCQya6cs6odANUtw84N7vgBMKUFqvACn9ucXiS/TYLLLXIlQyQDEL9eqYXljaA4mxxVGGX1S85ItULTqPbFGnbIoYRKX4uqbmzjIAyamfJ83BFtUCZj0sJdMuU8cRRiNl1vNUVle0TEvMoDQykuWe7mCjjn0KOLDW/ryN8EiMCJP/WBKUOs6rm3H+ X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0737; 6:pU6qNUzwQHdgfGQaml0M5FpfuFeRBpKE/CiYzDhS7RackRcb9/573dBSowIpYNo3dyi3lGEwjhTfho+0MqhKSS5cppNaGBUKkFFPT1uMDuR1lG8a6i2PkgHxb/47C7rrtO9C6d4CjkDnhhRcjCuV8doYk+gTOiphKaNH2zSwVHL5EkZTLLMrnKwyUYgK5UORlXb6QGFzWTyeUeuIXeJNCtjEvpODM1DVDfg+gbNQgY+0xwHxTNusbSs9zNeyvwrR7Br/tdg1FLwzywQmaP+qoEYUQNnDf57RiDCGXueYxvBk1FSj20+W4k4FsMjEhnIZybeTIl4JjI+jTV2FMrbcPr02NRRxkz2e0yxlqdKatTgmhDius0goZGE2DdOHudSX3ZCjNP5Mqzfo66bqvDHSQm4U7L9KYC3OiIq7rUJRPUKMu1PmlBPu3V21Pson7Y94; 5:gL/MH8FsEjpdpIESiu7+NJAZQz1zeRCLdYM3M2vGjBKFcRcdAEmXOlCMGHJuAvQpgJG695sSM3bjRczD2hxE5vMuRU5W45d1cJMwdDSETr5uj86A96doyGHwqfiq+uPBaSenf4mJYV0zlkbt6xTXEQRmhLsbVFJQ0ZYtKXiU/IhYNreBA6pLzkdcqtfHUwuw; 24:nzibyIpJ/OMSwC3MS/a0c/X3uJS9yFKgA/7HDq9SRGUw2Pt2Ehh2Rkoybrl+aas+47II//iSONN7zEO+v+YyzdwH3EJw2PJGYe3s/oj54L0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0737; 7:5Xa6lim4SCR7NOvymUmRIfYw2yycsYd6G20Cdt4sxXhg6LX+1GN5rLyJxOWpRbvFBYa2dktOTs/PgrrQQc9alSwjK2kC/mfS4RZ268q0C9X9AdCCEm4HvsTyB3qNvU9jkyJNunthQOmYcCfn7XybNl0mHNcNCJoD5H7Vph+/P5gczpVQ9bSdZkvPruQ1hX2yeO/LaOXIDNm5r/LrTJgJTkNWPRxNLDVWS6Vhm8WEzFcQuZ2vX3PcpVwugI7iDRYQVMMq17tM9M2guK1643coIjr5qEt7MesZ7di8DsdbpePNjMo2AZIvWU8oU5+wgmroC6hpNajupcqh8/L+/0c3FXCFDhoFxhg9h9l9OMG8+wj7VGi7AwN9HqDXohxLe7rdk61OIE9Jeldq9m7+/UQslyZAGY60NySZFqEe7ZigWF5VZ5vyLw3KQDEtUSvGi+lDI8yMUig4soVJlxjVdjH/GA== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jan 2017 12:01:49.2750 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR0301MB0737 Subject: [dpdk-dev] [PATCHv6 30/33] net/dpaa2: add support for non hw buffer pool packet transmit 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" Signed-off-by: Hemant Agrawal --- drivers/net/dpaa2/dpaa2_rxtx.c | 75 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 2 deletions(-) diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c index c1ea33a..a94761c 100644 --- a/drivers/net/dpaa2/dpaa2_rxtx.c +++ b/drivers/net/dpaa2/dpaa2_rxtx.c @@ -191,6 +191,55 @@ static void __attribute__ ((noinline)) __attribute__((hot)) DPAA2_GET_FD_BPID(fd), DPAA2_GET_FD_LEN(fd)); } + +static inline int __attribute__((hot)) +eth_copy_mbuf_to_fd(struct rte_mbuf *mbuf, + struct qbman_fd *fd, uint16_t bpid) +{ + struct rte_mbuf *m; + void *mb = NULL; + + if (rte_dpaa2_mbuf_alloc_bulk( + rte_dpaa2_bpid_info[bpid].bp_list->buf_pool.mp, &mb, 1)) { + PMD_TX_LOG(WARNING, "Unable to allocated DPAA2 buffer"); + rte_pktmbuf_free(mbuf); + return -1; + } + m = (struct rte_mbuf *)mb; + memcpy((char *)m->buf_addr + mbuf->data_off, + (void *)((char *)mbuf->buf_addr + mbuf->data_off), + mbuf->pkt_len); + + /* Copy required fields */ + m->data_off = mbuf->data_off; + m->ol_flags = mbuf->ol_flags; + m->packet_type = mbuf->packet_type; + m->tx_offload = mbuf->tx_offload; + + /*Resetting the buffer pool id and offset field*/ + fd->simple.bpid_offset = 0; + + DPAA2_SET_FD_ADDR(fd, (m->buf_addr)); + DPAA2_SET_FD_LEN(fd, mbuf->data_len); + DPAA2_SET_FD_BPID(fd, bpid); + DPAA2_SET_FD_OFFSET(fd, mbuf->data_off); + DPAA2_SET_FD_ASAL(fd, DPAA2_ASAL_VAL); + + PMD_TX_LOG(DEBUG, " mbuf %p BMAN buf addr %p", + (void *)mbuf, mbuf->buf_addr); + + PMD_TX_LOG(DEBUG, " fdaddr =%lx bpid =%d meta =%d off =%d, len =%d", + DPAA2_GET_FD_ADDR(fd), + DPAA2_GET_FD_BPID(fd), + rte_dpaa2_bpid_info[DPAA2_GET_FD_BPID(fd)].meta_data_size, + DPAA2_GET_FD_OFFSET(fd), + DPAA2_GET_FD_LEN(fd)); + /*free the original packet */ + rte_pktmbuf_free(mbuf); + + return 0; +} + uint16_t dpaa2_dev_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) { @@ -331,8 +380,29 @@ static void __attribute__ ((noinline)) __attribute__((hot)) DPAA2_RESET_FD_CTRL((&fd_arr[loop])); DPAA2_SET_FD_FLC((&fd_arr[loop]), NULL); mp = (*bufs)->pool; - bpid = mempool_to_bpid(mp); - eth_mbuf_to_fd(*bufs, &fd_arr[loop], bpid); + /* Not a hw_pkt pool allocated frame */ + if (mp && !(mp->flags & MEMPOOL_F_HW_PKT_POOL)) { + PMD_TX_LOG(ERR, "non hw offload bufffer "); + /* alloc should be from the default buffer pool + * attached to this interface + */ + if (priv->bp_list) { + bpid = priv->bp_list->buf_pool.bpid; + } else { + PMD_TX_LOG(ERR, "errr: why no bpool" + " attached"); + num_tx = 0; + goto skip_tx; + } + if (eth_copy_mbuf_to_fd(*bufs, + &fd_arr[loop], bpid)) { + bufs++; + continue; + } + } else { + bpid = mempool_to_bpid(mp); + eth_mbuf_to_fd(*bufs, &fd_arr[loop], bpid); + } bufs++; } loop = 0; @@ -345,5 +415,6 @@ static void __attribute__ ((noinline)) __attribute__((hot)) dpaa2_q->tx_pkts += frames_to_send; nb_pkts -= frames_to_send; } +skip_tx: return num_tx; }