get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 28561,
    "url": "http://patches.dpdk.org/api/patches/28561/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20170909112132.13936-35-shreyansh.jain@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": "<20170909112132.13936-35-shreyansh.jain@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20170909112132.13936-35-shreyansh.jain@nxp.com",
    "date": "2017-09-09T11:21:25",
    "name": "[dpdk-dev,v4,34/41] net/dpaa: add support for flow control",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "a6ec545daba78cc47e715137f91e332817e2524c",
    "submitter": {
        "id": 497,
        "url": "http://patches.dpdk.org/api/people/497/?format=api",
        "name": "Shreyansh Jain",
        "email": "shreyansh.jain@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/20170909112132.13936-35-shreyansh.jain@nxp.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/28561/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/28561/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 8CF5C1B2A9;\n\tSat,  9 Sep 2017 13:11:46 +0200 (CEST)",
            "from NAM02-SN1-obe.outbound.protection.outlook.com\n\t(mail-sn1nam02on0075.outbound.protection.outlook.com [104.47.36.75])\n\tby dpdk.org (Postfix) with ESMTP id 03EBC1B027\n\tfor <dev@dpdk.org>; Sat,  9 Sep 2017 13:11:37 +0200 (CEST)",
            "from BN6PR03CA0013.namprd03.prod.outlook.com (2603:10b6:404:23::23)\n\tby DM2PR03MB559.namprd03.prod.outlook.com (2a01:111:e400:241d::28)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10;\n\tSat, 9 Sep 2017 11:11:36 +0000",
            "from BN1AFFO11FD042.protection.gbl (2a01:111:f400:7c10::130) by\n\tBN6PR03CA0013.outlook.office365.com (2603:10b6:404:23::23) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.35.12 via\n\tFrontend Transport; Sat, 9 Sep 2017 11:11:36 +0000",
            "from tx30smr01.am.freescale.net (192.88.168.50) by\n\tBN1AFFO11FD042.mail.protection.outlook.com (10.58.52.253) with\n\tMicrosoft SMTP Server (version=TLS1_0,\n\tcipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1385.11\n\tvia Frontend Transport; Sat, 9 Sep 2017 11:11:35 +0000",
            "from Tophie.ap.freescale.net ([10.232.14.39])\n\tby tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id\n\tv89BAUhY026326; Sat, 9 Sep 2017 04:11:33 -0700"
        ],
        "Authentication-Results": "spf=fail (sender IP is 192.88.168.50)\n\tsmtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed)\n\theader.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;",
        "Received-SPF": "Fail (protection.outlook.com: domain of nxp.com does not\n\tdesignate 192.88.168.50 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=192.88.168.50; helo=tx30smr01.am.freescale.net;",
        "From": "Shreyansh Jain <shreyansh.jain@nxp.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<ferruh.yigit@intel.com>, <hemant.agrawal@nxp.com>",
        "Date": "Sat, 9 Sep 2017 16:51:25 +0530",
        "Message-ID": "<20170909112132.13936-35-shreyansh.jain@nxp.com>",
        "X-Mailer": "git-send-email 2.9.3",
        "In-Reply-To": "<20170909112132.13936-1-shreyansh.jain@nxp.com>",
        "References": "<20170823141213.25476-1-shreyansh.jain@nxp.com>\n\t<20170909112132.13936-1-shreyansh.jain@nxp.com>",
        "X-EOPAttributedMessage": "0",
        "X-Matching-Connectors": "131494290958486078;\n\t(91ab9b29-cfa4-454e-5278-08d120cd25b8); ()",
        "X-Forefront-Antispam-Report": "CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(336005)(39380400002)(39860400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(356003)(50226002)(8936002)(33646002)(86362001)(2351001)(8676002)(81156014)(81166006)(105606002)(106466001)(1076002)(36756003)(5003940100001)(47776003)(8656003)(54906002)(53936002)(104016004)(50466002)(305945005)(48376002)(4326008)(110136004)(2906002)(85426001)(50986999)(76176999)(5660300001)(189998001)(68736007)(77096006)(97736004)(6916009)(2950100002)(6666003)(498600001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR03MB559;\n\tH:tx30smr01.am.freescale.net; \n\tFPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BN1AFFO11FD042;\n\t1:eYMCu1giJKClr2WkoMOauvXTqLxLsSa4VOTuIu1Pbv3Qz8PQKd3XChVGhBOqWzMrddyguYlkRF0ICgjlQuHpb0pnzY98IybKK3a3Zy75eqNA6y2BD+DjEH5bNT1LBYzy",
            "1; DM2PR03MB559;\n\t3:bUNfKF1jfP5EUmjVchfr/9+zxM2LKMJKM9DvMsTHLqTvwzNZz6K5O8VkqkR6w5V8h/199DvlmoFnP3xaVRuHzM+KkkzVz6CFUlwBexg1qZeD64E+hMJqQjEntOcEZjjSOmN/FwNtN/47xcrEt5RvgZuVduRcrEsOfiTXEHYosFDk/cYKQ0v27rMDju2yJcJg1NiskNR9hSXSFTa/5xvdCLCN9CLS02HYzSNFz3fbLI7LX8eVn9p/+fjy3fl3/i8/cnvnxnAaTI2hyLLXsOEj7Fiugpx04ZgF5dk+ZTvY2a1dN3sOPrF73dSmnnIYVZepSaL4Sd8uov4JQVCaWVPHeixoDS4hjLdXULP2ic5qiFY=;\n\t25:X2EgcaB1+1788MLguNYZ8qSUjp3/0g9cgSrODzCxr+jM3Me+tojaIT2grSeIHiAGv6+NSEO+qsJEeVfu2LUdn/awFtLqcSu7TKV7cqdedNb4+EdbuRk9rh8c4rIJSt/MtZMNH7Tt3trFNi0XydsVoMNs7ZVLzYunNlf0Yt6bLHMRK72POEansrO6tMuPw2ejIxTdxNEVmteNARDLQK7EZRgql6kBm/TTeYV0iKZj/tfnnAoxfHRZs/9b+C3nZoXMOMh3vr2ucTAyXKsIKWvzWxu2Pnfuh4KFY27xr90a0nXqeKztmAef4fuZ0A5wVETdPHfVOvDs6mIhFPZCwtEIwg==",
            "1; DM2PR03MB559;\n\t31:HYq1eOqCK78+c61DsYbpEF0h3aA0Jpfy5dL0NynmVWuCVJvQ+DcRB/NZzll/PupjNVWV/ny2fB1rIPvyTlZngEP8mtE6OJNzg/vdZxU4VLV1c3rIqnIYV5pwdFPq/nsmdh1ksRZaUkHlDRjxDqAg8dONAcPKzxMbhrG2t0gkBMffjYRs7kdzeXK64eo5vFSIoJOy+8HEPCoU+nS71ooH667UHsuPokqY1+XC+GcIDtY=;\n\t4:7RtB2VNMqKUJh/Ps8nK/ASuZmSFQ4URUv6aiGHdqwSEOrb2vaOle20piu4JVI0ffiKe4eL+ZNrjDwx0jNnDJmqo8ZjC1gCqhUgAAHsyMJT8tIYz3zDMVpZeavF6Gbm/gyoZzAY8eDcvLrTwwElqxUqN+NfgxiQFfMR8me0u6YGW5G9R6IkVjX2Hgeqou+k4tQWoUNLnpX2Cv5Kb7+pFvspojeu2zquTpo51aRQqxLArjYJNAxq2IhhyosbAVYx4tk/fL0JCK47TuUaDn0HxSLrZpFIP/iqERGMq42QHuQkc=",
            "=?us-ascii?Q?1; DM2PR03MB559;\n\t23:3XqGLtC+fYjCBJud99li0TtOV4pAxbYsJ42xOr78rv?=\n\t7f/GieIKsaqc6pcNagLVI5/Jp0KpO68gMdCc2JdfNPSh5arfTdhtAJLpFIcvHTa5q/+VZL91inQdgR6pImHsWTL5alF/vD8ZlXhjBD4PECX+NDxSCZLGyp2eIgORpNjQlifIvLRpXUsBSVtx1Y5I/C5fcMfS4jjoYwiE6CMGXf6PvFq63wODl+ox0FtlUPJSXWW39UDTQf2Pmm0ZY9FVaQsiHK+DMgtbMl/VR8R8HWuAgkBTUgitBzEIjzxr2PGHbvbUIhESou67qPcJnM2AexqAWlQrWIzmaBvHpr5E2mpZJh53GlzXcYXegyXD1JqIdMJsbhI3Nm7jFhDuAGUM/mzhXbZ7492f4/sc2lmL1x4mmMCOIvYLM1zmAZf6Uqiuzfto3sBTe97Lwdf8tNqLpA7zgJK5sTNYEiemT9jH9dMS2/Q8xTBe84hXVSBCzorm8KF8pYB/oemfEsBxu8/Et+RSfLdL5/gyK4aRaM7DPc/YGbJHGVeUUw2/5qHe1NplHq5YLVPHMuGcmUA/i3YLEFWw5OPzFSbVNfGS+kjkir4dcKQleEEROO2fXFkl+xnz++siUY0Dsp5pU1ar2Ju8ieLmUtpiEr49gYT23zjz6lMefgRENe6wYqqRFqYQVoYxhbVOYEJTwpuW7qcqEUHWt4oj5hUS3fSJ63evg4KyHc+tWf3aL4B2nPLpO4xq0ygoHOIj5WNLHnOWX2FTmnCSuVuT+8HMjd7M4HPpKfVPacWxp9e+mGXJ0R+jNIzJ9BNMvgKpjv+GY7vBlRSFqFeXe1NqbHdMWDOnV46Yh6uaUASl8YLCZ8a6aYgJO2alYEBgJ2Mo5e/iWyLKf6uTP9oa+/6mBrOF5knPJ1bsaPEhPP8gAdIElqaaBXJOH6kgOEIVtIwXv+YsWyXAMCUndLjEDkTceq22JbJJzOfdUSZkrmfy8BJlj7f9M3rMo92orZ4d/1pcNos0Jtw78B9k69hzVV1yXneCVUaE/bK1dwOPzo+pDLdbFF85ZV6lS+urn6rDQZI29pa0imua/Ime6ivUYaaxuGDqNRE3ajYUAn2aa3gli9NyQi2+WHnqmgWuKevUR2+BM+NMd3ZT88CxBqFc5L",
            "1; DM2PR03MB559;\n\t6:v33YpDbW358wgQmRL700ES27bsd7vQOoccwdwQnBEVGis2clmbgK+VOcHmJrx/84/pQabe8i9BjDB8kY+arH35ABbCa22xjWrqd6EECdV/WLaQn9BTkUta6F69QppYRSVMpR9lWEfQkiSYnNm76Z+0QGalevuMwkMzLTSZATiEkjxXozRjP3qxOt3XHiBhfv6/qM6iwsciFJzwZDq/X1xyR46g1TaLhnrWxbXF90GMR1xo7jl6TuDsY+0Y950/wrKKoetohAKq+8CT49N72nZaY77uVyR0BkW5dV2UgQGOW8oZwmXKJ3L9M80e+JH8deDKPQ0ne5lUmBIGjOrv+BCA==;\n\t5:PyJQn3L4Na+NMcG3/EBvKF/6DwGv9UjuAmhui4TUAFHr8mlOTVXxPW5i/Ym9tm/JEJ7bOpFwamPrYUSWPNqf7G3qE9a+3OSGVu65JJECFsrOKEhz26ccT6t8epIMAxKcUwLHcvSPinkVVqt4C3O3sg==;\n\t24:MA0Z4DFOx9c4vjPVsoyGR7AAkRRl0h5kKPUoyDljiZoFrDR7MDk3SlB2+jxp/HserbZqxg13XzttrcaMw78HMEZJBkZ5hX3kSHATMq2/rEE=;\n\t7:NYolAAqMPWJdABWIIeewBx0BzylTJcp9dZd4eslPIgj7GeCaaQbvD8VtylUMMYULHG4ybyTV3sjoV7OR3mf02zFydnk7WWglxgGFIzZzbK4N3UkQu3a6lV0lqCqUbR47Q8FGaCMn5SWm3tEEiBX+F9xqVp4fKpz58JKKcDdRsKvlR+ilyRzyjL2Xe27c+dnlhifne8ACP1lKPopPkZOIK26/DROQzftaeG7jRUij/b8="
        ],
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "12ad81d5-12fd-4554-28dc-08d4f7738907",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:DM2PR03MB559; ",
        "X-MS-TrafficTypeDiagnostic": "DM2PR03MB559:",
        "X-Exchange-Antispam-Report-Test": "UriScan:(185117386973197);",
        "X-Microsoft-Antispam-PRVS": "<DM2PR03MB5590121CC0E193B796D4C40906A0@DM2PR03MB559.namprd03.prod.outlook.com>",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6096035)(201703131430075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(20161123559100)(20161123561025)(20161123563025)(20161123556025)(20161123565025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:DM2PR03MB559; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:DM2PR03MB559; ",
        "X-Forefront-PRVS": "0425A67DEF",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "09 Sep 2017 11:11:35.6614\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Id": "5afe0b00-7697-4969-b663-5eab37d5f47e",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;\n\tIp=[192.88.168.50]; \n\tHelo=[tx30smr01.am.freescale.net]",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM2PR03MB559",
        "Subject": "[dpdk-dev] [PATCH v4 34/41] net/dpaa: add support for flow control",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/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>\nSigned-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>\n---\n doc/guides/nics/features/dpaa.ini |   1 +\n drivers/net/dpaa/dpaa_ethdev.c    | 112 ++++++++++++++++++++++++++++++++++++++\n 2 files changed, 113 insertions(+)",
    "diff": "diff --git a/doc/guides/nics/features/dpaa.ini b/doc/guides/nics/features/dpaa.ini\nindex c09efd8..1ba6b11 100644\n--- a/doc/guides/nics/features/dpaa.ini\n+++ b/doc/guides/nics/features/dpaa.ini\n@@ -11,6 +11,7 @@ MTU update           = Y\n Promiscuous mode     = Y\n Allmulticast mode    = Y\n Unicast MAC filter   = Y\n+Flow control         = Y\n Basic stats          = Y\n ARMv8                = Y\n Usage doc            = Y\ndiff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c\nindex 178508e..f423e51 100644\n--- a/drivers/net/dpaa/dpaa_ethdev.c\n+++ b/drivers/net/dpaa/dpaa_ethdev.c\n@@ -329,6 +329,85 @@ static int dpaa_link_up(struct rte_eth_dev *dev)\n }\n \n static int\n+dpaa_flow_ctrl_set(struct rte_eth_dev *dev,\n+\t\t   struct rte_eth_fc_conf *fc_conf)\n+{\n+\tstruct dpaa_if *dpaa_intf = dev->data->dev_private;\n+\tstruct rte_eth_fc_conf *net_fc;\n+\n+\tPMD_INIT_FUNC_TRACE();\n+\n+\tif (!(dpaa_intf->fc_conf)) {\n+\t\tdpaa_intf->fc_conf = rte_zmalloc(NULL,\n+\t\t\tsizeof(struct rte_eth_fc_conf), MAX_CACHELINE);\n+\t\tif (!dpaa_intf->fc_conf) {\n+\t\t\tDPAA_PMD_ERR(\"unable to save flow control info\");\n+\t\t\treturn -ENOMEM;\n+\t\t}\n+\t}\n+\tnet_fc = dpaa_intf->fc_conf;\n+\n+\tif (fc_conf->high_water < fc_conf->low_water) {\n+\t\tDPAA_PMD_ERR(\"Incorrect Flow Control Configuration\");\n+\t\treturn -EINVAL;\n+\t}\n+\n+\tif (fc_conf->mode == RTE_FC_NONE) {\n+\t\treturn 0;\n+\t} else if (fc_conf->mode == RTE_FC_TX_PAUSE ||\n+\t\t fc_conf->mode == RTE_FC_FULL) {\n+\t\tfman_if_set_fc_threshold(dpaa_intf->fif, fc_conf->high_water,\n+\t\t\t\t\t fc_conf->low_water,\n+\t\t\t\tdpaa_intf->bp_info->bpid);\n+\t\tif (fc_conf->pause_time)\n+\t\t\tfman_if_set_fc_quanta(dpaa_intf->fif,\n+\t\t\t\t\t      fc_conf->pause_time);\n+\t}\n+\n+\t/* Save the information in dpaa device */\n+\tnet_fc->pause_time = fc_conf->pause_time;\n+\tnet_fc->high_water = fc_conf->high_water;\n+\tnet_fc->low_water = fc_conf->low_water;\n+\tnet_fc->send_xon = fc_conf->send_xon;\n+\tnet_fc->mac_ctrl_frame_fwd = fc_conf->mac_ctrl_frame_fwd;\n+\tnet_fc->mode = fc_conf->mode;\n+\tnet_fc->autoneg = fc_conf->autoneg;\n+\n+\treturn 0;\n+}\n+\n+static int\n+dpaa_flow_ctrl_get(struct rte_eth_dev *dev,\n+\t\t   struct rte_eth_fc_conf *fc_conf)\n+{\n+\tstruct dpaa_if *dpaa_intf = dev->data->dev_private;\n+\tstruct rte_eth_fc_conf *net_fc = dpaa_intf->fc_conf;\n+\tint ret;\n+\n+\tPMD_INIT_FUNC_TRACE();\n+\n+\tif (net_fc) {\n+\t\tfc_conf->pause_time = net_fc->pause_time;\n+\t\tfc_conf->high_water = net_fc->high_water;\n+\t\tfc_conf->low_water = net_fc->low_water;\n+\t\tfc_conf->send_xon = net_fc->send_xon;\n+\t\tfc_conf->mac_ctrl_frame_fwd = net_fc->mac_ctrl_frame_fwd;\n+\t\tfc_conf->mode = net_fc->mode;\n+\t\tfc_conf->autoneg = net_fc->autoneg;\n+\t\treturn 0;\n+\t}\n+\tret = fman_if_get_fc_threshold(dpaa_intf->fif);\n+\tif (ret) {\n+\t\tfc_conf->mode = RTE_FC_TX_PAUSE;\n+\t\tfc_conf->pause_time = fman_if_get_fc_quanta(dpaa_intf->fif);\n+\t} else {\n+\t\tfc_conf->mode = RTE_FC_NONE;\n+\t}\n+\n+\treturn 0;\n+}\n+\n+static int\n dpaa_dev_add_mac_addr(struct rte_eth_dev *dev,\n \t\t\t     struct ether_addr *addr,\n \t\t\t     uint32_t index,\n@@ -384,6 +463,9 @@ static struct eth_dev_ops dpaa_devops = {\n \t.rx_queue_release\t  = dpaa_eth_rx_queue_release,\n \t.tx_queue_release\t  = dpaa_eth_tx_queue_release,\n \n+\t.flow_ctrl_get\t\t  = dpaa_flow_ctrl_get,\n+\t.flow_ctrl_set\t\t  = dpaa_flow_ctrl_set,\n+\n \t.link_update\t\t  = dpaa_eth_link_update,\n \t.stats_get\t\t  = dpaa_eth_stats_get,\n \t.stats_reset\t\t  = dpaa_eth_stats_reset,\n@@ -400,6 +482,33 @@ static struct eth_dev_ops dpaa_devops = {\n \n };\n \n+static int dpaa_fc_set_default(struct dpaa_if *dpaa_intf)\n+{\n+\tstruct rte_eth_fc_conf *fc_conf;\n+\tint ret;\n+\n+\tPMD_INIT_FUNC_TRACE();\n+\n+\tif (!(dpaa_intf->fc_conf)) {\n+\t\tdpaa_intf->fc_conf = rte_zmalloc(NULL,\n+\t\t\tsizeof(struct rte_eth_fc_conf), MAX_CACHELINE);\n+\t\tif (!dpaa_intf->fc_conf) {\n+\t\t\tDPAA_PMD_ERR(\"unable to save flow control info\");\n+\t\t\treturn -ENOMEM;\n+\t\t}\n+\t}\n+\tfc_conf = dpaa_intf->fc_conf;\n+\tret = fman_if_get_fc_threshold(dpaa_intf->fif);\n+\tif (ret) {\n+\t\tfc_conf->mode = RTE_FC_TX_PAUSE;\n+\t\tfc_conf->pause_time = fman_if_get_fc_quanta(dpaa_intf->fif);\n+\t} else {\n+\t\tfc_conf->mode = RTE_FC_NONE;\n+\t}\n+\n+\treturn 0;\n+}\n+\n /* Initialise an Rx FQ */\n static int dpaa_rx_queue_init(struct qman_fq *fq,\n \t\t\t      uint32_t fqid)\n@@ -553,6 +662,9 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)\n \n \tDPAA_PMD_DEBUG(\"All frame queues created\");\n \n+\t/* Get the initial configuration for flow control */\n+\tdpaa_fc_set_default(dpaa_intf);\n+\n \t/* reset bpool list, initialize bpool dynamically */\n \tlist_for_each_entry_safe(bp, tmp_bp, &cfg->fman_if->bpool_list, node) {\n \t\tlist_del(&bp->node);\n",
    "prefixes": [
        "dpdk-dev",
        "v4",
        "34/41"
    ]
}