get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 45665,
    "url": "http://patches.dpdk.org/api/patches/45665/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/cbfd3330a282ba846733aa8e74f56f2e6997b65e.1538215990.git.igor.russkikh@aquantia.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": "<cbfd3330a282ba846733aa8e74f56f2e6997b65e.1538215990.git.igor.russkikh@aquantia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/cbfd3330a282ba846733aa8e74f56f2e6997b65e.1538215990.git.igor.russkikh@aquantia.com",
    "date": "2018-09-29T10:30:15",
    "name": "[v3,01/22] net/atlantic: atlantic PMD driver skeleton",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "5bec394a6225311351920f4d79e2098b57bad4f7",
    "submitter": {
        "id": 1124,
        "url": "http://patches.dpdk.org/api/people/1124/?format=api",
        "name": "Igor Russkikh",
        "email": "igor.russkikh@aquantia.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/cbfd3330a282ba846733aa8e74f56f2e6997b65e.1538215990.git.igor.russkikh@aquantia.com/mbox/",
    "series": [
        {
            "id": 1598,
            "url": "http://patches.dpdk.org/api/series/1598/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1598",
            "date": "2018-09-29T10:30:14",
            "name": "net/atlantic: Aquantia aQtion 10G NIC Family DPDK PMD driver",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/1598/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/45665/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/45665/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 1B2B31B123;\n\tSat, 29 Sep 2018 12:31:07 +0200 (CEST)",
            "from NAM05-DM3-obe.outbound.protection.outlook.com\n\t(mail-eopbgr730079.outbound.protection.outlook.com [40.107.73.79])\n\tby dpdk.org (Postfix) with ESMTP id CF4BD1B123\n\tfor <dev@dpdk.org>; Sat, 29 Sep 2018 12:31:04 +0200 (CEST)",
            "from ubuntubox.rdc.aquantia.com (95.79.108.179) by\n\tBLUPR0701MB1650.namprd07.prod.outlook.com (2a01:111:e400:58c6::20)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1185.22;\n\tSat, 29 Sep 2018 10:30:56 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=DI49s/ddsnQeo62Zwz2ipQONKT41YuWBwLXmKXtB5Oo=;\n\tb=YVdd7NwcpEAWBfXHBMLw9MgM3Em8YaXTqSpWwwpsIIifsM83FFjDVrHcQAOSYxxoW01Rt0YXwdFOJ3XW5pU87y/jBEqhaAiv22FbHrtHZmaxl2gCRsLeH9fXoyE8fnjua3TExKcY7/FYznJWa6qQItQVWlGPsAkLW8g5WOj4I2A=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Igor.Russkikh@aquantia.com; ",
        "From": "Igor Russkikh <igor.russkikh@aquantia.com>",
        "To": "dev@dpdk.org",
        "Cc": "pavel.belous@aquantia.com, igor.russkikh@aquantia.com,\n\tPavel Belous <Pavel.Belous@aquantia.com>",
        "Date": "Sat, 29 Sep 2018 13:30:15 +0300",
        "Message-Id": "<cbfd3330a282ba846733aa8e74f56f2e6997b65e.1538215990.git.igor.russkikh@aquantia.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<cover.1538215990.git.igor.russkikh@aquantia.com>",
        "References": "<cover.1538215990.git.igor.russkikh@aquantia.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[95.79.108.179]",
        "X-ClientProxiedBy": "VI1P193CA0009.EURP193.PROD.OUTLOOK.COM\n\t(2603:10a6:800:bd::19) To BLUPR0701MB1650.namprd07.prod.outlook.com\n\t(2a01:111:e400:58c6::20)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "2d15b29a-2620-4c8e-7812-08d625f6a7f9",
        "X-Microsoft-Antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020);\n\tSRVR:BLUPR0701MB1650; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BLUPR0701MB1650;\n\t3:8wjR65/NTsXjvtMuZo2og4atH3wEzdebBFzVh7CmjQuoGetI4NxpQvTlRiRR/7NjzD70hXjRBUhrxxAAun3EhE94HULJ9JRvJ39rj1rmaJLrtKDIm5ExYodVouLixD3rcvrO/ofQpIYYtqZk6+2ik2Fc7S60wdS2IFjdDKOlohJh9y3MvHfzynwfjALHPdnhQL+ozNvEwkivKbF4+7wKm/ICY4VzaVMzmRseRMQQtENWz6pgsZPJFnuNsfl7mHQM;\n\t25:MLo82J3oy8gXsjcAZbZjsc8FNfKUFSJrvixgiWZkkNIQMNmrUfXLeOXH+hBQ1GPs0PtFFuSIcN6uA15qDvL9ALfsf/dUJX8MQmVbaws4FGgGirPKDto2ydfwvHr6FYaRVDIZdq14CfAkjwWjnnyCpK23lIN/NoTYbec2XvvNBcoBs+joZ2TjHF3eU0ANBhJePhRAaLjr9YL/DBYDBvrZj3EJugpMx1wAyPi4lcVrjFEiGfzMoOEcyB9Ik1S8sNlh1NpKarsOoOSvPCAXS1Sty+1cGtVQCIExE25IvFHVVhdyXn8GocJStTuBwdRaC2zui6OWP+mzohi6k4jv/5xzrCiINwj44dOmi9nXM3sbULY=;\n\t31:8EVt2qQxoofHQbwj9/kvdZQEeLfXM2s3HAKtmiMPtcfZAKKNIrG+y2sYKldxsLO3NKZgLqHQikVNGKuAXr6ior3BggAZ6Za7xUKE16/JShA4lzEBpfjaEQW848CuhdacYqTpelvUbO+NxoCd4n4W+mr+Csa4xUJxvbZxfaMR7LFzeSu6xxCqEyFZ41exYxT5qQz8vxKtS+HIR51GMpblaxxZpNToglRy78Q8HL+86SY=",
            "1; BLUPR0701MB1650;\n\t20:CS0Sa6MTcqNwO4L6ViPNJN234KhVq+2r+oLjFRh1lc8ex2aobQfL8ftYUzRkQh7SgmopHPK+U4o1ATfQFbRYOC9MambXEmvcFyBX93gKfFeYng/ukidFKvK2JvEkFrQVO6ig4opkTNtdGJERSwI38M2lqB1fTwDznRoUvQTqRnU+1QQecRcO/dDPjw2JZAumt+eCEwgbKTY1/DRcVQuLi+k/iShC8DaxBGp5jrzCRfo7AAYS2rD2iUJO8lsnp1notEqHNUN0ILNFB4mvvb7uBCm+juy02H7WtaObEF1PHhkjvRmtXaqi4s/1vRTc+40sQ3gPY/2w4o86ZAiAd/falw68plpfeOjZ/SI8rCd98KBtoDf9vERLH0euWdxBpskOnrpm1l93O8JHfgaOlCu0pdDIPzECFa5yk1Th8cg8p7igGmVAjjs5y869PddlWMkyJZLPLO1pzE11Om0ZS6aK11i6F+t0wGa8JRRKd3tvHNOgf8FYjpHB1cSIbtQWMYOG;\n\t4:YRTP0094/p+RJ58Zq6aZkimvZ6OvoREmGD8A4OWurRFUInIQHpQtUiN7WZd4EgVsz57wAmE08vCi9/oAn0v3N6bU6vz4PRnpV+T1HByH0SphcmTjSelDVksqz0DQeCfhbXys0Tt2sMzWCStBAheln3PnU3wxa+BvQwuBM+pLvvDH9PeXWzMJJwG06SfH8imJwa5OsOzWDKaAmwYqDObWXDzFFZSxYUyy8xs/qRgsRIxzPXEocI0BwZU/CYeBG8iEQmuyRz+lu/PwMC0IrVNDZA==",
            "=?us-ascii?Q?1; BLUPR0701MB1650;\n\t23:Q7k3LxFQ9dch9khK8plBgHwa93DJ/Vi+pNiIxFk?=\n\tIHZMW5FCA6lV9fjaBZ7NITrjTUkNpaCTYbCRgptBlZWH1OJ5rlolR+s+0oW6Xjyd9DNk8r3LhtseYqReJDIztGGWG0i2rm2UspDbXOJpwvarnZNxugPLWBnPOkFaLGt/ephz1mY+mJ8ELEyOc7RPB+jAtUHFeayQKjX1kOcBRnt7BjSjTJrN2glBaRzGRIGyqD6LV3VQfqbjMQ6la79JP1rBT2Y+4yTY6+FWxf1TlhaoGUN6m4IFxDWZlWFRNjTlwR+RSGkN/tlJdiDaKHBs6PYMH2D4Idb4xdf+IQbS/60KHXOv2Haz9bV+Xkh/iTwkTbqvQXFNE1SbYxlw1u5hr7dCu9CBv83+v0IPmYd+yf7NinBwMhUt7TWaVXOShVXwR7R2voVsa0PWVLm4Fuc8vhgmuiZNMaXeCXlJDew+nRMz249s6N3ifjUseAQL4yH7aHGCOrt0uV5mSaPO65w8JZmn2L0qTK7D0uiRQlsTi3eISTHtdFjBIYmFz6otdqOiVIYmR8gTbcKqXcIBpZP9QiiYN2ydrV7cgsEerrBOF4hxALlIIVQ5krv/nfYGJlnZjedEh7QX/P/Cd8KjKCbx2GsvMA4KvyMrg19DgRMYA3DOOi70oojBPwY9SMtCYEvgoDA2XRy6q7EIznEbNT249RPsLo6jiSTGBZ2+knKUXmWOwwpsMIdaedgV52yeSMgyttWrCEQILX7yZEn3HelJ9fub67Yl1K2vxdNgmHID+DWQcHCdTJWNMp6YXvsIu0Yk+biKBgcpN9M4QFNkRSjR7kWAfF/IP2gG0VBKiyb/8JNjSpftRH2cbmVJVG8kEDEHoGB67GDy9KcjCNfU2T0UA0JecVVyM5hO6QWroce26/d6+fHiauFo4oLo9HXvK7oUcxNrWwWbgaT2qd9K5iWCSnVZSd8QXZTAyInRBPws4sVliOfiN6yTkDf36Fa6RkOKHK+9rufXbTmCnEmMoqmvPsERKJ9UijnllF/5ZB/0JkyTTEUm4IGIu10euhPl41VlDbcuo/b/J+DrX6G5IivJIlz/Ue0l+12l2MghUEcgwt8+aONigx546onwL6hRCkdg91r7OwpmHH7kjm3FcLuZV+Z3X1Dw2sX4yvHIY8lBw1c7u4HZn5ckyh0SOg+CkIp3uqpoJea3Y3IBfbPw/VpM4TZ8DX/EtuGRGGCvU0mlSQz4pOQi/A4m5V/T4twXffRPIRMTh0+taOSPPkWPqmR0QLZ20LW7oYdyVoWl0zsl2jJapjuOGO24qCiqqKB6Pifz3lQbhJzw2wLH31c/00AOITnDb",
            "1; BLUPR0701MB1650;\n\t6:hMAsWmJbK6Atxy1hn+X+BZiEk7PPBtoiLZhvZpdCAou54a/38Q30LmcNl4uddnmgz742FhM2uBnzdRg2f8Db/LEXuqEn7roUQX5kD43NVHyTkNPa2KaxLF4pHVnlvMhTZU9R2mU5l2hupcc7wJJxxlfq9xbsmFWBFDzENsCRQFh/NLx5pp/Z2b2kuV0HQ20a75qBnUXd26DBY+t99nX87E8Q8TgoBclqrqRq//UmzLYcE9vS881WCRNXDpoi84ZmRNhn1rEkC3kMuTjx7+7uDFHYVX8RNFuMAOH9DPI3azID9fUxrbduKKERbSaUJ1UnXjurj4H4+BVEBhZ9fWT0gsOPaOGdlYmIkxvn/4Vo/rwdojvsj6Wj/lPav1IN2MYRFWWxHI2KuwSHgBaRDzcod6YVxlbVwaWy3W+y3ulSw+Zoleibqzw9q+FP9hFuZB4ggqvSt+TgrfnsEwZWV7xDRw==;\n\t5:4WVKN2gaLoEMuMei2yXk/uyxxMa5Z6ASF2ItGFcq83GSBw193I1r/ZkCX3jGAsyPGeVm1nqFRhMQQlfjcAB1Ewq4U83KJiCOQgGx1cequ0Wpb2CaSV5w7dS6cupdfMTOSUflz+2OqPyBrMpazaP4k8OxQGh5lX9ou23zzxYeGlI=;\n\t7:0I92JyY9TPoLc+Pv1fGrZ7cuTlP//uqFFZ1BeTYO+InSv7PLcB4SlvyT5Lh45kLs8M+BU4UXIGL8VJaUOcHaQHkdkPqCkyYV5rN2NUdX5BTyqRVb4AMU3NrVGgHgjV/IngN4ld33L7OMMv5kurUi67FPnGqjQmUQUmEPwSMpfcravWb08OWZEMpljZzDZqkP0EjozF23QKnW45xmswLCf+9EXconTISKaPJ0+tE4ZEe/MgFuVrbtTBgyPUaCZ8v0"
        ],
        "X-MS-TrafficTypeDiagnostic": "BLUPR0701MB1650:",
        "X-Microsoft-Antispam-PRVS": "<BLUPR0701MB1650E797FC5A70F66693B18398ED0@BLUPR0701MB1650.namprd07.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(3231355)(944501410)(52105095)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123562045)(20161123560045)(201708071742011)(7699051);\n\tSRVR:BLUPR0701MB1650; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1650; ",
        "X-Forefront-PRVS": "0810818DA0",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(39850400004)(366004)(376002)(346002)(396003)(136003)(189003)(199004)(6486002)(105586002)(118296001)(16586007)(6116002)(53936002)(3846002)(386003)(72206003)(2361001)(478600001)(11346002)(7736002)(2351001)(106356001)(48376002)(25786009)(305945005)(50466002)(66066001)(486006)(47776003)(44832011)(186003)(476003)(2616005)(956004)(107886003)(7696005)(51416003)(52116002)(26005)(6666003)(6916009)(2906002)(97736004)(16526019)(14444005)(76176011)(446003)(575784001)(86362001)(5660300001)(50226002)(34290500001)(68736007)(81166006)(81156014)(36756003)(8676002)(8936002)(4326008)(316002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1650;\n\tH:ubuntubox.rdc.aquantia.com; \n\tFPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; ",
        "Received-SPF": "None (protection.outlook.com: aquantia.com does not designate\n\tpermitted sender hosts)",
        "X-Microsoft-Antispam-Message-Info": "tPVe+2PhQMTNNqEMAg3EBMZpf9W/HqHG1V6jUqV0j0IFH7uXOepplRWHoCd1bVBjXJcEUqAl+LkUpPHmswADTS+8p1u/LTRSbu6eY1tMxEJFkVDdCY+2T+r3p5OSgk78z2Y3Pv4GoVmbqpoZ52U8dI6v7pAeLQ9La2SOmtkBMAbBOa3RxnEn0vp2L8wcZgQx5LalzzYi+qs2LRsh/W1ckUNzDdab0zxmK4L69xRLG6pvG5QXfr4G0eHfi95mYIG+5cdfTzLjWB/c6Qf8x56/4Wngm8kRpNqYmi57Y+vskuLJm7UbJcnsLDenL24AhoNKmRiV1eYK1zpzN/RvZNC2VB2vkjWmVdICgaPq+k2tcTo=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "aquantia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "29 Sep 2018 10:30:56.9046\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "2d15b29a-2620-4c8e-7812-08d625f6a7f9",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "83e2e134-991c-4ede-8ced-34d47e38e6b1",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BLUPR0701MB1650",
        "Subject": "[dpdk-dev] [PATCH v3 01/22] net/atlantic: atlantic PMD driver\n\tskeleton",
        "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": "From: Pavel Belous <Pavel.Belous@aquantia.com>\n\nMakefile/meson build infrastructure, atl_ethdev minimal skeleton,\nheader with aquantia aQtion NIC device and vendor IDs.\n\nSigned-off-by: Igor Russkikh <igor.russkikh@aquantia.com>\nSigned-off-by: Pavel Belous <Pavel.Belous@aquantia.com>\n---\n config/common_base                                |   5 +\n drivers/net/Makefile                              |   1 +\n drivers/net/atlantic/Makefile                     |  27 ++++\n drivers/net/atlantic/atl_common.h                 |  96 ++++++++++++++\n drivers/net/atlantic/atl_ethdev.c                 | 145 ++++++++++++++++++++++\n drivers/net/atlantic/atl_ethdev.h                 |  15 +++\n drivers/net/atlantic/meson.build                  |  10 ++\n drivers/net/atlantic/rte_pmd_atlantic_version.map |   4 +\n drivers/net/meson.build                           |   1 +\n mk/rte.app.mk                                     |   1 +\n 10 files changed, 305 insertions(+)\n create mode 100644 drivers/net/atlantic/Makefile\n create mode 100644 drivers/net/atlantic/atl_common.h\n create mode 100644 drivers/net/atlantic/atl_ethdev.c\n create mode 100644 drivers/net/atlantic/atl_ethdev.h\n create mode 100644 drivers/net/atlantic/meson.build\n create mode 100644 drivers/net/atlantic/rte_pmd_atlantic_version.map",
    "diff": "diff --git a/config/common_base b/config/common_base\nindex 155c7d40ea31..ba51ffbd43ce 100644\n--- a/config/common_base\n+++ b/config/common_base\n@@ -635,6 +635,11 @@ CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV=n\n CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV=n\n \n #\n+# Compile Aquantia Atlantic PMD driver\n+#\n+CONFIG_RTE_LIBRTE_ATLANTIC_PMD=y\n+\n+#\n # Compile raw device support\n # EXPERIMENTAL: API may change without prior notice\n #\ndiff --git a/drivers/net/Makefile b/drivers/net/Makefile\nindex 664398de983a..8ac6b9db5916 100644\n--- a/drivers/net/Makefile\n+++ b/drivers/net/Makefile\n@@ -10,6 +10,7 @@ endif\n \n DIRS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET) += af_packet\n DIRS-$(CONFIG_RTE_LIBRTE_ARK_PMD) += ark\n+DIRS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += atlantic\n DIRS-$(CONFIG_RTE_LIBRTE_AVF_PMD) += avf\n DIRS-$(CONFIG_RTE_LIBRTE_AVP_PMD) += avp\n DIRS-$(CONFIG_RTE_LIBRTE_AXGBE_PMD) += axgbe\ndiff --git a/drivers/net/atlantic/Makefile b/drivers/net/atlantic/Makefile\nnew file mode 100644\nindex 000000000000..e42ce5b178ab\n--- /dev/null\n+++ b/drivers/net/atlantic/Makefile\n@@ -0,0 +1,27 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright(c) 2018 Aquantia Corporation\n+\n+include $(RTE_SDK)/mk/rte.vars.mk\n+\n+#\n+# library name\n+#\n+LIB = librte_pmd_atlantic.a\n+\n+CFLAGS += -O3\n+CFLAGS += $(WERROR_FLAGS)\n+\n+EXPORT_MAP := rte_pmd_atlantic_version.map\n+\n+LIBABIVER := 1\n+\n+LDLIBS += -lrte_eal\n+LDLIBS += -lrte_ethdev -lrte_net\n+LDLIBS += -lrte_bus_pci\n+\n+#\n+# all source are stored in SRCS-y\n+#\n+SRCS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD) += atl_ethdev.c\n+\n+include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/drivers/net/atlantic/atl_common.h b/drivers/net/atlantic/atl_common.h\nnew file mode 100644\nindex 000000000000..b3a0aa5cd212\n--- /dev/null\n+++ b/drivers/net/atlantic/atl_common.h\n@@ -0,0 +1,96 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2018 Aquantia Corporation\n+ */\n+\n+#ifndef AQ_COMMON_H\n+#define AQ_COMMON_H\n+\n+#define ATL_PMD_DRIVER_VERSION \"0.4.1\"\n+\n+#define PCI_VENDOR_ID_AQUANTIA  0x1D6A\n+\n+#define AQ_DEVICE_ID_0001\t0x0001\n+#define AQ_DEVICE_ID_D100\t0xD100\n+#define AQ_DEVICE_ID_D107\t0xD107\n+#define AQ_DEVICE_ID_D108\t0xD108\n+#define AQ_DEVICE_ID_D109\t0xD109\n+\n+#define AQ_DEVICE_ID_AQC100\t0x00B1\n+#define AQ_DEVICE_ID_AQC107\t0x07B1\n+#define AQ_DEVICE_ID_AQC108\t0x08B1\n+#define AQ_DEVICE_ID_AQC109\t0x09B1\n+#define AQ_DEVICE_ID_AQC111\t0x11B1\n+#define AQ_DEVICE_ID_AQC112\t0x12B1\n+\n+#define AQ_DEVICE_ID_AQC100S\t0x80B1\n+#define AQ_DEVICE_ID_AQC107S\t0x87B1\n+#define AQ_DEVICE_ID_AQC108S\t0x88B1\n+#define AQ_DEVICE_ID_AQC109S\t0x89B1\n+#define AQ_DEVICE_ID_AQC111S\t0x91B1\n+#define AQ_DEVICE_ID_AQC112S\t0x92B1\n+\n+#define AQ_DEVICE_ID_AQC111E\t0x51B1\n+#define AQ_DEVICE_ID_AQC112E\t0x52B1\n+\n+#define HW_ATL_NIC_NAME \"aQuantia AQtion 10Gbit Network Adapter\"\n+\n+#define AQ_HWREV_ANY\t0\n+#define AQ_HWREV_1\t1\n+#define AQ_HWREV_2\t2\n+\n+#define AQ_NIC_RATE_10G\t\tBIT(0)\n+#define AQ_NIC_RATE_5G\t\tBIT(1)\n+#define AQ_NIC_RATE_5G5R\tBIT(2)\n+#define AQ_NIC_RATE_2G5\t\tBIT(3)\n+#define AQ_NIC_RATE_1G\t\tBIT(4)\n+#define AQ_NIC_RATE_100M\tBIT(5)\n+\n+#define AQ_NIC_RATE_EEE_10G\tBIT(6)\n+#define AQ_NIC_RATE_EEE_5G\tBIT(7)\n+#define AQ_NIC_RATE_EEE_2G5\tBIT(8)\n+#define AQ_NIC_RATE_EEE_1G\tBIT(9)\n+\n+\n+#define ATL_MAX_RING_DESC\t(8 * 1024 - 8)\n+#define ATL_MIN_RING_DESC\t32\n+#define ATL_RXD_ALIGN\t\t8\n+#define ATL_TXD_ALIGN\t\t8\n+#define ATL_TX_MAX_SEG\t\t16\n+\n+#define ATL_MAX_INTR_QUEUE_NUM  15\n+\n+#define ATL_MISC_VEC_ID 10\n+#define ATL_RX_VEC_START 0\n+\n+#define AQ_NIC_WOL_ENABLED           BIT(0)\n+\n+\n+#define AQ_NIC_FC_OFF    0U\n+#define AQ_NIC_FC_TX     1U\n+#define AQ_NIC_FC_RX     2U\n+#define AQ_NIC_FC_FULL   3U\n+#define AQ_NIC_FC_AUTO   4U\n+\n+\n+#define AQ_CFG_TX_FRAME_MAX  (16U * 1024U)\n+#define AQ_CFG_RX_FRAME_MAX  (2U * 1024U)\n+\n+#define AQ_HW_MULTICAST_ADDRESS_MAX     32\n+#define AQ_HW_MAX_SEGS_SIZE    40\n+\n+#define AQ_HW_MAX_RX_QUEUES    8\n+#define AQ_HW_MAX_TX_QUEUES    8\n+#define AQ_HW_MIN_RX_RING_SIZE 512\n+#define AQ_HW_MAX_RX_RING_SIZE 8192\n+#define AQ_HW_MIN_TX_RING_SIZE 512\n+#define AQ_HW_MAX_TX_RING_SIZE 8192\n+\n+#define ATL_DEFAULT_RX_FREE_THRESH 64\n+#define ATL_DEFAULT_TX_FREE_THRESH 64\n+\n+#define ATL_IRQ_CAUSE_LINK 0x8\n+\n+#define AQ_HW_LED_BLINK    0x2U\n+#define AQ_HW_LED_DEFAULT  0x0U\n+\n+#endif /* AQ_COMMON_H */\ndiff --git a/drivers/net/atlantic/atl_ethdev.c b/drivers/net/atlantic/atl_ethdev.c\nnew file mode 100644\nindex 000000000000..5728d9037d72\n--- /dev/null\n+++ b/drivers/net/atlantic/atl_ethdev.c\n@@ -0,0 +1,145 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2018 Aquantia Corporation\n+ */\n+\n+#include <rte_ethdev_pci.h>\n+\n+#include \"atl_ethdev.h\"\n+#include \"atl_common.h\"\n+\n+static int eth_atl_dev_init(struct rte_eth_dev *eth_dev);\n+static int eth_atl_dev_uninit(struct rte_eth_dev *eth_dev);\n+\n+static int  atl_dev_configure(struct rte_eth_dev *dev);\n+static int  atl_dev_start(struct rte_eth_dev *dev);\n+static void atl_dev_stop(struct rte_eth_dev *dev);\n+static void atl_dev_close(struct rte_eth_dev *dev);\n+static int  atl_dev_reset(struct rte_eth_dev *dev);\n+\n+static int eth_atl_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,\n+\tstruct rte_pci_device *pci_dev);\n+static int eth_atl_pci_remove(struct rte_pci_device *pci_dev);\n+\n+int atl_logtype_init;\n+int atl_logtype_driver;\n+\n+/*\n+ * The set of PCI devices this driver supports\n+ */\n+static const struct rte_pci_id pci_id_atl_map[] = {\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_0001) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_D100) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_D107) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_D108) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_D109) },\n+\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_AQC100) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_AQC107) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_AQC108) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_AQC109) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_AQC111) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_AQC112) },\n+\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_AQC100S) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_AQC107S) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_AQC108S) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_AQC109S) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_AQC111S) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_AQC112S) },\n+\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_AQC111E) },\n+\t{ RTE_PCI_DEVICE(PCI_VENDOR_ID_AQUANTIA, AQ_DEVICE_ID_AQC112E) },\n+\t{ .vendor_id = 0, /* sentinel */ },\n+};\n+\n+static struct rte_pci_driver rte_atl_pmd = {\n+\t.id_table = pci_id_atl_map,\n+\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |\n+\t\t     RTE_PCI_DRV_IOVA_AS_VA,\n+\t.probe = eth_atl_pci_probe,\n+\t.remove = eth_atl_pci_remove,\n+};\n+\n+static const struct eth_dev_ops atl_eth_dev_ops = {\n+\t.dev_configure\t      = atl_dev_configure,\n+\t.dev_start\t      = atl_dev_start,\n+\t.dev_stop\t      = atl_dev_stop,\n+\t.dev_close\t      = atl_dev_close,\n+\t.dev_reset\t      = atl_dev_reset,\n+};\n+\n+static int\n+eth_atl_dev_init(struct rte_eth_dev *eth_dev __rte_unused)\n+{\n+\treturn 0;\n+}\n+\n+static int\n+eth_atl_dev_uninit(struct rte_eth_dev *eth_dev __rte_unused)\n+{\n+\treturn 0;\n+}\n+\n+static int\n+eth_atl_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,\n+\tstruct rte_pci_device *pci_dev)\n+{\n+\treturn rte_eth_dev_pci_generic_probe(pci_dev,\n+\t\tsizeof(struct atl_adapter), eth_atl_dev_init);\n+}\n+\n+static int\n+eth_atl_pci_remove(struct rte_pci_device *pci_dev)\n+{\n+\treturn rte_eth_dev_pci_generic_remove(pci_dev, eth_atl_dev_uninit);\n+}\n+\n+static int\n+atl_dev_configure(struct rte_eth_dev *dev __rte_unused)\n+{\n+\treturn 0;\n+}\n+\n+/*\n+ * Configure device link speed and setup link.\n+ * It returns 0 on success.\n+ */\n+static int\n+atl_dev_start(struct rte_eth_dev *dev __rte_unused)\n+{\n+\treturn 0;\n+}\n+\n+/*\n+ * Stop device: disable rx and tx functions to allow for reconfiguring.\n+ */\n+static void\n+atl_dev_stop(struct rte_eth_dev *dev __rte_unused)\n+{\n+}\n+\n+/*\n+ * Reset and stop device.\n+ */\n+static void\n+atl_dev_close(struct rte_eth_dev *dev __rte_unused)\n+{\n+}\n+\n+static int\n+atl_dev_reset(struct rte_eth_dev *dev)\n+{\n+\tint ret;\n+\n+\tret = eth_atl_dev_uninit(dev);\n+\tif (ret)\n+\t\treturn ret;\n+\n+\tret = eth_atl_dev_init(dev);\n+\n+\treturn ret;\n+}\n+\n+RTE_PMD_REGISTER_PCI(net_atlantic, rte_atl_pmd);\n+RTE_PMD_REGISTER_PCI_TABLE(net_atlantic, pci_id_atl_map);\n+RTE_PMD_REGISTER_KMOD_DEP(net_atlantic, \"* igb_uio | uio_pci_generic\");\ndiff --git a/drivers/net/atlantic/atl_ethdev.h b/drivers/net/atlantic/atl_ethdev.h\nnew file mode 100644\nindex 000000000000..ae87517560de\n--- /dev/null\n+++ b/drivers/net/atlantic/atl_ethdev.h\n@@ -0,0 +1,15 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2018 Aquantia Corporation\n+ */\n+\n+#ifndef _ATLANTIC_ETHDEV_H_\n+#define _ATLANTIC_ETHDEV_H_\n+#include <rte_tm_driver.h>\n+\n+/*\n+ * Structure to store private data for each driver instance (for each port).\n+ */\n+struct atl_adapter {\n+};\n+\n+#endif /* _ATLANTIC_ETHDEV_H_ */\ndiff --git a/drivers/net/atlantic/meson.build b/drivers/net/atlantic/meson.build\nnew file mode 100644\nindex 000000000000..90ee5288206a\n--- /dev/null\n+++ b/drivers/net/atlantic/meson.build\n@@ -0,0 +1,10 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright(c) 2018 Aquantia Corporation\n+\n+sources = files(\n+\t'atl_ethdev.c',\n+)\n+\n+deps += ['eal']\n+\n+allow_experimental_apis = true\ndiff --git a/drivers/net/atlantic/rte_pmd_atlantic_version.map b/drivers/net/atlantic/rte_pmd_atlantic_version.map\nnew file mode 100644\nindex 000000000000..521e51f411fb\n--- /dev/null\n+++ b/drivers/net/atlantic/rte_pmd_atlantic_version.map\n@@ -0,0 +1,4 @@\n+DPDK_18.11 {\n+\n+\tlocal: *;\n+};\ndiff --git a/drivers/net/meson.build b/drivers/net/meson.build\nindex f59bea7905e3..8208ab101ed5 100644\n--- a/drivers/net/meson.build\n+++ b/drivers/net/meson.build\n@@ -3,6 +3,7 @@\n \n drivers = ['af_packet',\n \t'ark',\n+\t'atlantic',\n \t'avp',\n \t'axgbe', 'bonding',\n \t'bnx2x',\ndiff --git a/mk/rte.app.mk b/mk/rte.app.mk\nindex 899d51a23b2c..fd06e7df014e 100644\n--- a/mk/rte.app.mk\n+++ b/mk/rte.app.mk\n@@ -157,6 +157,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_PMD)       += -lrte_pmd_mlx5 -ldl -lmnl\n else\n _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_PMD)       += -lrte_pmd_mlx5 -libverbs -lmlx5 -lmnl\n endif\n+_LDLIBS-$(CONFIG_RTE_LIBRTE_ATLANTIC_PMD)   += -lrte_pmd_atlantic\n _LDLIBS-$(CONFIG_RTE_LIBRTE_MVPP2_PMD)      += -lrte_pmd_mvpp2 -L$(LIBMUSDK_PATH)/lib -lmusdk\n _LDLIBS-$(CONFIG_RTE_LIBRTE_NFP_PMD)        += -lrte_pmd_nfp\n _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NULL)       += -lrte_pmd_null\n",
    "prefixes": [
        "v3",
        "01/22"
    ]
}