get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/43955/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 43955,
    "url": "http://patches.dpdk.org/api/patches/43955/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1535539660-20228-4-git-send-email-hemant.agrawal@nxp.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1535539660-20228-4-git-send-email-hemant.agrawal@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1535539660-20228-4-git-send-email-hemant.agrawal@nxp.com",
    "date": "2018-08-29T10:47:30",
    "name": "[03/13] net/dpaa: implement scatter offload support",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "e5f24a7600001c935665b0eca515d36ab44b7301",
    "submitter": {
        "id": 477,
        "url": "http://patches.dpdk.org/api/people/477/?format=api",
        "name": "Hemant Agrawal",
        "email": "hemant.agrawal@nxp.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1535539660-20228-4-git-send-email-hemant.agrawal@nxp.com/mbox/",
    "series": [
        {
            "id": 1090,
            "url": "http://patches.dpdk.org/api/series/1090/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1090",
            "date": "2018-08-29T10:47:27",
            "name": "driver/net: NXP DPAA driver enhancements",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/1090/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/43955/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/43955/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id BBB8F4CB5;\n\tWed, 29 Aug 2018 12:49:50 +0200 (CEST)",
            "from EUR02-AM5-obe.outbound.protection.outlook.com\n\t(mail-eopbgr00056.outbound.protection.outlook.com [40.107.0.56])\n\tby dpdk.org (Postfix) with ESMTP id 548C34CA1\n\tfor <dev@dpdk.org>; Wed, 29 Aug 2018 12:49:47 +0200 (CEST)",
            "from bf-netperf1.ap.freescale.net (14.143.30.134) by\n\tVI1PR0401MB2543.eurprd04.prod.outlook.com (2603:10a6:800:56::21) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1080.17;\n\tWed, 29 Aug 2018 10:49:45 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=gm4EbmdbXH1JrVadBEs1oO+ysJ6YVqErGGe3XA1Dkgw=;\n\tb=UPMqCJ5Wyep8SXrOP6Kj/AEdhNsg2folhPEhVnFT6VjwzdSe6PnjMqauHZ9DmSc1PQbpPicom6EUvdrOPYq1iotqA5QRVqAaWy4qWn4F55Gu1SuMjHg5X0LiC0zwuKIpj65+7IRsprcyM1FV6AHpz0Fxxldn3hTkcz0JE7B8XNw=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=hemant.agrawal@nxp.com; ",
        "From": "Hemant Agrawal <hemant.agrawal@nxp.com>",
        "To": "dev@dpdk.org,\n\tferruh.yigit@intel.com",
        "Cc": "dpdk-up@NXP1.onmicrosoft.com",
        "Date": "Wed, 29 Aug 2018 16:17:30 +0530",
        "Message-Id": "<1535539660-20228-4-git-send-email-hemant.agrawal@nxp.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1535539660-20228-1-git-send-email-hemant.agrawal@nxp.com>",
        "References": "<1535539660-20228-1-git-send-email-hemant.agrawal@nxp.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[14.143.30.134]",
        "X-ClientProxiedBy": "BM1PR0101CA0071.INDPRD01.PROD.OUTLOOK.COM\n\t(2603:1096:b00:19::33) To VI1PR0401MB2543.eurprd04.prod.outlook.com\n\t(2603:10a6:800:56::21)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "9efd239d-110e-45b8-78aa-08d60d9d229d",
        "X-MS-Office365-Filtering-HT": "Tenant",
        "X-Microsoft-Antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989137)(5600074)(711020)(4618075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020);\n\tSRVR:VI1PR0401MB2543; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; VI1PR0401MB2543;\n\t3:n5iPxS6Dlg2Qm7CJRxiVBrnz9BJ93aLUVJ5CGOzCCcXbnl7UagDZ4MLqwUFJ1Ih0G8aFPZeqQwokGT9LuEj5VQSN+3vJQBnNsUcUOE0J6GdrAuAZ1Jq2HmkdcLfGSpgQ04dQ1cBxC68t89AaiHcFPK1bVcFanIDFIP/XSGZ+laxXmFf2Sr3ngyupARoMpdxdT9bgGTIyi0TQiehOKJ7M/Cril113kksk4cyjW6naxbYcDGRok+1wP/8OGbTVFdAy;\n\t25:tZeBvri4e0ph6dmY8CLQdm9bTMzSB4KcvqPM02fEAPreWJwILD3gXYol3o8HsCw2fzeJL6htp12nnodSHePUZE4JyWHbo9bgvIZJI6v2hzgI7VXcFxyv2Rtkx/5YmkvSh+9xWMxXzq5e03SHOtQK+O4mTfQ3E3utZnwTwmDtujvARx16MejYeejBFbqrqu5Rlfl+FLBIFwDALxcgVzs9p36HVUcxuYS5gmngHTqonp0Je/+BNmWt4CnGT5eT3NNaPHn8vLLzDNnG2iBzV5OyKIfJpgV0wQyfmOxAAdQ4odhGiRvmM3hfyoulfeQasutrv86Jswertu3NQkQwLzknwg==;\n\t31:N+j7x+nuMoHzqWn4cg2I8kxaretxjOyBXWEveNQgsfPGlq5HAjsaHIgJA121ijdrp1qMte+k2rIF7rOvy/DFFqyre2W6CFCsw7D+OWdoVcRWBxTeSPFW0zSK3+QoRciWfynenXhJn3/CqgVDMJgjVgobuGKgUd5SCZ5pcPHnpLA/L+OwLK5nOJ4ut/BeaCRCyP/f1sWH/JPWsMt1Z3MaVX38ZwZbb3dPk22sN1aE71M=",
            "1; VI1PR0401MB2543;\n\t20:1PfVG9yN8qPQXAOkUyPd7mu9PORLTo5nuRuivPujrEPEtQTO3j/ui2LkgGRs5id7VVS5ric7P/COGALd2YJS/r+xgsDPW0yFLoRvJw7ehqUsGlxiJ+82mGPPyDnFzUO6hxXkRUA8+pIm/6Hjncp4Me7Dmwe9wMZa35a8GYw3XQVZo7D25fRiSShq6kMFbA0k/aroGZbl4g4ln9Kb5yGOwJPFNuYyp26tqdA8U5m3mavu5ghI6JGjzKS9BXTRTT6xhM/SvTBagC1z6yA7c0wuA4bGQsrvzGSx6ZUc/b4lu09Bon35B6Ig0jLqAPZiItAc/mWC0zuQM3Fusphj1mGVyOaW4vgY5bNf55gUijCLNLMPIa/CT8gftUPvKtJDEgxGK1ILobGak5lqtak6XpqvXR5XkAtJKxzHOVXNyBt6vB+uAteNaetu1F4pzo64nsxDMQx94MQhnwWxKL8YazxPM9MlaXZCsANbPHLRwK6weiehyjGj6NbvZpp7qCTUgN2o;\n\t4:HgBzRa5hMN4EklPtAnKQh9fA73cMz5xu/bS3SXGwt25hlO2a8LqkCzx/+TdsfB+d2ooD/6xcQrEDi3Shy84vnvU59A3bWFP9WRM4bf7F9bXoTeibj2lw7tVBK6cRm0/JvBEjdHk/dkhu0OODuRUwHgDYOKVe73Mu0WI5y9HZ2+4oD6Vlu7dYJUkw/DN2k5MhrS5PmtihMJd4wnpmnPRfMOVQIiu5KApiIJj2dk0MkE1Y0r/PV9Ly9NDk4OfMY+nmLJRgSYEPUvqKno+3UhdukSWRNX6Y6sSUi2z21o01RFJuf1equu12K1zc7XbMleSD",
            "=?us-ascii?Q?1; VI1PR0401MB2543;\n\t23:QIVUPsKxJtBIrFJc1+9MapNYoFgNsZp8ug22DAO?=\n\tj8YVG6fZBnc+wV56utBRu7/HlzyXbciP1vEdxEtsy66xqOAMPw+DoRWylELuLMQyQtoP7xb8u8ldSDoMZOTi7yQCZA29blV9DAh7dZ5hmDWqy0wrjtawYmQL1+Cw7j+9M2tDag6rR6BoZLZHjCqc7FGtcUSxCmR7wn2a8dEG40B2gudzOxODoIpI71RiulV5TjK/pbTcrI62Q9IzvaN8naZIGpbi2mnphdF/oGKleMoftbOoYNwG8qef9DhIIhdIeonRaX4EAyjpf7tfU/lc6zVGV7F1c/h1AWAgWlodxV5fXrA11m3kashZcWOmhsj3pp4UN1HI0c44mT/2pbwpCHCEYEFy6TgltYveRvu+EyA/9hPi+IgnZ3iUQQPugc8gEoziVM9Xjv5uvnuNCvsLzIWqz97UiWQM+Y2GEzm89cbELaHCRKNQ9DKZ7frXy+uNLwd4292/9yayFRdjnW5Lld8+um46N7AKaEps3A0yDWrZo22h/uKINoj4R27FKw7BVg2f9RByfjlEfs7Bt0P7ovw9mTlOV2pG6wdgQMlXYb36iU92cySYndZVjT3ATvLcpmEqasINapj5XVKPeNKMqvgrJpgDp3WUYQaDTRG69dt81cHDvzlylZkP74PbHxrqX0X3oXTdU6VqKDX9tyJ/57VFfrDPLSXGv3JbXS7oUNPdlZQvq/o8/VsytqIATW4uMrNoposStp+fyhQw3h00ARrk1X9y4XbiWgs3afmf2TB9LbFQiK5mZMSSdLX1WuilkUkw0PtfTAJV4EwSGyO3qBm6oNq3hFHMLVu4kLUIPl/kiCYS3lxEUBG65ncxTDIVBSUZLZoFtXqhRIIvL45uOuFk56H1IIOCgpp0PDa3GQS4qAkEDoHvHYvWVbcM+/eN3bt/4oUmcZ4Xon6jGZnG1CxKv0fI/UuNH5+Qa3VIqmWqoFbxhx6eVty4yjlqzNACAxZH4nn4pgpxp2zbOsBcsIgHHVliB+zxTktULush8f9DoaCZK+XNwUDeh/noMqEQU/BoVOdSjSUJcb+P+8Lo5TfJUAgZJOKD5qtUAGyCLMiFstL04kqQuB1czdofgX2xC3Nne68Y/p8ZLkGKWMsUlGgOGZ67zTFQAWzodyoyq72Yb6Mi4Eck4ctKeRzRFhxceowGbyBRMli2xQMu2buQsls7qRHyJm/0LNqLYCwxW29SV9y5IdiFgoLBPQk8+aVUu6cZQ7952OgeTOIyCqgB04pRpLDL9ARUcMVZftlqLzvLJGD6KuJSQ7PCqLP8QVC4Llb1pT8mdrKo/YRZ8gR2N0G8T",
            "1; VI1PR0401MB2543;\n\t6:BexwxPTJfqYsSwsnzVQjZV2LoDBdSxSxrX0+H5xyEZruyle5RpEVeY6LBzJi9AT8oAiXb8QxUUC59uAJDG1cpbVr8HPycWg2C0B5F1hqIxKw/52DFvXv5GtB5V5kg9FoP+IuMl7zG3fVCkRODa8BEAKBAejDqKol8kNSGfhMyiuVK11IHHkysMqlOnyIBC1FUugLL7hFdOHD3R+/zTsHZd1CfWYkeuPFr92U6puvyrdLIhZrgGKAtY8Iyz0wEtIztwUEaIC0m9Xhmz6wPaH+V3gs0+yXIVi6/cH8eLdYa5Ee4kM1kdsqlYHjVRjveeVrs4wC1dWxuh5SmVDOxYvJns1gqi4OmyOHSUEVpbr7GUYTqT9Xx9WMCWC4i7lxbgcdktCOX5RoLAYYfn9f4Ue165iljd+CGjoJaCimcp97oPA6eoih01EniE4zfRI7TnaUEQoXM7N1hspnop588DVe5Q==;\n\t5:v1/AR1Ujdrpbd4K8oT0Ef2tKFmtGOUN7IIegNzcOGVdXaWGuWiuJVUZEMWpVOUrbt4xHFWM+GlNQDz1CG9aXglHvCdy3Rya4UnZ1e8tTQ/hjpuKq9vnARnBICUq9Tgqh1r0U9bDFbn8uLaNJUrKcp5/MIq9N4pPhZfXwEgBevoE=;\n\t7:cZAswjwtNDdpsXH6i0AY4/86svwtGkr4d/u4wyXusVfHIGPDjreLHjLDo/KYibLUguChVy2+YyIrNLhFn8Kh+rPxkLqZDOdxxVap0W5pIQs2ytGNV9KcIoeKiOzwTnDjj3YyAdBHWywWyU7/8yVdSNk5LXszYXMx42QUrvgBXLoPBl26w29QeHan0yKYk3v7ypYv661ToMBeOzjtcGUj/lYh7YIyZA+QT+xQ/bviJdTUJApOjhWseZPb9tieJ+/G"
        ],
        "X-MS-TrafficTypeDiagnostic": "VI1PR0401MB2543:",
        "X-Microsoft-Antispam-PRVS": "<VI1PR0401MB2543187D336444D47AFB0F5289090@VI1PR0401MB2543.eurprd04.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:(185117386973197);",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(823301075)(3002001)(10201501046)(3231311)(944501410)(52105095)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(201708071742011)(7699016);\n\tSRVR:VI1PR0401MB2543; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0401MB2543; ",
        "X-Forefront-PRVS": "077929D941",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(346002)(136003)(366004)(396003)(39860400002)(376002)(189003)(199004)(6512007)(6486002)(16526019)(53936002)(486006)(186003)(11346002)(105586002)(6116002)(106356001)(5660300001)(50466002)(68736007)(5009440100003)(2616005)(25786009)(48376002)(386003)(4326008)(55236004)(6666003)(73566003)(86362001)(956004)(107886003)(446003)(3846002)(26005)(575784001)(6506007)(476003)(316002)(52116002)(50226002)(478600001)(47776003)(66066001)(8936002)(16586007)(76176011)(51416003)(97736004)(44832011)(81166006)(8676002)(7736002)(305945005)(36756003)(81156014)(14444005)(2906002)(110426005);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0401MB2543;\n\tH:bf-netperf1.ap.freescale.net; \n\tFPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; ",
        "Received-SPF": "None (protection.outlook.com: nxp.com does not designate\n\tpermitted sender hosts)",
        "X-Microsoft-Antispam-Message-Info": "ZoLeAKhEGbaH7avq1yD9TUZd9TvhfNINEE/egXGIU62U0ytJdVHx6QH9T2A0bR+CsjgHYuDIuJu/R0AoBxMZF/O5W/7pS3bibD933BW1wwc2QbzQhYBV0if0G5pUDi0Jx+aDrxlY5gEHun1Z2WdgNYhEJQxsoKIXsOI5fuWRinXEUzfCcbmlNBWCiPB2BCXK1VBcg8HBLoWRWoxOhCsFHXS45HMGYe2IniwN6XRLmT3+ckh1PE9hWKxff9Y2WlK8iltK2/jVd+x+U9foGHyab99EzY8UwwmtTG/dQh8c8Wk7Er7vs1Bs9/CUVzvTDKylLgT5MG5/DzVAj5DDlNBQZg7pgNReuGLcSdzjsjmI1YU=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "nxp.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "29 Aug 2018 10:49:45.2798\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "9efd239d-110e-45b8-78aa-08d60d9d229d",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "686ea1d3-bc2b-4c6f-a92c-d99c5c301635",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "VI1PR0401MB2543",
        "Subject": "[dpdk-dev] [PATCH 03/13] net/dpaa: implement scatter offload support",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>\n---\n drivers/net/dpaa/dpaa_ethdev.c | 62 +++++++++++++++++++++++++++++++++++++++---\n drivers/net/dpaa/dpaa_ethdev.h |  3 +-\n drivers/net/dpaa/dpaa_rxtx.c   |  8 +++---\n drivers/net/dpaa/dpaa_rxtx.h   |  2 --\n 4 files changed, 64 insertions(+), 11 deletions(-)",
    "diff": "diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c\nindex dd1bc90..a0e3f24 100644\n--- a/drivers/net/dpaa/dpaa_ethdev.c\n+++ b/drivers/net/dpaa/dpaa_ethdev.c\n@@ -47,7 +47,8 @@\n \n /* Supported Rx offloads */\n static uint64_t dev_rx_offloads_sup =\n-\t\tDEV_RX_OFFLOAD_JUMBO_FRAME;\n+\t\tDEV_RX_OFFLOAD_JUMBO_FRAME |\n+\t\tDEV_RX_OFFLOAD_SCATTER;\n \n /* Rx offloads which cannot be disabled */\n static uint64_t dev_rx_offloads_nodis =\n@@ -55,8 +56,7 @@ static uint64_t dev_rx_offloads_nodis =\n \t\tDEV_RX_OFFLOAD_UDP_CKSUM |\n \t\tDEV_RX_OFFLOAD_TCP_CKSUM |\n \t\tDEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |\n-\t\tDEV_RX_OFFLOAD_CRC_STRIP |\n-\t\tDEV_RX_OFFLOAD_SCATTER;\n+\t\tDEV_RX_OFFLOAD_CRC_STRIP;\n \n /* Supported Tx offloads */\n static uint64_t dev_tx_offloads_sup;\n@@ -148,11 +148,30 @@ dpaa_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)\n \tstruct dpaa_if *dpaa_intf = dev->data->dev_private;\n \tuint32_t frame_size = mtu + ETHER_HDR_LEN + ETHER_CRC_LEN\n \t\t\t\t+ VLAN_TAG_SIZE;\n+\tuint32_t buffsz = dev->data->min_rx_buf_size - RTE_PKTMBUF_HEADROOM;\n \n \tPMD_INIT_FUNC_TRACE();\n \n \tif (mtu < ETHER_MIN_MTU || frame_size > DPAA_MAX_RX_PKT_LEN)\n \t\treturn -EINVAL;\n+\t/*\n+\t * Refuse mtu that requires the support of scattered packets\n+\t * when this feature has not been enabled before.\n+\t */\n+\tif (dev->data->min_rx_buf_size &&\n+\t\t!dev->data->scattered_rx && frame_size > buffsz) {\n+\t\tDPAA_PMD_ERR(\"SG not enabled, will not fit in one buffer\");\n+\t\treturn -EINVAL;\n+\t}\n+\n+\t/* check <seg size> * <max_seg>  >= max_frame */\n+\tif (dev->data->min_rx_buf_size && dev->data->scattered_rx &&\n+\t\t(frame_size > buffsz * DPAA_SGT_MAX_ENTRIES)) {\n+\t\tDPAA_PMD_ERR(\"Too big to fit for Max SG list %d\",\n+\t\t\t\tbuffsz * DPAA_SGT_MAX_ENTRIES);\n+\t\treturn -EINVAL;\n+\t}\n+\n \tif (frame_size > ETHER_MAX_LEN)\n \t\tdev->data->dev_conf.rxmode.offloads &=\n \t\t\t\t\t\tDEV_RX_OFFLOAD_JUMBO_FRAME;\n@@ -209,6 +228,13 @@ dpaa_eth_dev_configure(struct rte_eth_dev *dev)\n \t\t\t\tDPAA_MAX_RX_PKT_LEN);\n \t\t}\n \t}\n+\n+\tif (rx_offloads & DEV_RX_OFFLOAD_SCATTER) {\n+\t\tDPAA_PMD_DEBUG(\"enabling scatter mode\");\n+\t\tfman_if_set_sg(dpaa_intf->fif, 1);\n+\t\tdev->data->scattered_rx = 1;\n+\t}\n+\n \treturn 0;\n }\n \n@@ -306,7 +332,6 @@ static void dpaa_eth_dev_info(struct rte_eth_dev *dev,\n \n \tdev_info->max_rx_queues = dpaa_intf->nb_rx_queues;\n \tdev_info->max_tx_queues = dpaa_intf->nb_tx_queues;\n-\tdev_info->min_rx_bufsize = DPAA_MIN_RX_BUF_SIZE;\n \tdev_info->max_rx_pktlen = DPAA_MAX_RX_PKT_LEN;\n \tdev_info->max_mac_addrs = DPAA_MAX_MAC_FILTER;\n \tdev_info->max_hash_mac_addrs = 0;\n@@ -520,6 +545,7 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,\n \tstruct qm_mcc_initfq opts = {0};\n \tu32 flags = 0;\n \tint ret;\n+\tu32 buffsz = rte_pktmbuf_data_room_size(mp) - RTE_PKTMBUF_HEADROOM;\n \n \tPMD_INIT_FUNC_TRACE();\n \n@@ -533,6 +559,28 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,\n \tDPAA_PMD_INFO(\"Rx queue setup for queue index: %d fq_id (0x%x)\",\n \t\t\tqueue_idx, rxq->fqid);\n \n+\t/* Max packet can fit in single buffer */\n+\tif (dev->data->dev_conf.rxmode.max_rx_pkt_len <= buffsz) {\n+\t\t;\n+\t} else if (dev->data->dev_conf.rxmode.offloads &\n+\t\t\tDEV_RX_OFFLOAD_SCATTER) {\n+\t\tif (dev->data->dev_conf.rxmode.max_rx_pkt_len >\n+\t\t\tbuffsz * DPAA_SGT_MAX_ENTRIES) {\n+\t\t\tDPAA_PMD_ERR(\"max RxPkt size %d too big to fit \"\n+\t\t\t\t\"MaxSGlist %d\",\n+\t\t\t\tdev->data->dev_conf.rxmode.max_rx_pkt_len,\n+\t\t\t\tbuffsz * DPAA_SGT_MAX_ENTRIES);\n+\t\t\trte_errno = EOVERFLOW;\n+\t\t\treturn -rte_errno;\n+\t\t}\n+\t} else {\n+\t\tDPAA_PMD_WARN(\"The requested maximum Rx packet size (%u) is\"\n+\t\t     \" larger than a single mbuf (%u) and scattered\"\n+\t\t     \" mode has not been requested\",\n+\t\t     dev->data->dev_conf.rxmode.max_rx_pkt_len,\n+\t\t     buffsz - RTE_PKTMBUF_HEADROOM);\n+\t}\n+\n \tif (!dpaa_intf->bp_info || dpaa_intf->bp_info->mp != mp) {\n \t\tstruct fman_if_ic_params icp;\n \t\tuint32_t fd_offset;\n@@ -563,6 +611,9 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,\n \t\t\t    dpaa_intf->name, fd_offset,\n \t\t\tfman_if_get_fdoff(dpaa_intf->fif));\n \t}\n+\tDPAA_PMD_DEBUG(\"if:%s sg_on = %d, max_frm =%d\", dpaa_intf->name,\n+\t\tfman_if_get_sg_enable(dpaa_intf->fif),\n+\t\tdev->data->dev_conf.rxmode.max_rx_pkt_len);\n \t/* checking if push mode only, no error check for now */\n \tif (dpaa_push_mode_max_queue > dpaa_push_queue_idx) {\n \t\tdpaa_push_queue_idx++;\n@@ -1313,6 +1364,9 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)\n \tfman_if_reset_mcast_filter_table(fman_intf);\n \t/* Reset interface statistics */\n \tfman_if_stats_reset(fman_intf);\n+\t/* Disable SG by default */\n+\tfman_if_set_sg(fman_intf, 0);\n+\tfman_if_set_maxfrm(fman_intf, ETHER_MAX_LEN + VLAN_TAG_SIZE);\n \n \treturn 0;\n \ndiff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h\nindex 2c38c34..2fc7231 100644\n--- a/drivers/net/dpaa/dpaa_ethdev.h\n+++ b/drivers/net/dpaa/dpaa_ethdev.h\n@@ -39,9 +39,10 @@\n /* Alignment to use for cpu-local structs to avoid coherency problems. */\n #define MAX_CACHELINE\t\t\t64\n \n-#define DPAA_MIN_RX_BUF_SIZE 512\n #define DPAA_MAX_RX_PKT_LEN  10240\n \n+#define DPAA_SGT_MAX_ENTRIES 16 /* maximum number of entries in SG Table */\n+\n /* RX queue tail drop threshold (CGR Based) in frame count */\n #define CGR_RX_PERFQ_THRESH 256\n \ndiff --git a/drivers/net/dpaa/dpaa_rxtx.c b/drivers/net/dpaa/dpaa_rxtx.c\nindex 168b77e..3a3a048 100644\n--- a/drivers/net/dpaa/dpaa_rxtx.c\n+++ b/drivers/net/dpaa/dpaa_rxtx.c\n@@ -306,8 +306,6 @@ dpaa_eth_sg_to_mbuf(const struct qm_fd *fd, uint32_t ifid)\n \tint i = 0;\n \tuint8_t fd_offset = fd->offset;\n \n-\tDPAA_DP_LOG(DEBUG, \"Received an SG frame\");\n-\n \tvaddr = DPAA_MEMPOOL_PTOV(bp_info, qm_fd_addr(fd));\n \tif (!vaddr) {\n \t\tDPAA_PMD_ERR(\"unable to convert physical address\");\n@@ -349,6 +347,8 @@ dpaa_eth_sg_to_mbuf(const struct qm_fd *fd, uint32_t ifid)\n \t\t}\n \t\tprev_seg = cur_seg;\n \t}\n+\tDPAA_DP_LOG(DEBUG, \"Received an SG frame len =%d, num_sg =%d\",\n+\t\t\tfirst_seg->pkt_len, first_seg->nb_segs);\n \n \tdpaa_eth_packet_info(first_seg, vaddr);\n \trte_pktmbuf_free_seg(temp);\n@@ -367,8 +367,6 @@ dpaa_eth_fd_to_mbuf(const struct qm_fd *fd, uint32_t ifid)\n \tuint16_t offset;\n \tuint32_t length;\n \n-\tDPAA_DP_LOG(DEBUG, \" FD--->MBUF\");\n-\n \tif (unlikely(format == qm_fd_sg))\n \t\treturn dpaa_eth_sg_to_mbuf(fd, ifid);\n \n@@ -379,6 +377,8 @@ dpaa_eth_fd_to_mbuf(const struct qm_fd *fd, uint32_t ifid)\n \toffset = (fd->opaque & DPAA_FD_OFFSET_MASK) >> DPAA_FD_OFFSET_SHIFT;\n \tlength = fd->opaque & DPAA_FD_LENGTH_MASK;\n \n+\tDPAA_DP_LOG(DEBUG, \" FD--->MBUF off %d len = %d\", offset, length);\n+\n \t/* Ignoring case when format != qm_fd_contig */\n \tdpaa_display_frame(fd);\n \ndiff --git a/drivers/net/dpaa/dpaa_rxtx.h b/drivers/net/dpaa/dpaa_rxtx.h\nindex d3e6351..6de70a7 100644\n--- a/drivers/net/dpaa/dpaa_rxtx.h\n+++ b/drivers/net/dpaa/dpaa_rxtx.h\n@@ -32,8 +32,6 @@\n /* L4 Type field: TCP */\n #define DPAA_L4_PARSE_RESULT_TCP\t0x20\n \n-#define DPAA_SGT_MAX_ENTRIES 16 /* maximum number of entries in SG Table */\n-\n #define DPAA_MAX_DEQUEUE_NUM_FRAMES    63\n \t/** <Maximum number of frames to be dequeued in a single rx call*/\n \n",
    "prefixes": [
        "03/13"
    ]
}