get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 44414,
    "url": "http://patches.dpdk.org/api/patches/44414/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1536333719-32155-20-git-send-email-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": "<1536333719-32155-20-git-send-email-igor.russkikh@aquantia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1536333719-32155-20-git-send-email-igor.russkikh@aquantia.com",
    "date": "2018-09-07T15:21:57",
    "name": "[19/21] net/atlantic: device MTU and statuses",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "5c4960271dad9d6426400de8820e7e15899544b4",
    "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/1536333719-32155-20-git-send-email-igor.russkikh@aquantia.com/mbox/",
    "series": [
        {
            "id": 1228,
            "url": "http://patches.dpdk.org/api/series/1228/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1228",
            "date": "2018-09-07T15:21:39",
            "name": "net/atlantic: Aquantia aQtion 10G NIC Family DPDK PMD driver",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/1228/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/44414/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/44414/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 B76CB7D05;\n\tFri,  7 Sep 2018 17:23:57 +0200 (CEST)",
            "from NAM03-BY2-obe.outbound.protection.outlook.com\n\t(mail-by2nam03on0076.outbound.protection.outlook.com [104.47.42.76])\n\tby dpdk.org (Postfix) with ESMTP id 6B2975911\n\tfor <dev@dpdk.org>; Fri,  7 Sep 2018 17:23:40 +0200 (CEST)",
            "from ubuntubox.rdc.aquantia.com (95.79.108.179) by\n\tBLUPR0701MB1652.namprd07.prod.outlook.com (2a01:111:e400:58c6::22)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1122.16;\n\tFri, 7 Sep 2018 15:23:37 +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=nMlTIjXCwrUV/DEjr/GANupDcbU1tL8/FSPhx3pq9XQ=;\n\tb=QQ8aa9MxpMZqr0xO6Jg+T41+cyVqKlaPPNcCNM5rd19/vBVHtl93ChODakDK2x9o93DMGngFtRmlgswj3KhkxpKX+Z54HG4ECC5iiyuJZ0gCxMyvL4HeRZ2zt041KzW89nF6ZNNr0QbbhyWU02HEMyGxGEGN/86RtO1jwFQc6pM=",
        "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, Nadezhda.Krupnina@aquantia.com,\n\tigor.russkikh@aquantia.com, Simon.Edelhaus@aquantia.com,\n\tCorey Melton <comelton@cisco.com>, Ashish Kumar <ashishk2@cisco.com>",
        "Date": "Fri,  7 Sep 2018 18:21:57 +0300",
        "Message-Id": "<1536333719-32155-20-git-send-email-igor.russkikh@aquantia.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1536333719-32155-1-git-send-email-igor.russkikh@aquantia.com>",
        "References": "<1536333719-32155-1-git-send-email-igor.russkikh@aquantia.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[95.79.108.179]",
        "X-ClientProxiedBy": "BN6PR20CA0060.namprd20.prod.outlook.com\n\t(2603:10b6:404:151::22) To BLUPR0701MB1652.namprd07.prod.outlook.com\n\t(2a01:111:e400:58c6::22)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "a16f95e3-1ed5-4c48-31a5-08d614d5e2d5",
        "X-Microsoft-Antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060)(7193020);\n\tSRVR:BLUPR0701MB1652; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BLUPR0701MB1652;\n\t3:HMlaG2qTFqpMI6WKerNpCo0kuhw8pfbPwaXNh57+asgOhXFLTq99St9+WsZ/CKXmVy6QPvh46fZPMafOIwtUNNpC+KPbzSSadiOXlUeFQvVW2+AnOrUPxvo0aqnzWvYQPnblR/+/AtmAyieJ3k0ebJqVk8DLOA/6YwociT+eYm2Hff1F5hmO1qfEjmqMq4NTsiCuXXiD061XvkvZwITu0H46yD3ysW06ZDVXUDPgLWWOXnHRwZaVb9DCt0QCVTCe;\n\t25:WtkfqzeeROm1+sPfa7/jvVzJAGIWjGA2803lKxFfRQFIPzXO111ZVJi9rDFxUthe1N4HmCIO5XSZWnfHV1Xgz3oVBo0KXEXbCbOENJ5rswZCPm6Sijhtgb+60dT5X8g4YgeyGv7GPCXPy+H8+dj0YobLCAytMkOIs36gJb3gN661T8EAR4KNQFf1DajkU7IfbBJtcSI5ilZYplMWXGTUZQ4vNaZgC/wbGAwfXD8P/65rFDXICgZWX07Ybv705KNZhuxaxSc7MwlWi88x97o7a5MdwarDZ813gKSdfpq9UANkxgjOtDxsW0SirB8jdPd1sVpLTV73+phUzSSRGRLEhg==;\n\t31:uZIQbZ6WPi7SuRx1jp+UXV5MPZ7hUKkAw4sBrom+I515XANRs6/F7bAzJILOaco+L4tsRHFbq81MJQf29QCHBiFBq0o2AFyEL0/2BbBiQTKos3ZNVyHSr9+ekl98qsrGQWL8jYRu34s0fetUhp6WocIPLTCuegzTJYC9SFYt0BsfOL8966sqwgPE4zYJFJYUqtn7nWexupoGx13c2gHNTWDyqjknQXlFS7OhUoxy0Zw=",
            "1; BLUPR0701MB1652;\n\t20:xcrBfR0uYo4ajmM8vhZBVJVjQtuEnZ4k4ofN7PPvKEU+1Y6YMVG4U86A2DViTxeYvgJNki3sscKqDRTKXVOBKBD2oaoR9x8942xvGITHC7tmsKvkSzzVVSItiTlRm2nJhttxuLs7kKEV+EqAyQ8ODo9ZQdB9/srB1qTvhrCugP3SvXzabq3J49kpMr6Fk5wCyIGXvKdhfKnfsfImqGztylBcgt9o2H6eE2ju7NYxlT2nPnFU343T+oxYqu535uXo/UGYkEU31+2FiSbxgpwdi4xzEfhwqz1K7RWhMhF8QGKCFbSyLdN2sGcPEVtMQq1bfpTIXidy8MJagt5bUyeNrCcrDgrj2HRoAv1VgvjnocNpiimgAnZodlo+7FU0Nvq6CVHYOJcv/hBIoaxDpw05Q+t1Pz5S/Iw2kNjDIvlv8styQwMaZojyLPYY0NjbkIQf2Z5AV3P6Of8OlWz1ix3l4QIdjV13CX8zPtBzrvOvtyJDPiqJPB1/egFR8Zd18sIj;\n\t4:n2/8yGiJV3vz4YOx79RvoeHLX0QgBKOLV0T3KK+6ohe79UtKfcQCWhtzVDbm4VvIP2xxaVBtsZIB22rNfp4UQ7uoU2e8oQYtoDeg7Ear84oCXbakIEsJMP65Nwl881bQaKgfQSVRZXqWgiR1VCasEbrkNWQ5ujnXiMxHv3P9Rg7eWG2nyKAjg9akf5WX+F9g11r/0hGG7Gn07NiuSAMoz35mTIv7/YSdU2gJK0Y1TIwJbfG0/t8reB4f690w3zhBMhast3yxRD5pe7RoC71B4Q==",
            "=?us-ascii?Q?1; BLUPR0701MB1652;\n\t23:1OEwAhckVV9l7wC1sIigdPapDRwrwO0kOTgvgp4?=\n\tX5Bn0QydO0J6K8Q9dFSHhlGqSh94AykJ1oo/PkZ3q/cokBcpwshZ1zNi1nsH3tSUQY7XzHVqXLmk3tIm2ajyCihn4tw82EY8gcP8ssjj20LYVJpJewk2tCGdYHi6yWYNCbkCFwoCQSjD/71GgTUvjz4BQ7N+9To3psjO8GL5+xtaMsUzcnDp2C1VNyo5f3xi0pHco/zkbw5rSUB+62YIWMmSrWFJwfNMwcIhv+vEuNSGoqC6VGnYhRQxWyRbqKy52qqqROhcpuexXokTKeBsJBnM8ubdXmJGBS64julZb99maOrbp6PqbYeEeb9+sfrGDAwXh8pZaF8QZ+/mi0YPzF2iEU0Q92fM4ckUElGgkfGwCFZacMoS1vHr405o9SUpMdlNJNlW07EEK80fwYSDPiNZb4FFquuIE9o0ymYiUdy3v82mAD2rp1gIYYWBxlrHKb+1FlfcEn/V6khvaf91qDBggfkhWUJtYwjVtlKS1otM0GYn0FR6YaibkMypAMwsnYqUhPnqW2eSJpYxsA3ijayyt72yvYFu/reZVOnFD3mre/j64MMYp7rqUxv4Br5XtbWqN0qqykQkx6Ezebx74i3ZbCPNl38isdf983C9+SESI+6we40oTXR4yykxOhu252mMKtkm7/x4YdG4U31C1E5XpCalI5GyS2ade4TQzWfmLsRzVs5If2G9kDTPgIDBsAUAoFxCdDW+rttg0vwpGNYtUreQ+4ezJEQIlMGPvuzWkCQx/KRL8MtcF6UHnsggHBuQ01ZxphY7hxbEaBH9VhLGZxfCbvtdyDld7+cm9g5YRA6x5tTuGg9ZIwvzEz5Ju7dUn3kfHJRiApxL2odeUSn2gEXeoea41PmsA2Di2XxkTLCGvcY5t3leLjQ991UuQiDIlP95IPVelFeryfvkT6W0o9diAMw4fJKRH21I5CcVtQ6D9L8Kt9PIFGvkEIBQu9NLFjcPOwKR2dMTPlbyLMbKYmgQCf8/2+ANgM6iPnV3Fox2xzV+JvEXGE+bqj7Avs2F1/n1HR7yckUU8w8bMyglXNKd/WUWKXQOJsENqldEFqlChOYATYM+v3xJvcDV/+9XLnq5Jbn0nSEKN6iqH6Ps8QI+0C5b1IH2+ldSrLKf6aXzI9XUTBlPlINMqEg5tPnrt67+hnpw+GbKJLuHV7/CnlsPibc11Ioe+89jaPXCo9O9Gkc0PjKVQVduKrLTgmYzSTdQ0GG+UAhJYtcphe79D",
            "1; BLUPR0701MB1652;\n\t6:544cUdVoUQnzOg7pW4GytNLSnEBsUH/sxwTffQ8GmLdg8JG2rsPDm4anVbDFx8/ZHxNr9lpp8rEkBX/EFhbR2oXeRVSgLRjOKGN8T/5oWim7qb98ZbZ0UuFx3SLsoxS1kSNwb6Si69z//gu6eLoyZWFVe6GTrngvhMmcf1dJlRKlxGqXa+Ub8T2Y+dVhLjRo7vHvlcXAXhLE+D1VR5ocsIihZ9nSpHv18hmU35cwu5kJ3hDlqITy1ulQr0apUtAC/fl1U+Z9Xt1unwsoUkUYCOa+5PLjtGBr8Tp9tUPOwu8hQMT8jGjsRxki6JO3aO61PC+jdj/jym4fgqImkhL+oQ5+WEN3g8DYd1vBLqLkJ8V6ppcs29n8q9GLbBBrUXgXLHH0ERMjVDJ1TqxMr780rkUovmPMWEl3/vR9qMoGDuGcr0iZ7KKnl8BpJfYE+zRc3WHmIrfzVOjwi4jplMehWw==;\n\t5:it2agkj5BKdPtSNSENm/Sd3s8Mu2LaQL51jyg0kYdYutot+JAT+sZ+YvU5HeTthcnGRRm5R3fUsBmXezml38m91i6msJNv02HkY0jRAxnWMKjnBif0RoWc/lRsBsKfQwkgmPM4+kR0w8aQWja67NCj6UE4bIAVT1VKGXX83tXW8=;\n\t7:aw5D7WLUFL+ZEs7Mkdh1V23KRJyH7A6qw2xawWw3jVykhXns0J182HEry8tjMkdnc4QQr0/+VsAc1cgFwQUhrHjHkzAlMpI4BKuqHsJRNyKXhtFb3HH2Oow6KrqFUKkrV7DXYOHC6gMpcplJ7tLkhpDXvTomF6dQTXSu/hHKrBwnJ4pGMMacKxL8S1v+Qs1HqG91M0oygl7JdqgB90DyjbNtYJnFg+HPnCVQZSjxdzN2P+Ub82f/2f+0ZvwvuVjV"
        ],
        "X-MS-TrafficTypeDiagnostic": "BLUPR0701MB1652:",
        "X-Microsoft-Antispam-PRVS": "<BLUPR0701MB16524462CA82C0300D53A55A98000@BLUPR0701MB1652.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)(5005006)(8121501046)(93006095)(93001095)(3231311)(944501410)(52105095)(10201501046)(3002001)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201708071742011)(7699050);\n\tSRVR:BLUPR0701MB1652; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1652; ",
        "X-Forefront-PRVS": "07880C4932",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(39850400004)(396003)(376002)(366004)(346002)(136003)(189003)(199004)(81156014)(81166006)(44832011)(8936002)(2351001)(486006)(106356001)(2361001)(105586002)(446003)(2906002)(50226002)(476003)(11346002)(956004)(2616005)(305945005)(7736002)(16586007)(316002)(54906003)(14444005)(16526019)(66066001)(26005)(7696005)(52116002)(8676002)(51416003)(76176011)(186003)(386003)(68736007)(478600001)(6666003)(6916009)(6486002)(5660300001)(53936002)(47776003)(4326008)(25786009)(86362001)(48376002)(50466002)(72206003)(6116002)(97736004)(36756003)(3846002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1652;\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": "MYyMQYtp8P9dEM8bmXjtXAmojkQORd8eK/sTGw2jNUbgHndWq9ty/SswzWSFwvMgH6JtUaTw5bPbB8RovADWyBAMU7RnUx2N0VniarLsLa5aE4TT8tmSkwV84yOwog3EuCBWlzGdLjeg51Kd6GHbIdyMkcFBJm2p/BkkztcwePXOxUVbzfodlX5tOWI649S5hu//cQ2ki1RVVDXlqss4mJJuzXzeTl06vmuEh9rcVySnJJSzHHjp9K6IUYcrVx7qhje5Mye8fvZqTr1sx1M4wnjgH0defSZw9RIY+BW5LOuvKkmke7UKIh7AIESo3AcQ+pMTdq83W5mRUARWehlVN4I7Xffjgq3Dhmc9pQea22M=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "aquantia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "07 Sep 2018 15:23:37.2164\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "a16f95e3-1ed5-4c48-31a5-08d614d5e2d5",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "83e2e134-991c-4ede-8ced-34d47e38e6b1",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BLUPR0701MB1652",
        "Subject": "[dpdk-dev] [PATCH 19/21] net/atlantic: device MTU and statuses",
        "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\nSigned-off-by: Igor Russkikh <igor.russkikh@aquantia.com>\n---\n drivers/net/atlantic/atl_ethdev.c | 160 ++++++++++++++++++++++++++++++++++++++\n 1 file changed, 160 insertions(+)",
    "diff": "diff --git a/drivers/net/atlantic/atl_ethdev.c b/drivers/net/atlantic/atl_ethdev.c\nindex 80b7ac88e..44cea12ab 100644\n--- a/drivers/net/atlantic/atl_ethdev.c\n+++ b/drivers/net/atlantic/atl_ethdev.c\n@@ -78,11 +78,14 @@ static int atl_dev_queue_stats_mapping_set(struct rte_eth_dev *eth_dev,\n \t\t\t\t\t     uint8_t is_rx);\n \n \n+static int atl_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size);\n static void atl_dev_info_get(struct rte_eth_dev *dev,\n \t\t\t       struct rte_eth_dev_info *dev_info);\n \n static const uint32_t *atl_dev_supported_ptypes_get(struct rte_eth_dev *dev);\n \n+static int atl_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu);\n+\n \n /* VLAN stuff */\n static int atl_vlan_filter_set(struct rte_eth_dev *dev,\n@@ -111,6 +114,9 @@ static int atl_flow_ctrl_get(struct rte_eth_dev *dev,\n \t\t\t       struct rte_eth_fc_conf *fc_conf);\n static int atl_flow_ctrl_set(struct rte_eth_dev *dev,\n \t\t\t       struct rte_eth_fc_conf *fc_conf);\n+\n+static void atl_dev_link_status_print(struct rte_eth_dev *dev);\n+\n /* Interrupts */\n static int atl_dev_rxq_interrupt_setup(struct rte_eth_dev *dev);\n static int atl_dev_lsc_interrupt_setup(struct rte_eth_dev *dev, uint8_t on);\n@@ -189,6 +195,20 @@ static struct rte_pci_driver rte_atl_pmd = {\n \t.remove = eth_atl_pci_remove,\n };\n \n+#define ATL_RX_OFFLOADS ( DEV_RX_OFFLOAD_VLAN_STRIP \\\n+\t\t\t| DEV_RX_OFFLOAD_IPV4_CKSUM \\\n+\t\t\t| DEV_RX_OFFLOAD_UDP_CKSUM \\\n+\t\t\t| DEV_RX_OFFLOAD_TCP_CKSUM \\\n+\t\t\t| DEV_RX_OFFLOAD_JUMBO_FRAME \\\n+\t\t\t| DEV_RX_OFFLOAD_CRC_STRIP)\n+\n+#define ATL_TX_OFFLOADS ( DEV_TX_OFFLOAD_VLAN_INSERT \\\n+\t\t\t| DEV_TX_OFFLOAD_IPV4_CKSUM \\\n+\t\t\t| DEV_TX_OFFLOAD_UDP_CKSUM \\\n+\t\t\t| DEV_TX_OFFLOAD_TCP_CKSUM \\\n+\t\t\t| DEV_TX_OFFLOAD_TCP_TSO \\\n+\t\t\t| DEV_TX_OFFLOAD_MULTI_SEGS)\n+\n static const struct rte_eth_desc_lim rx_desc_lim = {\n \t.nb_max = ATL_MAX_RING_DESC,\n \t.nb_min = ATL_MIN_RING_DESC,\n@@ -257,6 +277,12 @@ static const struct eth_dev_ops atl_eth_dev_ops = {\n \t.xstats_get_names     = atl_dev_xstats_get_names,\n \t.stats_reset\t      = atl_dev_stats_reset,\n \t.xstats_reset\t      = atl_dev_xstats_reset,\n+\t.fw_version_get       = atl_fw_version_get,\n+\t.dev_infos_get\t      = atl_dev_info_get,\n+\t.dev_supported_ptypes_get = atl_dev_supported_ptypes_get,\n+\n+\t.mtu_set\t      = atl_dev_mtu_set,\n+\n \t/* VLAN */\n \t.vlan_filter_set      = atl_vlan_filter_set,\n \t.vlan_offload_set     = atl_vlan_offload_set,\n@@ -657,6 +683,7 @@ atl_dev_start(struct rte_eth_dev *dev)\n \treturn 0;\n \n error:\n+\tPMD_INIT_LOG(ERR, \"failure in atl_dev_start(): %d\", err);\n \tatl_stop_queues(dev);\n \treturn -EIO;\n }\n@@ -837,6 +864,94 @@ atl_dev_xstats_reset(struct rte_eth_dev *dev __rte_unused)\n {\n \treturn;\n }\n+\n+\n+static int\n+atl_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)\n+{\n+\tstruct aq_hw_s *hw = ATL_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n+\tuint32_t fw_ver = 0;\n+\tunsigned int ret = 0;\n+\n+\tret = hw_atl_utils_get_fw_version(hw, &fw_ver);\n+\tif (ret)\n+\t\treturn 0;\n+\n+\tret = snprintf(fw_version, fw_size, \"%u.%u.%u\", fw_ver >> 24, (fw_ver >> 16) & 0xFFU, fw_ver & 0xFFFFU);\n+\n+\tret += 1; /* add string null-terminator */\n+\n+\tif (fw_size < ret)\n+\t\treturn ret;\n+\n+\treturn 0;\n+}\n+\n+static void\n+atl_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)\n+{\n+\tstruct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);\n+\n+\tdev_info->max_rx_queues = AQ_HW_MAX_RX_QUEUES;\n+\tdev_info->max_tx_queues = AQ_HW_MAX_TX_QUEUES;\n+\n+\tdev_info->min_rx_bufsize = 1024;\n+\tdev_info->max_rx_pktlen = HW_ATL_B0_MTU_JUMBO;\n+\tdev_info->max_mac_addrs = HW_ATL_B0_MAC_MAX;\n+\tdev_info->max_vfs = pci_dev->max_vfs;\n+\n+\tdev_info->max_hash_mac_addrs = 0;\n+\tdev_info->max_vmdq_pools = 0;\n+\tdev_info->vmdq_queue_num = 0;\n+\n+\tdev_info->rx_offload_capa = ATL_RX_OFFLOADS;\n+\n+\tdev_info->tx_offload_capa = ATL_TX_OFFLOADS;\n+\n+\n+\tdev_info->default_rxconf = (struct rte_eth_rxconf) {\n+\t\t.rx_free_thresh = ATL_DEFAULT_RX_FREE_THRESH,\n+\t};\n+\n+\tdev_info->default_txconf = (struct rte_eth_txconf) {\n+\t\t.tx_free_thresh = ATL_DEFAULT_TX_FREE_THRESH,\n+\t};\n+\n+\tdev_info->rx_desc_lim = rx_desc_lim;\n+\tdev_info->tx_desc_lim = tx_desc_lim;\n+\n+\tdev_info->hash_key_size = HW_ATL_B0_RSS_HASHKEY_BITS/8;\n+\tdev_info->reta_size = HW_ATL_B0_RSS_REDIRECTION_MAX;\n+\tdev_info->flow_type_rss_offloads = ATL_RSS_OFFLOAD_ALL;\n+\n+\tdev_info->speed_capa = ETH_LINK_SPEED_1G | ETH_LINK_SPEED_10G;\n+\tdev_info->speed_capa |= ETH_LINK_SPEED_100M;\n+\tdev_info->speed_capa |= ETH_LINK_SPEED_2_5G;\n+\tdev_info->speed_capa |= ETH_LINK_SPEED_5G;\n+}\n+\n+static const uint32_t *\n+atl_dev_supported_ptypes_get(struct rte_eth_dev *dev)\n+{\n+\tstatic const uint32_t ptypes[] = {\n+\t\tRTE_PTYPE_L2_ETHER,\n+\t\tRTE_PTYPE_L2_ETHER_ARP,\n+\t\tRTE_PTYPE_L2_ETHER_VLAN,\n+\t\tRTE_PTYPE_L3_IPV4,\n+\t\tRTE_PTYPE_L3_IPV6,\n+\t\tRTE_PTYPE_L4_TCP,\n+\t\tRTE_PTYPE_L4_UDP,\n+\t\tRTE_PTYPE_L4_SCTP,\n+\t\tRTE_PTYPE_L4_ICMP,\n+\t\tRTE_PTYPE_UNKNOWN\n+\t};\n+\n+\tif (dev->rx_pkt_burst == atl_recv_pkts)\n+\t\treturn ptypes;\n+\n+\treturn NULL;\n+}\n+\n /* return 0 means link status changed, -1 means not changed */\n static int\n atl_dev_link_update(struct rte_eth_dev *dev, int wait __rte_unused)\n@@ -1254,6 +1369,38 @@ atl_set_default_mac_addr(struct rte_eth_dev *dev, struct ether_addr *addr)\n \treturn 0;\n }\n \n+static bool\n+is_device_supported(struct rte_eth_dev *dev, struct rte_pci_driver *drv)\n+{\n+\tif (strcmp(dev->device->driver->name, drv->driver.name))\n+\t\treturn false;\n+\n+\treturn true;\n+}\n+\n+bool\n+is_atl_supported(struct rte_eth_dev *dev)\n+{\n+\treturn is_device_supported(dev, &rte_atl_pmd);\n+}\n+\n+static int\n+atl_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)\n+{\n+\tstruct rte_eth_dev_info dev_info;\n+\tuint32_t frame_size = mtu + ETHER_HDR_LEN + ETHER_CRC_LEN;\n+\n+\tatl_dev_info_get(dev, &dev_info);\n+\n+\tif ((mtu < ETHER_MIN_MTU) || (frame_size > dev_info.max_rx_pktlen))\n+\t\treturn -EINVAL;\n+\n+\t/* update max frame size */\n+\tdev->data->dev_conf.rxmode.max_rx_pkt_len = frame_size;\n+\n+\treturn 0;\n+}\n+\n static int\n atl_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)\n {\n@@ -1501,3 +1648,16 @@ atl_rss_hash_conf_get(struct rte_eth_dev *dev,\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\");\n+\n+RTE_INIT(atl_init_log);\n+static void\n+atl_init_log(void)\n+{\n+\tatl_logtype_init = rte_log_register(\"pmd.atlantic.init\");\n+\tif (atl_logtype_init >= 0)\n+\t\trte_log_set_level(atl_logtype_init, RTE_LOG_DEBUG);\n+\tatl_logtype_driver = rte_log_register(\"pmd.atlantic.driver\");\n+\tif (atl_logtype_driver >= 0)\n+\t\trte_log_set_level(atl_logtype_driver, RTE_LOG_DEBUG);\n+}\n+\n",
    "prefixes": [
        "19/21"
    ]
}