From: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
To: intel-wired-lan@lists.osuosl.org
Cc: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Subject: [PATCH iwl-next v1 1/2] ice: extend tc flags field to u64
Date: Tue, 6 Oct 2026 12:47:03 +0200 [thread overview]
Message-ID: <20261006104704.3584666-2-michal.swiatkowski@linux.intel.com> (raw)
In-Reply-To: <20261006104704.3584666-1-michal.swiatkowski@linux.intel.com>
There is no more space for tc flags. Change u32 to u64. Use BIT_ULL
instead of BIT.
Assisted-by: Copilot:claude-opus-5
Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
---
drivers/net/ethernet/intel/ice/ice_main.c | 2 +-
drivers/net/ethernet/intel/ice/ice_tc_lib.c | 16 ++---
drivers/net/ethernet/intel/ice/ice_tc_lib.h | 66 ++++++++++-----------
3 files changed, 42 insertions(+), 42 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index ff2d6d4f942a..005fb77ef7fd 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -8973,7 +8973,7 @@ static void ice_rem_all_chnl_fltrs(struct ice_pf *pf)
} else if (fltr->dest_vsi) {
/* update advanced switch filter count */
if (fltr->dest_vsi->type == ICE_VSI_CHNL) {
- u32 flags = fltr->flags;
+ u64 flags = fltr->flags;
fltr->dest_vsi->num_chnl_fltr--;
if (flags & (ICE_TC_FLWR_FIELD_DST_MAC |
diff --git a/drivers/net/ethernet/intel/ice/ice_tc_lib.c b/drivers/net/ethernet/intel/ice/ice_tc_lib.c
index 628b2184df00..560d939b2008 100644
--- a/drivers/net/ethernet/intel/ice/ice_tc_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_tc_lib.c
@@ -16,7 +16,7 @@
*
* Return: lookup count based on TC flower input for a switch filter.
*/
-static int ice_tc_count_lkups(u32 flags, struct ice_tc_flower_fltr *fltr)
+static int ice_tc_count_lkups(u64 flags, struct ice_tc_flower_fltr *fltr)
{
int lkups_cnt = 1; /* 0th lookup is metadata */
@@ -182,7 +182,7 @@ static u16 ice_check_supported_vlan_tpid(u16 vlan_tpid)
}
static int
-ice_tc_fill_tunnel_outer(u32 flags, struct ice_tc_flower_fltr *fltr,
+ice_tc_fill_tunnel_outer(u64 flags, struct ice_tc_flower_fltr *fltr,
struct ice_adv_lkup_elem *list, int i)
{
struct ice_tc_flower_lyr_2_4_hdrs *hdr = &fltr->outer_headers;
@@ -369,7 +369,7 @@ ice_tc_fill_tunnel_outer(u32 flags, struct ice_tc_flower_fltr *fltr,
* advance filter in hardware.
*/
static int
-ice_tc_fill_rules(struct ice_hw *hw, u32 flags,
+ice_tc_fill_rules(struct ice_hw *hw, u64 flags,
struct ice_tc_flower_fltr *tc_fltr,
struct ice_adv_lkup_elem *list,
struct ice_adv_rule_info *rule_info,
@@ -932,7 +932,7 @@ ice_eswitch_add_tc_fltr(struct ice_vsi *vsi, struct ice_tc_flower_fltr *fltr)
struct ice_rule_query_data rule_added;
struct ice_hw *hw = &vsi->back->hw;
struct ice_adv_lkup_elem *list;
- u32 flags = fltr->flags;
+ u64 flags = fltr->flags;
int lkups_cnt;
int ret;
int i;
@@ -1161,7 +1161,7 @@ ice_add_tc_flower_adv_fltr(struct ice_vsi *vsi,
struct ice_adv_lkup_elem *list;
struct ice_pf *pf = vsi->back;
struct ice_hw *hw = &pf->hw;
- u32 flags = tc_fltr->flags;
+ u64 flags = tc_fltr->flags;
struct ice_vsi *dest_vsi;
struct device *dev;
u16 lkups_cnt = 0;
@@ -1279,19 +1279,19 @@ ice_add_tc_flower_adv_fltr(struct ice_vsi *vsi,
}
switch (tc_fltr->action.fltr_act) {
case ICE_FWD_TO_VSI:
- dev_dbg(dev, "added switch rule (lkups_cnt %u, flags 0x%x), action is forward to TC %u, rid %u, rule_id %u, vsi_idx %u\n",
+ dev_dbg(dev, "added switch rule (lkups_cnt %u, flags 0x%llx), action is forward to TC %u, rid %u, rule_id %u, vsi_idx %u\n",
lkups_cnt, flags,
tc_fltr->action.fwd.tc.tc_class, rule_added.rid,
rule_added.rule_id, rule_added.vsi_handle);
break;
case ICE_FWD_TO_Q:
- dev_dbg(dev, "added switch rule (lkups_cnt %u, flags 0x%x), action is forward to queue: %u (HW queue %u) , rid %u, rule_id %u\n",
+ dev_dbg(dev, "added switch rule (lkups_cnt %u, flags 0x%llx), action is forward to queue: %u (HW queue %u) , rid %u, rule_id %u\n",
lkups_cnt, flags, tc_fltr->action.fwd.q.queue,
tc_fltr->action.fwd.q.hw_queue, rule_added.rid,
rule_added.rule_id);
break;
case ICE_DROP_PACKET:
- dev_dbg(dev, "added switch rule (lkups_cnt %u, flags 0x%x), action is drop, rid %u, rule_id %u\n",
+ dev_dbg(dev, "added switch rule (lkups_cnt %u, flags 0x%llx), action is drop, rid %u, rule_id %u\n",
lkups_cnt, flags, rule_added.rid, rule_added.rule_id);
break;
default:
diff --git a/drivers/net/ethernet/intel/ice/ice_tc_lib.h b/drivers/net/ethernet/intel/ice/ice_tc_lib.h
index 47444b7dadd2..234cc9bafc41 100644
--- a/drivers/net/ethernet/intel/ice/ice_tc_lib.h
+++ b/drivers/net/ethernet/intel/ice/ice_tc_lib.h
@@ -7,38 +7,38 @@
#include <linux/bits.h>
#include <net/pfcp.h>
-#define ICE_TC_FLWR_FIELD_DST_MAC BIT(0)
-#define ICE_TC_FLWR_FIELD_SRC_MAC BIT(1)
-#define ICE_TC_FLWR_FIELD_VLAN BIT(2)
-#define ICE_TC_FLWR_FIELD_DEST_IPV4 BIT(3)
-#define ICE_TC_FLWR_FIELD_SRC_IPV4 BIT(4)
-#define ICE_TC_FLWR_FIELD_DEST_IPV6 BIT(5)
-#define ICE_TC_FLWR_FIELD_SRC_IPV6 BIT(6)
-#define ICE_TC_FLWR_FIELD_DEST_L4_PORT BIT(7)
-#define ICE_TC_FLWR_FIELD_SRC_L4_PORT BIT(8)
-#define ICE_TC_FLWR_FIELD_TENANT_ID BIT(9)
-#define ICE_TC_FLWR_FIELD_ENC_DEST_IPV4 BIT(10)
-#define ICE_TC_FLWR_FIELD_ENC_SRC_IPV4 BIT(11)
-#define ICE_TC_FLWR_FIELD_ENC_DEST_IPV6 BIT(12)
-#define ICE_TC_FLWR_FIELD_ENC_SRC_IPV6 BIT(13)
-#define ICE_TC_FLWR_FIELD_ENC_DEST_L4_PORT BIT(14)
-#define ICE_TC_FLWR_FIELD_ENC_SRC_L4_PORT BIT(15)
-#define ICE_TC_FLWR_FIELD_ENC_DST_MAC BIT(16)
-#define ICE_TC_FLWR_FIELD_ETH_TYPE_ID BIT(17)
-#define ICE_TC_FLWR_FIELD_GTP_OPTS BIT(18)
-#define ICE_TC_FLWR_FIELD_CVLAN BIT(19)
-#define ICE_TC_FLWR_FIELD_PPPOE_SESSID BIT(20)
-#define ICE_TC_FLWR_FIELD_PPP_PROTO BIT(21)
-#define ICE_TC_FLWR_FIELD_IP_TOS BIT(22)
-#define ICE_TC_FLWR_FIELD_IP_TTL BIT(23)
-#define ICE_TC_FLWR_FIELD_ENC_IP_TOS BIT(24)
-#define ICE_TC_FLWR_FIELD_ENC_IP_TTL BIT(25)
-#define ICE_TC_FLWR_FIELD_L2TPV3_SESSID BIT(26)
-#define ICE_TC_FLWR_FIELD_VLAN_PRIO BIT(27)
-#define ICE_TC_FLWR_FIELD_CVLAN_PRIO BIT(28)
-#define ICE_TC_FLWR_FIELD_VLAN_TPID BIT(29)
-#define ICE_TC_FLWR_FIELD_PFCP_OPTS BIT(30)
-#define ICE_TC_FLWR_FIELD_IP_PROTO BIT(31)
+#define ICE_TC_FLWR_FIELD_DST_MAC BIT_ULL(0)
+#define ICE_TC_FLWR_FIELD_SRC_MAC BIT_ULL(1)
+#define ICE_TC_FLWR_FIELD_VLAN BIT_ULL(2)
+#define ICE_TC_FLWR_FIELD_DEST_IPV4 BIT_ULL(3)
+#define ICE_TC_FLWR_FIELD_SRC_IPV4 BIT_ULL(4)
+#define ICE_TC_FLWR_FIELD_DEST_IPV6 BIT_ULL(5)
+#define ICE_TC_FLWR_FIELD_SRC_IPV6 BIT_ULL(6)
+#define ICE_TC_FLWR_FIELD_DEST_L4_PORT BIT_ULL(7)
+#define ICE_TC_FLWR_FIELD_SRC_L4_PORT BIT_ULL(8)
+#define ICE_TC_FLWR_FIELD_TENANT_ID BIT_ULL(9)
+#define ICE_TC_FLWR_FIELD_ENC_DEST_IPV4 BIT_ULL(10)
+#define ICE_TC_FLWR_FIELD_ENC_SRC_IPV4 BIT_ULL(11)
+#define ICE_TC_FLWR_FIELD_ENC_DEST_IPV6 BIT_ULL(12)
+#define ICE_TC_FLWR_FIELD_ENC_SRC_IPV6 BIT_ULL(13)
+#define ICE_TC_FLWR_FIELD_ENC_DEST_L4_PORT BIT_ULL(14)
+#define ICE_TC_FLWR_FIELD_ENC_SRC_L4_PORT BIT_ULL(15)
+#define ICE_TC_FLWR_FIELD_ENC_DST_MAC BIT_ULL(16)
+#define ICE_TC_FLWR_FIELD_ETH_TYPE_ID BIT_ULL(17)
+#define ICE_TC_FLWR_FIELD_GTP_OPTS BIT_ULL(18)
+#define ICE_TC_FLWR_FIELD_CVLAN BIT_ULL(19)
+#define ICE_TC_FLWR_FIELD_PPPOE_SESSID BIT_ULL(20)
+#define ICE_TC_FLWR_FIELD_PPP_PROTO BIT_ULL(21)
+#define ICE_TC_FLWR_FIELD_IP_TOS BIT_ULL(22)
+#define ICE_TC_FLWR_FIELD_IP_TTL BIT_ULL(23)
+#define ICE_TC_FLWR_FIELD_ENC_IP_TOS BIT_ULL(24)
+#define ICE_TC_FLWR_FIELD_ENC_IP_TTL BIT_ULL(25)
+#define ICE_TC_FLWR_FIELD_L2TPV3_SESSID BIT_ULL(26)
+#define ICE_TC_FLWR_FIELD_VLAN_PRIO BIT_ULL(27)
+#define ICE_TC_FLWR_FIELD_CVLAN_PRIO BIT_ULL(28)
+#define ICE_TC_FLWR_FIELD_VLAN_TPID BIT_ULL(29)
+#define ICE_TC_FLWR_FIELD_PFCP_OPTS BIT_ULL(30)
+#define ICE_TC_FLWR_FIELD_IP_PROTO BIT_ULL(31)
#define ICE_TC_FLOWER_MASK_32 0xFFFFFFFF
@@ -189,7 +189,7 @@ struct ice_tc_flower_fltr {
struct gtp_pdu_session_info gtp_pdu_info_masks;
struct pfcp_metadata pfcp_meta_keys;
struct pfcp_metadata pfcp_meta_masks;
- u32 flags;
+ u64 flags;
u8 tunnel_type;
struct ice_tc_flower_action action;
--
2.49.0
next prev parent reply other threads:[~2026-10-06 11:43 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-06 10:47 [PATCH iwl-next v1 0/2] ice: offload not fragmented ip packets Michal Swiatkowski
2026-10-06 10:47 ` Michal Swiatkowski [this message]
2026-10-06 10:47 ` [PATCH iwl-next v1 2/2] ice: allow matching on no_frag " Michal Swiatkowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261006104704.3584666-2-michal.swiatkowski@linux.intel.com \
--to=michal.swiatkowski@linux.intel.com \
--cc=intel-wired-lan@lists.osuosl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox