Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2193052/?format=api
{ "id": 2193052, "url": "http://patchwork.ozlabs.org/api/patches/2193052/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260204154418.1285309-3-jakub.slepecki@intel.com/", "project": { "id": 46, "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api", "name": "Intel Wired Ethernet development", "link_name": "intel-wired-lan", "list_id": "intel-wired-lan.osuosl.org", "list_email": "intel-wired-lan@osuosl.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260204154418.1285309-3-jakub.slepecki@intel.com>", "list_archive_url": null, "date": "2026-02-04T15:44:13", "name": "[iwl-next,v4,2/7] ice: allow creating mac, vlan filters along mac filters", "commit_ref": null, "pull_url": null, "state": "under-review", "archived": false, "hash": "e93db901e1028a94d7482bb3f5348d7de662a03f", "submitter": { "id": 92132, "url": "http://patchwork.ozlabs.org/api/people/92132/?format=api", "name": "Jakub Slepecki", "email": "jakub.slepecki@intel.com" }, "delegate": { "id": 109701, "url": "http://patchwork.ozlabs.org/api/users/109701/?format=api", "username": "anguy11", "first_name": "Anthony", "last_name": "Nguyen", "email": "anthony.l.nguyen@intel.com" }, "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260204154418.1285309-3-jakub.slepecki@intel.com/mbox/", "series": [ { "id": 490998, "url": "http://patchwork.ozlabs.org/api/series/490998/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=490998", "date": "2026-02-04T15:44:12", "name": "ice: in VEB, prevent \"cross-vlan\" traffic", "version": 4, "mbox": "http://patchwork.ozlabs.org/series/490998/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2193052/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2193052/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<intel-wired-lan-bounces@osuosl.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256\n header.s=default header.b=M1VA3zPr;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4f5l622sTMz1xpg\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 05 Feb 2026 02:44:42 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id C032860DC2;\n\tWed, 4 Feb 2026 15:44:37 +0000 (UTC)", "from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id ypZaLO0qoNB7; Wed, 4 Feb 2026 15:44:35 +0000 (UTC)", "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 760A561090;\n\tWed, 4 Feb 2026 15:44:32 +0000 (UTC)", "from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\n by lists1.osuosl.org (Postfix) with ESMTP id 3B8F5F4\n for <intel-wired-lan@lists.osuosl.org>; Wed, 4 Feb 2026 15:44:27 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n by smtp1.osuosl.org (Postfix) with ESMTP id 033018032C\n for <intel-wired-lan@lists.osuosl.org>; Wed, 4 Feb 2026 15:44:27 +0000 (UTC)", "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id 8Tlw7dMmRUFu for <intel-wired-lan@lists.osuosl.org>;\n Wed, 4 Feb 2026 15:44:26 +0000 (UTC)", "from mgamail.intel.com (mgamail.intel.com [192.198.163.8])\n by smtp1.osuosl.org (Postfix) with ESMTPS id 0A16483E9A\n for <intel-wired-lan@lists.osuosl.org>; Wed, 4 Feb 2026 15:44:25 +0000 (UTC)", "from orviesa010.jf.intel.com ([10.64.159.150])\n by fmvoesa102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 04 Feb 2026 07:44:26 -0800", "from hpe-dl385gen10.igk.intel.com ([10.91.240.117])\n by orviesa010.jf.intel.com with ESMTP; 04 Feb 2026 07:44:23 -0800" ], "X-Virus-Scanned": [ "amavis at osuosl.org", "amavis at osuosl.org" ], "X-Comment": "SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=<UNKNOWN> ", "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 smtp3.osuosl.org 760A561090", "OpenDKIM Filter v2.11.0 smtp1.osuosl.org 0A16483E9A" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1770219872;\n\tbh=rB+NF6Lj31wNmcslNxJOtoJ6P4iw8UYoPZpsfE3bJaI=;\n\th=From:To:Cc:Date:In-Reply-To:References:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From;\n\tb=M1VA3zPrIrHxr6adWldv59ZpJW+iV4g56yoOhOIx6jjoM5FbcIXmd2R+Aa/9V6FOB\n\t 4zPCWV6tgOkFu7IrLry81Qw8xfdLaSrGQPwNlVc6ogdM6HgMdBC++IrdmaKwtVOcH4\n\t ub2j3XPkvWDmBuFiZg3U8rLm2tqZKZV6Jr2RKblbj32S1aT2uchtWS3+EkPkTG5U5e\n\t DCJp0BqqMtDTIQw1bTI8w/eC2u0x99BAyx4kcLQDSkF3FiXKSiLqcRqO7+CNSx+tcu\n\t 4ZD6V7yueudaURxpkCA9aSDRbU4zdZ6tGnp01J7pQyIKjmIF1Tj0IfyMcGKfFOkODw\n\t EiioV/+CmQzWw==", "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=192.198.163.8;\n helo=mgamail.intel.com; envelope-from=jakub.slepecki@intel.com;\n receiver=<UNKNOWN>", "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp1.osuosl.org 0A16483E9A", "X-CSE-ConnectionGUID": [ "c7oMCQINSxmFFfzTs3YHgw==", "6jqfFe4nRtKo1bJylNkOEA==" ], "X-CSE-MsgGUID": [ "ej25iwf/RyaMc+JxQoKsUA==", "AKljs61XQ7SXqFBlobG3LA==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6800,10657,11691\"; a=\"88987091\"", "E=Sophos;i=\"6.21,272,1763452800\"; d=\"scan'208\";a=\"88987091\"", "E=Sophos;i=\"6.21,272,1763452800\"; d=\"scan'208\";a=\"209494118\"" ], "X-ExtLoop1": "1", "From": "Jakub Slepecki <jakub.slepecki@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Cc": "linux-kernel@vger.kernel.org, netdev@vger.kernel.org,\n przemyslaw.kitszel@intel.com, anthony.l.nguyen@intel.com,\n michal.swiatkowski@linux.intel.com, jakub.slepecki@intel.com,\n aleksandr.loktionov@intel.com", "Date": "Wed, 4 Feb 2026 16:44:13 +0100", "Message-ID": "<20260204154418.1285309-3-jakub.slepecki@intel.com>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20260204154418.1285309-1-jakub.slepecki@intel.com>", "References": "<20260204154418.1285309-1-jakub.slepecki@intel.com>", "MIME-Version": "1.0", "Organization": "Intel Technology Poland sp. z o.o. - ul. Slowackiego 173,\n 80-298 Gdansk - KRS 101882 - NIP 957-07-52-316", "Content-Transfer-Encoding": "8bit", "X-Mailman-Original-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1770219866; x=1801755866;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=JWmvUqaxGBDpmxTflwTsgJtVOJVahu8eyBgHP2/Rcdo=;\n b=LE6/xRd6KnwS4BIC3dG0IiWxf0uJUkQYZ1a24hgPxh9ynzh85C3UpRPR\n J08gK9XuCFC4+pOrCgq59KcNv6zzAPXz6dIdr7GkeUg540Lssal79Y+o1\n sf+XR1+Cg2fclaWo1wMUK48tq7XWpFe7+q9iDo5iYTT4f3iQ4/HEczu6m\n 2k2LRrExMXwLeV1tMtE4SbZxxK5z68s3nDfl1d6ikSgodrqvNQ3q6IP7q\n 8+2Qr/5C4+x0R+DJg+1teQXl6oundqwGZxEKpTxwBqL91ovxM3tKi063C\n daMub3zyvnEWhZFSv/Kvg1Ys/leX9kueKlVLlWEceM2MvcSrkWJSG0lqx\n Q==;", "X-Mailman-Original-Authentication-Results": [ "smtp1.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=intel.com", "smtp1.osuosl.org;\n dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.a=rsa-sha256 header.s=Intel header.b=LE6/xRd6" ], "Subject": "[Intel-wired-lan] [PATCH iwl-next v4 2/7] ice: allow creating mac,\n vlan filters along mac filters", "X-BeenThere": "intel-wired-lan@osuosl.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n <intel-wired-lan.osuosl.org>", "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>", "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>", "List-Post": "<mailto:intel-wired-lan@osuosl.org>", "List-Help": "<mailto:intel-wired-lan-request@osuosl.org?subject=help>", "List-Subscribe": "<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>", "Errors-To": "intel-wired-lan-bounces@osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>" }, "content": "Among other uses, MAC filters are currently used to forward loopback\ntraffic between VSIs. However, they only match destination MAC addresses\nmaking them prone to mistakes when handling traffic within multiple\nVLANs and especially across the boundaries.\n\nAllows the driver to create MAC,VLAN filters in the same flow as\nMAC-only filters completely interchangeably. This is intended to be\nused to forward the loopback traffic only within the boundaries of\nparticular VLANs.\n\nReviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>\nReviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>\nSigned-off-by: Jakub Slepecki <jakub.slepecki@intel.com>\n\n---\nNo changes in v4.\nNo changes in v3.\nNo changes in v2.\n---\n drivers/net/ethernet/intel/ice/ice_switch.c | 48 ++++++++++++++++-----\n 1 file changed, 38 insertions(+), 10 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/ice/ice_switch.c b/drivers/net/ethernet/intel/ice/ice_switch.c\nindex 84848f0123e7..0275e2910c6b 100644\n--- a/drivers/net/ethernet/intel/ice/ice_switch.c\n+++ b/drivers/net/ethernet/intel/ice/ice_switch.c\n@@ -3606,6 +3606,29 @@ bool ice_vlan_fltr_exist(struct ice_hw *hw, u16 vlan_id, u16 vsi_handle)\n \treturn false;\n }\n \n+/**\n+ * ice_fltr_mac_address - Find MAC in filter\n+ * @dst: output MAC address\n+ * @info: information struct for the filter in question\n+ *\n+ * Return: 0 for success, %-ENXIO if no address was found in the filter\n+ * information.\n+ */\n+static\n+int ice_fltr_mac_address(u8 *dst, struct ice_fltr_info *info)\n+{\n+\tswitch (info->lkup_type) {\n+\tcase ICE_SW_LKUP_MAC:\n+\t\tether_addr_copy(dst, info->l_data.mac.mac_addr);\n+\t\treturn 0;\n+\tcase ICE_SW_LKUP_MAC_VLAN:\n+\t\tether_addr_copy(dst, info->l_data.mac_vlan.mac_addr);\n+\t\treturn 0;\n+\tdefault:\n+\t\treturn -ENXIO;\n+\t}\n+}\n+\n /**\n * ice_add_mac - Add a MAC address based filter rule\n * @hw: pointer to the hardware structure\n@@ -3614,16 +3637,19 @@ bool ice_vlan_fltr_exist(struct ice_hw *hw, u16 vlan_id, u16 vsi_handle)\n int ice_add_mac(struct ice_hw *hw, struct list_head *m_list)\n {\n \tstruct ice_fltr_list_entry *m_list_itr;\n-\tint status = 0;\n+\tint err;\n \n \tif (!m_list || !hw)\n \t\treturn -EINVAL;\n \n \tlist_for_each_entry(m_list_itr, m_list, list_entry) {\n-\t\tu8 *add = &m_list_itr->fltr_info.l_data.mac.mac_addr[0];\n+\t\tu8 addr[ETH_ALEN];\n \t\tu16 vsi_handle;\n \t\tu16 hw_vsi_id;\n \n+\t\terr = ice_fltr_mac_address(addr, &m_list_itr->fltr_info);\n+\t\tif (err || is_zero_ether_addr(addr))\n+\t\t\treturn -EINVAL;\n \t\tm_list_itr->fltr_info.flag = ICE_FLTR_TX;\n \t\tvsi_handle = m_list_itr->fltr_info.vsi_handle;\n \t\tif (!ice_is_vsi_valid(hw, vsi_handle))\n@@ -3634,17 +3660,19 @@ int ice_add_mac(struct ice_hw *hw, struct list_head *m_list)\n \t\tif (m_list_itr->fltr_info.src_id != ICE_SRC_ID_VSI)\n \t\t\treturn -EINVAL;\n \t\tm_list_itr->fltr_info.src = hw_vsi_id;\n-\t\tif (m_list_itr->fltr_info.lkup_type != ICE_SW_LKUP_MAC ||\n-\t\t is_zero_ether_addr(add))\n+\t\tif (m_list_itr->fltr_info.lkup_type != ICE_SW_LKUP_MAC &&\n+\t\t m_list_itr->fltr_info.lkup_type != ICE_SW_LKUP_MAC_VLAN)\n \t\t\treturn -EINVAL;\n \n-\t\tm_list_itr->status = ice_add_rule_internal(hw, ICE_SW_LKUP_MAC,\n-\t\t\t\t\t\t\t m_list_itr);\n+\t\tm_list_itr->status =\n+\t\t\tice_add_rule_internal(hw,\n+\t\t\t\t\t m_list_itr->fltr_info.lkup_type,\n+\t\t\t\t\t m_list_itr);\n \t\tif (m_list_itr->status)\n \t\t\treturn m_list_itr->status;\n \t}\n \n-\treturn status;\n+\treturn 0;\n }\n \n /**\n@@ -4055,7 +4083,7 @@ int ice_remove_mac(struct ice_hw *hw, struct list_head *m_list)\n \t\tenum ice_sw_lkup_type l_type = list_itr->fltr_info.lkup_type;\n \t\tu16 vsi_handle;\n \n-\t\tif (l_type != ICE_SW_LKUP_MAC)\n+\t\tif (l_type != ICE_SW_LKUP_MAC && l_type != ICE_SW_LKUP_MAC_VLAN)\n \t\t\treturn -EINVAL;\n \n \t\tvsi_handle = list_itr->fltr_info.vsi_handle;\n@@ -4066,7 +4094,7 @@ int ice_remove_mac(struct ice_hw *hw, struct list_head *m_list)\n \t\t\t\t\tice_get_hw_vsi_num(hw, vsi_handle);\n \n \t\tlist_itr->status = ice_remove_rule_internal(hw,\n-\t\t\t\t\t\t\t ICE_SW_LKUP_MAC,\n+\t\t\t\t\t\t\t l_type,\n \t\t\t\t\t\t\t list_itr);\n \t\tif (list_itr->status)\n \t\t\treturn list_itr->status;\n@@ -4507,6 +4535,7 @@ ice_remove_vsi_lkup_fltr(struct ice_hw *hw, u16 vsi_handle,\n \n \tswitch (lkup) {\n \tcase ICE_SW_LKUP_MAC:\n+\tcase ICE_SW_LKUP_MAC_VLAN:\n \t\tice_remove_mac(hw, &remove_list_head);\n \t\tbreak;\n \tcase ICE_SW_LKUP_VLAN:\n@@ -4516,7 +4545,6 @@ ice_remove_vsi_lkup_fltr(struct ice_hw *hw, u16 vsi_handle,\n \tcase ICE_SW_LKUP_PROMISC_VLAN:\n \t\tice_remove_promisc(hw, lkup, &remove_list_head);\n \t\tbreak;\n-\tcase ICE_SW_LKUP_MAC_VLAN:\n \tcase ICE_SW_LKUP_ETHERTYPE:\n \tcase ICE_SW_LKUP_ETHERTYPE_MAC:\n \tcase ICE_SW_LKUP_DFLT:\n", "prefixes": [ "iwl-next", "v4", "2/7" ] }