get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 44408,
    "url": "http://patches.dpdk.org/api/patches/44408/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1536333719-32155-14-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-14-git-send-email-igor.russkikh@aquantia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1536333719-32155-14-git-send-email-igor.russkikh@aquantia.com",
    "date": "2018-09-07T15:21:51",
    "name": "[13/21] net/atlantic: MAC address manipulations",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "87995c51d165c734250c5d93c820cbc041fdc7b1",
    "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-14-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/44408/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/44408/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 6ED595F35;\n\tFri,  7 Sep 2018 17:23:46 +0200 (CEST)",
            "from NAM03-BY2-obe.outbound.protection.outlook.com\n\t(mail-by2nam03on0046.outbound.protection.outlook.com [104.47.42.46])\n\tby dpdk.org (Postfix) with ESMTP id DD83258CB\n\tfor <dev@dpdk.org>; Fri,  7 Sep 2018 17:23:28 +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:25 +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=FV9q4Phj+tSLBGi+Mtfe1/MFwqaoWweskeFC0JC9wQA=;\n\tb=O8spLUzNs+DYQZWB1VaBU1HT9P/VZ0yxgipG7A1aZs/ghYP7PVY1dPPJeGHAeDIfSoN4Y+taXHLVHmVPdua/N7dhsZBfhLTXuPtzhcdZSHAMx3YxgKEo4b425dIjp4UG4IWhnqa77+KZbRPm85smmcaXyLzUhAkS52kPtIXPt0c=",
        "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:51 +0300",
        "Message-Id": "<1536333719-32155-14-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": "c8bb89fd-e22a-4c09-a87c-08d614d5dbe6",
        "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:GMh6erutQh0rCGeWV3lP0FTtTMOIONstsEgc4VcrPUBHH5FVkQLFhcg5POfHRzhUf8bE2/J7pmx5tqa/qVt9aTzIdlMzbXKMPgOfggo0rLEReI9Wm1SnWcymchg6L5QTzT3NgNtOW6WxDJWz/4v+v62GjeyJ8Al3hLJ9C4VqkH2Pe1kmU32mLpyLcZ6B3NMCI4IXQ0/C1YFgO736Zy5qN5Kvj1GJBZX96GMCnzAg56IYA9LCRkRQEKdTSeNFdiJ3;\n\t25:yR3Ovv7bvcxrTAsS9mHz7Q660uNAQa/o+BvZf+bT/rn+hCumIJZw94u0chuHk0JG4VqVGvt1xMKTLBrIMITyHS4wRKTI4Ab9XNFJbuc8KFmPm4zVTjQi7dlNbk5Rf0rg2cnespkHEXUXQPQIRK4N9znC7uuRlDa1ak7pbcubcf937PjiOlmNB+iVaVWdgxJgaElVzQTkSgU0Xn1kHXAwA8Oj/yW4h+qQFZWRV9ZglwR0Py5tSmjsQTA6NIb7BL84eP8AWfgVnWeQywY5aWNoCsFPFixBxL7zHVoNwbbWreeUk/5C4coXtfkP57DYpOzY1AmmMZVs7p0BOJ023WQxeQ==;\n\t31:BQbwEx9x7hYEl0nFuUh3ZIj1tGm+AUhbNZPQsfH291S8e1yMlGFhb8Jj1wem7VpEhNDRKYSnlJp6FjK0Bwt0GRx6x9EM43bblFL7Ewfh0+CZHS3LsusPVZX3GhfGcgoVIYI5OehZ4brOIcy61B4SiT2CyjCsJfbvVlx5etU3KihW5mJTKAXuoJV/3fDOfrP4/9NJvSsmPCLjy+WL39LxaT44Du7NlfbZldwOmx4wiWw=",
            "1; BLUPR0701MB1652;\n\t20:Se7uNRS9ONj4RDOXWXxqUj/bUiFT7nL3qlPM0G+u3Vbemo+z9OTDT3VkvWQHi4s1WxzuSQza3grL79+g/N2sWBzJTuE1LBKXJpDpabBVc9RVLiyfjQL/WTNpMqeCUKBUiIST4xnVRjvOr288h9hI6N0HUhqADpdErNuNMcPaT86GKLKUXi7n9GaY1qRQlaQbgcdlsZjj+zSLyCGXtD+IAYY13VeHofEcIeSBmSeUgUl1JDZcvLL5sOMbEh+vIzDxiIvyaQEFIa6upJXWX3dAc7jOX97qvhC5TA5Q1w+Go0ObFzYtVwxLsfGyUNX2aSYMv/cyP5SuFuimI9U53GWXiJxV6Fs3ArhKTZQoC3cVVvIF6Y+RuDYzbM6xbk1pC9g7sX8usDwSBTmqwGpp3Oa8W08I3hVCNR/c2Qcv150oeW2NS9mNONUQdikLQ+11/3s0eaYdaqaKoastGsRT3h9T8iHXGVox5uDbWQtWPIoWbWmY2vHQEXlCA3BxmNtbphiD;\n\t4:BcLYR2Z8iciy3DLA/vSfGkJW68IIKzxGtRO00GY0TYxJG9cH0JhGgPDMed7z0nOp5pWTKY/HBY9/XME0GlANH4CdSrca2zyvIMSEAOjaPvY9hxg6uWiKGaDLlC9KoE5Pu/N+U8A4UMhghtRMNoVtvi3WcFjU1mrcG0epZj1eRFv2SyNn/Zkl2KvjVrsZ1Div63O5riSbCiLhNy4h9f9xF2T+4M+GzQMSHVCl1RsZhOsYH2ONc+6hwA+a+X3tRb0E0Uh6dLeyD/xtjtxfkKI6KA==",
            "=?us-ascii?Q?1; BLUPR0701MB1652;\n\t23:8lwBktkyZXJA0CrGF2snp/L6/p5+d903cs4AP2k?=\n\tI+kIpQTSFMawkPJYMgs/INR2zQz7uNtCXy7pSfkCAKkQueFQe1YWkOpCmK5/09YPZ4cSjkK4FRE0jba/m8LmTENxa+p08J91rwSvnazbjxUR+bjh8c00HrblzneZCccIV98z30rUglGPsVAzyCYxEzqFu8pRi6YQY1SDmhqWuwxmKUF/ZUX1m6w+sM2FdEVWuJmQRiYrtRV59G8dnXq3yi/CaDGeJ7HmhBTKpIi2SIsDktA0/ZdG5H4nNK1ZOnzghb0a92COyDc8WWuWAAbgupU63r820HuTVPfI4wLv3LjSEoc30AaLBEnAw6mdbxT+8Uy/secXVNsU8p79NUuNHD4dHm9BUTs2wjvktZIdQB+ck5q5TDMmG1pJ8u2HwvptKD3Duptxgjq0jq3pD/1ISJxGD7kbvsBxlAQECIeZ5hnDUEMXvgAvn7N/6QjDtjWkluf3q6HaJvMzr/QmvUNH9SVP/h2LH1lMYtSBS+NTzLXb5kdHqr7hONoe+ynPW/WUFBJ6i+z9v1qYv1UhrRFv5/yy8wGtg396Eyb61HWFH0nrlzMv7dvDyFQtUljcNl78RsSGYLPLAOfRsQ48/clKd53TN4AMusbQqtCf6QHoQyDFDcsHHjCzZoOfr6viPIHihxzrOSWKi7S+0LqwfzFY9jcBdFzD3f1isWYs65xcMoWlhLal9o9C2hEEfrdY+T7jx3EijwJCrV2ch0GqWCkuHndK2ylneZ4oHNhj6U9huod3Smp58yhkwq0TUPKgBssURDoxDS7JPUvdsjR6XsaqesPKaLIcA3vyvrEsL4ABpnEm7+7NOP0aLOcxSOq1mMxZpsBxM5u6C+yAwGnCVK3qVAAAIdlVPHnigjAjVJaDK5jId40uio3mHZhgbf+WuRvsyeTYNflDBHP+bLx+PhScxAIKX3u8P9mqi7V2H3Ha2Nf1avU42AggT3cs21WlpXIjkViTSBmnvqe78dFNLeBEqyjbFu4DtxgQezLe/W/dGZXo7oAD8ZySo2oJmM4b+ronLsS6TYx+nWigk76KcaK6s85o4S+mHZhDTTrDNsUJLFlo/PU2TVo3u6yugtcSwrX2S15PxkzF5ZW3uPpN5h98CmyRkw+Pe3wf3D2utnvXTg9YNGE24g7OaYcYqMzpGccl0tQmZOybz2URqJCdNOw2VAlXg7Jv+c/5mLGmQPDco8ZmWX23mvWCeY7Wr34ZOS8svipet8gzhBAu+6wN6aFrSc9VvZCiQUGbA4CEuaYO5xHFOW2rxUoDMxg1ndHlZ7GDayFA=",
            "1; BLUPR0701MB1652;\n\t6:qaS/uEegp7JcW9/keKTbpZ7lMOEpTYRbA5H0ulQ3/al4rXMAz4TE/0txKBuxGWjeUlqdLwoUC8MtPVojRzvdONXE2wGV3avxmwMHovFpCBiCkhndO15IVOdqDaKUynIfA4jS647BEsxeSlO3SQpt0Io6d+OdNc/C9PHDFfDnE0/lh4q9H7/fbAcDe2mW0+mKNCZpeVeMJy/u9i9UyEHY73ACChC5CFMsDll7HT6I46+dvKQ4H79Zg5yVWfblC1pNRRjO2Th6n76l2ql8ojDqyvY2LDQKYBt13eRyg1LySQxeNIYDVrxClKMhDIcFpQquZ8IKd4Y3fAXQ40ePxYE1kQQf14SInRQoJ4fL3o94Mm+nlvHuYQcHXlYr8oyZgtKvYrlvVHX6eIalfMN3tgixcYGv2cigtGRIdU3qkhmXMUtzQCMogtRAQmS8ZFKjUbl9w1+vSFQFNm+KvcW6koKTdA==;\n\t5:OAPurBiB1HqsFA8zGnLaOpOts0paVeQsPjWr2WHomwyRDSusiEkwdq8nMvVrJsrQQT/YYCEiKX12Vj99qDZoer0iZWmNOlzUPz+QGbOlJKOrpZpfafhEV5cFgnbFOrMknrtokQW74s0IKzKlgyYwt04JUz+ue9KLtmZj3Q8fvm4=;\n\t7:luDiM+NxpFW8EGWbUJTKW5fm7xrsHe75HCGqidL1+nNAfN/hgniIFSe5/Kcbtrh3UyB0aLQsuhNgpP3DYGAecC0613Ft0yVth/4GIMSav2lzDYC2DsJ3Cj4ptrehBU/jTuoJxbvenMh8Du7O4ZwZ3EIiiKHlHmfxmXD+7wNQtMpy/lJMNgAw1V+vrYkg8EuTZwFfEqHoTBWvRxOTTfCB35li7VwpDjsQd34B8W4itJz27yJwIdZv21p6U/YE7zJN"
        ],
        "X-MS-TrafficTypeDiagnostic": "BLUPR0701MB1652:",
        "X-Microsoft-Antispam-PRVS": "<BLUPR0701MB16525F55F7490686731D322C98000@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)(575784001)(72206003)(6116002)(97736004)(36756003)(3846002)(309714004);\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": "bhTeywxOjHL9OOY43IKwpAdwiwQjt3IBF9eyUszF7SN9D0N8nwGIGfdHLUpK9LPOHPSJ+otVYb4LJxbnfp/LPXsR/q+oqZhjrbDxBZ5oeMVxNwzC0UuaPGsNyn97Gjqguo6kY1VcAgEQoENzXe4DEQLD0Ix5Z2HikSRkRLz/xvDP+xLGoUv2+1HC7fB/hADMTvxbCWtABxYPjewzNaNNP6fG3RF7IXeG6PpUhG0nO3OjndpLIlM4BzVSj3Qo3A99hFHP9fwcJOa5g26AylGlgPNc9gWOaFLBrly8JlT1abUZNzSDeReSUcmCIcI/aFhAoKH7rh8OHXp02/7G0UQLEKSbEfbR3P8PfcTgjs4FqM4=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "aquantia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "07 Sep 2018 15:23:25.6009\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "c8bb89fd-e22a-4c09-a87c-08d614d5dbe6",
        "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 13/21] net/atlantic: MAC address manipulations",
        "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 | 101 ++++++++++++++++++++++++++++++++++++++\n 1 file changed, 101 insertions(+)",
    "diff": "diff --git a/drivers/net/atlantic/atl_ethdev.c b/drivers/net/atlantic/atl_ethdev.c\nindex a95dc87fd..24c3a0cf3 100644\n--- a/drivers/net/atlantic/atl_ethdev.c\n+++ b/drivers/net/atlantic/atl_ethdev.c\n@@ -80,6 +80,18 @@ static int atl_dev_interrupt_action(struct rte_eth_dev *dev,\n static void atl_dev_interrupt_handler(void *param);\n \n \n+static int atl_add_mac_addr(struct rte_eth_dev *dev, struct ether_addr *mac_addr,\n+\t\t\t uint32_t index, uint32_t pool);\n+static void atl_remove_mac_addr(struct rte_eth_dev *dev, uint32_t index);\n+static int atl_set_default_mac_addr(struct rte_eth_dev *dev,\n+\t\t\t\t\t   struct ether_addr *mac_addr);\n+static bool is_device_supported(struct rte_eth_dev *dev,\n+\t\t\t\tstruct rte_pci_driver *drv);\n+\n+static int atl_dev_set_mc_addr_list(struct rte_eth_dev *dev,\n+\t\t\t\t    struct ether_addr *mc_addr_set,\n+\t\t\t\t    uint32_t nb_mc_addr);\n+\n /* RSS */\n static int atl_reta_update(struct rte_eth_dev *dev,\n \t\t\t     struct rte_eth_rss_reta_entry64 *reta_conf,\n@@ -166,6 +178,12 @@ static const struct eth_dev_ops atl_eth_dev_ops = {\n \t/* Flow Control */\n \t.flow_ctrl_get\t      = atl_flow_ctrl_get,\n \t.flow_ctrl_set\t      = atl_flow_ctrl_set,\n+\n+\t/* MAC */\n+\t.mac_addr_add\t      = atl_add_mac_addr,\n+\t.mac_addr_remove      = atl_remove_mac_addr,\n+\t.mac_addr_set\t      = atl_set_default_mac_addr,\n+\t.set_mc_addr_list     = atl_dev_set_mc_addr_list,\n \t.reta_update          = atl_reta_update,\n \t.reta_query           = atl_reta_query,\n \t.rss_hash_update      = atl_rss_hash_update,\n@@ -867,6 +885,89 @@ atl_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)\n }\n \n static int\n+atl_update_mac_addr(struct rte_eth_dev *dev, uint32_t index, u8 *mac_addr, bool enable)\n+{\n+\tstruct aq_hw_s *hw = ATL_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n+\tunsigned int h = 0U;\n+\tunsigned int l = 0U;\n+\tint err;\n+\n+\tif (mac_addr) {\n+\t\th = (mac_addr[0] << 8) | (mac_addr[1]);\n+\t\tl = (mac_addr[2] << 24) | (mac_addr[3] << 16) | (mac_addr[4] << 8) | mac_addr[5];\n+\t}\n+\n+\thw_atl_rpfl2_uc_flr_en_set(hw, 0U, index);\n+\thw_atl_rpfl2unicast_dest_addresslsw_set(hw, l, index);\n+\thw_atl_rpfl2unicast_dest_addressmsw_set(hw, h, index);\n+\n+\tif (enable)\n+\t\thw_atl_rpfl2_uc_flr_en_set(hw, 1U, index);\n+\n+\terr = aq_hw_err_from_flags(hw);\n+\n+\treturn err;\n+}\n+\n+static int\n+atl_add_mac_addr(struct rte_eth_dev *dev, struct ether_addr *mac_addr,\n+\t\t\tuint32_t index __rte_unused, uint32_t pool __rte_unused)\n+{\n+\tif (is_zero_ether_addr(mac_addr)) {\n+\t\tPMD_DRV_LOG(ERR, \"Invalid Ethernet Address\");\n+\t\treturn -EINVAL;\n+\t}\n+\n+\treturn atl_update_mac_addr(dev, index, (u8*)mac_addr, TRUE);\n+}\n+\n+static void\n+atl_remove_mac_addr(struct rte_eth_dev *dev, uint32_t index)\n+{\n+\tatl_update_mac_addr(dev, index, NULL, FALSE);\n+}\n+\n+static int\n+atl_set_default_mac_addr(struct rte_eth_dev *dev, struct ether_addr *addr)\n+{\n+\tatl_remove_mac_addr(dev, 0);\n+\tatl_add_mac_addr(dev, addr, 0, 0);\n+\treturn 0;\n+}\n+\n+\n+static int\n+atl_dev_set_mc_addr_list(struct rte_eth_dev *dev,\n+\t\t\t  struct ether_addr *mc_addr_set,\n+\t\t\t  uint32_t nb_mc_addr)\n+{\n+\tstruct aq_hw_s *hw = ATL_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n+\tu32 i;\n+\n+\tif (nb_mc_addr > AQ_HW_MULTICAST_ADDRESS_MAX - HW_ATL_B0_MAC_MIN)\n+\t\treturn -EINVAL;\n+\n+\t/* Update whole uc filters table */\n+\tfor (i =0; i < AQ_HW_MULTICAST_ADDRESS_MAX - HW_ATL_B0_MAC_MIN; i++) {\n+\t\tu8 *mac_addr = NULL;\n+\t\tu32 l = 0, h = 0;\n+\n+\t\tif (i < nb_mc_addr) {\n+\t\t\tmac_addr = mc_addr_set[i].addr_bytes;\n+\t\t\tl = (mac_addr[2] << 24) | (mac_addr[3] << 16) | (mac_addr[4] << 8) | mac_addr[5];\n+\t\t\th = (mac_addr[0] << 8) | mac_addr[1];\n+\t\t}\n+\n+\t\thw_atl_rpfl2_uc_flr_en_set(hw, 0U, HW_ATL_B0_MAC_MIN + i);\n+\t\thw_atl_rpfl2unicast_dest_addresslsw_set(hw, l, HW_ATL_B0_MAC_MIN + i);\n+\t\thw_atl_rpfl2unicast_dest_addressmsw_set(hw, h, HW_ATL_B0_MAC_MIN + i);\n+\t\thw_atl_rpfl2_uc_flr_en_set(hw, !!mac_addr, HW_ATL_B0_MAC_MIN + i);\n+\t}\n+\n+\treturn 0;\n+}\n+\n+static int\n atl_reta_update(struct rte_eth_dev *dev,\n \t\t   struct rte_eth_rss_reta_entry64 *reta_conf,\n \t\t   uint16_t reta_size)\n",
    "prefixes": [
        "13/21"
    ]
}