{"id":808243,"url":"http://patchwork.ozlabs.org/api/1.0/patches/808243/?format=json","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/1.0/projects/7/?format=json","name":"Linux network development","link_name":"netdev","list_id":"netdev.vger.kernel.org","list_email":"netdev@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<1504186749-8926-4-git-send-email-lipeng321@huawei.com>","date":"2017-08-31T13:39:04","name":"[net-next,3/8] net: hns3: set default mac vlan mask","commit_ref":null,"pull_url":null,"state":"changes-requested","archived":true,"hash":"24ef4e854e962be77eeca301487c6dc7b9f6bed4","submitter":{"id":71468,"url":"http://patchwork.ozlabs.org/api/1.0/people/71468/?format=json","name":"lipeng (Y)","email":"lipeng321@huawei.com"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/1.0/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/1504186749-8926-4-git-send-email-lipeng321@huawei.com/mbox/","series":[{"id":823,"url":"http://patchwork.ozlabs.org/api/1.0/series/823/?format=json","date":"2017-08-31T13:39:02","name":"Bug fixes & Code improvements in HNS driver","version":1,"mbox":"http://patchwork.ozlabs.org/series/823/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/808243/checks/","tags":{},"headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xjjW46xJHz9sMN\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 31 Aug 2017 23:13:52 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751822AbdHaNNc (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 31 Aug 2017 09:13:32 -0400","from szxga05-in.huawei.com ([45.249.212.191]:5070 \"EHLO\n\tszxga05-in.huawei.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751053AbdHaNLY (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Thu, 31 Aug 2017 09:11:24 -0400","from 172.30.72.60 (EHLO DGGEMS404-HUB.china.huawei.com)\n\t([172.30.72.60])\n\tby dggrg05-dlp.huawei.com (MOS 4.4.6-GA FastPath queued)\n\twith ESMTP id DGI62428; Thu, 31 Aug 2017 21:11:22 +0800 (CST)","from linux-ioko.site (10.71.200.31) by\n\tDGGEMS404-HUB.china.huawei.com (10.3.19.204) with Microsoft SMTP\n\tServer id 14.3.301.0; Thu, 31 Aug 2017 21:11:10 +0800"],"From":"Lipeng <lipeng321@huawei.com>","To":"<davem@davemloft.net>","CC":"<netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>,\n\t<linuxarm@huawei.com>, <yisen.zhuang@huawei.com>,\n\t<salil.mehta@huawei.com>, <lipeng321@huawei.com>","Subject":"[PATCH net-next 3/8] net: hns3: set default mac vlan mask","Date":"Thu, 31 Aug 2017 21:39:04 +0800","Message-ID":"<1504186749-8926-4-git-send-email-lipeng321@huawei.com>","X-Mailer":"git-send-email 1.9.1","In-Reply-To":"<1504186749-8926-1-git-send-email-lipeng321@huawei.com>","References":"<1504186749-8926-1-git-send-email-lipeng321@huawei.com>","MIME-Version":"1.0","Content-Type":"text/plain","X-Originating-IP":"[10.71.200.31]","X-CFilter-Loop":"Reflected","X-Mirapoint-Virus-RAPID-Raw":"score=unknown(0),\n\trefid=str=0001.0A020204.59A80AFA.00B9, ss=1, re=0.000, recu=0.000,\n\treip=0.000, cl=1, cld=1, fgs=0, ip=0.0.0.0,\n\tso=2014-11-16 11:51:01, dmn=2013-03-21 17:37:32","X-Mirapoint-Loop-Id":"20868a2021b2dc2599b38c04ccb5ff8b","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"Add the mask configuration of the MAC_VLAN table. Command\nHCLGE_OPC_MAC_VLAN_MASK_SET is used to add/read the mask\nconfiguration of the MAC_VLAN (u/m vlan) table. Set default mask\nas {0x00, 0x00, 0x00, 0x00, 0x00, 0x00} means that all bits of\nmac_vlan are not masked.\n\nSigned-off-by: Mingguang Qu <qumingguang@huawei.com>\nSigned-off-by: Lipeng <lipeng321@huawei.com>\n---\n .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h |  9 +++++\n .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c    | 43 +++++++++++++++++++++-\n 2 files changed, 51 insertions(+), 1 deletion(-)","diff":"diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h\nindex c2b613b..dd8e513 100644\n--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h\n+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h\n@@ -186,6 +186,7 @@ enum hclge_opcode_type {\n \tHCLGE_OPC_MAC_VLAN_INSERT\t    = 0x1003,\n \tHCLGE_OPC_MAC_ETHTYPE_ADD\t    = 0x1010,\n \tHCLGE_OPC_MAC_ETHTYPE_REMOVE\t= 0x1011,\n+\tHCLGE_OPC_MAC_VLAN_MASK_SET\t= 0x1012,\n \n \t/* Multicast linear table cmd */\n \tHCLGE_OPC_MTA_MAC_MODE_CFG\t    = 0x1020,\n@@ -575,6 +576,14 @@ struct hclge_mac_vlan_tbl_entry {\n \tu8      rsv2[6];\n };\n \n+#define HCLGE_VLAN_MASK_EN_B\t\t0x0\n+struct hclge_mac_vlan_mask_entry {\n+\tu8 rsv0[2];\n+\tu8 vlan_mask;\n+\tu8 rsv1;\n+\tu8 mac_mask[6];\n+\tu8 rsv2[14];\n+};\n #define HCLGE_CFG_MTA_MAC_SEL_S\t\t0x0\n #define HCLGE_CFG_MTA_MAC_SEL_M\t\t(0x3 << HCLGE_CFG_MTA_MAC_SEL_S)\n #define HCLGE_CFG_MTA_MAC_EN_B\t\t0x7\ndiff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c\nindex 3a8cb40..5d49856 100644\n--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c\n+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c\n@@ -2089,8 +2089,37 @@ static int hclge_get_autoneg(struct hnae3_handle *handle)\n \treturn hdev->hw.mac.autoneg;\n }\n \n+static int hclge_set_default_mac_vlan_mask(struct hclge_dev *hdev,\n+\t\t\t\t\t   bool mask_vlan,\n+\t\t\t\t\t   u8 *mac_mask)\n+{\n+\tstruct hclge_mac_vlan_mask_entry *req;\n+\tenum hclge_cmd_status status;\n+\tstruct hclge_desc desc;\n+\tint i;\n+\n+\treq = (struct hclge_mac_vlan_mask_entry *)desc.data;\n+\thclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_MAC_VLAN_MASK_SET, false);\n+\n+\thnae_set_bit(req->vlan_mask, HCLGE_VLAN_MASK_EN_B,\n+\t\t     mask_vlan);\n+\tfor (i = 0; i < ETH_ALEN; i++)\n+\t\treq->mac_mask[i] = mac_mask[i];\n+\n+\tstatus = hclge_cmd_send(&hdev->hw, &desc, 1);\n+\tif (status) {\n+\t\tdev_err(&hdev->pdev->dev,\n+\t\t\t\"Config mac_vlan_mask failed for cmd_send, ret =%d.\\n\",\n+\t\t\tstatus);\n+\t\treturn -EIO;\n+\t}\n+\n+\treturn 0;\n+}\n+\n static int hclge_mac_init(struct hclge_dev *hdev)\n {\n+\tu8 mac_mask[ETH_ALEN] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};\n \tstruct hclge_mac *mac = &hdev->hw.mac;\n \tint ret;\n \n@@ -2124,7 +2153,19 @@ static int hclge_mac_init(struct hclge_dev *hdev)\n \t\treturn ret;\n \t}\n \n-\treturn hclge_cfg_func_mta_filter(hdev, 0, hdev->accept_mta_mc);\n+\tret = hclge_cfg_func_mta_filter(hdev, 0, hdev->accept_mta_mc);\n+\tif (ret) {\n+\t\tdev_err(&hdev->pdev->dev,\n+\t\t\t\"set mta filter mode fail ret=%d\\n\", ret);\n+\t\treturn ret;\n+\t}\n+\n+\tret = hclge_set_default_mac_vlan_mask(hdev, true, mac_mask);\n+\tif (ret)\n+\t\tdev_err(&hdev->pdev->dev,\n+\t\t\t\"set default mac_vlan_mask fail ret=%d\\n\", ret);\n+\n+\treturn ret;\n }\n \n static void hclge_task_schedule(struct hclge_dev *hdev)\n","prefixes":["net-next","3/8"]}