Skip to contentSkip to conversation

fixes and enhancements to Truflow

PATCH Superseded Venkat Duvvuru 4 participants 118 messages Oct 1, 2021 – Nov 17, 2021 Network drivers Page 1 of 3

lore
Share & tools
lore
#0 lore raw

cover fixes and enhancements to Truflow

This patch set adds enhancements and fixes to Truflow feature.

Enhancements include:
* Scaling numbers on Thor
* Inner IP header support for GRE tunnel flows
* Enable wildcard match for ingress flows
* Add clear on read for flow stats on Thor
* Add nat support for dest IP and port combination

Farah Smith (1):
net/bnxt: add clear on read stats support for Thor

Jay Ding (1):
net/bnxt: get Truflow version

Kishore Padmanabha (6):
net/bnxt: add nat support for dest IP and port combination net/bnxt: support multi root capability flag net/bnxt: fix the out of boundary issue in hash list net/bnxt: add feature capability option for socket direct net/bnxt: enable wildcard match for ingress flows net/bnxt: support inner IP header for GRE tunnel flows

Shahaji Bhosle (1):
net/bnxt: increase scaling numbers on Thor

 drivers/net/bnxt/bnxt.h                       |   27 +-
 drivers/net/bnxt/bnxt_cpr.c                   |    2 +-
 drivers/net/bnxt/bnxt_ethdev.c                |  221 +-
 drivers/net/bnxt/bnxt_hwrm.c                  |    8 +
 drivers/net/bnxt/bnxt_reps.c                  |    3 +-
 drivers/net/bnxt/hsi_struct_def_dpdk.h        | 2979 ++++++++++++++---
 drivers/net/bnxt/tf_core/tf_core.c            |   30 +
 drivers/net/bnxt/tf_core/tf_core.h            |   75 +
 drivers/net/bnxt/tf_core/tf_device.h          |   50 +
 drivers/net/bnxt/tf_core/tf_device_p4.c       |   65 +-
 drivers/net/bnxt/tf_core/tf_device_p4.h       |   79 +
 drivers/net/bnxt/tf_core/tf_device_p58.c      |   65 +-
 drivers/net/bnxt/tf_core/tf_device_p58.h      |   87 +
 drivers/net/bnxt/tf_core/tf_msg.c             |   59 +-
 drivers/net/bnxt/tf_core/tf_msg.h             |   25 +-
 drivers/net/bnxt/tf_core/tf_tbl.c             |    6 +-
 drivers/net/bnxt/tf_core/tf_tbl_sram.c        |   13 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c            |   24 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.h            |    8 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c       |   10 +-
 .../generic_templates/ulp_template_db_act.c   |  376 ++-
 .../generic_templates/ulp_template_db_enum.h  |   26 +-
 .../generic_templates/ulp_template_db_tbl.c   |   23 +-
 .../ulp_template_db_thor_class.c              |  251 +-
 .../ulp_template_db_wh_plus_act.c             |   96 +-
 drivers/net/bnxt/tf_ulp/ulp_def_rules.c       |    6 +-
 drivers/net/bnxt/tf_ulp/ulp_gen_hash.c        |   20 +-
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      |    7 +-
 drivers/net/bnxt/tf_ulp/ulp_template_struct.h |    2 +-
 29 files changed, 3627 insertions(+), 1016 deletions(-)
Signature · 1 line
2.17.1
#1 lore raw

PATCH 1/9 net/bnxt: add nat support for dest IP and port combination

From: Kishore Padmanabha <[email protected]>

* Added support for nat action for the destination ip and port combination for the thor platform. This is not supported for whitney platform.
* Consolidated the encapsulation and nat entries for scaling flows with nat actions.

---
 .../generic_templates/ulp_template_db_act.c   | 376 +++++++++++-------
 .../generic_templates/ulp_template_db_enum.h  |  18 +-
 .../generic_templates/ulp_template_db_tbl.c   |  14 +-
 .../ulp_template_db_thor_class.c              |   2 +-
 .../ulp_template_db_wh_plus_act.c             |  96 +++--
 5 files changed, 317 insertions(+), 189 deletions(-)
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_act.c +236 -140
index 0da6070d7d..ce878d8e02 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Mon May 17 15:30:41 2021 */
+/* date: Wed Aug 25 14:37:06 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -47,59 +47,67 @@ uint16_t ulp_act_sig_tbl[BNXT_ULP_ACT_SIG_TBL_MAX_SZ] = {
 	[BNXT_ULP_ACT_HID_04bc] = 30,
 	[BNXT_ULP_ACT_HID_00a9] = 31,
 	[BNXT_ULP_ACT_HID_020f] = 32,
-	[BNXT_ULP_ACT_HID_04a9] = 33,
-	[BNXT_ULP_ACT_HID_01fc] = 34,
-	[BNXT_ULP_ACT_HID_04be] = 35,
-	[BNXT_ULP_ACT_HID_00ab] = 36,
-	[BNXT_ULP_ACT_HID_0211] = 37,
-	[BNXT_ULP_ACT_HID_04ab] = 38,
-	[BNXT_ULP_ACT_HID_01fe] = 39,
-	[BNXT_ULP_ACT_HID_0667] = 40,
-	[BNXT_ULP_ACT_HID_0254] = 41,
-	[BNXT_ULP_ACT_HID_03ba] = 42,
-	[BNXT_ULP_ACT_HID_0654] = 43,
-	[BNXT_ULP_ACT_HID_03a7] = 44,
-	[BNXT_ULP_ACT_HID_0669] = 45,
-	[BNXT_ULP_ACT_HID_0256] = 46,
-	[BNXT_ULP_ACT_HID_03bc] = 47,
-	[BNXT_ULP_ACT_HID_0656] = 48,
-	[BNXT_ULP_ACT_HID_03a9] = 49,
-	[BNXT_ULP_ACT_HID_021b] = 50,
-	[BNXT_ULP_ACT_HID_021c] = 51,
-	[BNXT_ULP_ACT_HID_021e] = 52,
-	[BNXT_ULP_ACT_HID_063f] = 53,
-	[BNXT_ULP_ACT_HID_0510] = 54,
-	[BNXT_ULP_ACT_HID_03c6] = 55,
-	[BNXT_ULP_ACT_HID_0082] = 56,
-	[BNXT_ULP_ACT_HID_06bb] = 57,
-	[BNXT_ULP_ACT_HID_021d] = 58,
-	[BNXT_ULP_ACT_HID_0641] = 59,
-	[BNXT_ULP_ACT_HID_0512] = 60,
-	[BNXT_ULP_ACT_HID_03c8] = 61,
-	[BNXT_ULP_ACT_HID_0084] = 62,
-	[BNXT_ULP_ACT_HID_06bd] = 63,
-	[BNXT_ULP_ACT_HID_06d7] = 64,
-	[BNXT_ULP_ACT_HID_02c4] = 65,
-	[BNXT_ULP_ACT_HID_042a] = 66,
-	[BNXT_ULP_ACT_HID_06c4] = 67,
-	[BNXT_ULP_ACT_HID_0417] = 68,
-	[BNXT_ULP_ACT_HID_06d9] = 69,
-	[BNXT_ULP_ACT_HID_02c6] = 70,
-	[BNXT_ULP_ACT_HID_042c] = 71,
-	[BNXT_ULP_ACT_HID_06c6] = 72,
-	[BNXT_ULP_ACT_HID_0419] = 73,
-	[BNXT_ULP_ACT_HID_0119] = 74,
-	[BNXT_ULP_ACT_HID_046f] = 75,
-	[BNXT_ULP_ACT_HID_05d5] = 76,
-	[BNXT_ULP_ACT_HID_0106] = 77,
-	[BNXT_ULP_ACT_HID_05c2] = 78,
-	[BNXT_ULP_ACT_HID_011b] = 79,
-	[BNXT_ULP_ACT_HID_0471] = 80,
-	[BNXT_ULP_ACT_HID_05d7] = 81,
-	[BNXT_ULP_ACT_HID_0108] = 82,
-	[BNXT_ULP_ACT_HID_05c4] = 83,
-	[BNXT_ULP_ACT_HID_00a2] = 84,
-	[BNXT_ULP_ACT_HID_00a4] = 85
+	[BNXT_ULP_ACT_HID_0153] = 33,
+	[BNXT_ULP_ACT_HID_04a9] = 34,
+	[BNXT_ULP_ACT_HID_01fc] = 35,
+	[BNXT_ULP_ACT_HID_04be] = 36,
+	[BNXT_ULP_ACT_HID_00ab] = 37,
+	[BNXT_ULP_ACT_HID_0211] = 38,
+	[BNXT_ULP_ACT_HID_0155] = 39,
+	[BNXT_ULP_ACT_HID_04ab] = 40,
+	[BNXT_ULP_ACT_HID_01fe] = 41,
+	[BNXT_ULP_ACT_HID_0667] = 42,
+	[BNXT_ULP_ACT_HID_0254] = 43,
+	[BNXT_ULP_ACT_HID_03ba] = 44,
+	[BNXT_ULP_ACT_HID_02fe] = 45,
+	[BNXT_ULP_ACT_HID_0654] = 46,
+	[BNXT_ULP_ACT_HID_03a7] = 47,
+	[BNXT_ULP_ACT_HID_0669] = 48,
+	[BNXT_ULP_ACT_HID_0256] = 49,
+	[BNXT_ULP_ACT_HID_03bc] = 50,
+	[BNXT_ULP_ACT_HID_0300] = 51,
+	[BNXT_ULP_ACT_HID_0656] = 52,
+	[BNXT_ULP_ACT_HID_03a9] = 53,
+	[BNXT_ULP_ACT_HID_021b] = 54,
+	[BNXT_ULP_ACT_HID_021c] = 55,
+	[BNXT_ULP_ACT_HID_021e] = 56,
+	[BNXT_ULP_ACT_HID_063f] = 57,
+	[BNXT_ULP_ACT_HID_0510] = 58,
+	[BNXT_ULP_ACT_HID_03c6] = 59,
+	[BNXT_ULP_ACT_HID_0082] = 60,
+	[BNXT_ULP_ACT_HID_06bb] = 61,
+	[BNXT_ULP_ACT_HID_021d] = 62,
+	[BNXT_ULP_ACT_HID_0641] = 63,
+	[BNXT_ULP_ACT_HID_0512] = 64,
+	[BNXT_ULP_ACT_HID_03c8] = 65,
+	[BNXT_ULP_ACT_HID_0084] = 66,
+	[BNXT_ULP_ACT_HID_06bd] = 67,
+	[BNXT_ULP_ACT_HID_06d7] = 68,
+	[BNXT_ULP_ACT_HID_02c4] = 69,
+	[BNXT_ULP_ACT_HID_042a] = 70,
+	[BNXT_ULP_ACT_HID_036e] = 71,
+	[BNXT_ULP_ACT_HID_06c4] = 72,
+	[BNXT_ULP_ACT_HID_0417] = 73,
+	[BNXT_ULP_ACT_HID_06d9] = 74,
+	[BNXT_ULP_ACT_HID_02c6] = 75,
+	[BNXT_ULP_ACT_HID_042c] = 76,
+	[BNXT_ULP_ACT_HID_0370] = 77,
+	[BNXT_ULP_ACT_HID_06c6] = 78,
+	[BNXT_ULP_ACT_HID_0419] = 79,
+	[BNXT_ULP_ACT_HID_0119] = 80,
+	[BNXT_ULP_ACT_HID_046f] = 81,
+	[BNXT_ULP_ACT_HID_05d5] = 82,
+	[BNXT_ULP_ACT_HID_0519] = 83,
+	[BNXT_ULP_ACT_HID_0106] = 84,
+	[BNXT_ULP_ACT_HID_05c2] = 85,
+	[BNXT_ULP_ACT_HID_011b] = 86,
+	[BNXT_ULP_ACT_HID_0471] = 87,
+	[BNXT_ULP_ACT_HID_05d7] = 88,
+	[BNXT_ULP_ACT_HID_051b] = 89,
+	[BNXT_ULP_ACT_HID_0108] = 90,
+	[BNXT_ULP_ACT_HID_05c4] = 91,
+	[BNXT_ULP_ACT_HID_00a2] = 92,
+	[BNXT_ULP_ACT_HID_00a4] = 93
 };
 
 /* Array for the act matcher list */
@@ -429,22 +437,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 	.act_tid = 3
 	},
 	[33] = {
-	.act_hid = BNXT_ULP_ACT_HID_04a9,
+	.act_hid = BNXT_ULP_ACT_HID_0153,
 	.act_pattern_id = 3,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
-		BNXT_ULP_ACT_BIT_SET_TP_SRC |
 		BNXT_ULP_ACT_BIT_SET_TP_DST |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
 	[34] = {
-	.act_hid = BNXT_ULP_ACT_HID_01fc,
+	.act_hid = BNXT_ULP_ACT_HID_04a9,
 	.act_pattern_id = 4,
 	.app_sig = 0,
 	.act_sig = { .bits =
-		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
 		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
 		BNXT_ULP_ACT_BIT_SET_TP_SRC |
 		BNXT_ULP_ACT_BIT_SET_TP_DST |
@@ -452,40 +458,63 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 	.act_tid = 3
 	},
 	[35] = {
-	.act_hid = BNXT_ULP_ACT_HID_04be,
+	.act_hid = BNXT_ULP_ACT_HID_01fc,
 	.act_pattern_id = 5,
 	.app_sig = 0,
 	.act_sig = { .bits =
-		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_SRC |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
 	[36] = {
-	.act_hid = BNXT_ULP_ACT_HID_00ab,
+	.act_hid = BNXT_ULP_ACT_HID_04be,
 	.act_pattern_id = 6,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
-		BNXT_ULP_ACT_BIT_SET_TP_SRC |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
 	[37] = {
-	.act_hid = BNXT_ULP_ACT_HID_0211,
+	.act_hid = BNXT_ULP_ACT_HID_00ab,
 	.act_pattern_id = 7,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
-		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
+		BNXT_ULP_ACT_BIT_SET_TP_SRC |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
 	[38] = {
-	.act_hid = BNXT_ULP_ACT_HID_04ab,
+	.act_hid = BNXT_ULP_ACT_HID_0211,
 	.act_pattern_id = 8,
 	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.act_tid = 3
+	},
+	[39] = {
+	.act_hid = BNXT_ULP_ACT_HID_0155,
+	.act_pattern_id = 9,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.act_tid = 3
+	},
+	[40] = {
+	.act_hid = BNXT_ULP_ACT_HID_04ab,
+	.act_pattern_id = 10,
+	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
@@ -494,9 +523,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[39] = {
+	[41] = {
 	.act_hid = BNXT_ULP_ACT_HID_01fe,
-	.act_pattern_id = 9,
+	.act_pattern_id = 11,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -507,9 +536,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[40] = {
+	[42] = {
 	.act_hid = BNXT_ULP_ACT_HID_0667,
-	.act_pattern_id = 10,
+	.act_pattern_id = 12,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -517,9 +546,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[41] = {
+	[43] = {
 	.act_hid = BNXT_ULP_ACT_HID_0254,
-	.act_pattern_id = 11,
+	.act_pattern_id = 13,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -528,9 +557,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[42] = {
+	[44] = {
 	.act_hid = BNXT_ULP_ACT_HID_03ba,
-	.act_pattern_id = 12,
+	.act_pattern_id = 14,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -538,9 +567,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[43] = {
+	[45] = {
+	.act_hid = BNXT_ULP_ACT_HID_02fe,
+	.act_pattern_id = 15,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.act_tid = 3
+	},
+	[46] = {
 	.act_hid = BNXT_ULP_ACT_HID_0654,
-	.act_pattern_id = 13,
+	.act_pattern_id = 16,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -550,9 +590,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[44] = {
+	[47] = {
 	.act_hid = BNXT_ULP_ACT_HID_03a7,
-	.act_pattern_id = 14,
+	.act_pattern_id = 17,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -563,9 +603,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[45] = {
+	[48] = {
 	.act_hid = BNXT_ULP_ACT_HID_0669,
-	.act_pattern_id = 15,
+	.act_pattern_id = 18,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -574,9 +614,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[46] = {
+	[49] = {
 	.act_hid = BNXT_ULP_ACT_HID_0256,
-	.act_pattern_id = 16,
+	.act_pattern_id = 19,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -586,9 +626,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[47] = {
+	[50] = {
 	.act_hid = BNXT_ULP_ACT_HID_03bc,
-	.act_pattern_id = 17,
+	.act_pattern_id = 20,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -597,9 +637,21 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[48] = {
+	[51] = {
+	.act_hid = BNXT_ULP_ACT_HID_0300,
+	.act_pattern_id = 21,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.act_tid = 3
+	},
+	[52] = {
 	.act_hid = BNXT_ULP_ACT_HID_0656,
-	.act_pattern_id = 18,
+	.act_pattern_id = 22,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -610,9 +662,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[49] = {
+	[53] = {
 	.act_hid = BNXT_ULP_ACT_HID_03a9,
-	.act_pattern_id = 19,
+	.act_pattern_id = 23,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -624,7 +676,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[50] = {
+	[54] = {
 	.act_hid = BNXT_ULP_ACT_HID_021b,
 	.act_pattern_id = 0,
 	.app_sig = 0,
@@ -632,7 +684,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[51] = {
+	[55] = {
 	.act_hid = BNXT_ULP_ACT_HID_021c,
 	.act_pattern_id = 1,
 	.app_sig = 0,
@@ -641,7 +693,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[52] = {
+	[56] = {
 	.act_hid = BNXT_ULP_ACT_HID_021e,
 	.act_pattern_id = 2,
 	.app_sig = 0,
@@ -651,7 +703,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[53] = {
+	[57] = {
 	.act_hid = BNXT_ULP_ACT_HID_063f,
 	.act_pattern_id = 3,
 	.app_sig = 0,
@@ -662,7 +714,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[54] = {
+	[58] = {
 	.act_hid = BNXT_ULP_ACT_HID_0510,
 	.act_pattern_id = 4,
 	.app_sig = 0,
@@ -672,7 +724,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[55] = {
+	[59] = {
 	.act_hid = BNXT_ULP_ACT_HID_03c6,
 	.act_pattern_id = 5,
 	.app_sig = 0,
@@ -681,7 +733,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[56] = {
+	[60] = {
 	.act_hid = BNXT_ULP_ACT_HID_0082,
 	.act_pattern_id = 6,
 	.app_sig = 0,
@@ -693,7 +745,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[57] = {
+	[61] = {
 	.act_hid = BNXT_ULP_ACT_HID_06bb,
 	.act_pattern_id = 7,
 	.app_sig = 0,
@@ -704,7 +756,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[58] = {
+	[62] = {
 	.act_hid = BNXT_ULP_ACT_HID_021d,
 	.act_pattern_id = 8,
 	.app_sig = 0,
@@ -713,7 +765,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[59] = {
+	[63] = {
 	.act_hid = BNXT_ULP_ACT_HID_0641,
 	.act_pattern_id = 9,
 	.app_sig = 0,
@@ -725,7 +777,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[60] = {
+	[64] = {
 	.act_hid = BNXT_ULP_ACT_HID_0512,
 	.act_pattern_id = 10,
 	.app_sig = 0,
@@ -736,7 +788,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[61] = {
+	[65] = {
 	.act_hid = BNXT_ULP_ACT_HID_03c8,
 	.act_pattern_id = 11,
 	.app_sig = 0,
@@ -746,7 +798,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[62] = {
+	[66] = {
 	.act_hid = BNXT_ULP_ACT_HID_0084,
 	.act_pattern_id = 12,
 	.app_sig = 0,
@@ -759,7 +811,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[63] = {
+	[67] = {
 	.act_hid = BNXT_ULP_ACT_HID_06bd,
 	.act_pattern_id = 13,
 	.app_sig = 0,
@@ -771,7 +823,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[64] = {
+	[68] = {
 	.act_hid = BNXT_ULP_ACT_HID_06d7,
 	.act_pattern_id = 0,
 	.app_sig = 0,
@@ -780,7 +832,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[65] = {
+	[69] = {
 	.act_hid = BNXT_ULP_ACT_HID_02c4,
 	.act_pattern_id = 1,
 	.app_sig = 0,
@@ -790,7 +842,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[66] = {
+	[70] = {
 	.act_hid = BNXT_ULP_ACT_HID_042a,
 	.act_pattern_id = 2,
 	.app_sig = 0,
@@ -799,10 +851,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[67] = {
-	.act_hid = BNXT_ULP_ACT_HID_06c4,
+	[71] = {
+	.act_hid = BNXT_ULP_ACT_HID_036e,
 	.act_pattern_id = 3,
 	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.act_tid = 5
+	},
+	[72] = {
+	.act_hid = BNXT_ULP_ACT_HID_06c4,
+	.act_pattern_id = 4,
+	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
 		BNXT_ULP_ACT_BIT_SET_TP_SRC |
@@ -810,9 +872,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[68] = {
+	[73] = {
 	.act_hid = BNXT_ULP_ACT_HID_0417,
-	.act_pattern_id = 4,
+	.act_pattern_id = 5,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
@@ -822,9 +884,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[69] = {
+	[74] = {
 	.act_hid = BNXT_ULP_ACT_HID_06d9,
-	.act_pattern_id = 5,
+	.act_pattern_id = 6,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -832,9 +894,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[70] = {
+	[75] = {
 	.act_hid = BNXT_ULP_ACT_HID_02c6,
-	.act_pattern_id = 6,
+	.act_pattern_id = 7,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -843,9 +905,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[71] = {
+	[76] = {
 	.act_hid = BNXT_ULP_ACT_HID_042c,
-	.act_pattern_id = 7,
+	.act_pattern_id = 8,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -853,9 +915,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[72] = {
+	[77] = {
+	.act_hid = BNXT_ULP_ACT_HID_0370,
+	.act_pattern_id = 9,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.act_tid = 5
+	},
+	[78] = {
 	.act_hid = BNXT_ULP_ACT_HID_06c6,
-	.act_pattern_id = 8,
+	.act_pattern_id = 10,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -865,9 +938,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[73] = {
+	[79] = {
 	.act_hid = BNXT_ULP_ACT_HID_0419,
-	.act_pattern_id = 9,
+	.act_pattern_id = 11,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -878,9 +951,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[74] = {
+	[80] = {
 	.act_hid = BNXT_ULP_ACT_HID_0119,
-	.act_pattern_id = 10,
+	.act_pattern_id = 12,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -888,9 +961,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[75] = {
+	[81] = {
 	.act_hid = BNXT_ULP_ACT_HID_046f,
-	.act_pattern_id = 11,
+	.act_pattern_id = 13,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -899,9 +972,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[76] = {
+	[82] = {
 	.act_hid = BNXT_ULP_ACT_HID_05d5,
-	.act_pattern_id = 12,
+	.act_pattern_id = 14,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -909,9 +982,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[77] = {
+	[83] = {
+	.act_hid = BNXT_ULP_ACT_HID_0519,
+	.act_pattern_id = 15,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.act_tid = 5
+	},
+	[84] = {
 	.act_hid = BNXT_ULP_ACT_HID_0106,
-	.act_pattern_id = 13,
+	.act_pattern_id = 16,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -921,9 +1005,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[78] = {
+	[85] = {
 	.act_hid = BNXT_ULP_ACT_HID_05c2,
-	.act_pattern_id = 14,
+	.act_pattern_id = 17,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -934,9 +1018,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[79] = {
+	[86] = {
 	.act_hid = BNXT_ULP_ACT_HID_011b,
-	.act_pattern_id = 15,
+	.act_pattern_id = 18,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -945,9 +1029,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[80] = {
+	[87] = {
 	.act_hid = BNXT_ULP_ACT_HID_0471,
-	.act_pattern_id = 16,
+	.act_pattern_id = 19,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -957,9 +1041,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[81] = {
+	[88] = {
 	.act_hid = BNXT_ULP_ACT_HID_05d7,
-	.act_pattern_id = 17,
+	.act_pattern_id = 20,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -968,9 +1052,21 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[82] = {
+	[89] = {
+	.act_hid = BNXT_ULP_ACT_HID_051b,
+	.act_pattern_id = 21,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.act_tid = 5
+	},
+	[90] = {
 	.act_hid = BNXT_ULP_ACT_HID_0108,
-	.act_pattern_id = 18,
+	.act_pattern_id = 22,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -981,9 +1077,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[83] = {
+	[91] = {
 	.act_hid = BNXT_ULP_ACT_HID_05c4,
-	.act_pattern_id = 19,
+	.act_pattern_id = 23,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -995,7 +1091,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[84] = {
+	[92] = {
 	.act_hid = BNXT_ULP_ACT_HID_00a2,
 	.act_pattern_id = 0,
 	.app_sig = 0,
@@ -1004,7 +1100,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 6
 	},
-	[85] = {
+	[93] = {
 	.act_hid = BNXT_ULP_ACT_HID_00a4,
 	.act_pattern_id = 1,
 	.app_sig = 0,
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h +13 -5
index c016e1940a..fcd460e707 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Fri Aug 20 17:59:14 2021 */
+/* date: Thu Aug 26 17:43:36 2021 */
 
 #ifndef ULP_TEMPLATE_DB_H_
 #define ULP_TEMPLATE_DB_H_
@@ -20,7 +20,7 @@
 #define BNXT_ULP_CLASS_HID_SHFTL 28
 #define BNXT_ULP_CLASS_HID_MASK 65535
 #define BNXT_ULP_ACT_SIG_TBL_MAX_SZ 2048
-#define BNXT_ULP_ACT_MATCH_LIST_MAX_SZ 86
+#define BNXT_ULP_ACT_MATCH_LIST_MAX_SZ 94
 #define BNXT_ULP_ACT_HID_LOW_PRIME 7919
 #define BNXT_ULP_ACT_HID_HIGH_PRIME 3793
 #define BNXT_ULP_ACT_HID_SHFTR 27
@@ -29,7 +29,7 @@
 #define BNXT_ULP_APP_RESOURCE_RESV_LIST_MAX_SZ 8
 #define BNXT_ULP_GLB_RESOURCE_TBL_MAX_SZ 110
 #define BNXT_ULP_APP_GLB_RESOURCE_TBL_MAX_SZ 50
-#define BNXT_ULP_RESOURCE_RESV_LIST_MAX_SZ 278
+#define BNXT_ULP_RESOURCE_RESV_LIST_MAX_SZ 277
 #define BNXT_ULP_APP_CAP_TBL_MAX_SZ 8
 #define BNXT_ULP_COND_GOTO_REJECT 1023
 #define BNXT_ULP_COND_GOTO_RF 0x10000
@@ -50,11 +50,11 @@
 #define ULP_THOR_CLASS_RESULT_FIELD_LIST_SIZE 1313
 #define ULP_THOR_CLASS_COND_LIST_SIZE 55
 #define ULP_WH_PLUS_ACT_TMPL_LIST_SIZE 7
-#define ULP_WH_PLUS_ACT_TBL_LIST_SIZE 35
+#define ULP_WH_PLUS_ACT_TBL_LIST_SIZE 37
 #define ULP_WH_PLUS_ACT_KEY_INFO_LIST_SIZE 2
 #define ULP_WH_PLUS_ACT_IDENT_LIST_SIZE 1
 #define ULP_WH_PLUS_ACT_RESULT_FIELD_LIST_SIZE 536
-#define ULP_WH_PLUS_ACT_COND_LIST_SIZE 39
+#define ULP_WH_PLUS_ACT_COND_LIST_SIZE 41
 #define ULP_THOR_ACT_TMPL_LIST_SIZE 7
 #define ULP_THOR_ACT_TBL_LIST_SIZE 36
 #define ULP_THOR_ACT_KEY_INFO_LIST_SIZE 16
@@ -2224,21 +2224,25 @@ enum bnxt_ulp_act_hid {
 	BNXT_ULP_ACT_HID_04bc = 0x04bc,
 	BNXT_ULP_ACT_HID_00a9 = 0x00a9,
 	BNXT_ULP_ACT_HID_020f = 0x020f,
+	BNXT_ULP_ACT_HID_0153 = 0x0153,
 	BNXT_ULP_ACT_HID_04a9 = 0x04a9,
 	BNXT_ULP_ACT_HID_01fc = 0x01fc,
 	BNXT_ULP_ACT_HID_04be = 0x04be,
 	BNXT_ULP_ACT_HID_00ab = 0x00ab,
 	BNXT_ULP_ACT_HID_0211 = 0x0211,
+	BNXT_ULP_ACT_HID_0155 = 0x0155,
 	BNXT_ULP_ACT_HID_04ab = 0x04ab,
 	BNXT_ULP_ACT_HID_01fe = 0x01fe,
 	BNXT_ULP_ACT_HID_0667 = 0x0667,
 	BNXT_ULP_ACT_HID_0254 = 0x0254,
 	BNXT_ULP_ACT_HID_03ba = 0x03ba,
+	BNXT_ULP_ACT_HID_02fe = 0x02fe,
 	BNXT_ULP_ACT_HID_0654 = 0x0654,
 	BNXT_ULP_ACT_HID_03a7 = 0x03a7,
 	BNXT_ULP_ACT_HID_0669 = 0x0669,
 	BNXT_ULP_ACT_HID_0256 = 0x0256,
 	BNXT_ULP_ACT_HID_03bc = 0x03bc,
+	BNXT_ULP_ACT_HID_0300 = 0x0300,
 	BNXT_ULP_ACT_HID_0656 = 0x0656,
 	BNXT_ULP_ACT_HID_03a9 = 0x03a9,
 	BNXT_ULP_ACT_HID_021b = 0x021b,
@@ -2258,21 +2262,25 @@ enum bnxt_ulp_act_hid {
 	BNXT_ULP_ACT_HID_06d7 = 0x06d7,
 	BNXT_ULP_ACT_HID_02c4 = 0x02c4,
 	BNXT_ULP_ACT_HID_042a = 0x042a,
+	BNXT_ULP_ACT_HID_036e = 0x036e,
 	BNXT_ULP_ACT_HID_06c4 = 0x06c4,
 	BNXT_ULP_ACT_HID_0417 = 0x0417,
 	BNXT_ULP_ACT_HID_06d9 = 0x06d9,
 	BNXT_ULP_ACT_HID_02c6 = 0x02c6,
 	BNXT_ULP_ACT_HID_042c = 0x042c,
+	BNXT_ULP_ACT_HID_0370 = 0x0370,
 	BNXT_ULP_ACT_HID_06c6 = 0x06c6,
 	BNXT_ULP_ACT_HID_0419 = 0x0419,
 	BNXT_ULP_ACT_HID_0119 = 0x0119,
 	BNXT_ULP_ACT_HID_046f = 0x046f,
 	BNXT_ULP_ACT_HID_05d5 = 0x05d5,
+	BNXT_ULP_ACT_HID_0519 = 0x0519,
 	BNXT_ULP_ACT_HID_0106 = 0x0106,
 	BNXT_ULP_ACT_HID_05c2 = 0x05c2,
 	BNXT_ULP_ACT_HID_011b = 0x011b,
 	BNXT_ULP_ACT_HID_0471 = 0x0471,
 	BNXT_ULP_ACT_HID_05d7 = 0x05d7,
+	BNXT_ULP_ACT_HID_051b = 0x051b,
 	BNXT_ULP_ACT_HID_0108 = 0x0108,
 	BNXT_ULP_ACT_HID_05c4 = 0x05c4,
 	BNXT_ULP_ACT_HID_00a2 = 0x00a2,
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c +3 -11
index 684fa66f48..84be09b368 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Tue Aug 17 12:16:42 2021 */
+/* date: Thu Aug 26 17:43:36 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -2121,7 +2121,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
 	.direction               = TF_DIR_RX,
 	.resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
-	.count                   = 64
+	.count                   = 2048
 	},
 	{
 	.app_id                  = 0,
@@ -2249,7 +2249,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
 	.direction               = TF_DIR_TX,
 	.resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
-	.count                   = 64
+	.count                   = 2048
 	},
 	{
 	.app_id                  = 0,
@@ -2263,14 +2263,6 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
 	.app_id                  = 0,
 	.device_id               = BNXT_ULP_DEVICE_ID_THOR,
 	.direction               = TF_DIR_TX,
-	.resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type           = TF_TBL_TYPE_ACT_MODIFY_64B,
-	.count                   = 32
-	},
-	{
-	.app_id                  = 0,
-	.device_id               = BNXT_ULP_DEVICE_ID_THOR,
-	.direction               = TF_DIR_TX,
 	.resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
 	.count                   = 272
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c +1 -1
index 68c1e292b2..95205a2421 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Fri Aug 20 18:05:25 2021 */
+/* date: Wed Aug 25 16:41:37 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_wh_plus_act.c +64 -32

293 lines not on this page · raw message

Signature · 1 line
2.17.1
#2 lore raw

PATCH 2/9 net/bnxt: support multi root capability flag

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

Update driver to read the multi root capability and ignore pci address check while creating ulp session when multi root capability is enabled in the hardware. DPDK HSI version updated from 1.10.1.70 to 1.10.2.54.

---
 drivers/net/bnxt/bnxt.h                |    8 +
 drivers/net/bnxt/bnxt_hwrm.c           |    8 +
 drivers/net/bnxt/hsi_struct_def_dpdk.h | 2698 +++++++++++++++++++++---
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c     |   10 +-
 4 files changed, 2420 insertions(+), 304 deletions(-)
drivers/net/bnxt/bnxt.h +8 -0
index 5121d05da6..b9e120d94b 100644
@@ -724,6 +724,14 @@ struct bnxt {
 	uint16_t		chip_num;
 #define CHIP_NUM_58818		0xd818
 #define BNXT_CHIP_SR2(bp)	((bp)->chip_num == CHIP_NUM_58818)
+#define	BNXT_FLAGS2_TESTPMD_EN			BIT(3)
+#define	BNXT_TESTPMD_EN(bp)			\
+	((bp)->flags2 & BNXT_FLAGS2_TESTPMD_EN)
+#define BNXT_THOR_PTP_TIMESYNC_ENABLED(bp)	\
+	((bp)->flags & BNXT_FLAGS_PTP_TIMESYNC_ENABLED)
+#define	BNXT_FLAGS2_MULTIROOT_EN		BIT(4)
+#define	BNXT_MULTIROOT_EN(bp)			\
+	((bp)->flags2 & BNXT_FLAGS2_MULTIROOT_EN)
 
 	uint32_t		fw_cap;
 #define BNXT_FW_CAP_HOT_RESET		BIT(0)
drivers/net/bnxt/bnxt_hwrm.c +8 -0
index 503add42fd..8ccee79f0a 100644
@@ -3385,6 +3385,7 @@ int bnxt_hwrm_parent_pf_qcfg(struct bnxt *bp)
 {
 	struct hwrm_func_qcfg_input req = {0};
 	struct hwrm_func_qcfg_output *resp = bp->hwrm_cmd_resp_addr;
+	uint16_t flags;
 	int rc;
 
 	if (!BNXT_VF_IS_TRUSTED(bp))
@@ -3408,6 +3409,13 @@ int bnxt_hwrm_parent_pf_qcfg(struct bnxt *bp)
 	bp->parent->fid = rte_le_to_cpu_16(resp->fid);
 	bp->parent->port_id = rte_le_to_cpu_16(resp->port_id);
 
+	flags = rte_le_to_cpu_16(resp->flags);
+	/* check for the multi-root support */
+	if (flags & HWRM_FUNC_QCFG_OUTPUT_FLAGS_MULTI_ROOT) {
+		bp->flags2 |= BNXT_FLAGS2_MULTIROOT_EN;
+		PMD_DRV_LOG(DEBUG, "PF enabled with multi root capability\n");
+	}
+
 	HWRM_UNLOCK();
 
 	return 0;
drivers/net/bnxt/hsi_struct_def_dpdk.h +2398 -300

2,966 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/bnxt_ulp.c +6 -4
index 3b86410fb1..092c22e505 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Signature · 1 line
2.17.1

Part of the diff is not shown here. View the raw message.

#3 lore raw

PATCH 3/9 net/bnxt: fix the out of boundary issue in hash list

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

The number of hash bucket list calculation is fixed and added check to limit the out of boundary condition

Fixes 0001cc58d362 ("net/bnxt: support generic hash table")
---
 drivers/net/bnxt/tf_ulp/ulp_gen_hash.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)
drivers/net/bnxt/tf_ulp/ulp_gen_hash.c +14 -6
index 3c6e7fe924..84c83de35c 100644
@@ -16,20 +16,21 @@ int32_t ulp_bit_alloc_list_alloc(struct bit_alloc_list *blist,
 {
 	uint64_t bentry;
 	uint32_t idx = 0, jdx = 0;
+	uint32_t bsize_64 = blist->bsize / ULP_64B_IN_BYTES;
 
 	/* Iterate all numbers that have all 1's */
 	do {
 		bentry = blist->bdata[idx++];
-	} while (bentry == -1UL && idx < blist->bsize);
+	} while (bentry == -1UL && idx <= bsize_64);
 
-	if (idx < blist->bsize) {
+	if (idx <= bsize_64) {
 		if (bentry)
 			jdx = __builtin_clzl(~bentry);
 		*index = ((idx - 1) * ULP_INDEX_BITMAP_SIZE) + jdx;
 		ULP_INDEX_BITMAP_SET(blist->bdata[(idx - 1)], jdx);
 		return 0;
 	}
-	jdx = (uint32_t)(blist->bsize * ULP_INDEX_BITMAP_SIZE);
+	jdx = (uint32_t)(bsize_64 * ULP_INDEX_BITMAP_SIZE);
 	BNXT_TF_DBG(ERR, "bit allocator is full reached max:%x\n", jdx);
 	return -1;
 }
@@ -39,9 +40,10 @@ int32_t ulp_bit_alloc_list_dealloc(struct bit_alloc_list *blist,
 				   uint32_t index)
 {
 	uint32_t idx = 0, jdx;
+	uint32_t bsize_64 = blist->bsize / ULP_64B_IN_BYTES;
 
 	idx = index / ULP_INDEX_BITMAP_SIZE;
-	if (idx >= blist->bsize) {
+	if (idx >= bsize_64) {
 		BNXT_TF_DBG(ERR, "invalid bit index %x:%x\n", idx,
 			    blist->bsize);
 		return -EINVAL;
@@ -127,7 +129,8 @@ ulp_gen_hash_tbl_list_init(struct ulp_hash_create_params *cparams,
 	hash_tbl->hash_mask = size - 1;
 
 	/* allocate the memory for the bit allocator */
-	size = (cparams->num_key_entries / sizeof(uint64_t)) + 1;
+	size = (cparams->num_key_entries / sizeof(uint64_t));
+	size = ULP_BYTE_ROUND_OFF_8(size);
 	hash_tbl->bit_list.bsize = size;
 	hash_tbl->bit_list.bdata = rte_zmalloc("Generic hash bit alloc", size,
 					       ULP_BUFFER_ALIGN_64_BYTE);
@@ -311,7 +314,12 @@ ulp_gen_hash_tbl_list_add(struct ulp_gen_hash_tbl *hash_tbl,
 		BNXT_TF_DBG(ERR, "Error in bit list alloc\n");
 		return -ENOMEM;
 	}
-
+	if (key_index > hash_tbl->num_key_entries) {
+		BNXT_TF_DBG(ERR, "reached max size %u:%u\n", key_index,
+			    hash_tbl->num_key_entries);
+		ulp_bit_alloc_list_dealloc(&hash_tbl->bit_list, key_index);
+		return -ENOMEM;
+	}
 	/* Update the hash entry */
 	ULP_HASH_BUCKET_MARK_INUSE(bucket, (uint16_t)key_index);
 
Signature · 1 line
2.17.1
#4 lore raw

PATCH 4/9 net/bnxt: add clear on read stats support for Thor

In reply to Venkat Duvvuru

From: Farah Smith <[email protected]>

Currently, the flow stats are not cleared after they are read from the fw. This patch adds support for clear on read. Since clear on read support is added for flow stats in Thor, the flow accumulation is enabled on Thor as well.

---
 drivers/net/bnxt/hsi_struct_def_dpdk.h | 34 ++++++++++++++++++++------
 drivers/net/bnxt/tf_core/tf_msg.c      | 24 +++++++++++++++---
 drivers/net/bnxt/tf_core/tf_msg.h      |  6 +++--
 drivers/net/bnxt/tf_core/tf_tbl.c      |  6 +++--
 drivers/net/bnxt/tf_core/tf_tbl_sram.c | 13 ++++++++--
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c     |  3 ++-
 6 files changed, 67 insertions(+), 19 deletions(-)
drivers/net/bnxt/hsi_struct_def_dpdk.h +26 -8
index 9ed66525b7..c2146bd53c 100644
@@ -1058,8 +1058,8 @@ struct hwrm_err_output {
 #define HWRM_VERSION_MINOR 10
 #define HWRM_VERSION_UPDATE 2
 /* non-zero means beta version */
-#define HWRM_VERSION_RSVD 54
-#define HWRM_VERSION_STR "1.10.2.54"
+#define HWRM_VERSION_RSVD 55
+#define HWRM_VERSION_STR "1.10.2.55"
 
 /****************
  * hwrm_ver_get *
@@ -46253,13 +46253,22 @@ struct hwrm_tf_tbl_type_get_input {
 	/* Control flags. */
 	uint16_t	flags;
 	/* Indicates the flow direction. */
-	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR     UINT32_C(0x1)
+	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR \
+		UINT32_C(0x1)
 	/* If this bit set to 0, then it indicates rx flow. */
-	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_RX    UINT32_C(0x0)
+	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_RX \
+		UINT32_C(0x0)
 	/* If this bit is set to 1, then it indicates tx flow. */
-	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_TX    UINT32_C(0x1)
+	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_TX \
+		UINT32_C(0x1)
 	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_LAST \
 		HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_TX
+	/*
+	 * When set use the special access register access to clear
+	 * the table entry on read.
+	 */
+	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_CLEAR_ON_READ \
+		UINT32_C(0x2)
 	/* unused. */
 	uint8_t	unused0[2];
 	/*
@@ -48489,13 +48498,22 @@ struct hwrm_tf_tbl_type_bulk_get_input {
 	/* Control flags. */
 	uint16_t	flags;
 	/* Indicates the flow direction. */
-	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR     UINT32_C(0x1)
+	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR \
+		UINT32_C(0x1)
 	/* If this bit set to 0, then it indicates rx flow. */
-	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_RX    UINT32_C(0x0)
+	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_RX \
+		UINT32_C(0x0)
 	/* If this bit is set to 1, then it indicates tx flow. */
-	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_TX    UINT32_C(0x1)
+	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_TX \
+		UINT32_C(0x1)
 	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_LAST \
 		HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_TX
+	/*
+	 * When set use the special access register access to clear
+	 * the table entries on read.
+	 */
+	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_CLEAR_ON_READ \
+		UINT32_C(0x2)
 	/* unused. */
 	uint8_t	unused0[2];
 	/*
drivers/net/bnxt/tf_core/tf_msg.c +20 -4
index 0fbb2fe837..ea6e2af7ce 100644
@@ -1851,7 +1851,8 @@ tf_msg_get_tbl_entry(struct tf *tfp,
 		     uint16_t hcapi_type,
 		     uint16_t size,
 		     uint8_t *data,
-		     uint32_t index)
+		     uint32_t index,
+		     bool clear_on_read)
 {
 	int rc;
 	struct hwrm_tf_tbl_type_get_input req = { 0 };
@@ -1860,6 +1861,7 @@ tf_msg_get_tbl_entry(struct tf *tfp,
 	uint8_t fw_session_id;
 	struct tf_dev_info *dev;
 	struct tf_session *tfs;
+	uint32_t flags = 0;
 
 	/* Retrieve the session information */
 	rc = tf_session_get_session_internal(tfp, &tfs);
@@ -1889,10 +1891,16 @@ tf_msg_get_tbl_entry(struct tf *tfp,
 			    strerror(-rc));
 		return rc;
 	}
+	flags = (dir == TF_DIR_TX ?
+		 HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_TX :
+		 HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_RX);
+
+	if (clear_on_read)
+		flags |= HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_CLEAR_ON_READ;
 
 	/* Populate the request */
 	req.fw_session_id = tfp_cpu_to_le_32(fw_session_id);
-	req.flags = tfp_cpu_to_le_16(dir);
+	req.flags = tfp_cpu_to_le_16(flags);
 	req.type = tfp_cpu_to_le_32(hcapi_type);
 	req.index = tfp_cpu_to_le_32(index);
 
@@ -2105,7 +2113,8 @@ tf_msg_bulk_get_tbl_entry(struct tf *tfp,
 			  uint32_t starting_idx,
 			  uint16_t num_entries,
 			  uint16_t entry_sz_in_bytes,
-			  uint64_t physical_mem_addr)
+			  uint64_t physical_mem_addr,
+			  bool clear_on_read)
 {
 	int rc;
 	struct tfp_send_msg_parms parms = { 0 };
@@ -2115,6 +2124,7 @@ tf_msg_bulk_get_tbl_entry(struct tf *tfp,
 	uint8_t fw_session_id;
 	struct tf_dev_info *dev;
 	struct tf_session *tfs;
+	uint32_t flags = 0;
 
 	/* Retrieve the session information */
 	rc = tf_session_get_session(tfp, &tfs);
@@ -2144,10 +2154,16 @@ tf_msg_bulk_get_tbl_entry(struct tf *tfp,
 			    strerror(-rc));
 		return rc;
 	}
+	flags = (dir == TF_DIR_TX ?
+		 HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_TX :
+		 HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_RX);
+
+	if (clear_on_read)
+		flags |= HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_CLEAR_ON_READ;
 
 	/* Populate the request */
 	req.fw_session_id = tfp_cpu_to_le_32(fw_session_id);
-	req.flags = tfp_cpu_to_le_16(dir);
+	req.flags = tfp_cpu_to_le_16(flags);
 	req.type = tfp_cpu_to_le_32(hcapi_type);
 	req.start_index = tfp_cpu_to_le_32(starting_idx);
 	req.num_entries = tfp_cpu_to_le_32(num_entries);
drivers/net/bnxt/tf_core/tf_msg.h +4 -2
index b26b15bfa3..718bc2f3b2 100644
@@ -652,7 +652,8 @@ int tf_msg_get_tbl_entry(struct tf *tfp,
 			 uint16_t hcapi_type,
 			 uint16_t size,
 			 uint8_t *data,
-			 uint32_t index);
+			 uint32_t index,
+			 bool clear_on_read);
 
 /* HWRM Tunneled messages */
 
@@ -704,7 +705,8 @@ int tf_msg_bulk_get_tbl_entry(struct tf *tfp,
 			      uint32_t starting_idx,
 			      uint16_t num_entries,
 			      uint16_t entry_sz_in_bytes,
-			      uint64_t physical_mem_addr);
+			      uint64_t physical_mem_addr,
+			      bool clear_on_read);
 
 /**
  * Sends Set message of a IF Table Type element to the firmware.
drivers/net/bnxt/tf_core/tf_tbl.c +4 -2
index 0a8720e7b6..12eca36491 100644
@@ -441,7 +441,8 @@ tf_tbl_get(struct tf *tfp,
 				  hcapi_type,
 				  parms->data_sz_in_bytes,
 				  parms->data,
-				  parms->idx);
+				  parms->idx,
+				  false);
 	if (rc) {
 		TFP_DRV_LOG(ERR,
 			    "%s, Get failed, type:%s, rc:%s\n",
@@ -526,7 +527,8 @@ tf_tbl_bulk_get(struct tf *tfp,
 				       parms->starting_idx,
 				       parms->num_entries,
 				       parms->entry_sz_in_bytes,
-				       parms->physical_mem_addr);
+				       parms->physical_mem_addr,
+				       false);
 	if (rc) {
 		TFP_DRV_LOG(ERR,
 			    "%s, Bulk get failed, type:%s, rc:%s\n",
drivers/net/bnxt/tf_core/tf_tbl_sram.c +11 -2
index 636811bc2d..567f912dfa 100644
@@ -539,6 +539,7 @@ tf_tbl_sram_get(struct tf *tfp,
 	struct tf_tbl_sram_get_info_parms iparms = { 0 };
 	struct tf_sram_mgr_is_allocated_parms aparms = { 0 };
 	void *sram_handle = NULL;
+	bool clear_on_read = false;
 
 	TF_CHECK_PARMS3(tfp, parms, parms->data);
 
@@ -608,6 +609,8 @@ tf_tbl_sram_get(struct tf *tfp,
 			    strerror(-rc));
 		return rc;
 	}
+	if (parms->type == TF_TBL_TYPE_ACT_STATS_64)
+		clear_on_read = true;
 
 	/* Get the entry */
 	rc = tf_msg_get_tbl_entry(tfp,
@@ -615,7 +618,8 @@ tf_tbl_sram_get(struct tf *tfp,
 				  hcapi_type,
 				  parms->data_sz_in_bytes,
 				  parms->data,
-				  parms->idx);
+				  parms->idx,
+				  clear_on_read);
 	if (rc) {
 		TFP_DRV_LOG(ERR,
 			    "%s, Get failed, type:%s, rc:%s\n",
@@ -643,6 +647,7 @@ tf_tbl_sram_bulk_get(struct tf *tfp,
 	struct tf_sram_mgr_is_allocated_parms aparms = { 0 };
 	bool allocated = false;
 	void *sram_handle = NULL;
+	bool clear_on_read = false;
 
 	TF_CHECK_PARMS2(tfp, parms);
 
@@ -728,6 +733,9 @@ tf_tbl_sram_bulk_get(struct tf *tfp,
 		return rc;
 	}
 
+	if (parms->type == TF_TBL_TYPE_ACT_STATS_64)
+		clear_on_read = true;
+
 	/* Get the entries */
 	rc = tf_msg_bulk_get_tbl_entry(tfp,
 				       parms->dir,
@@ -735,7 +743,8 @@ tf_tbl_sram_bulk_get(struct tf *tfp,
 				       parms->starting_idx,
 				       parms->num_entries,
 				       parms->entry_sz_in_bytes,
-				       parms->physical_mem_addr);
+				       parms->physical_mem_addr,
+				       clear_on_read);
 	if (rc) {
 		TFP_DRV_LOG(ERR,
 			    "%s, Bulk get failed, type:%s, rc:%s\n",
drivers/net/bnxt/tf_ulp/bnxt_ulp.c +2 -1
index 092c22e505..3083c40113 100644
@@ -1488,7 +1488,8 @@ bnxt_ulp_port_init(struct bnxt *bp)
 		goto jump_to_error;
 	}
 
-	if (devid != BNXT_ULP_DEVICE_ID_THOR && BNXT_ACCUM_STATS_EN(bp))
+	/* set the accumulation of the stats */
+	if (BNXT_ACCUM_STATS_EN(bp))
 		bp->ulp_ctx->cfg_data->accum_stats = true;
 
 	BNXT_TF_DBG(DEBUG, "BNXT Port:%d ULP port init, accum_stats:%d\n",
Signature · 1 line
2.17.1
#5 lore raw

PATCH 5/9 net/bnxt: add feature capability option for socket direct

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

Added support for socket direct feature capability so applications can enable or disable this feature. This patch contains the template changes.

---
 drivers/net/bnxt/bnxt.h                       |  13 --
 drivers/net/bnxt/bnxt_ethdev.c                | 203 ------------------
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c            |  11 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.h            |   6 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c       |  10 +-
 .../generic_templates/ulp_template_db_enum.h  |   8 +-
 .../generic_templates/ulp_template_db_tbl.c   |   5 +-
 7 files changed, 30 insertions(+), 226 deletions(-)
drivers/net/bnxt/bnxt.h +0 -13
index b9e120d94b..9bf6697006 100644
@@ -1060,19 +1060,6 @@ int32_t
 bnxt_ulp_create_vfr_default_rules(struct rte_eth_dev *vfr_ethdev);
 int32_t
 bnxt_ulp_delete_vfr_default_rules(struct bnxt_representor *vfr);
-void bnxt_get_iface_mac(uint16_t port, enum bnxt_ulp_intf_type type,
-			uint8_t *mac, uint8_t *parent_mac);
-uint16_t bnxt_get_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type);
-uint16_t bnxt_get_parent_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type);
-struct bnxt *bnxt_get_bp(uint16_t port);
-uint16_t bnxt_get_svif(uint16_t port_id, bool func_svif,
-		       enum bnxt_ulp_intf_type type);
-uint16_t bnxt_get_fw_func_id(uint16_t port, enum bnxt_ulp_intf_type type);
-uint16_t bnxt_get_parif(uint16_t port, enum bnxt_ulp_intf_type type);
-uint16_t bnxt_get_phy_port_id(uint16_t port);
-uint16_t bnxt_get_vport(uint16_t port);
-enum bnxt_ulp_intf_type
-bnxt_get_interface_type(uint16_t port);
 int bnxt_rep_dev_start_op(struct rte_eth_dev *eth_dev);
 
 void bnxt_cancel_fc_thread(struct bnxt *bp);
drivers/net/bnxt/bnxt_ethdev.c +0 -203

209 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/bnxt_ulp.c +9 -2
index 3083c40113..58a58a431d 100644
@@ -301,13 +301,14 @@ bnxt_ulp_tf_shared_session_resources_get(struct bnxt_ulp_context *ulp_ctx,
 }
 
 int32_t
-bnxt_ulp_cntxt_app_caps_init(struct bnxt_ulp_context *ulp_ctx,
+bnxt_ulp_cntxt_app_caps_init(struct bnxt *bp,
 			     uint8_t app_id, uint32_t dev_id)
 {
 	struct bnxt_ulp_app_capabilities_info *info;
 	uint32_t num = 0;
 	uint16_t i;
 	bool found = false;
+	struct bnxt_ulp_context *ulp_ctx = bp->ulp_ctx;
 
 	if (ULP_APP_DEV_UNSUPPORTED_ENABLED(ulp_ctx->cfg_data->ulp_flags)) {
 		BNXT_TF_DBG(ERR, "APP ID %d, Device ID: 0x%x not supported.\n",
@@ -334,6 +335,12 @@ bnxt_ulp_cntxt_app_caps_init(struct bnxt_ulp_context *ulp_ctx,
 		if (info[i].flags & BNXT_ULP_APP_CAP_UNICAST_ONLY)
 			ulp_ctx->cfg_data->ulp_flags |=
 				BNXT_ULP_APP_UNICAST_ONLY;
+		if (info[i].flags & BNXT_ULP_APP_CAP_SOCKET_DIRECT) {
+			/* Enable socket direction only if MR is enabled in fw*/
+			if (BNXT_MULTIROOT_EN(bp))
+				ulp_ctx->cfg_data->ulp_flags |=
+					BNXT_ULP_APP_SOCKET_DIRECT;
+		}
 	}
 	if (!found) {
 		BNXT_TF_DBG(ERR, "APP ID %d, Device ID: 0x%x not supported.\n",
@@ -837,7 +844,7 @@ ulp_ctx_init(struct bnxt *bp,
 	}
 	BNXT_TF_DBG(DEBUG, "Ulp initialized with app id %d\n", bp->app_id);
 
-	rc = bnxt_ulp_cntxt_app_caps_init(bp->ulp_ctx, bp->app_id, devid);
+	rc = bnxt_ulp_cntxt_app_caps_init(bp, bp->app_id, devid);
 	if (rc) {
 		BNXT_TF_DBG(ERR, "Unable to set caps for app(%x)/dev(%x)\n",
 			    bp->app_id, devid);
drivers/net/bnxt/tf_ulp/bnxt_ulp.h +5 -1
index 006df9cbc5..68f1470c61 100644
@@ -13,6 +13,7 @@
 #include "rte_version.h"
 #include "rte_ethdev.h"
 
+#include "bnxt.h"
 #include "ulp_template_db_enum.h"
 #include "ulp_tun.h"
 #include "bnxt_tf_common.h"
@@ -33,12 +34,15 @@
 #define BNXT_ULP_APP_DEV_UNSUPPORTED	0x4
 #define BNXT_ULP_HIGH_AVAIL_ENABLED	0x8
 #define BNXT_ULP_APP_UNICAST_ONLY	0x10
+#define BNXT_ULP_APP_SOCKET_DIRECT	0x20
+
 #define ULP_VF_REP_IS_ENABLED(flag)	((flag) & BNXT_ULP_VF_REP_ENABLED)
 #define ULP_SHARED_SESSION_IS_ENABLED(flag) ((flag) &\
 					     BNXT_ULP_SHARED_SESSION_ENABLED)
 #define ULP_APP_DEV_UNSUPPORTED_ENABLED(flag)	((flag) &\
 						 BNXT_ULP_APP_DEV_UNSUPPORTED)
 #define ULP_HIGH_AVAIL_IS_ENABLED(flag)	((flag) & BNXT_ULP_HIGH_AVAIL_ENABLED)
+#define ULP_SOCKET_DIRECT_IS_ENABLED(flag) ((flag) & BNXT_ULP_APP_SOCKET_DIRECT)
 
 enum bnxt_ulp_flow_mem_type {
 	BNXT_ULP_FLOW_MEM_TYPE_INT = 0,
@@ -287,7 +291,7 @@ struct bnxt_ulp_app_capabilities_info *
 bnxt_ulp_app_cap_list_get(uint32_t *num_entries);
 
 int32_t
-bnxt_ulp_cntxt_app_caps_init(struct bnxt_ulp_context *ulp_ctx,
+bnxt_ulp_cntxt_app_caps_init(struct bnxt *bp,
 			     uint8_t app_id, uint32_t dev_id);
 
 struct bnxt_ulp_resource_resv_info *
drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c +8 -2
index 413e4c3b26..6413afdaf2 100644
@@ -118,9 +118,11 @@ bnxt_ulp_init_mapper_params(struct bnxt_ulp_mapper_create_parms *mapper_cparms,
 	ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_FLOW_SIG_ID,
 			    params->flow_sig_id);
 
+	if (bnxt_ulp_cntxt_ptr2_ulp_flags_get(params->ulp_ctx, &ulp_flags))
+		return;
+
 	/* update the WC Priority flag */
-	if (!bnxt_ulp_cntxt_ptr2_ulp_flags_get(params->ulp_ctx, &ulp_flags) &&
-	    ULP_HIGH_AVAIL_IS_ENABLED(ulp_flags)) {
+	if (ULP_HIGH_AVAIL_IS_ENABLED(ulp_flags)) {
 		enum ulp_ha_mgr_region region = ULP_HA_REGION_LOW;
 		int32_t rc;
 
@@ -132,6 +134,10 @@ bnxt_ulp_init_mapper_params(struct bnxt_ulp_mapper_create_parms *mapper_cparms,
 					    BNXT_ULP_CF_IDX_WC_IS_HA_HIGH_REG,
 					    1);
 	}
+
+	/* Update the socket direct flag */
+	if (ULP_SOCKET_DIRECT_IS_ENABLED(ulp_flags))
+		ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_SOCKET_DIRECT, 1);
 }
 
 /* Function to create the rte flow. */
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h +5 -3
index fcd460e707..31a94c14dc 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Thu Aug 26 17:43:36 2021 */
+/* date: Thu Sep  9 11:11:05 2021 */
 
 #ifndef ULP_TEMPLATE_DB_H_
 #define ULP_TEMPLATE_DB_H_
@@ -211,7 +211,8 @@ enum bnxt_ulp_cf_idx {
 	BNXT_ULP_CF_IDX_OI_VLAN_FB_VID = 71,
 	BNXT_ULP_CF_IDX_IO_VLAN_FB_VID = 72,
 	BNXT_ULP_CF_IDX_II_VLAN_FB_VID = 73,
-	BNXT_ULP_CF_IDX_LAST = 74
+	BNXT_ULP_CF_IDX_SOCKET_DIRECT = 74,
+	BNXT_ULP_CF_IDX_LAST = 75
 };
 
 enum bnxt_ulp_cond_list_opc {
@@ -582,7 +583,8 @@ enum bnxt_ulp_template_type {
 enum bnxt_ulp_app_cap {
 	BNXT_ULP_APP_CAP_SHARED_EN = 0x00000001,
 	BNXT_ULP_APP_CAP_HOT_UPGRADE_EN = 0x00000002,
-	BNXT_ULP_APP_CAP_UNICAST_ONLY = 0x00000004
+	BNXT_ULP_APP_CAP_UNICAST_ONLY = 0x00000004,
+	BNXT_ULP_APP_CAP_SOCKET_DIRECT = 0x00000008
 };
 
 enum bnxt_ulp_fdb_resource_flags {
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c +3 -2
index 84be09b368..5383e2cd70 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Thu Aug 26 17:43:36 2021 */
+/* date: Thu Sep  9 11:11:05 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -347,7 +347,8 @@ struct bnxt_ulp_app_capabilities_info ulp_app_cap_info_list[] = {
 	.device_id               = BNXT_ULP_DEVICE_ID_THOR,
 	.flags                   = BNXT_ULP_APP_CAP_SHARED_EN |
 				   BNXT_ULP_APP_CAP_HOT_UPGRADE_EN |
-				   BNXT_ULP_APP_CAP_UNICAST_ONLY
+				   BNXT_ULP_APP_CAP_UNICAST_ONLY |
+				   BNXT_ULP_APP_CAP_SOCKET_DIRECT
 	},
 	{
 	.app_id                  = 2,
Signature · 1 line
2.17.1
#6 lore raw

PATCH 6/9 net/bnxt: enable wildcard match for ingress flows

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

Enabled wildcard match support for ipv4 ingress flows.

---
 .../generic_templates/ulp_template_db_enum.h  |   4 +-
 .../ulp_template_db_thor_class.c              | 251 +++++++++---------
 2 files changed, 125 insertions(+), 130 deletions(-)
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h +2 -2
index 31a94c14dc..8706e45f28 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Thu Sep  9 11:11:05 2021 */
+/* date: Thu Sep  9 12:11:08 2021 */
 
 #ifndef ULP_TEMPLATE_DB_H_
 #define ULP_TEMPLATE_DB_H_
@@ -48,7 +48,7 @@
 #define ULP_THOR_CLASS_KEY_INFO_LIST_SIZE 2323
 #define ULP_THOR_CLASS_IDENT_LIST_SIZE 38
 #define ULP_THOR_CLASS_RESULT_FIELD_LIST_SIZE 1313
-#define ULP_THOR_CLASS_COND_LIST_SIZE 55
+#define ULP_THOR_CLASS_COND_LIST_SIZE 54
 #define ULP_WH_PLUS_ACT_TMPL_LIST_SIZE 7
 #define ULP_WH_PLUS_ACT_TBL_LIST_SIZE 37
 #define ULP_WH_PLUS_ACT_KEY_INFO_LIST_SIZE 2
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c +123 -128

990 lines not on this page · raw message

Signature · 1 line
2.17.1
#7 lore raw

PATCH 7/9 net/bnxt: support inner IP header for GRE tunnel flows

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

This change allows adding ip header matches for GRE flows that does not specify outer ip header in the flow match pattern.

---
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      | 7 ++++---
 drivers/net/bnxt/tf_ulp/ulp_template_struct.h | 2 +-
 2 files changed, 5 insertions(+), 4 deletions(-)
drivers/net/bnxt/tf_ulp/ulp_rte_parser.c +4 -3
index 3a9c9bba27..09ebfeb785 100644
@@ -1079,7 +1079,8 @@ ulp_rte_ipv4_hdr_handler(const struct rte_flow_item *item,
 
 	/* Set the ipv4 header bitmap and computed l3 header bitmaps */
 	if (ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV4) ||
-	    ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV6)) {
+	    ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV6) ||
+	    ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_L3_TUN)) {
 		ULP_BITMAP_SET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_I_IPV4);
 		ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L3, 1);
 		inner_flag = 1;
@@ -1205,7 +1206,8 @@ ulp_rte_ipv6_hdr_handler(const struct rte_flow_item *item,
 
 	/* Set the ipv6 header bitmap and computed l3 header bitmaps */
 	if (ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV4) ||
-	    ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV6)) {
+	    ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV6) ||
+	    ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_L3_TUN)) {
 		ULP_BITMAP_SET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_I_IPV6);
 		ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L3, 1);
 		inner_flag = 1;
@@ -2087,7 +2089,6 @@ ulp_rte_vxlan_decap_act_handler(const struct rte_flow_action *action_item
 		       BNXT_ULP_ACT_BIT_VXLAN_DECAP);
 	/* Update computational field with tunnel decap info */
 	ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_L3_TUN_DECAP, 1);
-	ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_L3_TUN, 1);
 	return BNXT_TF_RC_SUCCESS;
 }
 
drivers/net/bnxt/tf_ulp/ulp_template_struct.h +1 -1
index d3bfb8c12d..7d1bc06a3e 100644
@@ -27,7 +27,7 @@
 #define BNXT_ULP_PROTO_HDR_UDP_NUM	4
 #define BNXT_ULP_PROTO_HDR_TCP_NUM	9
 #define BNXT_ULP_PROTO_HDR_VXLAN_NUM	4
-#define BNXT_ULP_PROTO_HDR_GRE_NUM	6
+#define BNXT_ULP_PROTO_HDR_GRE_NUM	2
 #define BNXT_ULP_PROTO_HDR_ICMP_NUM	5
 #define BNXT_ULP_PROTO_HDR_MAX		128
 #define BNXT_ULP_PROTO_HDR_ENCAP_MAX	64
Signature · 1 line
2.17.1
#8 lore raw

PATCH 8/9 net/bnxt: get Truflow version

In reply to Venkat Duvvuru

From: Jay Ding <[email protected]>

Implement TF_GET_VERSION that returns Truflow version numbers and CFA resources capabilities.

---
 drivers/net/bnxt/hsi_struct_def_dpdk.h   | 15 ++--
 drivers/net/bnxt/tf_core/tf_core.c       | 30 ++++++++
 drivers/net/bnxt/tf_core/tf_core.h       | 75 ++++++++++++++++++++
 drivers/net/bnxt/tf_core/tf_device.h     | 50 ++++++++++++++
 drivers/net/bnxt/tf_core/tf_device_p4.c  | 65 +++++++++++++++++-
 drivers/net/bnxt/tf_core/tf_device_p4.h  | 79 +++++++++++++++++++++
 drivers/net/bnxt/tf_core/tf_device_p58.c | 65 +++++++++++++++++-
 drivers/net/bnxt/tf_core/tf_device_p58.h | 87 ++++++++++++++++++++++++
 drivers/net/bnxt/tf_core/tf_msg.c        | 35 ++++++++++
 drivers/net/bnxt/tf_core/tf_msg.h        | 19 ++++++
 10 files changed, 514 insertions(+), 6 deletions(-)
drivers/net/bnxt/hsi_struct_def_dpdk.h +11 -4
index c2146bd53c..114e9fcc88 100644
@@ -1058,8 +1058,8 @@ struct hwrm_err_output {
 #define HWRM_VERSION_MINOR 10
 #define HWRM_VERSION_UPDATE 2
 /* non-zero means beta version */
-#define HWRM_VERSION_RSVD 55
-#define HWRM_VERSION_STR "1.10.2.55"
+#define HWRM_VERSION_RSVD 58
+#define HWRM_VERSION_STR "1.10.2.58"
 
 /****************
  * hwrm_ver_get *
@@ -45178,7 +45178,7 @@ struct hwrm_tf_version_get_input {
 	uint64_t	resp_addr;
 } __rte_packed;
 
-/* hwrm_tf_version_get_output (size:128b/16B) */
+/* hwrm_tf_version_get_output (size:256b/32B) */
 struct hwrm_tf_version_get_output {
 	/* The specific error status for the command. */
 	uint16_t	error_code;
@@ -45195,7 +45195,14 @@ struct hwrm_tf_version_get_output {
 	/* Version Update number. */
 	uint8_t	update;
 	/* unused. */
-	uint8_t	unused0[4];
+	uint8_t	unused0[5];
+	/*
+	 * This field is used to indicate device's capabilities and
+	 * configurations.
+	 */
+	uint64_t	dev_caps_cfg;
+	/* unused. */
+	uint8_t	unused1[7];
 	/*
 	 * This field is used in Output records to indicate that the output
 	 * is completely written to RAM. This field should be read as '1'
drivers/net/bnxt/tf_core/tf_core.c +30 -0
index 936102c804..7873bfc02c 100644
@@ -1802,3 +1802,33 @@ int tf_get_session_info(struct tf *tfp,
 
 	return 0;
 }
+
+int tf_get_version(struct tf *tfp,
+		   struct tf_get_version_parms *parms)
+{
+	int rc;
+	struct tf_dev_info dev;
+
+	TF_CHECK_PARMS2(tfp, parms);
+
+	/* This function can be called before open session, filter
+	 * out any non-supported device types on the Core side.
+	 */
+	if (parms->device_type != TF_DEVICE_TYPE_WH &&
+	    parms->device_type != TF_DEVICE_TYPE_THOR &&
+	    parms->device_type != TF_DEVICE_TYPE_SR) {
+		TFP_DRV_LOG(ERR,
+			    "Unsupported device type %d\n",
+			    parms->device_type);
+		return -ENOTSUP;
+	}
+
+	tf_dev_bind_ops(parms->device_type, &dev);
+
+	rc = tf_msg_get_version(parms->bp, &dev, parms);
+	if (rc)
+		return rc;
+
+	return 0;
+}
+
drivers/net/bnxt/tf_core/tf_core.h +75 -0

79 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device.h +50 -0

72 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device_p4.c +64 -1

81 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device_p4.h +79 -0

83 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device_p58.c +64 -1

87 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device_p58.h +87 -0

91 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_msg.c +35 -0
index ea6e2af7ce..25bf026658 100644
@@ -2306,3 +2306,38 @@ tf_msg_set_if_tbl_entry(struct tf *tfp,
 
 	return 0;
 }
+
+int
+tf_msg_get_version(struct bnxt *bp,
+		   struct tf_dev_info *dev,
+		   struct tf_get_version_parms *params)
+
+{
+	int rc;
+	struct hwrm_tf_version_get_input req = { 0 };
+	struct hwrm_tf_version_get_output resp = { 0 };
+	struct tfp_send_msg_parms parms = { 0 };
+
+	/* Populate the request */
+	parms.tf_type = HWRM_TF_VERSION_GET,
+	parms.req_data = (uint32_t *)&req;
+	parms.req_size = sizeof(req);
+	parms.resp_data = (uint32_t *)&resp;
+	parms.resp_size = sizeof(resp);
+	parms.mailbox = dev->ops->tf_dev_get_mailbox();
+
+	rc = tfp_send_msg_direct(bp,
+				 &parms);
+
+	params->major = resp.major;
+	params->minor = resp.minor;
+	params->update = resp.update;
+
+	dev->ops->tf_dev_map_hcapi_caps(resp.dev_caps_cfg,
+					&params->dev_ident_caps,
+					&params->dev_tcam_caps,
+					&params->dev_tbl_caps,
+					&params->dev_em_caps);
+
+	return rc;
+}
drivers/net/bnxt/tf_core/tf_msg.h +19 -0
index 718bc2f3b2..08d20cdd7a 100644
@@ -738,4 +738,23 @@ int tf_msg_set_if_tbl_entry(struct tf *tfp,
 int tf_msg_get_if_tbl_entry(struct tf *tfp,
 			    struct tf_if_tbl_get_parms *params);
 
+/**
+ * Send get version request to the firmware.
+ *
+ * [in] bp
+ *   Pointer to bnxt handle
+ *
+ * [in] dev
+ *   Pointer to the associated device
+ *
+ * [in/out] parms
+ *   Pointer to the version info parameter
+ *
+ * Returns:
+ *  0 on Success else internal Truflow error
+ */
+int
+tf_msg_get_version(struct bnxt *bp,
+		   struct tf_dev_info *dev,
+		   struct tf_get_version_parms *parms);
 #endif  /* _TF_MSG_H_ */
Signature · 1 line
2.17.1
#9 lore raw

PATCH 9/9 net/bnxt: increase scaling numbers on Thor

In reply to Venkat Duvvuru

From: Shahaji Bhosle <[email protected]>

* Updated defines and data types to allow 256 VFRs.
* Increased the encap record cache to support 256 to 4K entries. So vxlan connections can be scaled to 4k entries.

---
 drivers/net/bnxt/bnxt.h                        |  6 +++++-
 drivers/net/bnxt/bnxt_cpr.c                    |  2 +-
 drivers/net/bnxt/bnxt_ethdev.c                 | 18 +++++++++---------
 drivers/net/bnxt/bnxt_reps.c                   |  3 +--
 drivers/net/bnxt/tf_ulp/bnxt_ulp.h             |  2 +-
 .../generic_templates/ulp_template_db_tbl.c    |  8 ++++----
 drivers/net/bnxt/tf_ulp/ulp_def_rules.c        |  6 +++---
 7 files changed, 24 insertions(+), 21 deletions(-)
drivers/net/bnxt/bnxt.h +5 -1
index 9bf6697006..0209bb5c39 100644
@@ -240,7 +240,11 @@ struct bnxt_parent_info {
 struct bnxt_pf_info {
 #define BNXT_FIRST_PF_FID	1
 #define BNXT_MAX_VFS(bp)	((bp)->pf->max_vfs)
-#define BNXT_MAX_VF_REPS	64
+#define BNXT_MAX_VF_REPS_WH     64
+#define BNXT_MAX_VF_REPS_TH     256
+#define BNXT_MAX_VF_REPS(bp) \
+				(BNXT_CHIP_P5(bp) ? BNXT_MAX_VF_REPS_TH : \
+				BNXT_MAX_VF_REPS_WH)
 #define BNXT_TOTAL_VFS(bp)	((bp)->pf->total_vfs)
 #define BNXT_FIRST_VF_FID	128
 #define BNXT_PF_RINGS_USED(bp)	bnxt_get_num_queues(bp)
drivers/net/bnxt/bnxt_cpr.c +1 -1
index 63ff02a198..6bb70d516e 100644
@@ -74,7 +74,7 @@ bnxt_process_default_vnic_change(struct bnxt *bp,
 			BNXT_DEFAULT_VNIC_CHANGE_VF_ID_SFT;
 	PMD_DRV_LOG(INFO, "async event received vf_id 0x%x\n", vf_fid);
 
-	for (vf_id = 0; vf_id < BNXT_MAX_VF_REPS; vf_id++) {
+	for (vf_id = 0; vf_id < BNXT_MAX_VF_REPS(bp); vf_id++) {
 		eth_dev = bp->rep_info[vf_id].vfr_eth_dev;
 		if (!eth_dev)
 			continue;
drivers/net/bnxt/bnxt_ethdev.c +9 -9
index 63d764f968..034f4cdcaa 100644
@@ -1185,7 +1185,7 @@ void bnxt_print_link_info(struct rte_eth_dev *eth_dev)
 	struct rte_eth_link *link = &eth_dev->data->dev_link;
 
 	if (link->link_status)
-		PMD_DRV_LOG(INFO, "Port %d Link Up - speed %u Mbps - %s\n",
+		PMD_DRV_LOG(DEBUG, "Port %d Link Up - speed %u Mbps - %s\n",
 			eth_dev->data->port_id,
 			(uint32_t)link->link_speed,
 			(link->link_duplex == ETH_LINK_FULL_DUPLEX) ?
@@ -6046,7 +6046,7 @@ static int bnxt_init_rep_info(struct bnxt *bp)
 		return 0;
 
 	bp->rep_info = rte_zmalloc("bnxt_rep_info",
-				   sizeof(bp->rep_info[0]) * BNXT_MAX_VF_REPS,
+				   sizeof(bp->rep_info[0]) * BNXT_MAX_VF_REPS(bp),
 				   0);
 	if (!bp->rep_info) {
 		PMD_DRV_LOG(ERR, "Failed to alloc memory for rep info\n");
@@ -6088,7 +6088,9 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
 {
 	struct rte_eth_dev *vf_rep_eth_dev;
 	char name[RTE_ETH_NAME_MAX_LEN];
-	struct bnxt *backing_bp;
+	struct bnxt *backing_bp = backing_eth_dev->data->dev_private;
+	uint16_t max_vf_reps = BNXT_MAX_VF_REPS(backing_bp);
+
 	uint16_t num_rep;
 	int i, ret = 0;
 	struct rte_kvargs *kvlist = NULL;
@@ -6101,9 +6103,9 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
 		return -ENOTSUP;
 	}
 	num_rep = eth_da->nb_representor_ports;
-	if (num_rep > BNXT_MAX_VF_REPS) {
+	if (num_rep > max_vf_reps) {
 		PMD_DRV_LOG(ERR, "nb_representor_ports = %d > %d MAX VF REPS\n",
-			    num_rep, BNXT_MAX_VF_REPS);
+			    num_rep, max_vf_reps);
 		return -EINVAL;
 	}
 
@@ -6114,8 +6116,6 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
 		return -EINVAL;
 	}
 
-	backing_bp = backing_eth_dev->data->dev_private;
-
 	if (!(BNXT_PF(backing_bp) || BNXT_VF_IS_TRUSTED(backing_bp))) {
 		PMD_DRV_LOG(ERR,
 			    "Not a PF or trusted VF. No Representor support\n");
@@ -6135,9 +6135,9 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
 			.parent_dev = backing_eth_dev
 		};
 
-		if (representor.vf_id >= BNXT_MAX_VF_REPS) {
+		if (representor.vf_id >= max_vf_reps) {
 			PMD_DRV_LOG(ERR, "VF-Rep id %d >= %d MAX VF ID\n",
-				    representor.vf_id, BNXT_MAX_VF_REPS);
+				    representor.vf_id, max_vf_reps);
 			continue;
 		}
 
drivers/net/bnxt/bnxt_reps.c +1 -2
index bdbad53b7d..0feefe156c 100644
@@ -209,7 +209,6 @@ int bnxt_representor_init(struct rte_eth_dev *eth_dev, void *params)
 	eth_dev->data->dev_link.link_status = link->link_status;
 	eth_dev->data->dev_link.link_autoneg = link->link_autoneg;
 
-	PMD_DRV_LOG(INFO, "calling bnxt_print_link_info\n");
 	bnxt_print_link_info(eth_dev);
 
 	PMD_DRV_LOG(INFO,
@@ -818,7 +817,7 @@ int bnxt_rep_stop_all(struct bnxt *bp)
 	if (!bp->rep_info)
 		return 0;
 
-	for (vf_id = 0; vf_id < BNXT_MAX_VF_REPS; vf_id++) {
+	for (vf_id = 0; vf_id < BNXT_MAX_VF_REPS(bp); vf_id++) {
 		rep_eth_dev = bp->rep_info[vf_id].vfr_eth_dev;
 		if (!rep_eth_dev)
 			continue;
drivers/net/bnxt/tf_ulp/bnxt_ulp.h +1 -1
index 68f1470c61..960a5a0c93 100644
@@ -262,7 +262,7 @@ bnxt_ulp_cntxt_ptr2_ulp_flags_get(struct bnxt_ulp_context *ulp_ctx,
 				  uint32_t *flags);
 
 int32_t
-bnxt_ulp_get_df_rule_info(uint8_t port_id, struct bnxt_ulp_context *ulp_ctx,
+bnxt_ulp_get_df_rule_info(uint16_t port_id, struct bnxt_ulp_context *ulp_ctx,
 			  struct bnxt_ulp_df_rule_info *info);
 
 struct bnxt_ulp_vfr_rule_info*
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c +4 -4
index 5383e2cd70..e43e341927 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Thu Sep  9 11:11:05 2021 */
+/* date: Thu Sep 16 11:49:55 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -164,12 +164,12 @@ struct bnxt_ulp_generic_tbl_params ulp_generic_tbl_params[] = {
 	},
 	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_REC_CACHE << 1 |
 		BNXT_ULP_DIRECTION_EGRESS] = {
-	.name                    = "INGRESS GEN_TABLE_VXLAN_ENCAP_REC_CACHE",
-	.result_num_entries      = 256,
+	.name                    = "EGRESS GEN_TABLE_VXLAN_ENCAP_REC_CACHE",
+	.result_num_entries      = 4096,
 	.result_num_bytes        = 6,
 	.key_num_bytes           = 17,
 	.num_buckets             = 8,
-	.hash_tbl_entries        = 1024,
+	.hash_tbl_entries        = 16384,
 	.result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
 	}
 };
drivers/net/bnxt/tf_ulp/ulp_def_rules.c +3 -3
index d8336d164e..01233c0f5e 100644
@@ -441,7 +441,7 @@ void
 bnxt_ulp_destroy_df_rules(struct bnxt *bp, bool global)
 {
 	struct bnxt_ulp_df_rule_info *info;
-	uint8_t port_id;
+	uint16_t port_id;
 
 	if (!BNXT_TRUFLOW_EN(bp) ||
 	    BNXT_ETH_DEV_IS_REPRESENTOR(bp->eth_dev))
@@ -505,7 +505,7 @@ int32_t
 bnxt_ulp_create_df_rules(struct bnxt *bp)
 {
 	struct bnxt_ulp_df_rule_info *info;
-	uint8_t port_id;
+	uint16_t port_id;
 	int rc = 0;
 
 	if (!BNXT_TRUFLOW_EN(bp) ||
@@ -562,7 +562,7 @@ bnxt_ulp_create_vfr_default_rules(struct rte_eth_dev *vfr_ethdev)
 	struct rte_eth_dev *parent_dev = vfr->parent_dev;
 	struct bnxt *bp = parent_dev->data->dev_private;
 	uint16_t vfr_port_id = vfr_ethdev->data->port_id;
-	uint8_t port_id;
+	uint16_t port_id;
 	int rc;
 
 	if (!bp || !BNXT_TRUFLOW_EN(bp))
Signature · 1 line
2.17.1
#10 lore raw

v2 cover fixes and enhancements to Truflow

In reply to Venkat Duvvuru

This patch set adds enhancements and fixes to Truflow feature.

Enhancements include:
* Scaling numbers on Thor
* Inner IP header support for GRE tunnel flows
* Enable wildcard match for ingress flows
* Add clear on read for flow stats on Thor
* Add nat support for dest IP and port combination
* Remove 2-slice WC support
* Add support for socket redirect feature
* Add new API TruFlow get SRAM resources
* Remove accumulation of stats devargs argument
* Add TruFlow and AFM SRAM partitioning support

V2:
* Compilation fixes
* Remove 2-slice WC support
* Add support for socket redirect feature
* Add new API TruFlow get SRAM resources
* Remove accumulation of stats devargs argument
* Add TruFlow and AFM SRAM partitioning support

Farah Smith (1):
net/bnxt: add clear on read support

Jay Ding (4):
net/bnxt: get TruFlow version
net/bnxt: add new API TruFlow get SRAM resources net/bnxt: add TruFlow and AFM SRAM partitioning support net/bnxt: add Tx TruFlow table config for p4

Kishore Padmanabha (11):
net/bnxt: add NAT support for dest IP and port combination net/bnxt: add support for multi root capability net/bnxt: fix the out of boundary issue in hash list net/bnxt: add capability option for socket redirect net/bnxt: enable wildcard match for ingress flows net/bnxt: support inner IP header for GRE tunnel flows net/bnxt: remove accumulation of stats devargs argument net/bnxt: updated the log messages
net/bnxt: add support for socket redirect feature net/bnxt: delete the VF pair before VF representor alloc net/bnxt: check for mismatch of control and physical port

Mike Baucom (1):
net/bnxt: remove 2-slice WC entries for scale

Shahaji Bhosle (2):
net/bnxt: increase flow scale for Thor
net/bnxt: fix clang compiler warnings

 drivers/net/bnxt/bnxt.h                       |   25 +-
 drivers/net/bnxt/bnxt_cpr.c                   |    2 +-
 drivers/net/bnxt/bnxt_ethdev.c                |  274 +-
 drivers/net/bnxt/bnxt_hwrm.c                  |   36 +
 drivers/net/bnxt/bnxt_hwrm.h                  |    1 +
 drivers/net/bnxt/bnxt_reps.c                  |    9 +-
 drivers/net/bnxt/hsi_struct_def_dpdk.h        | 2970 +++++++++++--
 drivers/net/bnxt/tf_core/tf_core.c            |  197 +
 drivers/net/bnxt/tf_core/tf_core.h            |  202 +
 drivers/net/bnxt/tf_core/tf_device.c          |   11 +-
 drivers/net/bnxt/tf_core/tf_device.h          |  102 +
 drivers/net/bnxt/tf_core/tf_device_p4.c       |  178 +-
 drivers/net/bnxt/tf_core/tf_device_p4.h       |  137 +-
 drivers/net/bnxt/tf_core/tf_device_p58.c      |  421 +-
 drivers/net/bnxt/tf_core/tf_device_p58.h      |  205 +-
 drivers/net/bnxt/tf_core/tf_msg.c             |   87 +-
 drivers/net/bnxt/tf_core/tf_msg.h             |   31 +-
 drivers/net/bnxt/tf_core/tf_rm.c              |    3 +-
 drivers/net/bnxt/tf_core/tf_sram_mgr.h        |   10 -
 drivers/net/bnxt/tf_core/tf_tbl.c             |    8 +-
 drivers/net/bnxt/tf_core/tf_tbl_sram.c        |   13 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c            |   58 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.h            |    9 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c       |   29 +-
 .../generic_templates/ulp_template_db_act.c   |  376 +-
 .../generic_templates/ulp_template_db_class.c | 1986 ++++-----
 .../generic_templates/ulp_template_db_enum.h  |   91 +-
 .../generic_templates/ulp_template_db_tbl.c   | 3946 +++++++++++++----
 .../ulp_template_db_thor_act.c                |  150 +-
 .../ulp_template_db_thor_class.c              |  909 ++--
 .../ulp_template_db_wh_plus_act.c             |  336 +-
 .../ulp_template_db_wh_plus_class.c           |  222 +-
 drivers/net/bnxt/tf_ulp/ulp_def_rules.c       |    8 +-
 drivers/net/bnxt/tf_ulp/ulp_fc_mgr.c          |   12 +-
 drivers/net/bnxt/tf_ulp/ulp_flow_db.c         |    2 +-
 drivers/net/bnxt/tf_ulp/ulp_gen_hash.c        |   20 +-
 drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c        |    2 +-
 drivers/net/bnxt/tf_ulp/ulp_port_db.c         |   23 +
 drivers/net/bnxt/tf_ulp/ulp_port_db.h         |   13 +
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      |   32 +-
 drivers/net/bnxt/tf_ulp/ulp_template_struct.h |    2 +-
 41 files changed, 9254 insertions(+), 3894 deletions(-)
Signature · 1 line
2.17.1
#11 lore raw

PATCH v2 1/19 net/bnxt: add NAT support for dest IP and port combination

From: Kishore Padmanabha <[email protected]>

* Added support for NAT action for the destination IP and port combination for the Thor platform. This is not supported for Whitney platform.
* Consolidated the encapsulation and NAT entries for scaling flows with NAT actions.

---
 .../generic_templates/ulp_template_db_act.c   | 376 +++++++++++-------
 .../generic_templates/ulp_template_db_enum.h  |  18 +-
 .../generic_templates/ulp_template_db_tbl.c   |  14 +-
 .../ulp_template_db_thor_class.c              |   2 +-
 .../ulp_template_db_wh_plus_act.c             |  96 +++--
 5 files changed, 317 insertions(+), 189 deletions(-)
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_act.c +236 -140
index 0da6070d7d..ce878d8e02 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Mon May 17 15:30:41 2021 */
+/* date: Wed Aug 25 14:37:06 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -47,59 +47,67 @@ uint16_t ulp_act_sig_tbl[BNXT_ULP_ACT_SIG_TBL_MAX_SZ] = {
 	[BNXT_ULP_ACT_HID_04bc] = 30,
 	[BNXT_ULP_ACT_HID_00a9] = 31,
 	[BNXT_ULP_ACT_HID_020f] = 32,
-	[BNXT_ULP_ACT_HID_04a9] = 33,
-	[BNXT_ULP_ACT_HID_01fc] = 34,
-	[BNXT_ULP_ACT_HID_04be] = 35,
-	[BNXT_ULP_ACT_HID_00ab] = 36,
-	[BNXT_ULP_ACT_HID_0211] = 37,
-	[BNXT_ULP_ACT_HID_04ab] = 38,
-	[BNXT_ULP_ACT_HID_01fe] = 39,
-	[BNXT_ULP_ACT_HID_0667] = 40,
-	[BNXT_ULP_ACT_HID_0254] = 41,
-	[BNXT_ULP_ACT_HID_03ba] = 42,
-	[BNXT_ULP_ACT_HID_0654] = 43,
-	[BNXT_ULP_ACT_HID_03a7] = 44,
-	[BNXT_ULP_ACT_HID_0669] = 45,
-	[BNXT_ULP_ACT_HID_0256] = 46,
-	[BNXT_ULP_ACT_HID_03bc] = 47,
-	[BNXT_ULP_ACT_HID_0656] = 48,
-	[BNXT_ULP_ACT_HID_03a9] = 49,
-	[BNXT_ULP_ACT_HID_021b] = 50,
-	[BNXT_ULP_ACT_HID_021c] = 51,
-	[BNXT_ULP_ACT_HID_021e] = 52,
-	[BNXT_ULP_ACT_HID_063f] = 53,
-	[BNXT_ULP_ACT_HID_0510] = 54,
-	[BNXT_ULP_ACT_HID_03c6] = 55,
-	[BNXT_ULP_ACT_HID_0082] = 56,
-	[BNXT_ULP_ACT_HID_06bb] = 57,
-	[BNXT_ULP_ACT_HID_021d] = 58,
-	[BNXT_ULP_ACT_HID_0641] = 59,
-	[BNXT_ULP_ACT_HID_0512] = 60,
-	[BNXT_ULP_ACT_HID_03c8] = 61,
-	[BNXT_ULP_ACT_HID_0084] = 62,
-	[BNXT_ULP_ACT_HID_06bd] = 63,
-	[BNXT_ULP_ACT_HID_06d7] = 64,
-	[BNXT_ULP_ACT_HID_02c4] = 65,
-	[BNXT_ULP_ACT_HID_042a] = 66,
-	[BNXT_ULP_ACT_HID_06c4] = 67,
-	[BNXT_ULP_ACT_HID_0417] = 68,
-	[BNXT_ULP_ACT_HID_06d9] = 69,
-	[BNXT_ULP_ACT_HID_02c6] = 70,
-	[BNXT_ULP_ACT_HID_042c] = 71,
-	[BNXT_ULP_ACT_HID_06c6] = 72,
-	[BNXT_ULP_ACT_HID_0419] = 73,
-	[BNXT_ULP_ACT_HID_0119] = 74,
-	[BNXT_ULP_ACT_HID_046f] = 75,
-	[BNXT_ULP_ACT_HID_05d5] = 76,
-	[BNXT_ULP_ACT_HID_0106] = 77,
-	[BNXT_ULP_ACT_HID_05c2] = 78,
-	[BNXT_ULP_ACT_HID_011b] = 79,
-	[BNXT_ULP_ACT_HID_0471] = 80,
-	[BNXT_ULP_ACT_HID_05d7] = 81,
-	[BNXT_ULP_ACT_HID_0108] = 82,
-	[BNXT_ULP_ACT_HID_05c4] = 83,
-	[BNXT_ULP_ACT_HID_00a2] = 84,
-	[BNXT_ULP_ACT_HID_00a4] = 85
+	[BNXT_ULP_ACT_HID_0153] = 33,
+	[BNXT_ULP_ACT_HID_04a9] = 34,
+	[BNXT_ULP_ACT_HID_01fc] = 35,
+	[BNXT_ULP_ACT_HID_04be] = 36,
+	[BNXT_ULP_ACT_HID_00ab] = 37,
+	[BNXT_ULP_ACT_HID_0211] = 38,
+	[BNXT_ULP_ACT_HID_0155] = 39,
+	[BNXT_ULP_ACT_HID_04ab] = 40,
+	[BNXT_ULP_ACT_HID_01fe] = 41,
+	[BNXT_ULP_ACT_HID_0667] = 42,
+	[BNXT_ULP_ACT_HID_0254] = 43,
+	[BNXT_ULP_ACT_HID_03ba] = 44,
+	[BNXT_ULP_ACT_HID_02fe] = 45,
+	[BNXT_ULP_ACT_HID_0654] = 46,
+	[BNXT_ULP_ACT_HID_03a7] = 47,
+	[BNXT_ULP_ACT_HID_0669] = 48,
+	[BNXT_ULP_ACT_HID_0256] = 49,
+	[BNXT_ULP_ACT_HID_03bc] = 50,
+	[BNXT_ULP_ACT_HID_0300] = 51,
+	[BNXT_ULP_ACT_HID_0656] = 52,
+	[BNXT_ULP_ACT_HID_03a9] = 53,
+	[BNXT_ULP_ACT_HID_021b] = 54,
+	[BNXT_ULP_ACT_HID_021c] = 55,
+	[BNXT_ULP_ACT_HID_021e] = 56,
+	[BNXT_ULP_ACT_HID_063f] = 57,
+	[BNXT_ULP_ACT_HID_0510] = 58,
+	[BNXT_ULP_ACT_HID_03c6] = 59,
+	[BNXT_ULP_ACT_HID_0082] = 60,
+	[BNXT_ULP_ACT_HID_06bb] = 61,
+	[BNXT_ULP_ACT_HID_021d] = 62,
+	[BNXT_ULP_ACT_HID_0641] = 63,
+	[BNXT_ULP_ACT_HID_0512] = 64,
+	[BNXT_ULP_ACT_HID_03c8] = 65,
+	[BNXT_ULP_ACT_HID_0084] = 66,
+	[BNXT_ULP_ACT_HID_06bd] = 67,
+	[BNXT_ULP_ACT_HID_06d7] = 68,
+	[BNXT_ULP_ACT_HID_02c4] = 69,
+	[BNXT_ULP_ACT_HID_042a] = 70,
+	[BNXT_ULP_ACT_HID_036e] = 71,
+	[BNXT_ULP_ACT_HID_06c4] = 72,
+	[BNXT_ULP_ACT_HID_0417] = 73,
+	[BNXT_ULP_ACT_HID_06d9] = 74,
+	[BNXT_ULP_ACT_HID_02c6] = 75,
+	[BNXT_ULP_ACT_HID_042c] = 76,
+	[BNXT_ULP_ACT_HID_0370] = 77,
+	[BNXT_ULP_ACT_HID_06c6] = 78,
+	[BNXT_ULP_ACT_HID_0419] = 79,
+	[BNXT_ULP_ACT_HID_0119] = 80,
+	[BNXT_ULP_ACT_HID_046f] = 81,
+	[BNXT_ULP_ACT_HID_05d5] = 82,
+	[BNXT_ULP_ACT_HID_0519] = 83,
+	[BNXT_ULP_ACT_HID_0106] = 84,
+	[BNXT_ULP_ACT_HID_05c2] = 85,
+	[BNXT_ULP_ACT_HID_011b] = 86,
+	[BNXT_ULP_ACT_HID_0471] = 87,
+	[BNXT_ULP_ACT_HID_05d7] = 88,
+	[BNXT_ULP_ACT_HID_051b] = 89,
+	[BNXT_ULP_ACT_HID_0108] = 90,
+	[BNXT_ULP_ACT_HID_05c4] = 91,
+	[BNXT_ULP_ACT_HID_00a2] = 92,
+	[BNXT_ULP_ACT_HID_00a4] = 93
 };
 
 /* Array for the act matcher list */
@@ -429,22 +437,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 	.act_tid = 3
 	},
 	[33] = {
-	.act_hid = BNXT_ULP_ACT_HID_04a9,
+	.act_hid = BNXT_ULP_ACT_HID_0153,
 	.act_pattern_id = 3,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
-		BNXT_ULP_ACT_BIT_SET_TP_SRC |
 		BNXT_ULP_ACT_BIT_SET_TP_DST |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
 	[34] = {
-	.act_hid = BNXT_ULP_ACT_HID_01fc,
+	.act_hid = BNXT_ULP_ACT_HID_04a9,
 	.act_pattern_id = 4,
 	.app_sig = 0,
 	.act_sig = { .bits =
-		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
 		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
 		BNXT_ULP_ACT_BIT_SET_TP_SRC |
 		BNXT_ULP_ACT_BIT_SET_TP_DST |
@@ -452,40 +458,63 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 	.act_tid = 3
 	},
 	[35] = {
-	.act_hid = BNXT_ULP_ACT_HID_04be,
+	.act_hid = BNXT_ULP_ACT_HID_01fc,
 	.act_pattern_id = 5,
 	.app_sig = 0,
 	.act_sig = { .bits =
-		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_SRC |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
 	[36] = {
-	.act_hid = BNXT_ULP_ACT_HID_00ab,
+	.act_hid = BNXT_ULP_ACT_HID_04be,
 	.act_pattern_id = 6,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
-		BNXT_ULP_ACT_BIT_SET_TP_SRC |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
 	[37] = {
-	.act_hid = BNXT_ULP_ACT_HID_0211,
+	.act_hid = BNXT_ULP_ACT_HID_00ab,
 	.act_pattern_id = 7,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
-		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
+		BNXT_ULP_ACT_BIT_SET_TP_SRC |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
 	[38] = {
-	.act_hid = BNXT_ULP_ACT_HID_04ab,
+	.act_hid = BNXT_ULP_ACT_HID_0211,
 	.act_pattern_id = 8,
 	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.act_tid = 3
+	},
+	[39] = {
+	.act_hid = BNXT_ULP_ACT_HID_0155,
+	.act_pattern_id = 9,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.act_tid = 3
+	},
+	[40] = {
+	.act_hid = BNXT_ULP_ACT_HID_04ab,
+	.act_pattern_id = 10,
+	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
@@ -494,9 +523,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[39] = {
+	[41] = {
 	.act_hid = BNXT_ULP_ACT_HID_01fe,
-	.act_pattern_id = 9,
+	.act_pattern_id = 11,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -507,9 +536,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[40] = {
+	[42] = {
 	.act_hid = BNXT_ULP_ACT_HID_0667,
-	.act_pattern_id = 10,
+	.act_pattern_id = 12,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -517,9 +546,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[41] = {
+	[43] = {
 	.act_hid = BNXT_ULP_ACT_HID_0254,
-	.act_pattern_id = 11,
+	.act_pattern_id = 13,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -528,9 +557,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[42] = {
+	[44] = {
 	.act_hid = BNXT_ULP_ACT_HID_03ba,
-	.act_pattern_id = 12,
+	.act_pattern_id = 14,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -538,9 +567,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[43] = {
+	[45] = {
+	.act_hid = BNXT_ULP_ACT_HID_02fe,
+	.act_pattern_id = 15,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.act_tid = 3
+	},
+	[46] = {
 	.act_hid = BNXT_ULP_ACT_HID_0654,
-	.act_pattern_id = 13,
+	.act_pattern_id = 16,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -550,9 +590,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[44] = {
+	[47] = {
 	.act_hid = BNXT_ULP_ACT_HID_03a7,
-	.act_pattern_id = 14,
+	.act_pattern_id = 17,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -563,9 +603,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[45] = {
+	[48] = {
 	.act_hid = BNXT_ULP_ACT_HID_0669,
-	.act_pattern_id = 15,
+	.act_pattern_id = 18,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -574,9 +614,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[46] = {
+	[49] = {
 	.act_hid = BNXT_ULP_ACT_HID_0256,
-	.act_pattern_id = 16,
+	.act_pattern_id = 19,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -586,9 +626,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[47] = {
+	[50] = {
 	.act_hid = BNXT_ULP_ACT_HID_03bc,
-	.act_pattern_id = 17,
+	.act_pattern_id = 20,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -597,9 +637,21 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[48] = {
+	[51] = {
+	.act_hid = BNXT_ULP_ACT_HID_0300,
+	.act_pattern_id = 21,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.act_tid = 3
+	},
+	[52] = {
 	.act_hid = BNXT_ULP_ACT_HID_0656,
-	.act_pattern_id = 18,
+	.act_pattern_id = 22,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -610,9 +662,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[49] = {
+	[53] = {
 	.act_hid = BNXT_ULP_ACT_HID_03a9,
-	.act_pattern_id = 19,
+	.act_pattern_id = 23,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -624,7 +676,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[50] = {
+	[54] = {
 	.act_hid = BNXT_ULP_ACT_HID_021b,
 	.act_pattern_id = 0,
 	.app_sig = 0,
@@ -632,7 +684,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[51] = {
+	[55] = {
 	.act_hid = BNXT_ULP_ACT_HID_021c,
 	.act_pattern_id = 1,
 	.app_sig = 0,
@@ -641,7 +693,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[52] = {
+	[56] = {
 	.act_hid = BNXT_ULP_ACT_HID_021e,
 	.act_pattern_id = 2,
 	.app_sig = 0,
@@ -651,7 +703,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[53] = {
+	[57] = {
 	.act_hid = BNXT_ULP_ACT_HID_063f,
 	.act_pattern_id = 3,
 	.app_sig = 0,
@@ -662,7 +714,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[54] = {
+	[58] = {
 	.act_hid = BNXT_ULP_ACT_HID_0510,
 	.act_pattern_id = 4,
 	.app_sig = 0,
@@ -672,7 +724,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[55] = {
+	[59] = {
 	.act_hid = BNXT_ULP_ACT_HID_03c6,
 	.act_pattern_id = 5,
 	.app_sig = 0,
@@ -681,7 +733,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[56] = {
+	[60] = {
 	.act_hid = BNXT_ULP_ACT_HID_0082,
 	.act_pattern_id = 6,
 	.app_sig = 0,
@@ -693,7 +745,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[57] = {
+	[61] = {
 	.act_hid = BNXT_ULP_ACT_HID_06bb,
 	.act_pattern_id = 7,
 	.app_sig = 0,
@@ -704,7 +756,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[58] = {
+	[62] = {
 	.act_hid = BNXT_ULP_ACT_HID_021d,
 	.act_pattern_id = 8,
 	.app_sig = 0,
@@ -713,7 +765,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[59] = {
+	[63] = {
 	.act_hid = BNXT_ULP_ACT_HID_0641,
 	.act_pattern_id = 9,
 	.app_sig = 0,
@@ -725,7 +777,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[60] = {
+	[64] = {
 	.act_hid = BNXT_ULP_ACT_HID_0512,
 	.act_pattern_id = 10,
 	.app_sig = 0,
@@ -736,7 +788,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[61] = {
+	[65] = {
 	.act_hid = BNXT_ULP_ACT_HID_03c8,
 	.act_pattern_id = 11,
 	.app_sig = 0,
@@ -746,7 +798,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[62] = {
+	[66] = {
 	.act_hid = BNXT_ULP_ACT_HID_0084,
 	.act_pattern_id = 12,
 	.app_sig = 0,
@@ -759,7 +811,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[63] = {
+	[67] = {
 	.act_hid = BNXT_ULP_ACT_HID_06bd,
 	.act_pattern_id = 13,
 	.app_sig = 0,
@@ -771,7 +823,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[64] = {
+	[68] = {
 	.act_hid = BNXT_ULP_ACT_HID_06d7,
 	.act_pattern_id = 0,
 	.app_sig = 0,
@@ -780,7 +832,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[65] = {
+	[69] = {
 	.act_hid = BNXT_ULP_ACT_HID_02c4,
 	.act_pattern_id = 1,
 	.app_sig = 0,
@@ -790,7 +842,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[66] = {
+	[70] = {
 	.act_hid = BNXT_ULP_ACT_HID_042a,
 	.act_pattern_id = 2,
 	.app_sig = 0,
@@ -799,10 +851,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[67] = {
-	.act_hid = BNXT_ULP_ACT_HID_06c4,
+	[71] = {
+	.act_hid = BNXT_ULP_ACT_HID_036e,
 	.act_pattern_id = 3,
 	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.act_tid = 5
+	},
+	[72] = {
+	.act_hid = BNXT_ULP_ACT_HID_06c4,
+	.act_pattern_id = 4,
+	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
 		BNXT_ULP_ACT_BIT_SET_TP_SRC |
@@ -810,9 +872,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[68] = {
+	[73] = {
 	.act_hid = BNXT_ULP_ACT_HID_0417,
-	.act_pattern_id = 4,
+	.act_pattern_id = 5,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
@@ -822,9 +884,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[69] = {
+	[74] = {
 	.act_hid = BNXT_ULP_ACT_HID_06d9,
-	.act_pattern_id = 5,
+	.act_pattern_id = 6,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -832,9 +894,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[70] = {
+	[75] = {
 	.act_hid = BNXT_ULP_ACT_HID_02c6,
-	.act_pattern_id = 6,
+	.act_pattern_id = 7,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -843,9 +905,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[71] = {
+	[76] = {
 	.act_hid = BNXT_ULP_ACT_HID_042c,
-	.act_pattern_id = 7,
+	.act_pattern_id = 8,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -853,9 +915,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[72] = {
+	[77] = {
+	.act_hid = BNXT_ULP_ACT_HID_0370,
+	.act_pattern_id = 9,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.act_tid = 5
+	},
+	[78] = {
 	.act_hid = BNXT_ULP_ACT_HID_06c6,
-	.act_pattern_id = 8,
+	.act_pattern_id = 10,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -865,9 +938,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[73] = {
+	[79] = {
 	.act_hid = BNXT_ULP_ACT_HID_0419,
-	.act_pattern_id = 9,
+	.act_pattern_id = 11,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -878,9 +951,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[74] = {
+	[80] = {
 	.act_hid = BNXT_ULP_ACT_HID_0119,
-	.act_pattern_id = 10,
+	.act_pattern_id = 12,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -888,9 +961,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[75] = {
+	[81] = {
 	.act_hid = BNXT_ULP_ACT_HID_046f,
-	.act_pattern_id = 11,
+	.act_pattern_id = 13,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -899,9 +972,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[76] = {
+	[82] = {
 	.act_hid = BNXT_ULP_ACT_HID_05d5,
-	.act_pattern_id = 12,
+	.act_pattern_id = 14,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -909,9 +982,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[77] = {
+	[83] = {
+	.act_hid = BNXT_ULP_ACT_HID_0519,
+	.act_pattern_id = 15,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.act_tid = 5
+	},
+	[84] = {
 	.act_hid = BNXT_ULP_ACT_HID_0106,
-	.act_pattern_id = 13,
+	.act_pattern_id = 16,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -921,9 +1005,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[78] = {
+	[85] = {
 	.act_hid = BNXT_ULP_ACT_HID_05c2,
-	.act_pattern_id = 14,
+	.act_pattern_id = 17,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -934,9 +1018,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[79] = {
+	[86] = {
 	.act_hid = BNXT_ULP_ACT_HID_011b,
-	.act_pattern_id = 15,
+	.act_pattern_id = 18,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -945,9 +1029,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[80] = {
+	[87] = {
 	.act_hid = BNXT_ULP_ACT_HID_0471,
-	.act_pattern_id = 16,
+	.act_pattern_id = 19,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -957,9 +1041,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[81] = {
+	[88] = {
 	.act_hid = BNXT_ULP_ACT_HID_05d7,
-	.act_pattern_id = 17,
+	.act_pattern_id = 20,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -968,9 +1052,21 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[82] = {
+	[89] = {
+	.act_hid = BNXT_ULP_ACT_HID_051b,
+	.act_pattern_id = 21,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.act_tid = 5
+	},
+	[90] = {
 	.act_hid = BNXT_ULP_ACT_HID_0108,
-	.act_pattern_id = 18,
+	.act_pattern_id = 22,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -981,9 +1077,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[83] = {
+	[91] = {
 	.act_hid = BNXT_ULP_ACT_HID_05c4,
-	.act_pattern_id = 19,
+	.act_pattern_id = 23,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -995,7 +1091,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[84] = {
+	[92] = {
 	.act_hid = BNXT_ULP_ACT_HID_00a2,
 	.act_pattern_id = 0,
 	.app_sig = 0,
@@ -1004,7 +1100,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 6
 	},
-	[85] = {
+	[93] = {
 	.act_hid = BNXT_ULP_ACT_HID_00a4,
 	.act_pattern_id = 1,
 	.app_sig = 0,
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h +13 -5
index c016e1940a..fcd460e707 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Fri Aug 20 17:59:14 2021 */
+/* date: Thu Aug 26 17:43:36 2021 */
 
 #ifndef ULP_TEMPLATE_DB_H_
 #define ULP_TEMPLATE_DB_H_
@@ -20,7 +20,7 @@
 #define BNXT_ULP_CLASS_HID_SHFTL 28
 #define BNXT_ULP_CLASS_HID_MASK 65535
 #define BNXT_ULP_ACT_SIG_TBL_MAX_SZ 2048
-#define BNXT_ULP_ACT_MATCH_LIST_MAX_SZ 86
+#define BNXT_ULP_ACT_MATCH_LIST_MAX_SZ 94
 #define BNXT_ULP_ACT_HID_LOW_PRIME 7919
 #define BNXT_ULP_ACT_HID_HIGH_PRIME 3793
 #define BNXT_ULP_ACT_HID_SHFTR 27
@@ -29,7 +29,7 @@
 #define BNXT_ULP_APP_RESOURCE_RESV_LIST_MAX_SZ 8
 #define BNXT_ULP_GLB_RESOURCE_TBL_MAX_SZ 110
 #define BNXT_ULP_APP_GLB_RESOURCE_TBL_MAX_SZ 50
-#define BNXT_ULP_RESOURCE_RESV_LIST_MAX_SZ 278
+#define BNXT_ULP_RESOURCE_RESV_LIST_MAX_SZ 277
 #define BNXT_ULP_APP_CAP_TBL_MAX_SZ 8
 #define BNXT_ULP_COND_GOTO_REJECT 1023
 #define BNXT_ULP_COND_GOTO_RF 0x10000
@@ -50,11 +50,11 @@
 #define ULP_THOR_CLASS_RESULT_FIELD_LIST_SIZE 1313
 #define ULP_THOR_CLASS_COND_LIST_SIZE 55
 #define ULP_WH_PLUS_ACT_TMPL_LIST_SIZE 7
-#define ULP_WH_PLUS_ACT_TBL_LIST_SIZE 35
+#define ULP_WH_PLUS_ACT_TBL_LIST_SIZE 37
 #define ULP_WH_PLUS_ACT_KEY_INFO_LIST_SIZE 2
 #define ULP_WH_PLUS_ACT_IDENT_LIST_SIZE 1
 #define ULP_WH_PLUS_ACT_RESULT_FIELD_LIST_SIZE 536
-#define ULP_WH_PLUS_ACT_COND_LIST_SIZE 39
+#define ULP_WH_PLUS_ACT_COND_LIST_SIZE 41
 #define ULP_THOR_ACT_TMPL_LIST_SIZE 7
 #define ULP_THOR_ACT_TBL_LIST_SIZE 36
 #define ULP_THOR_ACT_KEY_INFO_LIST_SIZE 16
@@ -2224,21 +2224,25 @@ enum bnxt_ulp_act_hid {
 	BNXT_ULP_ACT_HID_04bc = 0x04bc,
 	BNXT_ULP_ACT_HID_00a9 = 0x00a9,
 	BNXT_ULP_ACT_HID_020f = 0x020f,
+	BNXT_ULP_ACT_HID_0153 = 0x0153,
 	BNXT_ULP_ACT_HID_04a9 = 0x04a9,
 	BNXT_ULP_ACT_HID_01fc = 0x01fc,
 	BNXT_ULP_ACT_HID_04be = 0x04be,
 	BNXT_ULP_ACT_HID_00ab = 0x00ab,
 	BNXT_ULP_ACT_HID_0211 = 0x0211,
+	BNXT_ULP_ACT_HID_0155 = 0x0155,
 	BNXT_ULP_ACT_HID_04ab = 0x04ab,
 	BNXT_ULP_ACT_HID_01fe = 0x01fe,
 	BNXT_ULP_ACT_HID_0667 = 0x0667,
 	BNXT_ULP_ACT_HID_0254 = 0x0254,
 	BNXT_ULP_ACT_HID_03ba = 0x03ba,
+	BNXT_ULP_ACT_HID_02fe = 0x02fe,
 	BNXT_ULP_ACT_HID_0654 = 0x0654,
 	BNXT_ULP_ACT_HID_03a7 = 0x03a7,
 	BNXT_ULP_ACT_HID_0669 = 0x0669,
 	BNXT_ULP_ACT_HID_0256 = 0x0256,
 	BNXT_ULP_ACT_HID_03bc = 0x03bc,
+	BNXT_ULP_ACT_HID_0300 = 0x0300,
 	BNXT_ULP_ACT_HID_0656 = 0x0656,
 	BNXT_ULP_ACT_HID_03a9 = 0x03a9,
 	BNXT_ULP_ACT_HID_021b = 0x021b,
@@ -2258,21 +2262,25 @@ enum bnxt_ulp_act_hid {
 	BNXT_ULP_ACT_HID_06d7 = 0x06d7,
 	BNXT_ULP_ACT_HID_02c4 = 0x02c4,
 	BNXT_ULP_ACT_HID_042a = 0x042a,
+	BNXT_ULP_ACT_HID_036e = 0x036e,
 	BNXT_ULP_ACT_HID_06c4 = 0x06c4,
 	BNXT_ULP_ACT_HID_0417 = 0x0417,
 	BNXT_ULP_ACT_HID_06d9 = 0x06d9,
 	BNXT_ULP_ACT_HID_02c6 = 0x02c6,
 	BNXT_ULP_ACT_HID_042c = 0x042c,
+	BNXT_ULP_ACT_HID_0370 = 0x0370,
 	BNXT_ULP_ACT_HID_06c6 = 0x06c6,
 	BNXT_ULP_ACT_HID_0419 = 0x0419,
 	BNXT_ULP_ACT_HID_0119 = 0x0119,
 	BNXT_ULP_ACT_HID_046f = 0x046f,
 	BNXT_ULP_ACT_HID_05d5 = 0x05d5,
+	BNXT_ULP_ACT_HID_0519 = 0x0519,
 	BNXT_ULP_ACT_HID_0106 = 0x0106,
 	BNXT_ULP_ACT_HID_05c2 = 0x05c2,
 	BNXT_ULP_ACT_HID_011b = 0x011b,
 	BNXT_ULP_ACT_HID_0471 = 0x0471,
 	BNXT_ULP_ACT_HID_05d7 = 0x05d7,
+	BNXT_ULP_ACT_HID_051b = 0x051b,
 	BNXT_ULP_ACT_HID_0108 = 0x0108,
 	BNXT_ULP_ACT_HID_05c4 = 0x05c4,
 	BNXT_ULP_ACT_HID_00a2 = 0x00a2,
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c +3 -11
index 684fa66f48..84be09b368 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Tue Aug 17 12:16:42 2021 */
+/* date: Thu Aug 26 17:43:36 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -2121,7 +2121,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
 	.direction               = TF_DIR_RX,
 	.resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
-	.count                   = 64
+	.count                   = 2048
 	},
 	{
 	.app_id                  = 0,
@@ -2249,7 +2249,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
 	.direction               = TF_DIR_TX,
 	.resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
-	.count                   = 64
+	.count                   = 2048
 	},
 	{
 	.app_id                  = 0,
@@ -2263,14 +2263,6 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
 	.app_id                  = 0,
 	.device_id               = BNXT_ULP_DEVICE_ID_THOR,
 	.direction               = TF_DIR_TX,
-	.resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type           = TF_TBL_TYPE_ACT_MODIFY_64B,
-	.count                   = 32
-	},
-	{
-	.app_id                  = 0,
-	.device_id               = BNXT_ULP_DEVICE_ID_THOR,
-	.direction               = TF_DIR_TX,
 	.resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
 	.count                   = 272
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c +1 -1
index 68c1e292b2..95205a2421 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Fri Aug 20 18:05:25 2021 */
+/* date: Wed Aug 25 16:41:37 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_wh_plus_act.c +64 -32

293 lines not on this page · raw message

Signature · 1 line
2.17.1
#12 lore raw

PATCH v2 2/19 net/bnxt: add support for multi root capability

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

Update driver to read the multi root capability and ignore pci address check while creating ulp session when multi root capability is enabled in the hardware. DPDK HSI version updated from 1.10.1.70 to 1.10.2.54.

---
 drivers/net/bnxt/bnxt.h                |    3 +
 drivers/net/bnxt/bnxt_hwrm.c           |    8 +
 drivers/net/bnxt/hsi_struct_def_dpdk.h | 2682 +++++++++++++++++++++---
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c     |   10 +-
 4 files changed, 2407 insertions(+), 296 deletions(-)
drivers/net/bnxt/bnxt.h +3 -0
index 6743cf92b0..e3e38ffa19 100644
@@ -723,6 +723,9 @@ struct bnxt {
 	uint16_t		chip_num;
 #define CHIP_NUM_58818		0xd818
 #define BNXT_CHIP_SR2(bp)	((bp)->chip_num == CHIP_NUM_58818)
+#define	BNXT_FLAGS2_MULTIROOT_EN		BIT(4)
+#define	BNXT_MULTIROOT_EN(bp)			\
+	((bp)->flags2 & BNXT_FLAGS2_MULTIROOT_EN)
 
 	uint32_t		fw_cap;
 #define BNXT_FW_CAP_HOT_RESET		BIT(0)
drivers/net/bnxt/bnxt_hwrm.c +8 -0
index 181e607d7b..c7041143a3 100644
@@ -3394,6 +3394,7 @@ int bnxt_hwrm_parent_pf_qcfg(struct bnxt *bp)
 {
 	struct hwrm_func_qcfg_input req = {0};
 	struct hwrm_func_qcfg_output *resp = bp->hwrm_cmd_resp_addr;
+	uint16_t flags;
 	int rc;
 
 	if (!BNXT_VF_IS_TRUSTED(bp))
@@ -3417,6 +3418,13 @@ int bnxt_hwrm_parent_pf_qcfg(struct bnxt *bp)
 	bp->parent->fid = rte_le_to_cpu_16(resp->fid);
 	bp->parent->port_id = rte_le_to_cpu_16(resp->port_id);
 
+	flags = rte_le_to_cpu_16(resp->flags);
+	/* check for the multi-root support */
+	if (flags & HWRM_FUNC_QCFG_OUTPUT_FLAGS_MULTI_ROOT) {
+		bp->flags2 |= BNXT_FLAGS2_MULTIROOT_EN;
+		PMD_DRV_LOG(DEBUG, "PF enabled with multi root capability\n");
+	}
+
 	HWRM_UNLOCK();
 
 	return 0;
drivers/net/bnxt/hsi_struct_def_dpdk.h +2390 -292

2,971 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/bnxt_ulp.c +6 -4
index bd57229968..dbc8a3c5bb 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Signature · 1 line
2.17.1

Part of the diff is not shown here. View the raw message.

#13 lore raw

PATCH v2 3/19 net/bnxt: fix the out of boundary issue in hash list

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

The number of hash bucket list calculation is fixed and added check to limit the out of boundary condition

Fixes 0001cc58d362 ("net/bnxt: support generic hash table")
---
 drivers/net/bnxt/tf_ulp/ulp_gen_hash.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)
drivers/net/bnxt/tf_ulp/ulp_gen_hash.c +14 -6
index 3c6e7fe924..84c83de35c 100644
@@ -16,20 +16,21 @@ int32_t ulp_bit_alloc_list_alloc(struct bit_alloc_list *blist,
 {
 	uint64_t bentry;
 	uint32_t idx = 0, jdx = 0;
+	uint32_t bsize_64 = blist->bsize / ULP_64B_IN_BYTES;
 
 	/* Iterate all numbers that have all 1's */
 	do {
 		bentry = blist->bdata[idx++];
-	} while (bentry == -1UL && idx < blist->bsize);
+	} while (bentry == -1UL && idx <= bsize_64);
 
-	if (idx < blist->bsize) {
+	if (idx <= bsize_64) {
 		if (bentry)
 			jdx = __builtin_clzl(~bentry);
 		*index = ((idx - 1) * ULP_INDEX_BITMAP_SIZE) + jdx;
 		ULP_INDEX_BITMAP_SET(blist->bdata[(idx - 1)], jdx);
 		return 0;
 	}
-	jdx = (uint32_t)(blist->bsize * ULP_INDEX_BITMAP_SIZE);
+	jdx = (uint32_t)(bsize_64 * ULP_INDEX_BITMAP_SIZE);
 	BNXT_TF_DBG(ERR, "bit allocator is full reached max:%x\n", jdx);
 	return -1;
 }
@@ -39,9 +40,10 @@ int32_t ulp_bit_alloc_list_dealloc(struct bit_alloc_list *blist,
 				   uint32_t index)
 {
 	uint32_t idx = 0, jdx;
+	uint32_t bsize_64 = blist->bsize / ULP_64B_IN_BYTES;
 
 	idx = index / ULP_INDEX_BITMAP_SIZE;
-	if (idx >= blist->bsize) {
+	if (idx >= bsize_64) {
 		BNXT_TF_DBG(ERR, "invalid bit index %x:%x\n", idx,
 			    blist->bsize);
 		return -EINVAL;
@@ -127,7 +129,8 @@ ulp_gen_hash_tbl_list_init(struct ulp_hash_create_params *cparams,
 	hash_tbl->hash_mask = size - 1;
 
 	/* allocate the memory for the bit allocator */
-	size = (cparams->num_key_entries / sizeof(uint64_t)) + 1;
+	size = (cparams->num_key_entries / sizeof(uint64_t));
+	size = ULP_BYTE_ROUND_OFF_8(size);
 	hash_tbl->bit_list.bsize = size;
 	hash_tbl->bit_list.bdata = rte_zmalloc("Generic hash bit alloc", size,
 					       ULP_BUFFER_ALIGN_64_BYTE);
@@ -311,7 +314,12 @@ ulp_gen_hash_tbl_list_add(struct ulp_gen_hash_tbl *hash_tbl,
 		BNXT_TF_DBG(ERR, "Error in bit list alloc\n");
 		return -ENOMEM;
 	}
-
+	if (key_index > hash_tbl->num_key_entries) {
+		BNXT_TF_DBG(ERR, "reached max size %u:%u\n", key_index,
+			    hash_tbl->num_key_entries);
+		ulp_bit_alloc_list_dealloc(&hash_tbl->bit_list, key_index);
+		return -ENOMEM;
+	}
 	/* Update the hash entry */
 	ULP_HASH_BUCKET_MARK_INUSE(bucket, (uint16_t)key_index);
 
Signature · 1 line
2.17.1
#14 lore raw

PATCH v2 4/19 net/bnxt: add clear on read support

In reply to Venkat Duvvuru

From: Farah Smith <[email protected]>

Add clear on read stats support for Thor. Currently, the flow stats are not cleared after they are read from the FW. This patch adds support for clear on read. Since clear on read support is added for flow stats in Thor, the flow accumulation is enabled on Thor as well.

---
 drivers/net/bnxt/hsi_struct_def_dpdk.h | 34 ++++++++++++++++++++------
 drivers/net/bnxt/tf_core/tf_msg.c      | 24 +++++++++++++++---
 drivers/net/bnxt/tf_core/tf_msg.h      |  6 +++--
 drivers/net/bnxt/tf_core/tf_tbl.c      |  6 +++--
 drivers/net/bnxt/tf_core/tf_tbl_sram.c | 13 ++++++++--
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c     |  3 ++-
 6 files changed, 67 insertions(+), 19 deletions(-)
drivers/net/bnxt/hsi_struct_def_dpdk.h +26 -8
index 2a1e6ab97e..77981b5cdb 100644
@@ -1058,8 +1058,8 @@ struct hwrm_err_output {
 #define HWRM_VERSION_MINOR 10
 #define HWRM_VERSION_UPDATE 2
 /* non-zero means beta version */
-#define HWRM_VERSION_RSVD 54
-#define HWRM_VERSION_STR "1.10.2.54"
+#define HWRM_VERSION_RSVD 55
+#define HWRM_VERSION_STR "1.10.2.55"
 
 /****************
  * hwrm_ver_get *
@@ -46253,13 +46253,22 @@ struct hwrm_tf_tbl_type_get_input {
 	/* Control flags. */
 	uint16_t	flags;
 	/* Indicates the flow direction. */
-	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR     UINT32_C(0x1)
+	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR \
+		UINT32_C(0x1)
 	/* If this bit set to 0, then it indicates rx flow. */
-	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_RX    UINT32_C(0x0)
+	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_RX \
+		UINT32_C(0x0)
 	/* If this bit is set to 1, then it indicates tx flow. */
-	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_TX    UINT32_C(0x1)
+	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_TX \
+		UINT32_C(0x1)
 	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_LAST \
 		HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_TX
+	/*
+	 * When set use the special access register access to clear
+	 * the table entry on read.
+	 */
+	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_CLEAR_ON_READ \
+		UINT32_C(0x2)
 	/* unused. */
 	uint8_t	unused0[2];
 	/*
@@ -48489,13 +48498,22 @@ struct hwrm_tf_tbl_type_bulk_get_input {
 	/* Control flags. */
 	uint16_t	flags;
 	/* Indicates the flow direction. */
-	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR     UINT32_C(0x1)
+	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR \
+		UINT32_C(0x1)
 	/* If this bit set to 0, then it indicates rx flow. */
-	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_RX    UINT32_C(0x0)
+	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_RX \
+		UINT32_C(0x0)
 	/* If this bit is set to 1, then it indicates tx flow. */
-	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_TX    UINT32_C(0x1)
+	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_TX \
+		UINT32_C(0x1)
 	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_LAST \
 		HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_TX
+	/*
+	 * When set use the special access register access to clear
+	 * the table entries on read.
+	 */
+	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_CLEAR_ON_READ \
+		UINT32_C(0x2)
 	/* unused. */
 	uint8_t	unused0[2];
 	/*
drivers/net/bnxt/tf_core/tf_msg.c +20 -4
index 0fbb2fe837..ea6e2af7ce 100644
@@ -1851,7 +1851,8 @@ tf_msg_get_tbl_entry(struct tf *tfp,
 		     uint16_t hcapi_type,
 		     uint16_t size,
 		     uint8_t *data,
-		     uint32_t index)
+		     uint32_t index,
+		     bool clear_on_read)
 {
 	int rc;
 	struct hwrm_tf_tbl_type_get_input req = { 0 };
@@ -1860,6 +1861,7 @@ tf_msg_get_tbl_entry(struct tf *tfp,
 	uint8_t fw_session_id;
 	struct tf_dev_info *dev;
 	struct tf_session *tfs;
+	uint32_t flags = 0;
 
 	/* Retrieve the session information */
 	rc = tf_session_get_session_internal(tfp, &tfs);
@@ -1889,10 +1891,16 @@ tf_msg_get_tbl_entry(struct tf *tfp,
 			    strerror(-rc));
 		return rc;
 	}
+	flags = (dir == TF_DIR_TX ?
+		 HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_TX :
+		 HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_RX);
+
+	if (clear_on_read)
+		flags |= HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_CLEAR_ON_READ;
 
 	/* Populate the request */
 	req.fw_session_id = tfp_cpu_to_le_32(fw_session_id);
-	req.flags = tfp_cpu_to_le_16(dir);
+	req.flags = tfp_cpu_to_le_16(flags);
 	req.type = tfp_cpu_to_le_32(hcapi_type);
 	req.index = tfp_cpu_to_le_32(index);
 
@@ -2105,7 +2113,8 @@ tf_msg_bulk_get_tbl_entry(struct tf *tfp,
 			  uint32_t starting_idx,
 			  uint16_t num_entries,
 			  uint16_t entry_sz_in_bytes,
-			  uint64_t physical_mem_addr)
+			  uint64_t physical_mem_addr,
+			  bool clear_on_read)
 {
 	int rc;
 	struct tfp_send_msg_parms parms = { 0 };
@@ -2115,6 +2124,7 @@ tf_msg_bulk_get_tbl_entry(struct tf *tfp,
 	uint8_t fw_session_id;
 	struct tf_dev_info *dev;
 	struct tf_session *tfs;
+	uint32_t flags = 0;
 
 	/* Retrieve the session information */
 	rc = tf_session_get_session(tfp, &tfs);
@@ -2144,10 +2154,16 @@ tf_msg_bulk_get_tbl_entry(struct tf *tfp,
 			    strerror(-rc));
 		return rc;
 	}
+	flags = (dir == TF_DIR_TX ?
+		 HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_TX :
+		 HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_RX);
+
+	if (clear_on_read)
+		flags |= HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_CLEAR_ON_READ;
 
 	/* Populate the request */
 	req.fw_session_id = tfp_cpu_to_le_32(fw_session_id);
-	req.flags = tfp_cpu_to_le_16(dir);
+	req.flags = tfp_cpu_to_le_16(flags);
 	req.type = tfp_cpu_to_le_32(hcapi_type);
 	req.start_index = tfp_cpu_to_le_32(starting_idx);
 	req.num_entries = tfp_cpu_to_le_32(num_entries);
drivers/net/bnxt/tf_core/tf_msg.h +4 -2
index b26b15bfa3..718bc2f3b2 100644
@@ -652,7 +652,8 @@ int tf_msg_get_tbl_entry(struct tf *tfp,
 			 uint16_t hcapi_type,
 			 uint16_t size,
 			 uint8_t *data,
-			 uint32_t index);
+			 uint32_t index,
+			 bool clear_on_read);
 
 /* HWRM Tunneled messages */
 
@@ -704,7 +705,8 @@ int tf_msg_bulk_get_tbl_entry(struct tf *tfp,
 			      uint32_t starting_idx,
 			      uint16_t num_entries,
 			      uint16_t entry_sz_in_bytes,
-			      uint64_t physical_mem_addr);
+			      uint64_t physical_mem_addr,
+			      bool clear_on_read);
 
 /**
  * Sends Set message of a IF Table Type element to the firmware.
drivers/net/bnxt/tf_core/tf_tbl.c +4 -2
index 0a8720e7b6..12eca36491 100644
@@ -441,7 +441,8 @@ tf_tbl_get(struct tf *tfp,
 				  hcapi_type,
 				  parms->data_sz_in_bytes,
 				  parms->data,
-				  parms->idx);
+				  parms->idx,
+				  false);
 	if (rc) {
 		TFP_DRV_LOG(ERR,
 			    "%s, Get failed, type:%s, rc:%s\n",
@@ -526,7 +527,8 @@ tf_tbl_bulk_get(struct tf *tfp,
 				       parms->starting_idx,
 				       parms->num_entries,
 				       parms->entry_sz_in_bytes,
-				       parms->physical_mem_addr);
+				       parms->physical_mem_addr,
+				       false);
 	if (rc) {
 		TFP_DRV_LOG(ERR,
 			    "%s, Bulk get failed, type:%s, rc:%s\n",
drivers/net/bnxt/tf_core/tf_tbl_sram.c +11 -2
index 636811bc2d..567f912dfa 100644
@@ -539,6 +539,7 @@ tf_tbl_sram_get(struct tf *tfp,
 	struct tf_tbl_sram_get_info_parms iparms = { 0 };
 	struct tf_sram_mgr_is_allocated_parms aparms = { 0 };
 	void *sram_handle = NULL;
+	bool clear_on_read = false;
 
 	TF_CHECK_PARMS3(tfp, parms, parms->data);
 
@@ -608,6 +609,8 @@ tf_tbl_sram_get(struct tf *tfp,
 			    strerror(-rc));
 		return rc;
 	}
+	if (parms->type == TF_TBL_TYPE_ACT_STATS_64)
+		clear_on_read = true;
 
 	/* Get the entry */
 	rc = tf_msg_get_tbl_entry(tfp,
@@ -615,7 +618,8 @@ tf_tbl_sram_get(struct tf *tfp,
 				  hcapi_type,
 				  parms->data_sz_in_bytes,
 				  parms->data,
-				  parms->idx);
+				  parms->idx,
+				  clear_on_read);
 	if (rc) {
 		TFP_DRV_LOG(ERR,
 			    "%s, Get failed, type:%s, rc:%s\n",
@@ -643,6 +647,7 @@ tf_tbl_sram_bulk_get(struct tf *tfp,
 	struct tf_sram_mgr_is_allocated_parms aparms = { 0 };
 	bool allocated = false;
 	void *sram_handle = NULL;
+	bool clear_on_read = false;
 
 	TF_CHECK_PARMS2(tfp, parms);
 
@@ -728,6 +733,9 @@ tf_tbl_sram_bulk_get(struct tf *tfp,
 		return rc;
 	}
 
+	if (parms->type == TF_TBL_TYPE_ACT_STATS_64)
+		clear_on_read = true;
+
 	/* Get the entries */
 	rc = tf_msg_bulk_get_tbl_entry(tfp,
 				       parms->dir,
@@ -735,7 +743,8 @@ tf_tbl_sram_bulk_get(struct tf *tfp,
 				       parms->starting_idx,
 				       parms->num_entries,
 				       parms->entry_sz_in_bytes,
-				       parms->physical_mem_addr);
+				       parms->physical_mem_addr,
+				       clear_on_read);
 	if (rc) {
 		TFP_DRV_LOG(ERR,
 			    "%s, Bulk get failed, type:%s, rc:%s\n",
drivers/net/bnxt/tf_ulp/bnxt_ulp.c +2 -1
index dbc8a3c5bb..f1763e2519 100644
@@ -1483,7 +1483,8 @@ bnxt_ulp_port_init(struct bnxt *bp)
 		goto jump_to_error;
 	}
 
-	if (devid != BNXT_ULP_DEVICE_ID_THOR && BNXT_ACCUM_STATS_EN(bp))
+	/* set the accumulation of the stats */
+	if (BNXT_ACCUM_STATS_EN(bp))
 		bp->ulp_ctx->cfg_data->accum_stats = true;
 
 	BNXT_TF_DBG(DEBUG, "BNXT Port:%d ULP port init, accum_stats:%d\n",
Signature · 1 line
2.17.1
#15 lore raw

PATCH v2 5/19 net/bnxt: add capability option for socket redirect

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

Added support for socket redirect feature capability so applications can enable or disable this feature. This patch contains the template changes.

---
 drivers/net/bnxt/bnxt.h                       |  13 --
 drivers/net/bnxt/bnxt_ethdev.c                | 203 ------------------
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c            |  11 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.h            |   6 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c       |  10 +-
 .../generic_templates/ulp_template_db_enum.h  |   8 +-
 .../generic_templates/ulp_template_db_tbl.c   |   5 +-
 7 files changed, 30 insertions(+), 226 deletions(-)
drivers/net/bnxt/bnxt.h +0 -13
index e3e38ffa19..c65e360446 100644
@@ -1054,19 +1054,6 @@ int32_t
 bnxt_ulp_create_vfr_default_rules(struct rte_eth_dev *vfr_ethdev);
 int32_t
 bnxt_ulp_delete_vfr_default_rules(struct bnxt_representor *vfr);
-void bnxt_get_iface_mac(uint16_t port, enum bnxt_ulp_intf_type type,
-			uint8_t *mac, uint8_t *parent_mac);
-uint16_t bnxt_get_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type);
-uint16_t bnxt_get_parent_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type);
-struct bnxt *bnxt_get_bp(uint16_t port);
-uint16_t bnxt_get_svif(uint16_t port_id, bool func_svif,
-		       enum bnxt_ulp_intf_type type);
-uint16_t bnxt_get_fw_func_id(uint16_t port, enum bnxt_ulp_intf_type type);
-uint16_t bnxt_get_parif(uint16_t port, enum bnxt_ulp_intf_type type);
-uint16_t bnxt_get_phy_port_id(uint16_t port);
-uint16_t bnxt_get_vport(uint16_t port);
-enum bnxt_ulp_intf_type
-bnxt_get_interface_type(uint16_t port);
 int bnxt_rep_dev_start_op(struct rte_eth_dev *eth_dev);
 
 void bnxt_cancel_fc_thread(struct bnxt *bp);
drivers/net/bnxt/bnxt_ethdev.c +0 -203

209 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/bnxt_ulp.c +9 -2
index f1763e2519..2ac1a8625f 100644
@@ -301,13 +301,14 @@ bnxt_ulp_tf_shared_session_resources_get(struct bnxt_ulp_context *ulp_ctx,
 }
 
 int32_t
-bnxt_ulp_cntxt_app_caps_init(struct bnxt_ulp_context *ulp_ctx,
+bnxt_ulp_cntxt_app_caps_init(struct bnxt *bp,
 			     uint8_t app_id, uint32_t dev_id)
 {
 	struct bnxt_ulp_app_capabilities_info *info;
 	uint32_t num = 0;
 	uint16_t i;
 	bool found = false;
+	struct bnxt_ulp_context *ulp_ctx = bp->ulp_ctx;
 
 	if (ULP_APP_DEV_UNSUPPORTED_ENABLED(ulp_ctx->cfg_data->ulp_flags)) {
 		BNXT_TF_DBG(ERR, "APP ID %d, Device ID: 0x%x not supported.\n",
@@ -334,6 +335,12 @@ bnxt_ulp_cntxt_app_caps_init(struct bnxt_ulp_context *ulp_ctx,
 		if (info[i].flags & BNXT_ULP_APP_CAP_UNICAST_ONLY)
 			ulp_ctx->cfg_data->ulp_flags |=
 				BNXT_ULP_APP_UNICAST_ONLY;
+		if (info[i].flags & BNXT_ULP_APP_CAP_SOCKET_DIRECT) {
+			/* Enable socket direction only if MR is enabled in fw*/
+			if (BNXT_MULTIROOT_EN(bp))
+				ulp_ctx->cfg_data->ulp_flags |=
+					BNXT_ULP_APP_SOCKET_DIRECT;
+		}
 	}
 	if (!found) {
 		BNXT_TF_DBG(ERR, "APP ID %d, Device ID: 0x%x not supported.\n",
@@ -832,7 +839,7 @@ ulp_ctx_init(struct bnxt *bp,
 	}
 	BNXT_TF_DBG(DEBUG, "Ulp initialized with app id %d\n", bp->app_id);
 
-	rc = bnxt_ulp_cntxt_app_caps_init(bp->ulp_ctx, bp->app_id, devid);
+	rc = bnxt_ulp_cntxt_app_caps_init(bp, bp->app_id, devid);
 	if (rc) {
 		BNXT_TF_DBG(ERR, "Unable to set caps for app(%x)/dev(%x)\n",
 			    bp->app_id, devid);
drivers/net/bnxt/tf_ulp/bnxt_ulp.h +5 -1
index 006df9cbc5..68f1470c61 100644
@@ -13,6 +13,7 @@
 #include "rte_version.h"
 #include "rte_ethdev.h"
 
+#include "bnxt.h"
 #include "ulp_template_db_enum.h"
 #include "ulp_tun.h"
 #include "bnxt_tf_common.h"
@@ -33,12 +34,15 @@
 #define BNXT_ULP_APP_DEV_UNSUPPORTED	0x4
 #define BNXT_ULP_HIGH_AVAIL_ENABLED	0x8
 #define BNXT_ULP_APP_UNICAST_ONLY	0x10
+#define BNXT_ULP_APP_SOCKET_DIRECT	0x20
+
 #define ULP_VF_REP_IS_ENABLED(flag)	((flag) & BNXT_ULP_VF_REP_ENABLED)
 #define ULP_SHARED_SESSION_IS_ENABLED(flag) ((flag) &\
 					     BNXT_ULP_SHARED_SESSION_ENABLED)
 #define ULP_APP_DEV_UNSUPPORTED_ENABLED(flag)	((flag) &\
 						 BNXT_ULP_APP_DEV_UNSUPPORTED)
 #define ULP_HIGH_AVAIL_IS_ENABLED(flag)	((flag) & BNXT_ULP_HIGH_AVAIL_ENABLED)
+#define ULP_SOCKET_DIRECT_IS_ENABLED(flag) ((flag) & BNXT_ULP_APP_SOCKET_DIRECT)
 
 enum bnxt_ulp_flow_mem_type {
 	BNXT_ULP_FLOW_MEM_TYPE_INT = 0,
@@ -287,7 +291,7 @@ struct bnxt_ulp_app_capabilities_info *
 bnxt_ulp_app_cap_list_get(uint32_t *num_entries);
 
 int32_t
-bnxt_ulp_cntxt_app_caps_init(struct bnxt_ulp_context *ulp_ctx,
+bnxt_ulp_cntxt_app_caps_init(struct bnxt *bp,
 			     uint8_t app_id, uint32_t dev_id);
 
 struct bnxt_ulp_resource_resv_info *
drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c +8 -2
index 2fec79a388..272195f6a2 100644
@@ -115,9 +115,11 @@ bnxt_ulp_init_mapper_params(struct bnxt_ulp_mapper_create_parms *mapper_cparms,
 	ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_FLOW_SIG_ID,
 			    params->flow_sig_id);
 
+	if (bnxt_ulp_cntxt_ptr2_ulp_flags_get(params->ulp_ctx, &ulp_flags))
+		return;
+
 	/* update the WC Priority flag */
-	if (!bnxt_ulp_cntxt_ptr2_ulp_flags_get(params->ulp_ctx, &ulp_flags) &&
-	    ULP_HIGH_AVAIL_IS_ENABLED(ulp_flags)) {
+	if (ULP_HIGH_AVAIL_IS_ENABLED(ulp_flags)) {
 		enum ulp_ha_mgr_region region = ULP_HA_REGION_LOW;
 		int32_t rc;
 
@@ -129,6 +131,10 @@ bnxt_ulp_init_mapper_params(struct bnxt_ulp_mapper_create_parms *mapper_cparms,
 					    BNXT_ULP_CF_IDX_WC_IS_HA_HIGH_REG,
 					    1);
 	}
+
+	/* Update the socket direct flag */
+	if (ULP_SOCKET_DIRECT_IS_ENABLED(ulp_flags))
+		ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_SOCKET_DIRECT, 1);
 }
 
 /* Function to create the rte flow. */
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h +5 -3
index fcd460e707..31a94c14dc 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Thu Aug 26 17:43:36 2021 */
+/* date: Thu Sep  9 11:11:05 2021 */
 
 #ifndef ULP_TEMPLATE_DB_H_
 #define ULP_TEMPLATE_DB_H_
@@ -211,7 +211,8 @@ enum bnxt_ulp_cf_idx {
 	BNXT_ULP_CF_IDX_OI_VLAN_FB_VID = 71,
 	BNXT_ULP_CF_IDX_IO_VLAN_FB_VID = 72,
 	BNXT_ULP_CF_IDX_II_VLAN_FB_VID = 73,
-	BNXT_ULP_CF_IDX_LAST = 74
+	BNXT_ULP_CF_IDX_SOCKET_DIRECT = 74,
+	BNXT_ULP_CF_IDX_LAST = 75
 };
 
 enum bnxt_ulp_cond_list_opc {
@@ -582,7 +583,8 @@ enum bnxt_ulp_template_type {
 enum bnxt_ulp_app_cap {
 	BNXT_ULP_APP_CAP_SHARED_EN = 0x00000001,
 	BNXT_ULP_APP_CAP_HOT_UPGRADE_EN = 0x00000002,
-	BNXT_ULP_APP_CAP_UNICAST_ONLY = 0x00000004
+	BNXT_ULP_APP_CAP_UNICAST_ONLY = 0x00000004,
+	BNXT_ULP_APP_CAP_SOCKET_DIRECT = 0x00000008
 };
 
 enum bnxt_ulp_fdb_resource_flags {
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c +3 -2
index 84be09b368..5383e2cd70 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Thu Aug 26 17:43:36 2021 */
+/* date: Thu Sep  9 11:11:05 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -347,7 +347,8 @@ struct bnxt_ulp_app_capabilities_info ulp_app_cap_info_list[] = {
 	.device_id               = BNXT_ULP_DEVICE_ID_THOR,
 	.flags                   = BNXT_ULP_APP_CAP_SHARED_EN |
 				   BNXT_ULP_APP_CAP_HOT_UPGRADE_EN |
-				   BNXT_ULP_APP_CAP_UNICAST_ONLY
+				   BNXT_ULP_APP_CAP_UNICAST_ONLY |
+				   BNXT_ULP_APP_CAP_SOCKET_DIRECT
 	},
 	{
 	.app_id                  = 2,
Signature · 1 line
2.17.1
#16 lore raw

PATCH v2 6/19 net/bnxt: enable wildcard match for ingress flows

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

Enabled wildcard match support for ipv4 ingress flows.

---
 .../generic_templates/ulp_template_db_class.c | 1986 ++++++++---------
 .../generic_templates/ulp_template_db_enum.h  |    4 +-
 .../ulp_template_db_thor_class.c              |  251 +--
 3 files changed, 1118 insertions(+), 1123 deletions(-)
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_class.c +993 -993
index ad3866243d..1d1e6463e0 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Fri Aug  6 11:15:47 2021 */
+/* date: Thu Sep 16 13:12:05 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -1016,7 +1016,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_55dd,
 	.class_tid = 1,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 4096,
+	.flow_sig_id = 4096UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1031,7 +1031,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1df1,
 	.class_tid = 1,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 4104,
+	.flow_sig_id = 4104UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1047,7 +1047,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3e55,
 	.class_tid = 1,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 6144,
+	.flow_sig_id = 6144UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1063,7 +1063,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0649,
 	.class_tid = 1,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 6152,
+	.flow_sig_id = 6152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1080,7 +1080,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1011,
 	.class_tid = 1,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 16384,
+	.flow_sig_id = 16384UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1095,7 +1095,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_40e9,
 	.class_tid = 1,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 16392,
+	.flow_sig_id = 16392UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1111,7 +1111,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3e99,
 	.class_tid = 1,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 24576,
+	.flow_sig_id = 24576UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1127,7 +1127,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_06ad,
 	.class_tid = 1,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 24584,
+	.flow_sig_id = 24584UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1144,7 +1144,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_38c7,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 32768,
+	.flow_sig_id = 32768UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1160,7 +1160,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_00fb,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 32776,
+	.flow_sig_id = 32776UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1177,7 +1177,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_24d3,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 32832,
+	.flow_sig_id = 32832UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1194,7 +1194,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_559b,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 32840,
+	.flow_sig_id = 32840UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1212,7 +1212,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5003,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1229,7 +1229,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1837,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 49160,
+	.flow_sig_id = 49160UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1247,7 +1247,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3bef,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 49216,
+	.flow_sig_id = 49216UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1265,7 +1265,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0403,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 49224,
+	.flow_sig_id = 49224UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1284,7 +1284,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3d3f,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 131072,
+	.flow_sig_id = 131072UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1300,7 +1300,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0543,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 131080,
+	.flow_sig_id = 131080UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1317,7 +1317,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_292b,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 131136,
+	.flow_sig_id = 131136UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1334,7 +1334,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_59e3,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 131144,
+	.flow_sig_id = 131144UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1352,7 +1352,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5d3b,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 196608,
+	.flow_sig_id = 196608UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1369,7 +1369,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_254f,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 196616,
+	.flow_sig_id = 196616UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1387,7 +1387,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4917,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 196672,
+	.flow_sig_id = 196672UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1405,7 +1405,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_113b,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 196680,
+	.flow_sig_id = 196680UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1424,7 +1424,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_55fd,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 4096,
+	.flow_sig_id = 4096UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1440,7 +1440,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1dd1,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 4104,
+	.flow_sig_id = 4104UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1457,7 +1457,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3e75,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 6144,
+	.flow_sig_id = 6144UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1474,7 +1474,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0669,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 6152,
+	.flow_sig_id = 6152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1492,7 +1492,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1ba1,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 12288,
+	.flow_sig_id = 12288UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1509,7 +1509,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4c69,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 12296,
+	.flow_sig_id = 12296UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1527,7 +1527,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0439,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 14336,
+	.flow_sig_id = 14336UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1545,7 +1545,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_34e1,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 14344,
+	.flow_sig_id = 14344UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1564,7 +1564,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0465,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 20480,
+	.flow_sig_id = 20480UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1581,7 +1581,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_352d,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 20488,
+	.flow_sig_id = 20488UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1599,7 +1599,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_55b1,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 22528,
+	.flow_sig_id = 22528UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1617,7 +1617,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1da5,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 22536,
+	.flow_sig_id = 22536UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1636,7 +1636,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_32fd,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 28672,
+	.flow_sig_id = 28672UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1654,7 +1654,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_63a5,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 28680,
+	.flow_sig_id = 28680UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1673,7 +1673,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1b75,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 30720,
+	.flow_sig_id = 30720UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1692,7 +1692,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4c3d,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 30728,
+	.flow_sig_id = 30728UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1712,7 +1712,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1031,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 16384,
+	.flow_sig_id = 16384UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1728,7 +1728,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_40c9,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 16392,
+	.flow_sig_id = 16392UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1745,7 +1745,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3eb9,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 24576,
+	.flow_sig_id = 24576UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1762,7 +1762,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_068d,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 24584,
+	.flow_sig_id = 24584UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1780,7 +1780,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5039,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1797,7 +1797,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_180d,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 49160,
+	.flow_sig_id = 49160UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1815,7 +1815,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_15fd,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 57344,
+	.flow_sig_id = 57344UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1833,7 +1833,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_46b5,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 57352,
+	.flow_sig_id = 57352UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1852,7 +1852,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_303d,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 81920,
+	.flow_sig_id = 81920UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1869,7 +1869,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_60f5,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 81928,
+	.flow_sig_id = 81928UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1887,7 +1887,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5ea5,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 90112,
+	.flow_sig_id = 90112UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1905,7 +1905,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2689,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 90120,
+	.flow_sig_id = 90120UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1924,7 +1924,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0771,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1942,7 +1942,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3809,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 114696,
+	.flow_sig_id = 114696UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1961,7 +1961,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_35f9,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 122880,
+	.flow_sig_id = 122880UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1980,7 +1980,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_66b1,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 122888,
+	.flow_sig_id = 122888UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2000,7 +2000,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_559d,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 4096,
+	.flow_sig_id = 4096UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2016,7 +2016,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1db1,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 4104,
+	.flow_sig_id = 4104UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2033,7 +2033,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3e15,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 6144,
+	.flow_sig_id = 6144UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2050,7 +2050,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0609,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 6152,
+	.flow_sig_id = 6152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2068,7 +2068,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1bc1,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 12288,
+	.flow_sig_id = 12288UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2085,7 +2085,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4c09,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 12296,
+	.flow_sig_id = 12296UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2103,7 +2103,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0459,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 14336,
+	.flow_sig_id = 14336UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2121,7 +2121,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3481,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 14344,
+	.flow_sig_id = 14344UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2140,7 +2140,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0405,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 20480,
+	.flow_sig_id = 20480UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2157,7 +2157,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_354d,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 20488,
+	.flow_sig_id = 20488UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2175,7 +2175,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_55d1,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 22528,
+	.flow_sig_id = 22528UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2193,7 +2193,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1dc5,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 22536,
+	.flow_sig_id = 22536UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2212,7 +2212,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_329d,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 28672,
+	.flow_sig_id = 28672UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2230,7 +2230,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_63c5,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 28680,
+	.flow_sig_id = 28680UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2249,7 +2249,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1b15,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 30720,
+	.flow_sig_id = 30720UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2268,7 +2268,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4c5d,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 30728,
+	.flow_sig_id = 30728UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2288,7 +2288,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1051,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 16384,
+	.flow_sig_id = 16384UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2304,7 +2304,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_40a9,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 16392,
+	.flow_sig_id = 16392UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2321,7 +2321,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3ed9,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 24576,
+	.flow_sig_id = 24576UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2338,7 +2338,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_06ed,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 24584,
+	.flow_sig_id = 24584UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2356,7 +2356,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5059,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2373,7 +2373,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_186d,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 49160,
+	.flow_sig_id = 49160UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2391,7 +2391,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_159d,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 57344,
+	.flow_sig_id = 57344UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2409,7 +2409,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_46d5,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 57352,
+	.flow_sig_id = 57352UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2428,7 +2428,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_305d,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 81920,
+	.flow_sig_id = 81920UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2445,7 +2445,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_6095,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 81928,
+	.flow_sig_id = 81928UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2463,7 +2463,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5ec5,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 90112,
+	.flow_sig_id = 90112UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2481,7 +2481,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_26e9,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 90120,
+	.flow_sig_id = 90120UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2500,7 +2500,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0711,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2518,7 +2518,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3869,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 114696,
+	.flow_sig_id = 114696UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2537,7 +2537,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3599,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 122880,
+	.flow_sig_id = 122880UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2556,7 +2556,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_66d1,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 122888,
+	.flow_sig_id = 122888UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2576,7 +2576,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_38e7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 32768,
+	.flow_sig_id = 32768UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2593,7 +2593,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_00db,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 32776,
+	.flow_sig_id = 32776UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2611,7 +2611,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_24f3,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 32832,
+	.flow_sig_id = 32832UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2629,7 +2629,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_55bb,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 32840,
+	.flow_sig_id = 32840UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2648,7 +2648,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5023,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2666,7 +2666,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1817,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 49160,
+	.flow_sig_id = 49160UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2685,7 +2685,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3bcf,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 49216,
+	.flow_sig_id = 49216UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2704,7 +2704,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0423,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 49224,
+	.flow_sig_id = 49224UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2724,7 +2724,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_58e3,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 98304,
+	.flow_sig_id = 98304UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2742,7 +2742,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_20d7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 98312,
+	.flow_sig_id = 98312UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2761,7 +2761,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_448f,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 98368,
+	.flow_sig_id = 98368UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2780,7 +2780,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0ce3,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 98376,
+	.flow_sig_id = 98376UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2800,7 +2800,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_076b,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2819,7 +2819,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3813,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 114696,
+	.flow_sig_id = 114696UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2839,7 +2839,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5bcb,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 114752,
+	.flow_sig_id = 114752UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2859,7 +2859,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_243f,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 114760,
+	.flow_sig_id = 114760UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2880,7 +2880,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_144b,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 163840,
+	.flow_sig_id = 163840UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2898,7 +2898,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4573,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 163848,
+	.flow_sig_id = 163848UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2917,7 +2917,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0057,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 163904,
+	.flow_sig_id = 163904UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2936,7 +2936,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_311f,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 163912,
+	.flow_sig_id = 163912UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2956,7 +2956,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2b87,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 180224,
+	.flow_sig_id = 180224UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2975,7 +2975,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5c4f,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 180232,
+	.flow_sig_id = 180232UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2995,7 +2995,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1793,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 180288,
+	.flow_sig_id = 180288UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3015,7 +3015,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_485b,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 180296,
+	.flow_sig_id = 180296UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3036,7 +3036,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3447,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 229376,
+	.flow_sig_id = 229376UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3055,7 +3055,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_650f,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 229384,
+	.flow_sig_id = 229384UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3075,7 +3075,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2053,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 229440,
+	.flow_sig_id = 229440UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3095,7 +3095,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_511b,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 229448,
+	.flow_sig_id = 229448UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3116,7 +3116,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4b83,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 245760,
+	.flow_sig_id = 245760UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3136,7 +3136,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_13f7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 245768,
+	.flow_sig_id = 245768UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3157,7 +3157,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_37af,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 245824,
+	.flow_sig_id = 245824UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3178,7 +3178,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_6857,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 245832,
+	.flow_sig_id = 245832UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3200,7 +3200,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3d1f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 131072,
+	.flow_sig_id = 131072UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3217,7 +3217,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0563,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 131080,
+	.flow_sig_id = 131080UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3235,7 +3235,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_290b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 131136,
+	.flow_sig_id = 131136UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3253,7 +3253,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_59c3,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 131144,
+	.flow_sig_id = 131144UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3272,7 +3272,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5d1b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 196608,
+	.flow_sig_id = 196608UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3290,7 +3290,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_256f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 196616,
+	.flow_sig_id = 196616UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3309,7 +3309,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4937,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 196672,
+	.flow_sig_id = 196672UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3328,7 +3328,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_111b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 196680,
+	.flow_sig_id = 196680UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3348,7 +3348,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5f4b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 393216,
+	.flow_sig_id = 393216UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3366,7 +3366,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_275f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 393224,
+	.flow_sig_id = 393224UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3385,7 +3385,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4b67,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 393280,
+	.flow_sig_id = 393280UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3404,7 +3404,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_134b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 393288,
+	.flow_sig_id = 393288UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3424,7 +3424,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1683,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 458752,
+	.flow_sig_id = 458752UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3443,7 +3443,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_475b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 458760,
+	.flow_sig_id = 458760UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3463,7 +3463,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_02bf,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 458816,
+	.flow_sig_id = 458816UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3483,7 +3483,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3377,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 458824,
+	.flow_sig_id = 458824UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3504,7 +3504,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_19db,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 655360,
+	.flow_sig_id = 655360UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3522,7 +3522,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4a93,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 655368,
+	.flow_sig_id = 655368UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3541,7 +3541,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_05f7,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 655424,
+	.flow_sig_id = 655424UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3560,7 +3560,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_368f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 655432,
+	.flow_sig_id = 655432UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3580,7 +3580,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_39c7,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 720896,
+	.flow_sig_id = 720896UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3599,7 +3599,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_022b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 720904,
+	.flow_sig_id = 720904UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3619,7 +3619,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_25f3,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 720960,
+	.flow_sig_id = 720960UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3639,7 +3639,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_568b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 720968,
+	.flow_sig_id = 720968UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3660,7 +3660,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3c37,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 917504,
+	.flow_sig_id = 917504UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3679,7 +3679,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_041b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 917512,
+	.flow_sig_id = 917512UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3699,7 +3699,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2823,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 917568,
+	.flow_sig_id = 917568UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3719,7 +3719,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_58fb,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 917576,
+	.flow_sig_id = 917576UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3740,7 +3740,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5c33,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 983040,
+	.flow_sig_id = 983040UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3760,7 +3760,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2407,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 983048,
+	.flow_sig_id = 983048UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3781,7 +3781,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_482f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 983104,
+	.flow_sig_id = 983104UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3802,7 +3802,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1033,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 983112,
+	.flow_sig_id = 983112UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3824,7 +3824,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3887,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 32768,
+	.flow_sig_id = 32768UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3841,7 +3841,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_00bb,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 32776,
+	.flow_sig_id = 32776UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3859,7 +3859,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2493,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 32832,
+	.flow_sig_id = 32832UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3877,7 +3877,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_55db,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 32840,
+	.flow_sig_id = 32840UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3896,7 +3896,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5043,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3914,7 +3914,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1877,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 49160,
+	.flow_sig_id = 49160UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3933,7 +3933,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3baf,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 49216,
+	.flow_sig_id = 49216UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3952,7 +3952,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0443,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 49224,
+	.flow_sig_id = 49224UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3972,7 +3972,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5883,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 98304,
+	.flow_sig_id = 98304UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3990,7 +3990,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_20b7,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 98312,
+	.flow_sig_id = 98312UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4009,7 +4009,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_44ef,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 98368,
+	.flow_sig_id = 98368UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4028,7 +4028,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0c83,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 98376,
+	.flow_sig_id = 98376UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4048,7 +4048,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_070b,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4067,7 +4067,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3873,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 114696,
+	.flow_sig_id = 114696UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4087,7 +4087,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5bab,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 114752,
+	.flow_sig_id = 114752UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4107,7 +4107,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_245f,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 114760,
+	.flow_sig_id = 114760UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4128,7 +4128,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_142b,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 163840,
+	.flow_sig_id = 163840UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4146,7 +4146,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4513,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 163848,
+	.flow_sig_id = 163848UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4165,7 +4165,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0037,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 163904,
+	.flow_sig_id = 163904UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4184,7 +4184,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_317f,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 163912,
+	.flow_sig_id = 163912UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4204,7 +4204,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2be7,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 180224,
+	.flow_sig_id = 180224UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4223,7 +4223,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5c2f,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 180232,
+	.flow_sig_id = 180232UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4243,7 +4243,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_17f3,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 180288,
+	.flow_sig_id = 180288UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4263,7 +4263,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_483b,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 180296,
+	.flow_sig_id = 180296UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4284,7 +4284,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3427,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 229376,
+	.flow_sig_id = 229376UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4303,7 +4303,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_656f,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 229384,
+	.flow_sig_id = 229384UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4323,7 +4323,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2033,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 229440,
+	.flow_sig_id = 229440UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4343,7 +4343,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_517b,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 229448,
+	.flow_sig_id = 229448UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4364,7 +4364,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4be3,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 245760,
+	.flow_sig_id = 245760UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4384,7 +4384,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1397,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 245768,
+	.flow_sig_id = 245768UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4405,7 +4405,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_37cf,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 245824,
+	.flow_sig_id = 245824UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4426,7 +4426,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_6837,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 245832,
+	.flow_sig_id = 245832UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4448,7 +4448,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3d7f,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 131072,
+	.flow_sig_id = 131072UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4465,7 +4465,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0503,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 131080,
+	.flow_sig_id = 131080UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4483,7 +4483,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_296b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 131136,
+	.flow_sig_id = 131136UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4501,7 +4501,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_59a3,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 131144,
+	.flow_sig_id = 131144UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4520,7 +4520,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5d7b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 196608,
+	.flow_sig_id = 196608UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4538,7 +4538,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_250f,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 196616,
+	.flow_sig_id = 196616UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4557,7 +4557,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4957,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 196672,
+	.flow_sig_id = 196672UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4576,7 +4576,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_117b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 196680,
+	.flow_sig_id = 196680UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4596,7 +4596,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5f2b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 393216,
+	.flow_sig_id = 393216UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4614,7 +4614,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_273f,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 393224,
+	.flow_sig_id = 393224UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4633,7 +4633,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4b07,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 393280,
+	.flow_sig_id = 393280UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4652,7 +4652,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_132b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 393288,
+	.flow_sig_id = 393288UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4672,7 +4672,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_16e3,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 458752,
+	.flow_sig_id = 458752UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4691,7 +4691,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_473b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 458760,
+	.flow_sig_id = 458760UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4711,7 +4711,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_02df,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 458816,
+	.flow_sig_id = 458816UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4731,7 +4731,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3317,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 458824,
+	.flow_sig_id = 458824UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4752,7 +4752,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_19bb,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 655360,
+	.flow_sig_id = 655360UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4770,7 +4770,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4af3,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 655368,
+	.flow_sig_id = 655368UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4789,7 +4789,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0597,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 655424,
+	.flow_sig_id = 655424UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4808,7 +4808,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_36ef,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 655432,
+	.flow_sig_id = 655432UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4828,7 +4828,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_39a7,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 720896,
+	.flow_sig_id = 720896UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4847,7 +4847,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_024b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 720904,
+	.flow_sig_id = 720904UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4867,7 +4867,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2593,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 720960,
+	.flow_sig_id = 720960UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4887,7 +4887,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_56eb,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 720968,
+	.flow_sig_id = 720968UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4908,7 +4908,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3c57,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 917504,
+	.flow_sig_id = 917504UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4927,7 +4927,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_047b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 917512,
+	.flow_sig_id = 917512UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4947,7 +4947,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2843,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 917568,
+	.flow_sig_id = 917568UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4967,7 +4967,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_589b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 917576,
+	.flow_sig_id = 917576UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4988,7 +4988,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5c53,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 983040,
+	.flow_sig_id = 983040UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5008,7 +5008,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2467,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 983048,
+	.flow_sig_id = 983048UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5029,7 +5029,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_484f,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 983104,
+	.flow_sig_id = 983104UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5050,7 +5050,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1053,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 983112,
+	.flow_sig_id = 983112UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5072,7 +5072,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5ce1,
 	.class_tid = 1,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 4096,
+	.flow_sig_id = 4096UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5086,7 +5086,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4579,
 	.class_tid = 1,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 6144,
+	.flow_sig_id = 6144UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5101,7 +5101,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1735,
 	.class_tid = 1,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 16384,
+	.flow_sig_id = 16384UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5115,7 +5115,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_45bd,
 	.class_tid = 1,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 24576,
+	.flow_sig_id = 24576UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5130,7 +5130,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3feb,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 32768,
+	.flow_sig_id = 32768UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5145,7 +5145,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2bf7,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 32832,
+	.flow_sig_id = 32832UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5161,7 +5161,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5727,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5177,7 +5177,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4333,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 49216,
+	.flow_sig_id = 49216UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5194,7 +5194,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4453,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 131072,
+	.flow_sig_id = 131072UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5209,7 +5209,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_304f,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 131136,
+	.flow_sig_id = 131136UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5225,7 +5225,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_645f,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 196608,
+	.flow_sig_id = 196608UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5241,7 +5241,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_504b,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 196672,
+	.flow_sig_id = 196672UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5258,7 +5258,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5cc1,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 4096,
+	.flow_sig_id = 4096UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5273,7 +5273,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4559,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 6144,
+	.flow_sig_id = 6144UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5289,7 +5289,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2285,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 12288,
+	.flow_sig_id = 12288UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5305,7 +5305,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0b1d,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 14336,
+	.flow_sig_id = 14336UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5322,7 +5322,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0b49,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 20480,
+	.flow_sig_id = 20480UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5338,7 +5338,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5c95,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 22528,
+	.flow_sig_id = 22528UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5355,7 +5355,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_39c1,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 28672,
+	.flow_sig_id = 28672UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5372,7 +5372,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2259,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 30720,
+	.flow_sig_id = 30720UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5390,7 +5390,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1715,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 16384,
+	.flow_sig_id = 16384UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5405,7 +5405,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_459d,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 24576,
+	.flow_sig_id = 24576UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5421,7 +5421,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_571d,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5437,7 +5437,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1cd1,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 57344,
+	.flow_sig_id = 57344UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5454,7 +5454,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3711,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 81920,
+	.flow_sig_id = 81920UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5470,7 +5470,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_6599,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 90112,
+	.flow_sig_id = 90112UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5487,7 +5487,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0e55,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5504,7 +5504,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3cdd,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 122880,
+	.flow_sig_id = 122880UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5522,7 +5522,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5ca1,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 4096,
+	.flow_sig_id = 4096UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5537,7 +5537,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4539,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 6144,
+	.flow_sig_id = 6144UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5553,7 +5553,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_22e5,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 12288,
+	.flow_sig_id = 12288UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5569,7 +5569,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0b7d,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 14336,
+	.flow_sig_id = 14336UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5586,7 +5586,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0b29,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 20480,
+	.flow_sig_id = 20480UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5602,7 +5602,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5cf5,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 22528,
+	.flow_sig_id = 22528UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5619,7 +5619,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_39a1,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 28672,
+	.flow_sig_id = 28672UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5636,7 +5636,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2239,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 30720,
+	.flow_sig_id = 30720UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5654,7 +5654,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1775,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 16384,
+	.flow_sig_id = 16384UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5669,7 +5669,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_45fd,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 24576,
+	.flow_sig_id = 24576UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5685,7 +5685,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_577d,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5701,7 +5701,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1cb1,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 57344,
+	.flow_sig_id = 57344UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5718,7 +5718,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3771,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 81920,
+	.flow_sig_id = 81920UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5734,7 +5734,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_65f9,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 90112,
+	.flow_sig_id = 90112UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5751,7 +5751,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0e35,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5768,7 +5768,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3cbd,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 122880,
+	.flow_sig_id = 122880UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5786,7 +5786,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3fcb,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 32768,
+	.flow_sig_id = 32768UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5802,7 +5802,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2bd7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 32832,
+	.flow_sig_id = 32832UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5819,7 +5819,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5707,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5836,7 +5836,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4313,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 49216,
+	.flow_sig_id = 49216UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5854,7 +5854,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5fc7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 98304,
+	.flow_sig_id = 98304UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5871,7 +5871,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4bd3,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 98368,
+	.flow_sig_id = 98368UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5889,7 +5889,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0e4f,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5907,7 +5907,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_632f,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 114752,
+	.flow_sig_id = 114752UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5926,7 +5926,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1baf,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 163840,
+	.flow_sig_id = 163840UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5943,7 +5943,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_07bb,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 163904,
+	.flow_sig_id = 163904UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5961,7 +5961,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_32eb,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 180224,
+	.flow_sig_id = 180224UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5979,7 +5979,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1ef7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 180288,
+	.flow_sig_id = 180288UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5998,7 +5998,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3bab,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 229376,
+	.flow_sig_id = 229376UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6016,7 +6016,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_27b7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 229440,
+	.flow_sig_id = 229440UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6035,7 +6035,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_52e7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 245760,
+	.flow_sig_id = 245760UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6054,7 +6054,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3ef3,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 245824,
+	.flow_sig_id = 245824UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6074,7 +6074,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4473,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 131072,
+	.flow_sig_id = 131072UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6090,7 +6090,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_306f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 131136,
+	.flow_sig_id = 131136UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6107,7 +6107,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_647f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 196608,
+	.flow_sig_id = 196608UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6124,7 +6124,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_506b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 196672,
+	.flow_sig_id = 196672UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6142,7 +6142,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_66af,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 393216,
+	.flow_sig_id = 393216UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6159,7 +6159,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_525b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 393280,
+	.flow_sig_id = 393280UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6177,7 +6177,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1de7,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 458752,
+	.flow_sig_id = 458752UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6195,7 +6195,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0993,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 458816,
+	.flow_sig_id = 458816UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6214,7 +6214,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_213f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 655360,
+	.flow_sig_id = 655360UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6231,7 +6231,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0d2b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 655424,
+	.flow_sig_id = 655424UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6249,7 +6249,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_413b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 720896,
+	.flow_sig_id = 720896UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6267,7 +6267,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2cd7,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 720960,
+	.flow_sig_id = 720960UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6286,7 +6286,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_436b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 917504,
+	.flow_sig_id = 917504UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6304,7 +6304,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2f07,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 917568,
+	.flow_sig_id = 917568UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6323,7 +6323,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_6317,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 983040,
+	.flow_sig_id = 983040UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6342,7 +6342,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4f03,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 983104,
+	.flow_sig_id = 983104UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6362,7 +6362,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3fab,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 32768,
+	.flow_sig_id = 32768UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6378,7 +6378,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2bb7,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 32832,
+	.flow_sig_id = 32832UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6395,7 +6395,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5767,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6412,7 +6412,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4373,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 49216,
+	.flow_sig_id = 49216UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6430,7 +6430,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5fa7,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 98304,
+	.flow_sig_id = 98304UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6447,7 +6447,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4bb3,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 98368,
+	.flow_sig_id = 98368UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6465,7 +6465,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0e2f,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6483,7 +6483,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_634f,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 114752,
+	.flow_sig_id = 114752UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6502,7 +6502,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1bcf,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 163840,
+	.flow_sig_id = 163840UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6519,7 +6519,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_07db,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 163904,
+	.flow_sig_id = 163904UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6537,7 +6537,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_328b,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 180224,
+	.flow_sig_id = 180224UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6555,7 +6555,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1e97,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 180288,
+	.flow_sig_id = 180288UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6574,7 +6574,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3bcb,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 229376,
+	.flow_sig_id = 229376UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6592,7 +6592,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_27d7,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 229440,
+	.flow_sig_id = 229440UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6611,7 +6611,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5287,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 245760,
+	.flow_sig_id = 245760UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6630,7 +6630,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3e93,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 245824,
+	.flow_sig_id = 245824UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6650,7 +6650,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4413,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 131072,
+	.flow_sig_id = 131072UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6666,7 +6666,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_300f,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 131136,
+	.flow_sig_id = 131136UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6683,7 +6683,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_641f,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 196608,
+	.flow_sig_id = 196608UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6700,7 +6700,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_500b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 196672,
+	.flow_sig_id = 196672UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6718,7 +6718,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_66cf,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 393216,
+	.flow_sig_id = 393216UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6735,7 +6735,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_523b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 393280,
+	.flow_sig_id = 393280UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6753,7 +6753,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1d87,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 458752,
+	.flow_sig_id = 458752UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6771,7 +6771,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_09f3,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 458816,
+	.flow_sig_id = 458816UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6790,7 +6790,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_215f,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 655360,
+	.flow_sig_id = 655360UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6807,7 +6807,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0d4b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 655424,
+	.flow_sig_id = 655424UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6825,7 +6825,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_415b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 720896,
+	.flow_sig_id = 720896UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6843,7 +6843,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2cb7,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 720960,
+	.flow_sig_id = 720960UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6862,7 +6862,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_430b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 917504,
+	.flow_sig_id = 917504UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6880,7 +6880,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2f67,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 917568,
+	.flow_sig_id = 917568UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6899,7 +6899,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_6377,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 983040,
+	.flow_sig_id = 983040UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6918,7 +6918,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4f63,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 983104,
+	.flow_sig_id = 983104UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6938,7 +6938,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29b5,
 	.class_tid = 1,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6953,7 +6953,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29ad,
 	.class_tid = 1,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6968,7 +6968,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29b7,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6984,7 +6984,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1583,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 72,
+	.flow_sig_id = 72UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7001,7 +7001,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29af,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7017,7 +7017,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_159b,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 72,
+	.flow_sig_id = 72UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7034,7 +7034,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2995,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7050,7 +7050,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_298d,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7066,7 +7066,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29f5,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7082,7 +7082,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29ed,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7098,7 +7098,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2997,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7115,7 +7115,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_15a3,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 72,
+	.flow_sig_id = 72UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7133,7 +7133,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_298f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7150,7 +7150,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_15bb,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 72,
+	.flow_sig_id = 72UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7168,7 +7168,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29f7,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7185,7 +7185,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_15c3,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 72,
+	.flow_sig_id = 72UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7203,7 +7203,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29ef,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7220,7 +7220,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_15db,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 72,
+	.flow_sig_id = 72UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7238,7 +7238,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1151,
 	.class_tid = 1,
 	.hdr_sig_id = 12,
-	.flow_sig_id = 16384,
+	.flow_sig_id = 16384UL,
 	.flow_pattern_id = 3,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7255,7 +7255,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_315d,
 	.class_tid = 1,
 	.hdr_sig_id = 12,
-	.flow_sig_id = 81920,
+	.flow_sig_id = 81920UL,
 	.flow_pattern_id = 3,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7273,7 +7273,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3612,
 	.class_tid = 2,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 81920,
+	.flow_sig_id = 81920UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7292,7 +7292,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_66da,
 	.class_tid = 2,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 81928,
+	.flow_sig_id = 81928UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7312,7 +7312,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_e082,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1313792,
+	.flow_sig_id = 1313792UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7332,7 +7332,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_ab46,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1321984,
+	.flow_sig_id = 1321984UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7353,7 +7353,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_c82a,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 3410944,
+	.flow_sig_id = 3410944UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7374,7 +7374,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_f9a2,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 3419136,
+	.flow_sig_id = 3419136UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7396,7 +7396,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_d8ce,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 538184704,
+	.flow_sig_id = 538184704UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7417,7 +7417,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_a2d2,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 538192896,
+	.flow_sig_id = 538192896UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7439,7 +7439,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_c076,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 540281856,
+	.flow_sig_id = 540281856UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7461,7 +7461,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_f1ee,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 540290048,
+	.flow_sig_id = 540290048UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7484,7 +7484,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_a96e,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1075055616,
+	.flow_sig_id = 1075055616UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7505,7 +7505,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_dae6,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1075063808,
+	.flow_sig_id = 1075063808UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7527,7 +7527,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_c7aa,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1077152768,
+	.flow_sig_id = 1077152768UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7549,7 +7549,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_c26e,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1077160960,
+	.flow_sig_id = 1077160960UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7572,7 +7572,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_a0fa,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1611926528,
+	.flow_sig_id = 1611926528UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7594,7 +7594,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_d272,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1611934720,
+	.flow_sig_id = 1611934720UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7617,7 +7617,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_fff6,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1614023680,
+	.flow_sig_id = 1614023680UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7640,7 +7640,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_e16e,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1614031872,
+	.flow_sig_id = 1614031872UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7664,7 +7664,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_e165,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 1313792,
+	.flow_sig_id = 1313792UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7684,7 +7684,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_aaa1,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 1321984,
+	.flow_sig_id = 1321984UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7705,7 +7705,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_c9cd,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 3410944,
+	.flow_sig_id = 3410944UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7726,7 +7726,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_f845,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 3419136,
+	.flow_sig_id = 3419136UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7748,7 +7748,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_90f9,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 2148797440,
+	.flow_sig_id = 2148797440UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7769,7 +7769,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_c371,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 2148805632,
+	.flow_sig_id = 2148805632UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7791,7 +7791,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_e19d,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 2150894592,
+	.flow_sig_id = 2150894592UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7813,7 +7813,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_d015,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 2150902784,
+	.flow_sig_id = 2150902784UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7836,7 +7836,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_8c09,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 4296281088,
+	.flow_sig_id = 4296281088UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7857,7 +7857,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_be89,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 4296289280,
+	.flow_sig_id = 4296289280UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7879,7 +7879,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_ddad,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 4298378240,
+	.flow_sig_id = 4298378240UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7901,7 +7901,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_cc2d,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 4298386432,
+	.flow_sig_id = 4298386432UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =

Lines of this file are not shown. View the raw message.

drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h +2 -2
index 31a94c14dc..8706e45f28 100644

Lines of this file are not shown. View the raw message.

drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c +123 -128

251 lines not on this page · raw message

The rest of this diff is not shown. View the raw message.

Signature · 1 line
2.17.1

Part of the diff is not shown here. View the raw message.

#17 lore raw

PATCH v2 7/19 net/bnxt: support inner IP header for GRE tunnel flows

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

This change allows adding IP header matches for GRE flows that does not specify outer IP header in the flow match pattern.

---
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      | 7 ++++---
 drivers/net/bnxt/tf_ulp/ulp_template_struct.h | 2 +-
 2 files changed, 5 insertions(+), 4 deletions(-)
drivers/net/bnxt/tf_ulp/ulp_rte_parser.c +4 -3
index 40da953f06..605c29223c 100644
@@ -1119,7 +1119,8 @@ ulp_rte_ipv4_hdr_handler(const struct rte_flow_item *item,
 
 	/* Set the ipv4 header bitmap and computed l3 header bitmaps */
 	if (ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV4) ||
-	    ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV6)) {
+	    ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV6) ||
+	    ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_L3_TUN)) {
 		ULP_BITMAP_SET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_I_IPV4);
 		ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L3, 1);
 		inner_flag = 1;
@@ -1245,7 +1246,8 @@ ulp_rte_ipv6_hdr_handler(const struct rte_flow_item *item,
 
 	/* Set the ipv6 header bitmap and computed l3 header bitmaps */
 	if (ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV4) ||
-	    ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV6)) {
+	    ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV6) ||
+	    ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_L3_TUN)) {
 		ULP_BITMAP_SET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_I_IPV6);
 		ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L3, 1);
 		inner_flag = 1;
@@ -2127,7 +2129,6 @@ ulp_rte_vxlan_decap_act_handler(const struct rte_flow_action *action_item
 		       BNXT_ULP_ACT_BIT_VXLAN_DECAP);
 	/* Update computational field with tunnel decap info */
 	ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_L3_TUN_DECAP, 1);
-	ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_L3_TUN, 1);
 	return BNXT_TF_RC_SUCCESS;
 }
 
drivers/net/bnxt/tf_ulp/ulp_template_struct.h +1 -1
index d3bfb8c12d..7d1bc06a3e 100644
@@ -27,7 +27,7 @@
 #define BNXT_ULP_PROTO_HDR_UDP_NUM	4
 #define BNXT_ULP_PROTO_HDR_TCP_NUM	9
 #define BNXT_ULP_PROTO_HDR_VXLAN_NUM	4
-#define BNXT_ULP_PROTO_HDR_GRE_NUM	6
+#define BNXT_ULP_PROTO_HDR_GRE_NUM	2
 #define BNXT_ULP_PROTO_HDR_ICMP_NUM	5
 #define BNXT_ULP_PROTO_HDR_MAX		128
 #define BNXT_ULP_PROTO_HDR_ENCAP_MAX	64
Signature · 1 line
2.17.1
#18 lore raw

PATCH v2 8/19 net/bnxt: get TruFlow version

In reply to Venkat Duvvuru

From: Jay Ding <[email protected]>

Implement tf_get_version that returns TruFlow version numbers and CFA resources capbilities.

---
 drivers/net/bnxt/hsi_struct_def_dpdk.h   | 15 ++--
 drivers/net/bnxt/tf_core/tf_core.c       | 29 ++++++++
 drivers/net/bnxt/tf_core/tf_core.h       | 75 ++++++++++++++++++++
 drivers/net/bnxt/tf_core/tf_device.h     | 50 ++++++++++++++
 drivers/net/bnxt/tf_core/tf_device_p4.c  | 65 +++++++++++++++++-
 drivers/net/bnxt/tf_core/tf_device_p4.h  | 79 +++++++++++++++++++++
 drivers/net/bnxt/tf_core/tf_device_p58.c | 65 +++++++++++++++++-
 drivers/net/bnxt/tf_core/tf_device_p58.h | 87 ++++++++++++++++++++++++
 drivers/net/bnxt/tf_core/tf_msg.c        | 35 ++++++++++
 drivers/net/bnxt/tf_core/tf_msg.h        | 19 ++++++
 10 files changed, 513 insertions(+), 6 deletions(-)
drivers/net/bnxt/hsi_struct_def_dpdk.h +11 -4
index 77981b5cdb..6d04e39e48 100644
@@ -1058,8 +1058,8 @@ struct hwrm_err_output {
 #define HWRM_VERSION_MINOR 10
 #define HWRM_VERSION_UPDATE 2
 /* non-zero means beta version */
-#define HWRM_VERSION_RSVD 55
-#define HWRM_VERSION_STR "1.10.2.55"
+#define HWRM_VERSION_RSVD 58
+#define HWRM_VERSION_STR "1.10.2.58"
 
 /****************
  * hwrm_ver_get *
@@ -45178,7 +45178,7 @@ struct hwrm_tf_version_get_input {
 	uint64_t	resp_addr;
 } __rte_packed;
 
-/* hwrm_tf_version_get_output (size:128b/16B) */
+/* hwrm_tf_version_get_output (size:256b/32B) */
 struct hwrm_tf_version_get_output {
 	/* The specific error status for the command. */
 	uint16_t	error_code;
@@ -45195,7 +45195,14 @@ struct hwrm_tf_version_get_output {
 	/* Version Update number. */
 	uint8_t	update;
 	/* unused. */
-	uint8_t	unused0[4];
+	uint8_t	unused0[5];
+	/*
+	 * This field is used to indicate device's capabilities and
+	 * configurations.
+	 */
+	uint64_t	dev_caps_cfg;
+	/* unused. */
+	uint8_t	unused1[7];
 	/*
 	 * This field is used in Output records to indicate that the output
 	 * is completely written to RAM. This field should be read as '1'
drivers/net/bnxt/tf_core/tf_core.c +29 -0
index 936102c804..86dfec0eb4 100644
@@ -1802,3 +1802,32 @@ int tf_get_session_info(struct tf *tfp,
 
 	return 0;
 }
+
+int tf_get_version(struct tf *tfp,
+		   struct tf_get_version_parms *parms)
+{
+	int rc;
+	struct tf_dev_info dev;
+
+	TF_CHECK_PARMS2(tfp, parms);
+
+	/* This function can be called before open session, filter
+	 * out any non-supported device types on the Core side.
+	 */
+	if (parms->device_type != TF_DEVICE_TYPE_WH &&
+	    parms->device_type != TF_DEVICE_TYPE_THOR &&
+	    parms->device_type != TF_DEVICE_TYPE_SR) {
+		TFP_DRV_LOG(ERR,
+			    "Unsupported device type %d\n",
+			    parms->device_type);
+		return -ENOTSUP;
+	}
+
+	tf_dev_bind_ops(parms->device_type, &dev);
+
+	rc = tf_msg_get_version(parms->bp, &dev, parms);
+	if (rc)
+		return rc;
+
+	return 0;
+}
drivers/net/bnxt/tf_core/tf_core.h +75 -0

79 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device.h +50 -0

72 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device_p4.c +64 -1

81 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device_p4.h +79 -0

83 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device_p58.c +64 -1

87 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device_p58.h +87 -0

91 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_msg.c +35 -0
index ea6e2af7ce..25bf026658 100644
@@ -2306,3 +2306,38 @@ tf_msg_set_if_tbl_entry(struct tf *tfp,
 
 	return 0;
 }
+
+int
+tf_msg_get_version(struct bnxt *bp,
+		   struct tf_dev_info *dev,
+		   struct tf_get_version_parms *params)
+
+{
+	int rc;
+	struct hwrm_tf_version_get_input req = { 0 };
+	struct hwrm_tf_version_get_output resp = { 0 };
+	struct tfp_send_msg_parms parms = { 0 };
+
+	/* Populate the request */
+	parms.tf_type = HWRM_TF_VERSION_GET,
+	parms.req_data = (uint32_t *)&req;
+	parms.req_size = sizeof(req);
+	parms.resp_data = (uint32_t *)&resp;
+	parms.resp_size = sizeof(resp);
+	parms.mailbox = dev->ops->tf_dev_get_mailbox();
+
+	rc = tfp_send_msg_direct(bp,
+				 &parms);
+
+	params->major = resp.major;
+	params->minor = resp.minor;
+	params->update = resp.update;
+
+	dev->ops->tf_dev_map_hcapi_caps(resp.dev_caps_cfg,
+					&params->dev_ident_caps,
+					&params->dev_tcam_caps,
+					&params->dev_tbl_caps,
+					&params->dev_em_caps);
+
+	return rc;
+}
drivers/net/bnxt/tf_core/tf_msg.h +19 -0
index 718bc2f3b2..08d20cdd7a 100644
@@ -738,4 +738,23 @@ int tf_msg_set_if_tbl_entry(struct tf *tfp,
 int tf_msg_get_if_tbl_entry(struct tf *tfp,
 			    struct tf_if_tbl_get_parms *params);
 
+/**
+ * Send get version request to the firmware.
+ *
+ * [in] bp
+ *   Pointer to bnxt handle
+ *
+ * [in] dev
+ *   Pointer to the associated device
+ *
+ * [in/out] parms
+ *   Pointer to the version info parameter
+ *
+ * Returns:
+ *  0 on Success else internal Truflow error
+ */
+int
+tf_msg_get_version(struct bnxt *bp,
+		   struct tf_dev_info *dev,
+		   struct tf_get_version_parms *parms);
 #endif  /* _TF_MSG_H_ */
Signature · 1 line
2.17.1
#19 lore raw

PATCH v2 9/19 net/bnxt: increase flow scale for Thor

In reply to Venkat Duvvuru

From: Shahaji Bhosle <[email protected]>

* Updated defines and data types to allow 256 VFRs.
* Increased the encap record cache to support 256 to 4K entries. So VxLAN connections can be scaled to 4K entries.

---
 drivers/net/bnxt/bnxt.h                        |  6 +++++-
 drivers/net/bnxt/bnxt_cpr.c                    |  2 +-
 drivers/net/bnxt/bnxt_ethdev.c                 | 18 +++++++++---------
 drivers/net/bnxt/bnxt_reps.c                   |  3 +--
 drivers/net/bnxt/tf_ulp/bnxt_ulp.h             |  2 +-
 .../generic_templates/ulp_template_db_tbl.c    |  8 ++++----
 drivers/net/bnxt/tf_ulp/ulp_def_rules.c        |  6 +++---
 7 files changed, 24 insertions(+), 21 deletions(-)
drivers/net/bnxt/bnxt.h +5 -1
index c65e360446..5c064fd119 100644
@@ -240,7 +240,11 @@ struct bnxt_parent_info {
 struct bnxt_pf_info {
 #define BNXT_FIRST_PF_FID	1
 #define BNXT_MAX_VFS(bp)	((bp)->pf->max_vfs)
-#define BNXT_MAX_VF_REPS	64
+#define BNXT_MAX_VF_REPS_WH     64
+#define BNXT_MAX_VF_REPS_TH     256
+#define BNXT_MAX_VF_REPS(bp) \
+				(BNXT_CHIP_P5(bp) ? BNXT_MAX_VF_REPS_TH : \
+				BNXT_MAX_VF_REPS_WH)
 #define BNXT_TOTAL_VFS(bp)	((bp)->pf->total_vfs)
 #define BNXT_FIRST_VF_FID	128
 #define BNXT_PF_RINGS_USED(bp)	bnxt_get_num_queues(bp)
drivers/net/bnxt/bnxt_cpr.c +1 -1
index 63ff02a198..6bb70d516e 100644
@@ -74,7 +74,7 @@ bnxt_process_default_vnic_change(struct bnxt *bp,
 			BNXT_DEFAULT_VNIC_CHANGE_VF_ID_SFT;
 	PMD_DRV_LOG(INFO, "async event received vf_id 0x%x\n", vf_fid);
 
-	for (vf_id = 0; vf_id < BNXT_MAX_VF_REPS; vf_id++) {
+	for (vf_id = 0; vf_id < BNXT_MAX_VF_REPS(bp); vf_id++) {
 		eth_dev = bp->rep_info[vf_id].vfr_eth_dev;
 		if (!eth_dev)
 			continue;
drivers/net/bnxt/bnxt_ethdev.c +9 -9
index bf034db336..8c72ab8fd1 100644
@@ -1179,7 +1179,7 @@ void bnxt_print_link_info(struct rte_eth_dev *eth_dev)
 	struct rte_eth_link *link = &eth_dev->data->dev_link;
 
 	if (link->link_status)
-		PMD_DRV_LOG(INFO, "Port %d Link Up - speed %u Mbps - %s\n",
+		PMD_DRV_LOG(DEBUG, "Port %d Link Up - speed %u Mbps - %s\n",
 			eth_dev->data->port_id,
 			(uint32_t)link->link_speed,
 			(link->link_duplex == ETH_LINK_FULL_DUPLEX) ?
@@ -6034,7 +6034,7 @@ static int bnxt_init_rep_info(struct bnxt *bp)
 		return 0;
 
 	bp->rep_info = rte_zmalloc("bnxt_rep_info",
-				   sizeof(bp->rep_info[0]) * BNXT_MAX_VF_REPS,
+				   sizeof(bp->rep_info[0]) * BNXT_MAX_VF_REPS(bp),
 				   0);
 	if (!bp->rep_info) {
 		PMD_DRV_LOG(ERR, "Failed to alloc memory for rep info\n");
@@ -6076,7 +6076,9 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
 {
 	struct rte_eth_dev *vf_rep_eth_dev;
 	char name[RTE_ETH_NAME_MAX_LEN];
-	struct bnxt *backing_bp;
+	struct bnxt *backing_bp = backing_eth_dev->data->dev_private;
+	uint16_t max_vf_reps = BNXT_MAX_VF_REPS(backing_bp);
+
 	uint16_t num_rep;
 	int i, ret = 0;
 	struct rte_kvargs *kvlist = NULL;
@@ -6089,9 +6091,9 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
 		return -ENOTSUP;
 	}
 	num_rep = eth_da->nb_representor_ports;
-	if (num_rep > BNXT_MAX_VF_REPS) {
+	if (num_rep > max_vf_reps) {
 		PMD_DRV_LOG(ERR, "nb_representor_ports = %d > %d MAX VF REPS\n",
-			    num_rep, BNXT_MAX_VF_REPS);
+			    num_rep, max_vf_reps);
 		return -EINVAL;
 	}
 
@@ -6102,8 +6104,6 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
 		return -EINVAL;
 	}
 
-	backing_bp = backing_eth_dev->data->dev_private;
-
 	if (!(BNXT_PF(backing_bp) || BNXT_VF_IS_TRUSTED(backing_bp))) {
 		PMD_DRV_LOG(ERR,
 			    "Not a PF or trusted VF. No Representor support\n");
@@ -6123,9 +6123,9 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
 			.parent_dev = backing_eth_dev
 		};
 
-		if (representor.vf_id >= BNXT_MAX_VF_REPS) {
+		if (representor.vf_id >= max_vf_reps) {
 			PMD_DRV_LOG(ERR, "VF-Rep id %d >= %d MAX VF ID\n",
-				    representor.vf_id, BNXT_MAX_VF_REPS);
+				    representor.vf_id, max_vf_reps);
 			continue;
 		}
 
drivers/net/bnxt/bnxt_reps.c +1 -2
index b7e88e013a..988f5a33a7 100644
@@ -210,7 +210,6 @@ int bnxt_representor_init(struct rte_eth_dev *eth_dev, void *params)
 	eth_dev->data->dev_link.link_status = link->link_status;
 	eth_dev->data->dev_link.link_autoneg = link->link_autoneg;
 
-	PMD_DRV_LOG(INFO, "calling bnxt_print_link_info\n");
 	bnxt_print_link_info(eth_dev);
 
 	PMD_DRV_LOG(INFO,
@@ -821,7 +820,7 @@ int bnxt_rep_stop_all(struct bnxt *bp)
 	if (!bp->rep_info)
 		return 0;
 
-	for (vf_id = 0; vf_id < BNXT_MAX_VF_REPS; vf_id++) {
+	for (vf_id = 0; vf_id < BNXT_MAX_VF_REPS(bp); vf_id++) {
 		rep_eth_dev = bp->rep_info[vf_id].vfr_eth_dev;
 		if (!rep_eth_dev)
 			continue;
drivers/net/bnxt/tf_ulp/bnxt_ulp.h +1 -1
index 68f1470c61..960a5a0c93 100644
@@ -262,7 +262,7 @@ bnxt_ulp_cntxt_ptr2_ulp_flags_get(struct bnxt_ulp_context *ulp_ctx,
 				  uint32_t *flags);
 
 int32_t
-bnxt_ulp_get_df_rule_info(uint8_t port_id, struct bnxt_ulp_context *ulp_ctx,
+bnxt_ulp_get_df_rule_info(uint16_t port_id, struct bnxt_ulp_context *ulp_ctx,
 			  struct bnxt_ulp_df_rule_info *info);
 
 struct bnxt_ulp_vfr_rule_info*
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c +4 -4
index 5383e2cd70..e43e341927 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Thu Sep  9 11:11:05 2021 */
+/* date: Thu Sep 16 11:49:55 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -164,12 +164,12 @@ struct bnxt_ulp_generic_tbl_params ulp_generic_tbl_params[] = {
 	},
 	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_REC_CACHE << 1 |
 		BNXT_ULP_DIRECTION_EGRESS] = {
-	.name                    = "INGRESS GEN_TABLE_VXLAN_ENCAP_REC_CACHE",
-	.result_num_entries      = 256,
+	.name                    = "EGRESS GEN_TABLE_VXLAN_ENCAP_REC_CACHE",
+	.result_num_entries      = 4096,
 	.result_num_bytes        = 6,
 	.key_num_bytes           = 17,
 	.num_buckets             = 8,
-	.hash_tbl_entries        = 1024,
+	.hash_tbl_entries        = 16384,
 	.result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
 	}
 };
drivers/net/bnxt/tf_ulp/ulp_def_rules.c +3 -3
index d8336d164e..01233c0f5e 100644
@@ -441,7 +441,7 @@ void
 bnxt_ulp_destroy_df_rules(struct bnxt *bp, bool global)
 {
 	struct bnxt_ulp_df_rule_info *info;
-	uint8_t port_id;
+	uint16_t port_id;
 
 	if (!BNXT_TRUFLOW_EN(bp) ||
 	    BNXT_ETH_DEV_IS_REPRESENTOR(bp->eth_dev))
@@ -505,7 +505,7 @@ int32_t
 bnxt_ulp_create_df_rules(struct bnxt *bp)
 {
 	struct bnxt_ulp_df_rule_info *info;
-	uint8_t port_id;
+	uint16_t port_id;
 	int rc = 0;
 
 	if (!BNXT_TRUFLOW_EN(bp) ||
@@ -562,7 +562,7 @@ bnxt_ulp_create_vfr_default_rules(struct rte_eth_dev *vfr_ethdev)
 	struct rte_eth_dev *parent_dev = vfr->parent_dev;
 	struct bnxt *bp = parent_dev->data->dev_private;
 	uint16_t vfr_port_id = vfr_ethdev->data->port_id;
-	uint8_t port_id;
+	uint16_t port_id;
 	int rc;
 
 	if (!bp || !BNXT_TRUFLOW_EN(bp))
Signature · 1 line
2.17.1
#20 lore raw

PATCH v2 10/19 net/bnxt: remove accumulation of stats devargs argument

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

The accumulation of flow counters is not determined by the application device arguments instead it is dictated by the platform capabilities whether to do software based accumulation or not.

Change-Id I7275a0ed6ab089358e0a95f43d6291ec65ebe030
---
 drivers/net/bnxt/bnxt.h              |  3 --
 drivers/net/bnxt/bnxt_ethdev.c       | 53 ----------------------------
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c   |  8 -----
 drivers/net/bnxt/tf_ulp/bnxt_ulp.h   |  1 -
 drivers/net/bnxt/tf_ulp/ulp_fc_mgr.c | 12 +++----
 5 files changed, 4 insertions(+), 73 deletions(-)
drivers/net/bnxt/bnxt.h +0 -3
index 5c064fd119..5cc4a5afae 100644
@@ -718,11 +718,8 @@ struct bnxt {
 	uint32_t			flags2;
 #define BNXT_FLAGS2_PTP_TIMESYNC_ENABLED	BIT(0)
 #define BNXT_FLAGS2_PTP_ALARM_SCHEDULED		BIT(1)
-#define	BNXT_FLAGS2_ACCUM_STATS_EN		BIT(2)
 #define BNXT_P5_PTP_TIMESYNC_ENABLED(bp)	\
 	((bp)->flags2 & BNXT_FLAGS2_PTP_TIMESYNC_ENABLED)
-#define	BNXT_ACCUM_STATS_EN(bp)			\
-	((bp)->flags2 & BNXT_FLAGS2_ACCUM_STATS_EN)
 
 	uint16_t		chip_num;
 #define CHIP_NUM_58818		0xd818
drivers/net/bnxt/bnxt_ethdev.c +0 -53

83 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/bnxt_ulp.c +0 -8
index 2ac1a8625f..7deacd1f3e 100644
@@ -1490,14 +1490,6 @@ bnxt_ulp_port_init(struct bnxt *bp)
 		goto jump_to_error;
 	}
 
-	/* set the accumulation of the stats */
-	if (BNXT_ACCUM_STATS_EN(bp))
-		bp->ulp_ctx->cfg_data->accum_stats = true;
-
-	BNXT_TF_DBG(DEBUG, "BNXT Port:%d ULP port init, accum_stats:%d\n",
-		    bp->eth_dev->data->port_id,
-		    bp->ulp_ctx->cfg_data->accum_stats);
-
 	/* set the unicast mode */
 	if (bnxt_ulp_cntxt_ptr2_ulp_flags_get(bp->ulp_ctx, &ulp_flags)) {
 		BNXT_TF_DBG(ERR, "Error in getting ULP context flags\n");
drivers/net/bnxt/tf_ulp/bnxt_ulp.h +0 -1
index 960a5a0c93..17c6898196 100644
@@ -92,7 +92,6 @@ struct bnxt_ulp_data {
 #define	BNXT_ULP_TUN_ENTRY_INVALID	-1
 #define	BNXT_ULP_MAX_TUN_CACHE_ENTRIES	16
 	struct bnxt_tun_cache_entry	tun_tbl[BNXT_ULP_MAX_TUN_CACHE_ENTRIES];
-	bool				accum_stats;
 	uint8_t				app_id;
 	uint8_t				num_shared_clients;
 	struct bnxt_flow_app_tun_ent	app_tun[BNXT_ULP_MAX_TUN_CACHE_ENTRIES];
drivers/net/bnxt/tf_ulp/ulp_fc_mgr.c +4 -8
index d6b4f93d31..92243083b5 100644
@@ -396,21 +396,17 @@ static int ulp_get_single_flow_stat(struct bnxt_ulp_context *ctxt,
 		return rc;
 	}
 
-	/* TBD - Get PKT/BYTE COUNT SHIFT/MASK from Template */
+	/* PKT/BYTE COUNT SHIFT/MASK are device specific */
 	sw_cntr_indx = hw_cntr_id - fc_info->shadow_hw_tbl[dir].start_idx;
 	sw_acc_tbl_entry = &fc_info->sw_acc_tbl[dir][sw_cntr_indx];
+
 	/* Some dpdk applications may accumulate the flow counters while some
 	 * may not. In cases where the application is accumulating the counters
 	 * the PMD need not do the accumulation itself and viceversa to report
 	 * the correct flow counters.
 	 */
-	if (ctxt->cfg_data->accum_stats) {
-		sw_acc_tbl_entry->pkt_count += FLOW_CNTR_PKTS(stats, dparms);
-		sw_acc_tbl_entry->byte_count += FLOW_CNTR_BYTES(stats, dparms);
-	} else {
-		sw_acc_tbl_entry->pkt_count = FLOW_CNTR_PKTS(stats, dparms);
-		sw_acc_tbl_entry->byte_count = FLOW_CNTR_BYTES(stats, dparms);
-	}
+	sw_acc_tbl_entry->pkt_count += FLOW_CNTR_PKTS(stats, dparms);
+	sw_acc_tbl_entry->byte_count += FLOW_CNTR_BYTES(stats, dparms);
 
 	/* Update the parent counters if it is child flow */
 	if (sw_acc_tbl_entry->pc_flow_idx & FLOW_CNTR_PC_FLOW_VALID) {
Signature · 1 line
2.17.1
#21 lore raw

PATCH v2 11/19 net/bnxt: fix clang compiler warnings

In reply to Venkat Duvvuru

From: Shahaji Bhosle <[email protected]>

Typecast flow_item type, action_item type and the ENUMs to uint32_t before comparing.

Fixes 53a0d4f7663 ("net/bnxt: support flow API item parsing")
---
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/net/bnxt/tf_ulp/ulp_rte_parser.c +4 -4
index 605c29223c..d21c088d59 100644
@@ -137,10 +137,10 @@ bnxt_ulp_rte_parser_hdr_parse(const struct rte_flow_item pattern[],
 
 	/* Parse all the items in the pattern */
 	while (item && item->type != RTE_FLOW_ITEM_TYPE_END) {
-		if (item->type >= (uint32_t)
+		if (item->type >= (typeof(item->type))
 		    BNXT_RTE_FLOW_ITEM_TYPE_END) {
 			if (item->type >=
-			    (uint32_t)BNXT_RTE_FLOW_ITEM_TYPE_LAST)
+			    (typeof(item->type))BNXT_RTE_FLOW_ITEM_TYPE_LAST)
 				goto hdr_parser_error;
 			/* get the header information */
 			hdr_info = &ulp_vendor_hdr_info[item->type -
@@ -186,9 +186,9 @@ bnxt_ulp_rte_parser_act_parse(const struct rte_flow_action actions[],
 	/* Parse all the items in the pattern */
 	while (action_item && action_item->type != RTE_FLOW_ACTION_TYPE_END) {
 		if (action_item->type >=
-		    (uint32_t)BNXT_RTE_FLOW_ACTION_TYPE_END) {
+		    (typeof(action_item->type))BNXT_RTE_FLOW_ACTION_TYPE_END) {
 			if (action_item->type >=
-			    (uint32_t)BNXT_RTE_FLOW_ACTION_TYPE_LAST)
+			    (typeof(action_item->type))BNXT_RTE_FLOW_ACTION_TYPE_LAST)
 				goto act_parser_error;
 			/* get the header information from bnxt actinfo table */
 			hdr_info = &ulp_vendor_act_info[action_item->type -
Signature · 1 line
2.17.1
#22 lore raw

PATCH v2 12/19 net/bnxt: updated the log messages

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

Some of the error level log messages are made debug level messages. When Truflow is not enabled then Truflow init error messages are moved to debug level instead.

---
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c      | 24 ++++++++++++------------
 drivers/net/bnxt/tf_ulp/ulp_def_rules.c |  2 +-
 drivers/net/bnxt/tf_ulp/ulp_flow_db.c   |  2 +-
 drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c  |  2 +-
 4 files changed, 15 insertions(+), 15 deletions(-)
drivers/net/bnxt/tf_ulp/bnxt_ulp.c +12 -12
index 7deacd1f3e..21f71d6445 100644
@@ -1396,16 +1396,16 @@ bnxt_ulp_port_init(struct bnxt *bp)
 	uint32_t ulp_flags;
 	int32_t rc = 0;
 
-	if (!BNXT_PF(bp) && !BNXT_VF_IS_TRUSTED(bp)) {
-		BNXT_TF_DBG(ERR,
-			    "Skip ulp init for port: %d, not a TVF or PF\n",
+	if (!BNXT_TRUFLOW_EN(bp)) {
+		BNXT_TF_DBG(DEBUG,
+			    "Skip ulp init for port: %d, TF is not enabled\n",
 			    bp->eth_dev->data->port_id);
 		return rc;
 	}
 
-	if (!BNXT_TRUFLOW_EN(bp)) {
-		BNXT_TF_DBG(ERR,
-			    "Skip ulp init for port: %d, truflow is not enabled\n",
+	if (!BNXT_PF(bp) && !BNXT_VF_IS_TRUSTED(bp)) {
+		BNXT_TF_DBG(DEBUG,
+			    "Skip ulp init for port: %d, not a TVF or PF\n",
 			    bp->eth_dev->data->port_id);
 		return rc;
 	}
@@ -1520,16 +1520,16 @@ bnxt_ulp_port_deinit(struct bnxt *bp)
 	struct rte_pci_device *pci_dev;
 	struct rte_pci_addr *pci_addr;
 
-	if (!BNXT_PF(bp) && !BNXT_VF_IS_TRUSTED(bp)) {
-		BNXT_TF_DBG(ERR,
-			    "Skip ULP deinit port:%d, not a TVF or PF\n",
+	if (!BNXT_TRUFLOW_EN(bp)) {
+		BNXT_TF_DBG(DEBUG,
+			    "Skip ULP deinit for port:%d, TF is not enabled\n",
 			    bp->eth_dev->data->port_id);
 		return;
 	}
 
-	if (!BNXT_TRUFLOW_EN(bp)) {
-		BNXT_TF_DBG(ERR,
-			    "Skip ULP deinit for port:%d, truflow is not enabled\n",
+	if (!BNXT_PF(bp) && !BNXT_VF_IS_TRUSTED(bp)) {
+		BNXT_TF_DBG(DEBUG,
+			    "Skip ULP deinit port:%d, not a TVF or PF\n",
 			    bp->eth_dev->data->port_id);
 		return;
 	}
drivers/net/bnxt/tf_ulp/ulp_def_rules.c +1 -1
index 01233c0f5e..8790d7ac0d 100644
@@ -323,7 +323,7 @@ ulp_default_flow_create(struct rte_eth_dev *eth_dev,
 	ulp_ctx = bnxt_ulp_eth_dev_ptr2_cntxt_get(eth_dev);
 	if (!ulp_ctx) {
 		BNXT_TF_DBG(ERR,
-			    "ULP context is not initialized. Failed to create dflt flow.\n");
+			    "ULP is not init'ed. Fail to create dflt flow.\n");
 		return -EINVAL;
 	}
 
drivers/net/bnxt/tf_ulp/ulp_flow_db.c +1 -1
index 79dc869e64..9968311c44 100644
@@ -470,7 +470,7 @@ ulp_flow_db_init(struct bnxt_ulp_context *ulp_ctxt)
 	}
 
 	/* All good so return. */
-	BNXT_TF_DBG(INFO, "FlowDB initialized with %d flows.\n",
+	BNXT_TF_DBG(DEBUG, "FlowDB initialized with %d flows.\n",
 		    flow_tbl->num_flows);
 	return 0;
 error_free:
drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c +1 -1
index 271520e1d3..9dffaef73b 100644
@@ -116,7 +116,7 @@ ulp_mark_db_init(struct bnxt_ulp_context *ctxt)
 	mark_tbl->gfid_mask	= (mark_tbl->gfid_num_entries / 2) - 1;
 	mark_tbl->gfid_type_bit = (mark_tbl->gfid_num_entries / 2);
 
-	BNXT_TF_DBG(DEBUG, "GFID Max = 0x%08x\nGFID MASK = 0x%08x\n",
+	BNXT_TF_DBG(DEBUG, "GFID Max = 0x%08x GFID MASK = 0x%08x\n",
 		    mark_tbl->gfid_num_entries - 1,
 		    mark_tbl->gfid_mask);
 
Signature · 1 line
2.17.1
#23 lore raw

PATCH v2 13/19 net/bnxt: add support for socket redirect feature

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

Added support for socket redirect feature. This feature allows to ignore the incoming interface and use other fields in the packet to identify the flow and forward.

---
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c            |    2 +
 drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c       |   23 +-
 .../generic_templates/ulp_template_db_enum.h  |   71 +-
 .../generic_templates/ulp_template_db_tbl.c   | 3917 +++++++++++++----
 .../ulp_template_db_thor_act.c                |  150 +-
 .../ulp_template_db_thor_class.c              |  660 +--
 .../ulp_template_db_wh_plus_act.c             |  242 +-
 .../ulp_template_db_wh_plus_class.c           |  222 +-
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      |    5 +
 9 files changed, 3699 insertions(+), 1593 deletions(-)
drivers/net/bnxt/tf_ulp/bnxt_ulp.c +2 -0
index 21f71d6445..14be079eaa 100644
@@ -340,6 +340,8 @@ bnxt_ulp_cntxt_app_caps_init(struct bnxt *bp,
 			if (BNXT_MULTIROOT_EN(bp))
 				ulp_ctx->cfg_data->ulp_flags |=
 					BNXT_ULP_APP_SOCKET_DIRECT;
+				BNXT_TF_DBG(DEBUG,
+					    "Socket Direct feature is enabled");
 		}
 	}
 	if (!found) {
drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c +21 -2
index 272195f6a2..55885d1b8c 100644
@@ -133,8 +133,27 @@ bnxt_ulp_init_mapper_params(struct bnxt_ulp_mapper_create_parms *mapper_cparms,
 	}
 
 	/* Update the socket direct flag */
-	if (ULP_SOCKET_DIRECT_IS_ENABLED(ulp_flags))
-		ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_SOCKET_DIRECT, 1);
+	if (ULP_BITMAP_ISSET(params->hdr_bitmap.bits,
+			     BNXT_ULP_HDR_BIT_SVIF_IGNORE)) {
+		uint32_t ifindex;
+		uint16_t vport;
+
+		/* Get the port db ifindex */
+		if (ulp_port_db_dev_port_to_ulp_index(params->ulp_ctx,
+						      params->port_id,
+						      &ifindex)) {
+			BNXT_TF_DBG(ERR, "Invalid port id %u\n",
+				    params->port_id);
+			return;
+		}
+		/* Update the phy port of the other interface */
+		if (ulp_port_db_vport_get(params->ulp_ctx, ifindex, &vport)) {
+			BNXT_TF_DBG(ERR, "Invalid port if index %u\n", ifindex);
+			return;
+		}
+		ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_SOCKET_DIRECT_VPORT,
+				    (vport == 1) ? 2 : 1);
+	}
 }
 
 /* Function to create the rte flow. */
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h +44 -27

119 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c +2990 -927

2,844 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_act.c +75 -75

150 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c +330 -330

660 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_wh_plus_act.c +121 -121

242 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_wh_plus_class.c +111 -111

222 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/ulp_rte_parser.c +5 -0
index d21c088d59..2ec3279239 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Signature · 1 line
2.17.1

Part of the diff is not shown here. View the raw message.

#24 lore raw

PATCH v2 14/19 net/bnxt: delete the VF pair before VF representor alloc

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

When the VF representor interface is created, the VF pair relationship is established between the VF and it is representor. If the pair already exists then the pair needs to be deleted before allocation. This could happen if the application is abruptly killed and restarted. If the deletion of an existing VF rep is not done then hw pipeline is not cleaned and a new allocation shall leave the hw in inconsistent state.

---
 drivers/net/bnxt/bnxt_hwrm.c | 28 ++++++++++++++++++++++++++++
 drivers/net/bnxt/bnxt_hwrm.h |  1 +
 drivers/net/bnxt/bnxt_reps.c |  6 ++++++
 3 files changed, 35 insertions(+)
drivers/net/bnxt/bnxt_hwrm.c +28 -0
index c7041143a3..f8c27fe316 100644
@@ -6025,6 +6025,34 @@ int bnxt_hwrm_first_vf_id_query(struct bnxt *bp, uint16_t fid,
 	return rc;
 }
 
+int bnxt_hwrm_cfa_pair_exists(struct bnxt *bp, struct bnxt_representor *rep_bp)
+{
+	struct hwrm_cfa_pair_info_output *resp = bp->hwrm_cmd_resp_addr;
+	struct hwrm_cfa_pair_info_input req = {0};
+	int rc = 0;
+
+	if (!(BNXT_PF(bp) || BNXT_VF_IS_TRUSTED(bp))) {
+		PMD_DRV_LOG(DEBUG,
+			    "Not a PF or trusted VF. Command not supported\n");
+		return 0;
+	}
+
+	HWRM_PREP(&req, HWRM_CFA_PAIR_INFO, BNXT_USE_CHIMP_MB);
+	snprintf(req.pair_name, sizeof(req.pair_name), "%svfr%d",
+		 bp->eth_dev->data->name, rep_bp->vf_id);
+	req.flags =
+		rte_cpu_to_le_32(HWRM_CFA_PAIR_INFO_INPUT_FLAGS_LOOKUP_TYPE);
+
+	rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB);
+	HWRM_CHECK_RESULT();
+	if (rc == HWRM_ERR_CODE_SUCCESS && strlen(resp->pair_name)) {
+		HWRM_UNLOCK();
+		return !rc;
+	}
+	HWRM_UNLOCK();
+	return rc;
+}
+
 int bnxt_hwrm_cfa_pair_alloc(struct bnxt *bp, struct bnxt_representor *rep_bp)
 {
 	struct hwrm_cfa_pair_alloc_output *resp = bp->hwrm_cmd_resp_addr;
drivers/net/bnxt/bnxt_hwrm.h +1 -0
index 6dc23b93ac..33e6ba99d5 100644
@@ -294,6 +294,7 @@ int bnxt_clear_one_vnic_filter(struct bnxt *bp,
 void bnxt_free_vf_info(struct bnxt *bp);
 int bnxt_hwrm_first_vf_id_query(struct bnxt *bp, uint16_t fid,
 				uint16_t *first_vf_id);
+int bnxt_hwrm_cfa_pair_exists(struct bnxt *bp, struct bnxt_representor *rep_bp);
 int bnxt_hwrm_cfa_pair_alloc(struct bnxt *bp, struct bnxt_representor *rep);
 int bnxt_hwrm_cfa_pair_free(struct bnxt *bp, struct bnxt_representor *rep);
 int bnxt_hwrm_cfa_adv_flow_mgmt_qcaps(struct bnxt *bp);
drivers/net/bnxt/bnxt_reps.c +6 -0
index 988f5a33a7..111d226a59 100644
@@ -315,6 +315,12 @@ static int bnxt_tf_vfr_alloc(struct rte_eth_dev *vfr_ethdev)
 		BNXT_TF_DBG(ERR, "Invalid arguments\n");
 		return 0;
 	}
+	/* update the port id so you can backtrack to ethdev */
+	vfr->dpdk_port_id = vfr_ethdev->data->port_id;
+
+	/* If pair is present, then delete the pair */
+	if (bnxt_hwrm_cfa_pair_exists(parent_bp, vfr))
+		(void)bnxt_hwrm_cfa_pair_free(parent_bp, vfr);
 
 	/* Update the ULP portdata base with the new VFR interface */
 	rc = ulp_port_db_dev_port_intf_update(parent_bp->ulp_ctx, vfr_ethdev);
Signature · 1 line
2.17.1
#25 lore raw

PATCH v2 15/19 net/bnxt: add new API TruFlow get SRAM resources

In reply to Venkat Duvvuru

From: Jay Ding <[email protected]>

Implement tf_get_sram_resources to return SRAM
partition information, including bank count and
SRAM profile number.

---
 drivers/net/bnxt/hsi_struct_def_dpdk.h   | 11 ++-
 drivers/net/bnxt/tf_core/tf_core.c       | 86 ++++++++++++++++++++++++
 drivers/net/bnxt/tf_core/tf_core.h       | 63 +++++++++++++++++
 drivers/net/bnxt/tf_core/tf_device.h     | 20 ++++++
 drivers/net/bnxt/tf_core/tf_device_p4.c  |  6 +-
 drivers/net/bnxt/tf_core/tf_device_p58.c | 53 ++++++++++++++-
 drivers/net/bnxt/tf_core/tf_msg.c        | 28 ++------
 drivers/net/bnxt/tf_core/tf_msg.h        |  6 +-
 drivers/net/bnxt/tf_core/tf_rm.c         |  3 +-
 drivers/net/bnxt/tf_core/tf_sram_mgr.h   | 10 ---
 10 files changed, 245 insertions(+), 41 deletions(-)
drivers/net/bnxt/hsi_struct_def_dpdk.h +8 -3
index 6d04e39e48..1a46f34249 100644
@@ -1058,8 +1058,8 @@ struct hwrm_err_output {
 #define HWRM_VERSION_MINOR 10
 #define HWRM_VERSION_UPDATE 2
 /* non-zero means beta version */
-#define HWRM_VERSION_RSVD 58
-#define HWRM_VERSION_STR "1.10.2.58"
+#define HWRM_VERSION_RSVD 64
+#define HWRM_VERSION_STR "1.10.2.64"
 
 /****************
  * hwrm_ver_get *
@@ -45817,8 +45817,13 @@ struct hwrm_tf_session_resc_qcaps_output {
 	 * qcaps_size.
 	 */
 	uint16_t	size;
+	/*
+	 * SRAM profile number that sets the partition of SRAM memory
+	 * between TF and AFM within the 4 internal memory banks (Thor).
+	 */
+	uint8_t	sram_profile;
 	/* unused. */
-	uint16_t	unused0;
+	uint8_t	unused0;
 	/* unused. */
 	uint8_t	unused1[7];
 	/*
drivers/net/bnxt/tf_core/tf_core.c +86 -0

89 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_core.h +63 -0

73 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device.h +20 -0
index 88bd4515ff..9360eb1358 100644
@@ -1081,6 +1081,26 @@ struct tf_dev_ops {
 				     uint32_t *tcam_caps,
 				     uint32_t *tbl_caps,
 				     uint32_t *em_caps);
+
+	/**
+	 * Device specific function that retrieve the sram resource
+	 *
+	 * [in] query
+	 *   Point to resources query result
+	 *
+	 * [out] sram_bank_caps
+	 *   Pointer to SRAM bank capabilities
+	 *
+	 * [out] dynamic_sram_capable
+	 *   Pointer to dynamic sram capable
+	 *
+	 * Returns
+	 *   - (0) if successful.
+	 *   - (-EINVAL) on failure.
+	 */
+	int (*tf_dev_get_sram_resources)(void *query,
+					 uint32_t *sram_bank_caps,
+					 bool *dynamic_sram_capable);
 };
 
 /**
drivers/net/bnxt/tf_core/tf_device_p4.c +4 -2
index 8089785b82..cf0e919f9f 100644
@@ -382,7 +382,8 @@ const struct tf_dev_ops tf_dev_ops_p4_init = {
 	.tf_dev_get_global_cfg = NULL,
 	.tf_dev_get_mailbox = tf_dev_p4_get_mailbox,
 	.tf_dev_word_align = NULL,
-	.tf_dev_map_hcapi_caps = tf_dev_p4_map_hcapi_caps
+	.tf_dev_map_hcapi_caps = tf_dev_p4_map_hcapi_caps,
+	.tf_dev_get_sram_resources = NULL
 };
 
 /**
@@ -445,5 +446,6 @@ const struct tf_dev_ops tf_dev_ops_p4 = {
 	.tf_dev_get_mailbox = tf_dev_p4_get_mailbox,
 	.tf_dev_word_align = tf_dev_p4_word_align,
 	.tf_dev_cfa_key_hash = hcapi_cfa_p4_key_hash,
-	.tf_dev_map_hcapi_caps = tf_dev_p4_map_hcapi_caps
+	.tf_dev_map_hcapi_caps = tf_dev_p4_map_hcapi_caps,
+	.tf_dev_get_sram_resources = NULL
 };
drivers/net/bnxt/tf_core/tf_device_p58.c +51 -2

69 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_msg.c +6 -22
index 25bf026658..fbc96d374c 100644
@@ -380,39 +380,20 @@ tf_msg_session_resc_qcaps(struct tf *tfp,
 			  enum tf_dir dir,
 			  uint16_t size,
 			  struct tf_rm_resc_req_entry *query,
-			  enum tf_rm_resc_resv_strategy *resv_strategy)
+			  enum tf_rm_resc_resv_strategy *resv_strategy,
+			  uint8_t *sram_profile)
 {
 	int rc;
 	int i;
 	struct tfp_send_msg_parms parms = { 0 };
 	struct hwrm_tf_session_resc_qcaps_input req = { 0 };
 	struct hwrm_tf_session_resc_qcaps_output resp = { 0 };
-	uint8_t fw_session_id;
 	struct tf_msg_dma_buf qcaps_buf = { 0 };
 	struct tf_rm_resc_req_entry *data;
 	int dma_size;
-	struct tf_session *tfs;
-
-	/* Retrieve the session information */
-	rc = tf_session_get_session_internal(tfp, &tfs);
-	if (rc) {
-		TFP_DRV_LOG(ERR,
-			    "Failed to lookup session, rc:%s\n",
-			    strerror(-rc));
-		return rc;
-	}
 
 	TF_CHECK_PARMS3(tfp, query, resv_strategy);
 
-	rc = tf_session_get_fw_session_id(tfp, &fw_session_id);
-	if (rc) {
-		TFP_DRV_LOG(ERR,
-			    "%s: Unable to lookup FW id, rc:%s\n",
-			    tf_dir_2_str(dir),
-			    strerror(-rc));
-		return rc;
-	}
-
 	/* Prepare DMA buffer */
 	dma_size = size * sizeof(struct tf_rm_resc_req_entry);
 	rc = tf_msg_alloc_dma_buf(&qcaps_buf, dma_size);
@@ -420,7 +401,7 @@ tf_msg_session_resc_qcaps(struct tf *tfp,
 		return rc;
 
 	/* Populate the request */
-	req.fw_session_id = tfp_cpu_to_le_32(fw_session_id);
+	req.fw_session_id = 0;
 	req.flags = tfp_cpu_to_le_16(dir);
 	req.qcaps_size = size;
 	req.qcaps_addr = tfp_cpu_to_le_64(qcaps_buf.pa_addr);
@@ -460,6 +441,9 @@ tf_msg_session_resc_qcaps(struct tf *tfp,
 	*resv_strategy = resp.flags &
 	      HWRM_TF_SESSION_RESC_QCAPS_OUTPUT_FLAGS_SESS_RESV_STRATEGY_MASK;
 
+	if (sram_profile != NULL)
+		*sram_profile = resp.sram_profile;
+
 cleanup:
 	tf_msg_free_dma_buf(&qcaps_buf);
 
drivers/net/bnxt/tf_core/tf_msg.h +5 -1
index 08d20cdd7a..188b361d71 100644
@@ -158,6 +158,9 @@ int tf_msg_session_qcfg(struct tf *tfp);
  * [out] resv_strategy
  *   Pointer to the reservation strategy
  *
+ * [out] sram_profile
+ *   Pointer to the sram profile
+ *
  * Returns:
  *   0 on Success else internal Truflow error
  */
@@ -166,7 +169,8 @@ int tf_msg_session_resc_qcaps(struct tf *tfp,
 			      enum tf_dir dir,
 			      uint16_t size,
 			      struct tf_rm_resc_req_entry *query,
-			      enum tf_rm_resc_resv_strategy *resv_strategy);
+			      enum tf_rm_resc_resv_strategy *resv_strategy,
+			      uint8_t *sram_profile);
 
 /**
  * Sends session HW resource allocation request to TF Firmware
drivers/net/bnxt/tf_core/tf_rm.c +2 -1
index dd537aaece..d2045921b9 100644
@@ -551,7 +551,8 @@ tf_rm_create_db(struct tf *tfp,
 				       parms->dir,
 				       max_types,
 				       query,
-				       &resv_strategy);
+				       &resv_strategy,
+				       NULL);
 	if (rc)
 		return rc;
 
drivers/net/bnxt/tf_core/tf_sram_mgr.h +0 -10
index 4abe3fb468..eb2156456a 100644
@@ -28,16 +28,6 @@
 
 #define TF_SRAM_MGR_BLOCK_SZ_BYTES 64
 #define TF_SRAM_MGR_MIN_SLICE_BYTES 8
-/**
- * Bank identifier
- */
-enum tf_sram_bank_id {
-	TF_SRAM_BANK_ID_0,		/**< SRAM Bank 0 id */
-	TF_SRAM_BANK_ID_1,		/**< SRAM Bank 1 id */
-	TF_SRAM_BANK_ID_2,		/**< SRAM Bank 2 id */
-	TF_SRAM_BANK_ID_3,		/**< SRAM Bank 3 id */
-	TF_SRAM_BANK_ID_MAX		/**< SRAM Bank index limit */
-};
 
 /**
  * TF slice size.
Signature · 1 line
2.17.1
#26 lore raw

PATCH v2 16/19 net/bnxt: add TruFlow and AFM SRAM partitioning support

In reply to Venkat Duvvuru

From: Jay Ding <[email protected]>

Implement set/get_sram_policy which support both rx/tx direction truflow type the specific SRAM bank.

---
 drivers/net/bnxt/tf_core/tf_core.c       |  82 ++++++
 drivers/net/bnxt/tf_core/tf_core.h       |  66 ++++-
 drivers/net/bnxt/tf_core/tf_device.c     |   7 +-
 drivers/net/bnxt/tf_core/tf_device.h     |  34 ++-
 drivers/net/bnxt/tf_core/tf_device_p4.c  |   8 +-
 drivers/net/bnxt/tf_core/tf_device_p58.c | 311 ++++++++++++++++++++++-
 drivers/net/bnxt/tf_core/tf_device_p58.h | 118 +--------
 drivers/net/bnxt/tf_core/tf_tbl.c        |   2 +-
 8 files changed, 503 insertions(+), 125 deletions(-)
drivers/net/bnxt/tf_core/tf_core.c +82 -0
index 346d220c87..90ff93946b 100644
@@ -1917,3 +1917,85 @@ int tf_query_sram_resources(struct tf *tfp,
 
 	return 0;
 }
+
+int tf_set_sram_policy(struct tf *tfp,
+		       struct tf_set_sram_policy_parms *parms)
+{
+	int rc = 0;
+	struct tf_dev_info dev;
+
+	TF_CHECK_PARMS2(tfp, parms);
+
+	/* This function can be called before open session, filter
+	 * out any non-supported device types on the Core side.
+	 */
+	if (parms->device_type != TF_DEVICE_TYPE_THOR) {
+		TFP_DRV_LOG(ERR,
+			    "Unsupported device type %d\n",
+			    parms->device_type);
+		return -ENOTSUP;
+	}
+
+	tf_dev_bind_ops(parms->device_type, &dev);
+
+	if (dev.ops->tf_dev_set_sram_policy == NULL) {
+		rc = -EOPNOTSUPP;
+		TFP_DRV_LOG(ERR,
+			    "%s: Operation not supported, rc:%s\n",
+			    tf_dir_2_str(parms->dir),
+			    strerror(-rc));
+		return rc;
+	}
+
+	rc = dev.ops->tf_dev_set_sram_policy(parms->dir, parms->bank_id);
+	if (rc) {
+		TFP_DRV_LOG(ERR,
+			    "%s: SRAM policy set failed, rc:%s\n",
+			    tf_dir_2_str(parms->dir),
+			    strerror(-rc));
+		return rc;
+	}
+
+	return rc;
+}
+
+int tf_get_sram_policy(struct tf *tfp,
+		       struct tf_get_sram_policy_parms *parms)
+{
+	int rc = 0;
+	struct tf_dev_info dev;
+
+	TF_CHECK_PARMS2(tfp, parms);
+
+	/* This function can be called before open session, filter
+	 * out any non-supported device types on the Core side.
+	 */
+	if (parms->device_type != TF_DEVICE_TYPE_THOR) {
+		TFP_DRV_LOG(ERR,
+			    "Unsupported device type %d\n",
+			    parms->device_type);
+		return -ENOTSUP;
+	}
+
+	tf_dev_bind_ops(parms->device_type, &dev);
+
+	if (dev.ops->tf_dev_get_sram_policy == NULL) {
+		rc = -EOPNOTSUPP;
+		TFP_DRV_LOG(ERR,
+			    "%s: Operation not supported, rc:%s\n",
+			    tf_dir_2_str(parms->dir),
+			    strerror(-rc));
+		return rc;
+	}
+
+	rc = dev.ops->tf_dev_get_sram_policy(parms->dir, parms->bank_id);
+	if (rc) {
+		TFP_DRV_LOG(ERR,
+			    "%s: SRAM policy get failed, rc:%s\n",
+			    tf_dir_2_str(parms->dir),
+			    strerror(-rc));
+		return rc;
+	}
+
+	return rc;
+}
drivers/net/bnxt/tf_core/tf_core.h +65 -1

76 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device.c +5 -2
index 25a7166bbb..40db546604 100644
@@ -415,11 +415,14 @@ tf_dev_bind_p58(struct tf *tfp,
 	}
 
 	rsv_cnt = tf_dev_reservation_check(TF_TBL_TYPE_MAX,
-					   tf_tbl_p58,
+					   tf_tbl_p58[TF_DIR_RX],
+					   (uint16_t *)resources->tbl_cnt);
+	rsv_cnt += tf_dev_reservation_check(TF_TBL_TYPE_MAX,
+					   tf_tbl_p58[TF_DIR_TX],
 					   (uint16_t *)resources->tbl_cnt);
 	if (rsv_cnt) {
 		tbl_cfg.num_elements = TF_TBL_TYPE_MAX;
-		tbl_cfg.cfg = tf_tbl_p58;
+		tbl_cfg.cfg = tf_tbl_p58[TF_DIR_RX];
 		tbl_cfg.resources = resources;
 		rc = tf_tbl_bind(tfp, &tbl_cfg);
 		if (rc) {
drivers/net/bnxt/tf_core/tf_device.h +33 -1
index 9360eb1358..3d5de988c4 100644
@@ -1083,7 +1083,7 @@ struct tf_dev_ops {
 				     uint32_t *em_caps);
 
 	/**
-	 * Device specific function that retrieve the sram resource
+	 * Device specific function that retrieves the sram resource
 	 *
 	 * [in] query
 	 *   Point to resources query result
@@ -1101,6 +1101,38 @@ struct tf_dev_ops {
 	int (*tf_dev_get_sram_resources)(void *query,
 					 uint32_t *sram_bank_caps,
 					 bool *dynamic_sram_capable);
+
+	/**
+	 * Device specific function that sets the sram policy
+	 *
+	 * [in] dir
+	 *   Receive or transmit direction
+	 *
+	 * [in] band_id
+	 *   SRAM bank id
+	 *
+	 * Returns
+	 *   - (0) if successful.
+	 *   - (-EINVAL) on failure.
+	 */
+	int (*tf_dev_set_sram_policy)(enum tf_dir dir,
+				      uint8_t *bank_id);
+
+	/**
+	 * Device specific function that gets the sram policy
+	 *
+	 * [in] dir
+	 *   Receive or transmit direction
+	 *
+	 * [in] band_id
+	 *   pointer to SRAM bank id
+	 *
+	 * Returns
+	 *   - (0) if successful.
+	 *   - (-EINVAL) on failure.
+	 */
+	int (*tf_dev_get_sram_policy)(enum tf_dir dir,
+				      uint8_t *bank_id);
 };
 
 /**
drivers/net/bnxt/tf_core/tf_device_p4.c +6 -2
index cf0e919f9f..244bd08914 100644
@@ -383,7 +383,9 @@ const struct tf_dev_ops tf_dev_ops_p4_init = {
 	.tf_dev_get_mailbox = tf_dev_p4_get_mailbox,
 	.tf_dev_word_align = NULL,
 	.tf_dev_map_hcapi_caps = tf_dev_p4_map_hcapi_caps,
-	.tf_dev_get_sram_resources = NULL
+	.tf_dev_get_sram_resources = NULL,
+	.tf_dev_set_sram_policy = NULL,
+	.tf_dev_get_sram_policy = NULL,
 };
 
 /**
@@ -447,5 +449,7 @@ const struct tf_dev_ops tf_dev_ops_p4 = {
 	.tf_dev_word_align = tf_dev_p4_word_align,
 	.tf_dev_cfa_key_hash = hcapi_cfa_p4_key_hash,
 	.tf_dev_map_hcapi_caps = tf_dev_p4_map_hcapi_caps,
-	.tf_dev_get_sram_resources = NULL
+	.tf_dev_get_sram_resources = NULL,
+	.tf_dev_set_sram_policy = NULL,
+	.tf_dev_get_sram_policy = NULL,
 };
drivers/net/bnxt/tf_core/tf_device_p58.c +309 -2

333 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device_p58.h +2 -116

130 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_tbl.c +1 -1
index 12eca36491..3fb22b52ac 100644
@@ -58,10 +58,10 @@ tf_tbl_bind(struct tf *tfp,
 	db_cfg.num_elements = parms->num_elements;
 	db_cfg.module = TF_MODULE_TYPE_TABLE;
 	db_cfg.num_elements = parms->num_elements;
-	db_cfg.cfg = parms->cfg;
 
 	for (d = 0; d < TF_DIR_MAX; d++) {
 		db_cfg.dir = d;
+		db_cfg.cfg = &parms->cfg[d ? TF_TBL_TYPE_MAX : 0];
 		db_cfg.alloc_cnt = parms->resources->tbl_cnt[d].cnt;
 		db_cfg.rm_db = (void *)&tbl_db->tbl_db[d];
 		if (tf_session_is_shared_session(tfs) &&
Signature · 1 line
2.17.1
#27 lore raw

PATCH v2 17/19 net/bnxt: add Tx TruFlow table config for p4

In reply to Venkat Duvvuru

From: Jay Ding <[email protected]>

Add TX direction TruFlow table type config to be
compatible with other devices. For P4, the TX cfg
is duplicated from RX.

---
 drivers/net/bnxt/tf_core/tf_device.c    |   4 +-
 drivers/net/bnxt/tf_core/tf_device_p4.c | 107 ++++++++++++++++++++++++
 drivers/net/bnxt/tf_core/tf_device_p4.h |  58 +------------
 3 files changed, 111 insertions(+), 58 deletions(-)
drivers/net/bnxt/tf_core/tf_device.c +2 -2
index 40db546604..4c416270b6 100644
@@ -131,11 +131,11 @@ tf_dev_bind_p4(struct tf *tfp,
 	}
 
 	rsv_cnt = tf_dev_reservation_check(TF_TBL_TYPE_MAX,
-					   tf_tbl_p4,
+					   tf_tbl_p4[TF_DIR_RX],
 					   (uint16_t *)resources->tbl_cnt);
 	if (rsv_cnt) {
 		tbl_cfg.num_elements = TF_TBL_TYPE_MAX;
-		tbl_cfg.cfg = tf_tbl_p4;
+		tbl_cfg.cfg = tf_tbl_p4[TF_DIR_RX];
 		tbl_cfg.resources = resources;
 		rc = tf_tbl_bind(tfp, &tbl_cfg);
 		if (rc) {
drivers/net/bnxt/tf_core/tf_device_p4.c +107 -0

113 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device_p4.h +2 -56

70 lines not on this page · raw message

Signature · 1 line
2.17.1
#28 lore raw

PATCH v2 18/19 net/bnxt: remove 2-slice WC entries for scale

In reply to Venkat Duvvuru

From: Mike Baucom <[email protected]>

The type-5 WC IPv6 flows were removed in order to increase the scale for app-id=3. The app no longer supports 2-slice WC entries.

---
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/net/bnxt/tf_ulp/bnxt_ulp.c +2 -2
index 14be079eaa..d40d726c58 100644
@@ -461,7 +461,7 @@ ulp_ctx_shared_session_open(struct bnxt *bp,
 
 	parms.shadow_copy = true;
 	parms.bp = bp;
-	if (app_id == 0 || app_id == 3)
+	if (app_id == 0)
 		parms.wc_num_slices = TF_WC_TCAM_2_SLICE_PER_ROW;
 	else
 		parms.wc_num_slices = TF_WC_TCAM_1_SLICE_PER_ROW;
@@ -583,7 +583,7 @@ ulp_ctx_session_open(struct bnxt *bp,
 		return rc;
 
 	params.bp = bp;
-	if (app_id == 0 || app_id == 3)
+	if (app_id == 0)
 		params.wc_num_slices = TF_WC_TCAM_2_SLICE_PER_ROW;
 	else
 		params.wc_num_slices = TF_WC_TCAM_1_SLICE_PER_ROW;
Signature · 1 line
2.17.1
#29 lore raw

PATCH v2 19/19 net/bnxt: check for mismatch of control and physical port

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

During the parsing of the ingress port ignore for a flow, added check to match the control port and the physical port that is configured to be ignored. If they do not match then the configuration to setup the svif ignore shall fail.

---
 drivers/net/bnxt/tf_ulp/ulp_port_db.c    | 23 +++++++++++++++++++++++
 drivers/net/bnxt/tf_ulp/ulp_port_db.h    | 13 +++++++++++++
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c | 12 ++++++++++++
 3 files changed, 48 insertions(+)
drivers/net/bnxt/tf_ulp/ulp_port_db.c +23 -0
index 5e7c1d1c17..f8ffb567b5 100644
@@ -679,3 +679,26 @@ ulp_port_db_parent_vnic_get(struct bnxt_ulp_context *ulp_ctxt,
 	}
 	return -EINVAL;
 }
+
+/*
+ * Api to get the phy port for a given port id.
+ *
+ * ulp_ctxt [in] Ptr to ulp context
+ * port_id [in] device port id
+ * phy_port [out] phy_port of the dpdk port_id
+ *
+ * Returns 0 on success or negative number on failure.
+ */
+int32_t
+ulp_port_db_phy_port_get(struct bnxt_ulp_context *ulp_ctxt,
+			 uint32_t port_id, uint16_t *phy_port)
+{
+	struct ulp_func_if_info *info;
+
+	info = ulp_port_db_func_if_info_get(ulp_ctxt, port_id);
+	if (info) {
+		*phy_port = info->phy_port_id;
+		return 0;
+	}
+	return -EINVAL;
+}
drivers/net/bnxt/tf_ulp/ulp_port_db.h +13 -0
index 740c186e12..b112f1a216 100644
@@ -314,4 +314,17 @@ int32_t
 ulp_port_db_parent_vnic_get(struct bnxt_ulp_context *ulp_ctxt,
 			    uint32_t port_id, uint8_t **vnic);
 
+/*
+ * Api to get the phy port for a given port id.
+ *
+ * ulp_ctxt [in] Ptr to ulp context
+ * port_id [in] device port id
+ * phy_port [out] phy_port of the dpdk port_id
+ *
+ * Returns 0 on success or negative number on failure.
+ */
+int32_t
+ulp_port_db_phy_port_get(struct bnxt_ulp_context *ulp_ctxt,
+			 uint32_t port_id, uint16_t *phy_port);
+
 #endif /* _ULP_PORT_DB_H_ */
drivers/net/bnxt/tf_ulp/ulp_rte_parser.c +12 -0
index 2ec3279239..f4274dd634 100644
@@ -686,6 +686,18 @@ ulp_rte_phy_port_hdr_handler(const struct rte_flow_item *item,
 	ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_SVIF_FLAG,
 			    rte_be_to_cpu_16(svif));
 	if (!mask) {
+		uint32_t port_id = 0;
+		uint16_t phy_port = 0;
+
+		/* Validate the control port */
+		port_id = ULP_COMP_FLD_IDX_RD(params,
+					      BNXT_ULP_CF_IDX_DEV_PORT_ID);
+		if (ulp_port_db_phy_port_get(params->ulp_ctx,
+					     port_id, &phy_port) ||
+		    (uint16_t)port_spec->index != phy_port) {
+			BNXT_TF_DBG(ERR, "Mismatch of control and phy_port\n");
+			return BNXT_TF_RC_PARSE_ERR;
+		}
 		ULP_BITMAP_SET(params->hdr_bitmap.bits,
 			       BNXT_ULP_HDR_BIT_SVIF_IGNORE);
 		memset(hdr_field->mask, 0xFF, sizeof(mask));
Signature · 1 line
2.17.1
#30 lore raw

v3 cover fixes and enhancements to Truflow

In reply to Venkat Duvvuru

Enhancements include:
* Scaling numbers on Thor
* Inner IP header support for GRE tunnel flows
* Enable wildcard match for ingress flows
* Add clear on read for flow stats on Thor
* Add nat support for dest IP and port combination
* Remove 2-slice WC support
* Add support for socket redirect feature
* Add new API TruFlow get SRAM resources
* Remove accumulation of stats devargs argument
* Add TruFlow and AFM SRAM partitioning support

V2:
* Compilation fixes
* Remove 2-slice WC support
* Add support for socket redirect feature
* Add new API TruFlow get SRAM resources
* Remove accumulation of stats devargs argument
* Add TruFlow and AFM SRAM partitioning support

V3:
* Added one more patch (use enum for bank ID)

Farah Smith (1):
net/bnxt: add clear on read support

Jay Ding (5):
net/bnxt: get TruFlow version
net/bnxt: add new API TruFlow get SRAM resources net/bnxt: add TruFlow and AFM SRAM partitioning support net/bnxt: add Tx TruFlow table config for p4 device net/bnxt: use enum for bank ID

Kishore Padmanabha (11):
net/bnxt: add NAT support for dest IP and port combination net/bnxt: add support for multi root capability net/bnxt: fix the out of boundary issue in hash list net/bnxt: add capability option for socket redirect net/bnxt: enable wildcard match for ingress flows net/bnxt: support inner IP header for GRE tunnel flows net/bnxt: remove accumulation of stats devargs argument net/bnxt: updated the log messages
net/bnxt: add support for socket direct feature net/bnxt: delete the VF pair before VF representor alloc net/bnxt: check for mismatch of control and physical port

Mike Baucom (1):
net/bnxt: remove 2-slice WC entries for scale

Shahaji Bhosle (2):
net/bnxt: increase flow scale for Thor
net/bnxt: fix clang compiler warnings

 drivers/net/bnxt/bnxt.h                       |   25 +-
 drivers/net/bnxt/bnxt_cpr.c                   |    2 +-
 drivers/net/bnxt/bnxt_ethdev.c                |  274 +-
 drivers/net/bnxt/bnxt_hwrm.c                  |   36 +
 drivers/net/bnxt/bnxt_hwrm.h                  |    1 +
 drivers/net/bnxt/bnxt_reps.c                  |    9 +-
 drivers/net/bnxt/hsi_struct_def_dpdk.h        | 2970 +++++++++++--
 drivers/net/bnxt/tf_core/tf_core.c            |  197 +
 drivers/net/bnxt/tf_core/tf_core.h            |  202 +
 drivers/net/bnxt/tf_core/tf_device.c          |   11 +-
 drivers/net/bnxt/tf_core/tf_device.h          |  102 +
 drivers/net/bnxt/tf_core/tf_device_p4.c       |  178 +-
 drivers/net/bnxt/tf_core/tf_device_p4.h       |  137 +-
 drivers/net/bnxt/tf_core/tf_device_p58.c      |  421 +-
 drivers/net/bnxt/tf_core/tf_device_p58.h      |  205 +-
 drivers/net/bnxt/tf_core/tf_msg.c             |   87 +-
 drivers/net/bnxt/tf_core/tf_msg.h             |   31 +-
 drivers/net/bnxt/tf_core/tf_rm.c              |    3 +-
 drivers/net/bnxt/tf_core/tf_sram_mgr.h        |   10 -
 drivers/net/bnxt/tf_core/tf_tbl.c             |   83 +-
 drivers/net/bnxt/tf_core/tf_tbl_sram.c        |   13 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c            |   58 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.h            |    9 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c       |   29 +-
 .../generic_templates/ulp_template_db_act.c   |  376 +-
 .../generic_templates/ulp_template_db_class.c | 1986 ++++-----
 .../generic_templates/ulp_template_db_enum.h  |   91 +-
 .../generic_templates/ulp_template_db_tbl.c   | 3946 +++++++++++++----
 .../ulp_template_db_thor_act.c                |  150 +-
 .../ulp_template_db_thor_class.c              |  909 ++--
 .../ulp_template_db_wh_plus_act.c             |  336 +-
 .../ulp_template_db_wh_plus_class.c           |  222 +-
 drivers/net/bnxt/tf_ulp/ulp_def_rules.c       |    8 +-
 drivers/net/bnxt/tf_ulp/ulp_fc_mgr.c          |   12 +-
 drivers/net/bnxt/tf_ulp/ulp_flow_db.c         |    2 +-
 drivers/net/bnxt/tf_ulp/ulp_gen_hash.c        |   20 +-
 drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c        |    2 +-
 drivers/net/bnxt/tf_ulp/ulp_port_db.c         |   23 +
 drivers/net/bnxt/tf_ulp/ulp_port_db.h         |   13 +
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      |   32 +-
 drivers/net/bnxt/tf_ulp/ulp_template_struct.h |    2 +-
 41 files changed, 9292 insertions(+), 3931 deletions(-)
Signature · 1 line
2.17.1
#31 lore raw

PATCH v3 1/20 net/bnxt: add NAT support for dest IP and port combination

From: Kishore Padmanabha <[email protected]>

* Added support for NAT action for the destination IP and port combination for the Thor platform. This is not supported for Whitney platform.
* Consolidated the encapsulation and NAT entries for scaling flows with NAT actions.

---
 .../generic_templates/ulp_template_db_act.c   | 376 +++++++++++-------
 .../generic_templates/ulp_template_db_enum.h  |  18 +-
 .../generic_templates/ulp_template_db_tbl.c   |  14 +-
 .../ulp_template_db_thor_class.c              |   2 +-
 .../ulp_template_db_wh_plus_act.c             |  96 +++--
 5 files changed, 317 insertions(+), 189 deletions(-)
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_act.c +236 -140
index 0da6070d7d..ce878d8e02 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Mon May 17 15:30:41 2021 */
+/* date: Wed Aug 25 14:37:06 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -47,59 +47,67 @@ uint16_t ulp_act_sig_tbl[BNXT_ULP_ACT_SIG_TBL_MAX_SZ] = {
 	[BNXT_ULP_ACT_HID_04bc] = 30,
 	[BNXT_ULP_ACT_HID_00a9] = 31,
 	[BNXT_ULP_ACT_HID_020f] = 32,
-	[BNXT_ULP_ACT_HID_04a9] = 33,
-	[BNXT_ULP_ACT_HID_01fc] = 34,
-	[BNXT_ULP_ACT_HID_04be] = 35,
-	[BNXT_ULP_ACT_HID_00ab] = 36,
-	[BNXT_ULP_ACT_HID_0211] = 37,
-	[BNXT_ULP_ACT_HID_04ab] = 38,
-	[BNXT_ULP_ACT_HID_01fe] = 39,
-	[BNXT_ULP_ACT_HID_0667] = 40,
-	[BNXT_ULP_ACT_HID_0254] = 41,
-	[BNXT_ULP_ACT_HID_03ba] = 42,
-	[BNXT_ULP_ACT_HID_0654] = 43,
-	[BNXT_ULP_ACT_HID_03a7] = 44,
-	[BNXT_ULP_ACT_HID_0669] = 45,
-	[BNXT_ULP_ACT_HID_0256] = 46,
-	[BNXT_ULP_ACT_HID_03bc] = 47,
-	[BNXT_ULP_ACT_HID_0656] = 48,
-	[BNXT_ULP_ACT_HID_03a9] = 49,
-	[BNXT_ULP_ACT_HID_021b] = 50,
-	[BNXT_ULP_ACT_HID_021c] = 51,
-	[BNXT_ULP_ACT_HID_021e] = 52,
-	[BNXT_ULP_ACT_HID_063f] = 53,
-	[BNXT_ULP_ACT_HID_0510] = 54,
-	[BNXT_ULP_ACT_HID_03c6] = 55,
-	[BNXT_ULP_ACT_HID_0082] = 56,
-	[BNXT_ULP_ACT_HID_06bb] = 57,
-	[BNXT_ULP_ACT_HID_021d] = 58,
-	[BNXT_ULP_ACT_HID_0641] = 59,
-	[BNXT_ULP_ACT_HID_0512] = 60,
-	[BNXT_ULP_ACT_HID_03c8] = 61,
-	[BNXT_ULP_ACT_HID_0084] = 62,
-	[BNXT_ULP_ACT_HID_06bd] = 63,
-	[BNXT_ULP_ACT_HID_06d7] = 64,
-	[BNXT_ULP_ACT_HID_02c4] = 65,
-	[BNXT_ULP_ACT_HID_042a] = 66,
-	[BNXT_ULP_ACT_HID_06c4] = 67,
-	[BNXT_ULP_ACT_HID_0417] = 68,
-	[BNXT_ULP_ACT_HID_06d9] = 69,
-	[BNXT_ULP_ACT_HID_02c6] = 70,
-	[BNXT_ULP_ACT_HID_042c] = 71,
-	[BNXT_ULP_ACT_HID_06c6] = 72,
-	[BNXT_ULP_ACT_HID_0419] = 73,
-	[BNXT_ULP_ACT_HID_0119] = 74,
-	[BNXT_ULP_ACT_HID_046f] = 75,
-	[BNXT_ULP_ACT_HID_05d5] = 76,
-	[BNXT_ULP_ACT_HID_0106] = 77,
-	[BNXT_ULP_ACT_HID_05c2] = 78,
-	[BNXT_ULP_ACT_HID_011b] = 79,
-	[BNXT_ULP_ACT_HID_0471] = 80,
-	[BNXT_ULP_ACT_HID_05d7] = 81,
-	[BNXT_ULP_ACT_HID_0108] = 82,
-	[BNXT_ULP_ACT_HID_05c4] = 83,
-	[BNXT_ULP_ACT_HID_00a2] = 84,
-	[BNXT_ULP_ACT_HID_00a4] = 85
+	[BNXT_ULP_ACT_HID_0153] = 33,
+	[BNXT_ULP_ACT_HID_04a9] = 34,
+	[BNXT_ULP_ACT_HID_01fc] = 35,
+	[BNXT_ULP_ACT_HID_04be] = 36,
+	[BNXT_ULP_ACT_HID_00ab] = 37,
+	[BNXT_ULP_ACT_HID_0211] = 38,
+	[BNXT_ULP_ACT_HID_0155] = 39,
+	[BNXT_ULP_ACT_HID_04ab] = 40,
+	[BNXT_ULP_ACT_HID_01fe] = 41,
+	[BNXT_ULP_ACT_HID_0667] = 42,
+	[BNXT_ULP_ACT_HID_0254] = 43,
+	[BNXT_ULP_ACT_HID_03ba] = 44,
+	[BNXT_ULP_ACT_HID_02fe] = 45,
+	[BNXT_ULP_ACT_HID_0654] = 46,
+	[BNXT_ULP_ACT_HID_03a7] = 47,
+	[BNXT_ULP_ACT_HID_0669] = 48,
+	[BNXT_ULP_ACT_HID_0256] = 49,
+	[BNXT_ULP_ACT_HID_03bc] = 50,
+	[BNXT_ULP_ACT_HID_0300] = 51,
+	[BNXT_ULP_ACT_HID_0656] = 52,
+	[BNXT_ULP_ACT_HID_03a9] = 53,
+	[BNXT_ULP_ACT_HID_021b] = 54,
+	[BNXT_ULP_ACT_HID_021c] = 55,
+	[BNXT_ULP_ACT_HID_021e] = 56,
+	[BNXT_ULP_ACT_HID_063f] = 57,
+	[BNXT_ULP_ACT_HID_0510] = 58,
+	[BNXT_ULP_ACT_HID_03c6] = 59,
+	[BNXT_ULP_ACT_HID_0082] = 60,
+	[BNXT_ULP_ACT_HID_06bb] = 61,
+	[BNXT_ULP_ACT_HID_021d] = 62,
+	[BNXT_ULP_ACT_HID_0641] = 63,
+	[BNXT_ULP_ACT_HID_0512] = 64,
+	[BNXT_ULP_ACT_HID_03c8] = 65,
+	[BNXT_ULP_ACT_HID_0084] = 66,
+	[BNXT_ULP_ACT_HID_06bd] = 67,
+	[BNXT_ULP_ACT_HID_06d7] = 68,
+	[BNXT_ULP_ACT_HID_02c4] = 69,
+	[BNXT_ULP_ACT_HID_042a] = 70,
+	[BNXT_ULP_ACT_HID_036e] = 71,
+	[BNXT_ULP_ACT_HID_06c4] = 72,
+	[BNXT_ULP_ACT_HID_0417] = 73,
+	[BNXT_ULP_ACT_HID_06d9] = 74,
+	[BNXT_ULP_ACT_HID_02c6] = 75,
+	[BNXT_ULP_ACT_HID_042c] = 76,
+	[BNXT_ULP_ACT_HID_0370] = 77,
+	[BNXT_ULP_ACT_HID_06c6] = 78,
+	[BNXT_ULP_ACT_HID_0419] = 79,
+	[BNXT_ULP_ACT_HID_0119] = 80,
+	[BNXT_ULP_ACT_HID_046f] = 81,
+	[BNXT_ULP_ACT_HID_05d5] = 82,
+	[BNXT_ULP_ACT_HID_0519] = 83,
+	[BNXT_ULP_ACT_HID_0106] = 84,
+	[BNXT_ULP_ACT_HID_05c2] = 85,
+	[BNXT_ULP_ACT_HID_011b] = 86,
+	[BNXT_ULP_ACT_HID_0471] = 87,
+	[BNXT_ULP_ACT_HID_05d7] = 88,
+	[BNXT_ULP_ACT_HID_051b] = 89,
+	[BNXT_ULP_ACT_HID_0108] = 90,
+	[BNXT_ULP_ACT_HID_05c4] = 91,
+	[BNXT_ULP_ACT_HID_00a2] = 92,
+	[BNXT_ULP_ACT_HID_00a4] = 93
 };
 
 /* Array for the act matcher list */
@@ -429,22 +437,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 	.act_tid = 3
 	},
 	[33] = {
-	.act_hid = BNXT_ULP_ACT_HID_04a9,
+	.act_hid = BNXT_ULP_ACT_HID_0153,
 	.act_pattern_id = 3,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
-		BNXT_ULP_ACT_BIT_SET_TP_SRC |
 		BNXT_ULP_ACT_BIT_SET_TP_DST |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
 	[34] = {
-	.act_hid = BNXT_ULP_ACT_HID_01fc,
+	.act_hid = BNXT_ULP_ACT_HID_04a9,
 	.act_pattern_id = 4,
 	.app_sig = 0,
 	.act_sig = { .bits =
-		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
 		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
 		BNXT_ULP_ACT_BIT_SET_TP_SRC |
 		BNXT_ULP_ACT_BIT_SET_TP_DST |
@@ -452,40 +458,63 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 	.act_tid = 3
 	},
 	[35] = {
-	.act_hid = BNXT_ULP_ACT_HID_04be,
+	.act_hid = BNXT_ULP_ACT_HID_01fc,
 	.act_pattern_id = 5,
 	.app_sig = 0,
 	.act_sig = { .bits =
-		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_SRC |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
 	[36] = {
-	.act_hid = BNXT_ULP_ACT_HID_00ab,
+	.act_hid = BNXT_ULP_ACT_HID_04be,
 	.act_pattern_id = 6,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
-		BNXT_ULP_ACT_BIT_SET_TP_SRC |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
 	[37] = {
-	.act_hid = BNXT_ULP_ACT_HID_0211,
+	.act_hid = BNXT_ULP_ACT_HID_00ab,
 	.act_pattern_id = 7,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
-		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
+		BNXT_ULP_ACT_BIT_SET_TP_SRC |
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
 	[38] = {
-	.act_hid = BNXT_ULP_ACT_HID_04ab,
+	.act_hid = BNXT_ULP_ACT_HID_0211,
 	.act_pattern_id = 8,
 	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.act_tid = 3
+	},
+	[39] = {
+	.act_hid = BNXT_ULP_ACT_HID_0155,
+	.act_pattern_id = 9,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.act_tid = 3
+	},
+	[40] = {
+	.act_hid = BNXT_ULP_ACT_HID_04ab,
+	.act_pattern_id = 10,
+	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
 		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
@@ -494,9 +523,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[39] = {
+	[41] = {
 	.act_hid = BNXT_ULP_ACT_HID_01fe,
-	.act_pattern_id = 9,
+	.act_pattern_id = 11,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -507,9 +536,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[40] = {
+	[42] = {
 	.act_hid = BNXT_ULP_ACT_HID_0667,
-	.act_pattern_id = 10,
+	.act_pattern_id = 12,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -517,9 +546,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[41] = {
+	[43] = {
 	.act_hid = BNXT_ULP_ACT_HID_0254,
-	.act_pattern_id = 11,
+	.act_pattern_id = 13,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -528,9 +557,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[42] = {
+	[44] = {
 	.act_hid = BNXT_ULP_ACT_HID_03ba,
-	.act_pattern_id = 12,
+	.act_pattern_id = 14,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -538,9 +567,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[43] = {
+	[45] = {
+	.act_hid = BNXT_ULP_ACT_HID_02fe,
+	.act_pattern_id = 15,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.act_tid = 3
+	},
+	[46] = {
 	.act_hid = BNXT_ULP_ACT_HID_0654,
-	.act_pattern_id = 13,
+	.act_pattern_id = 16,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -550,9 +590,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[44] = {
+	[47] = {
 	.act_hid = BNXT_ULP_ACT_HID_03a7,
-	.act_pattern_id = 14,
+	.act_pattern_id = 17,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -563,9 +603,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[45] = {
+	[48] = {
 	.act_hid = BNXT_ULP_ACT_HID_0669,
-	.act_pattern_id = 15,
+	.act_pattern_id = 18,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -574,9 +614,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[46] = {
+	[49] = {
 	.act_hid = BNXT_ULP_ACT_HID_0256,
-	.act_pattern_id = 16,
+	.act_pattern_id = 19,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -586,9 +626,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[47] = {
+	[50] = {
 	.act_hid = BNXT_ULP_ACT_HID_03bc,
-	.act_pattern_id = 17,
+	.act_pattern_id = 20,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -597,9 +637,21 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[48] = {
+	[51] = {
+	.act_hid = BNXT_ULP_ACT_HID_0300,
+	.act_pattern_id = 21,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_ING },
+	.act_tid = 3
+	},
+	[52] = {
 	.act_hid = BNXT_ULP_ACT_HID_0656,
-	.act_pattern_id = 18,
+	.act_pattern_id = 22,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -610,9 +662,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[49] = {
+	[53] = {
 	.act_hid = BNXT_ULP_ACT_HID_03a9,
-	.act_pattern_id = 19,
+	.act_pattern_id = 23,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -624,7 +676,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_ING },
 	.act_tid = 3
 	},
-	[50] = {
+	[54] = {
 	.act_hid = BNXT_ULP_ACT_HID_021b,
 	.act_pattern_id = 0,
 	.app_sig = 0,
@@ -632,7 +684,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[51] = {
+	[55] = {
 	.act_hid = BNXT_ULP_ACT_HID_021c,
 	.act_pattern_id = 1,
 	.app_sig = 0,
@@ -641,7 +693,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[52] = {
+	[56] = {
 	.act_hid = BNXT_ULP_ACT_HID_021e,
 	.act_pattern_id = 2,
 	.app_sig = 0,
@@ -651,7 +703,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[53] = {
+	[57] = {
 	.act_hid = BNXT_ULP_ACT_HID_063f,
 	.act_pattern_id = 3,
 	.app_sig = 0,
@@ -662,7 +714,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[54] = {
+	[58] = {
 	.act_hid = BNXT_ULP_ACT_HID_0510,
 	.act_pattern_id = 4,
 	.app_sig = 0,
@@ -672,7 +724,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[55] = {
+	[59] = {
 	.act_hid = BNXT_ULP_ACT_HID_03c6,
 	.act_pattern_id = 5,
 	.app_sig = 0,
@@ -681,7 +733,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[56] = {
+	[60] = {
 	.act_hid = BNXT_ULP_ACT_HID_0082,
 	.act_pattern_id = 6,
 	.app_sig = 0,
@@ -693,7 +745,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[57] = {
+	[61] = {
 	.act_hid = BNXT_ULP_ACT_HID_06bb,
 	.act_pattern_id = 7,
 	.app_sig = 0,
@@ -704,7 +756,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[58] = {
+	[62] = {
 	.act_hid = BNXT_ULP_ACT_HID_021d,
 	.act_pattern_id = 8,
 	.app_sig = 0,
@@ -713,7 +765,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[59] = {
+	[63] = {
 	.act_hid = BNXT_ULP_ACT_HID_0641,
 	.act_pattern_id = 9,
 	.app_sig = 0,
@@ -725,7 +777,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[60] = {
+	[64] = {
 	.act_hid = BNXT_ULP_ACT_HID_0512,
 	.act_pattern_id = 10,
 	.app_sig = 0,
@@ -736,7 +788,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[61] = {
+	[65] = {
 	.act_hid = BNXT_ULP_ACT_HID_03c8,
 	.act_pattern_id = 11,
 	.app_sig = 0,
@@ -746,7 +798,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[62] = {
+	[66] = {
 	.act_hid = BNXT_ULP_ACT_HID_0084,
 	.act_pattern_id = 12,
 	.app_sig = 0,
@@ -759,7 +811,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[63] = {
+	[67] = {
 	.act_hid = BNXT_ULP_ACT_HID_06bd,
 	.act_pattern_id = 13,
 	.app_sig = 0,
@@ -771,7 +823,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 4
 	},
-	[64] = {
+	[68] = {
 	.act_hid = BNXT_ULP_ACT_HID_06d7,
 	.act_pattern_id = 0,
 	.app_sig = 0,
@@ -780,7 +832,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[65] = {
+	[69] = {
 	.act_hid = BNXT_ULP_ACT_HID_02c4,
 	.act_pattern_id = 1,
 	.app_sig = 0,
@@ -790,7 +842,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[66] = {
+	[70] = {
 	.act_hid = BNXT_ULP_ACT_HID_042a,
 	.act_pattern_id = 2,
 	.app_sig = 0,
@@ -799,10 +851,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[67] = {
-	.act_hid = BNXT_ULP_ACT_HID_06c4,
+	[71] = {
+	.act_hid = BNXT_ULP_ACT_HID_036e,
 	.act_pattern_id = 3,
 	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.act_tid = 5
+	},
+	[72] = {
+	.act_hid = BNXT_ULP_ACT_HID_06c4,
+	.act_pattern_id = 4,
+	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
 		BNXT_ULP_ACT_BIT_SET_TP_SRC |
@@ -810,9 +872,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[68] = {
+	[73] = {
 	.act_hid = BNXT_ULP_ACT_HID_0417,
-	.act_pattern_id = 4,
+	.act_pattern_id = 5,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_SET_IPV4_SRC |
@@ -822,9 +884,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[69] = {
+	[74] = {
 	.act_hid = BNXT_ULP_ACT_HID_06d9,
-	.act_pattern_id = 5,
+	.act_pattern_id = 6,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -832,9 +894,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[70] = {
+	[75] = {
 	.act_hid = BNXT_ULP_ACT_HID_02c6,
-	.act_pattern_id = 6,
+	.act_pattern_id = 7,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -843,9 +905,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[71] = {
+	[76] = {
 	.act_hid = BNXT_ULP_ACT_HID_042c,
-	.act_pattern_id = 7,
+	.act_pattern_id = 8,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -853,9 +915,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[72] = {
+	[77] = {
+	.act_hid = BNXT_ULP_ACT_HID_0370,
+	.act_pattern_id = 9,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.act_tid = 5
+	},
+	[78] = {
 	.act_hid = BNXT_ULP_ACT_HID_06c6,
-	.act_pattern_id = 8,
+	.act_pattern_id = 10,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -865,9 +938,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[73] = {
+	[79] = {
 	.act_hid = BNXT_ULP_ACT_HID_0419,
-	.act_pattern_id = 9,
+	.act_pattern_id = 11,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_COUNT |
@@ -878,9 +951,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[74] = {
+	[80] = {
 	.act_hid = BNXT_ULP_ACT_HID_0119,
-	.act_pattern_id = 10,
+	.act_pattern_id = 12,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -888,9 +961,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[75] = {
+	[81] = {
 	.act_hid = BNXT_ULP_ACT_HID_046f,
-	.act_pattern_id = 11,
+	.act_pattern_id = 13,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -899,9 +972,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[76] = {
+	[82] = {
 	.act_hid = BNXT_ULP_ACT_HID_05d5,
-	.act_pattern_id = 12,
+	.act_pattern_id = 14,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -909,9 +982,20 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[77] = {
+	[83] = {
+	.act_hid = BNXT_ULP_ACT_HID_0519,
+	.act_pattern_id = 15,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.act_tid = 5
+	},
+	[84] = {
 	.act_hid = BNXT_ULP_ACT_HID_0106,
-	.act_pattern_id = 13,
+	.act_pattern_id = 16,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -921,9 +1005,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[78] = {
+	[85] = {
 	.act_hid = BNXT_ULP_ACT_HID_05c2,
-	.act_pattern_id = 14,
+	.act_pattern_id = 17,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -934,9 +1018,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[79] = {
+	[86] = {
 	.act_hid = BNXT_ULP_ACT_HID_011b,
-	.act_pattern_id = 15,
+	.act_pattern_id = 18,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -945,9 +1029,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[80] = {
+	[87] = {
 	.act_hid = BNXT_ULP_ACT_HID_0471,
-	.act_pattern_id = 16,
+	.act_pattern_id = 19,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -957,9 +1041,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[81] = {
+	[88] = {
 	.act_hid = BNXT_ULP_ACT_HID_05d7,
-	.act_pattern_id = 17,
+	.act_pattern_id = 20,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -968,9 +1052,21 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[82] = {
+	[89] = {
+	.act_hid = BNXT_ULP_ACT_HID_051b,
+	.act_pattern_id = 21,
+	.app_sig = 0,
+	.act_sig = { .bits =
+		BNXT_ULP_ACT_BIT_DEC_TTL |
+		BNXT_ULP_ACT_BIT_COUNT |
+		BNXT_ULP_ACT_BIT_SET_IPV4_DST |
+		BNXT_ULP_ACT_BIT_SET_TP_DST |
+		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
+	.act_tid = 5
+	},
+	[90] = {
 	.act_hid = BNXT_ULP_ACT_HID_0108,
-	.act_pattern_id = 18,
+	.act_pattern_id = 22,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -981,9 +1077,9 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[83] = {
+	[91] = {
 	.act_hid = BNXT_ULP_ACT_HID_05c4,
-	.act_pattern_id = 19,
+	.act_pattern_id = 23,
 	.app_sig = 0,
 	.act_sig = { .bits =
 		BNXT_ULP_ACT_BIT_DEC_TTL |
@@ -995,7 +1091,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 5
 	},
-	[84] = {
+	[92] = {
 	.act_hid = BNXT_ULP_ACT_HID_00a2,
 	.act_pattern_id = 0,
 	.app_sig = 0,
@@ -1004,7 +1100,7 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
 		BNXT_ULP_FLOW_DIR_BITMASK_EGR },
 	.act_tid = 6
 	},
-	[85] = {
+	[93] = {
 	.act_hid = BNXT_ULP_ACT_HID_00a4,
 	.act_pattern_id = 1,
 	.app_sig = 0,
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h +13 -5
index c016e1940a..fcd460e707 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Fri Aug 20 17:59:14 2021 */
+/* date: Thu Aug 26 17:43:36 2021 */
 
 #ifndef ULP_TEMPLATE_DB_H_
 #define ULP_TEMPLATE_DB_H_
@@ -20,7 +20,7 @@
 #define BNXT_ULP_CLASS_HID_SHFTL 28
 #define BNXT_ULP_CLASS_HID_MASK 65535
 #define BNXT_ULP_ACT_SIG_TBL_MAX_SZ 2048
-#define BNXT_ULP_ACT_MATCH_LIST_MAX_SZ 86
+#define BNXT_ULP_ACT_MATCH_LIST_MAX_SZ 94
 #define BNXT_ULP_ACT_HID_LOW_PRIME 7919
 #define BNXT_ULP_ACT_HID_HIGH_PRIME 3793
 #define BNXT_ULP_ACT_HID_SHFTR 27
@@ -29,7 +29,7 @@
 #define BNXT_ULP_APP_RESOURCE_RESV_LIST_MAX_SZ 8
 #define BNXT_ULP_GLB_RESOURCE_TBL_MAX_SZ 110
 #define BNXT_ULP_APP_GLB_RESOURCE_TBL_MAX_SZ 50
-#define BNXT_ULP_RESOURCE_RESV_LIST_MAX_SZ 278
+#define BNXT_ULP_RESOURCE_RESV_LIST_MAX_SZ 277
 #define BNXT_ULP_APP_CAP_TBL_MAX_SZ 8
 #define BNXT_ULP_COND_GOTO_REJECT 1023
 #define BNXT_ULP_COND_GOTO_RF 0x10000
@@ -50,11 +50,11 @@
 #define ULP_THOR_CLASS_RESULT_FIELD_LIST_SIZE 1313
 #define ULP_THOR_CLASS_COND_LIST_SIZE 55
 #define ULP_WH_PLUS_ACT_TMPL_LIST_SIZE 7
-#define ULP_WH_PLUS_ACT_TBL_LIST_SIZE 35
+#define ULP_WH_PLUS_ACT_TBL_LIST_SIZE 37
 #define ULP_WH_PLUS_ACT_KEY_INFO_LIST_SIZE 2
 #define ULP_WH_PLUS_ACT_IDENT_LIST_SIZE 1
 #define ULP_WH_PLUS_ACT_RESULT_FIELD_LIST_SIZE 536
-#define ULP_WH_PLUS_ACT_COND_LIST_SIZE 39
+#define ULP_WH_PLUS_ACT_COND_LIST_SIZE 41
 #define ULP_THOR_ACT_TMPL_LIST_SIZE 7
 #define ULP_THOR_ACT_TBL_LIST_SIZE 36
 #define ULP_THOR_ACT_KEY_INFO_LIST_SIZE 16
@@ -2224,21 +2224,25 @@ enum bnxt_ulp_act_hid {
 	BNXT_ULP_ACT_HID_04bc = 0x04bc,
 	BNXT_ULP_ACT_HID_00a9 = 0x00a9,
 	BNXT_ULP_ACT_HID_020f = 0x020f,
+	BNXT_ULP_ACT_HID_0153 = 0x0153,
 	BNXT_ULP_ACT_HID_04a9 = 0x04a9,
 	BNXT_ULP_ACT_HID_01fc = 0x01fc,
 	BNXT_ULP_ACT_HID_04be = 0x04be,
 	BNXT_ULP_ACT_HID_00ab = 0x00ab,
 	BNXT_ULP_ACT_HID_0211 = 0x0211,
+	BNXT_ULP_ACT_HID_0155 = 0x0155,
 	BNXT_ULP_ACT_HID_04ab = 0x04ab,
 	BNXT_ULP_ACT_HID_01fe = 0x01fe,
 	BNXT_ULP_ACT_HID_0667 = 0x0667,
 	BNXT_ULP_ACT_HID_0254 = 0x0254,
 	BNXT_ULP_ACT_HID_03ba = 0x03ba,
+	BNXT_ULP_ACT_HID_02fe = 0x02fe,
 	BNXT_ULP_ACT_HID_0654 = 0x0654,
 	BNXT_ULP_ACT_HID_03a7 = 0x03a7,
 	BNXT_ULP_ACT_HID_0669 = 0x0669,
 	BNXT_ULP_ACT_HID_0256 = 0x0256,
 	BNXT_ULP_ACT_HID_03bc = 0x03bc,
+	BNXT_ULP_ACT_HID_0300 = 0x0300,
 	BNXT_ULP_ACT_HID_0656 = 0x0656,
 	BNXT_ULP_ACT_HID_03a9 = 0x03a9,
 	BNXT_ULP_ACT_HID_021b = 0x021b,
@@ -2258,21 +2262,25 @@ enum bnxt_ulp_act_hid {
 	BNXT_ULP_ACT_HID_06d7 = 0x06d7,
 	BNXT_ULP_ACT_HID_02c4 = 0x02c4,
 	BNXT_ULP_ACT_HID_042a = 0x042a,
+	BNXT_ULP_ACT_HID_036e = 0x036e,
 	BNXT_ULP_ACT_HID_06c4 = 0x06c4,
 	BNXT_ULP_ACT_HID_0417 = 0x0417,
 	BNXT_ULP_ACT_HID_06d9 = 0x06d9,
 	BNXT_ULP_ACT_HID_02c6 = 0x02c6,
 	BNXT_ULP_ACT_HID_042c = 0x042c,
+	BNXT_ULP_ACT_HID_0370 = 0x0370,
 	BNXT_ULP_ACT_HID_06c6 = 0x06c6,
 	BNXT_ULP_ACT_HID_0419 = 0x0419,
 	BNXT_ULP_ACT_HID_0119 = 0x0119,
 	BNXT_ULP_ACT_HID_046f = 0x046f,
 	BNXT_ULP_ACT_HID_05d5 = 0x05d5,
+	BNXT_ULP_ACT_HID_0519 = 0x0519,
 	BNXT_ULP_ACT_HID_0106 = 0x0106,
 	BNXT_ULP_ACT_HID_05c2 = 0x05c2,
 	BNXT_ULP_ACT_HID_011b = 0x011b,
 	BNXT_ULP_ACT_HID_0471 = 0x0471,
 	BNXT_ULP_ACT_HID_05d7 = 0x05d7,
+	BNXT_ULP_ACT_HID_051b = 0x051b,
 	BNXT_ULP_ACT_HID_0108 = 0x0108,
 	BNXT_ULP_ACT_HID_05c4 = 0x05c4,
 	BNXT_ULP_ACT_HID_00a2 = 0x00a2,
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c +3 -11
index 684fa66f48..84be09b368 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Tue Aug 17 12:16:42 2021 */
+/* date: Thu Aug 26 17:43:36 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -2121,7 +2121,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
 	.direction               = TF_DIR_RX,
 	.resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
-	.count                   = 64
+	.count                   = 2048
 	},
 	{
 	.app_id                  = 0,
@@ -2249,7 +2249,7 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
 	.direction               = TF_DIR_TX,
 	.resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
 	.resource_type           = TF_TBL_TYPE_ACT_ENCAP_64B,
-	.count                   = 64
+	.count                   = 2048
 	},
 	{
 	.app_id                  = 0,
@@ -2263,14 +2263,6 @@ struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[] = {
 	.app_id                  = 0,
 	.device_id               = BNXT_ULP_DEVICE_ID_THOR,
 	.direction               = TF_DIR_TX,
-	.resource_func           = BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE,
-	.resource_type           = TF_TBL_TYPE_ACT_MODIFY_64B,
-	.count                   = 32
-	},
-	{
-	.app_id                  = 0,
-	.device_id               = BNXT_ULP_DEVICE_ID_THOR,
-	.direction               = TF_DIR_TX,
 	.resource_func           = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE,
 	.resource_type           = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW,
 	.count                   = 272
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c +1 -1
index 68c1e292b2..95205a2421 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Fri Aug 20 18:05:25 2021 */
+/* date: Wed Aug 25 16:41:37 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_wh_plus_act.c +64 -32

293 lines not on this page · raw message

Signature · 1 line
2.17.1
#32 lore raw

PATCH v3 2/20 net/bnxt: add support for multi root capability

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

Update driver to read the multi root capability and ignore pci address check while creating ulp session when multi root capability is enabled in the hardware. DPDK HSI version updated from 1.10.1.70 to 1.10.2.54.

---
 drivers/net/bnxt/bnxt.h                |    3 +
 drivers/net/bnxt/bnxt_hwrm.c           |    8 +
 drivers/net/bnxt/hsi_struct_def_dpdk.h | 2682 +++++++++++++++++++++---
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c     |   10 +-
 4 files changed, 2407 insertions(+), 296 deletions(-)
drivers/net/bnxt/bnxt.h +3 -0
index 6743cf92b0..e3e38ffa19 100644
@@ -723,6 +723,9 @@ struct bnxt {
 	uint16_t		chip_num;
 #define CHIP_NUM_58818		0xd818
 #define BNXT_CHIP_SR2(bp)	((bp)->chip_num == CHIP_NUM_58818)
+#define	BNXT_FLAGS2_MULTIROOT_EN		BIT(4)
+#define	BNXT_MULTIROOT_EN(bp)			\
+	((bp)->flags2 & BNXT_FLAGS2_MULTIROOT_EN)
 
 	uint32_t		fw_cap;
 #define BNXT_FW_CAP_HOT_RESET		BIT(0)
drivers/net/bnxt/bnxt_hwrm.c +8 -0
index 181e607d7b..c7041143a3 100644
@@ -3394,6 +3394,7 @@ int bnxt_hwrm_parent_pf_qcfg(struct bnxt *bp)
 {
 	struct hwrm_func_qcfg_input req = {0};
 	struct hwrm_func_qcfg_output *resp = bp->hwrm_cmd_resp_addr;
+	uint16_t flags;
 	int rc;
 
 	if (!BNXT_VF_IS_TRUSTED(bp))
@@ -3417,6 +3418,13 @@ int bnxt_hwrm_parent_pf_qcfg(struct bnxt *bp)
 	bp->parent->fid = rte_le_to_cpu_16(resp->fid);
 	bp->parent->port_id = rte_le_to_cpu_16(resp->port_id);
 
+	flags = rte_le_to_cpu_16(resp->flags);
+	/* check for the multi-root support */
+	if (flags & HWRM_FUNC_QCFG_OUTPUT_FLAGS_MULTI_ROOT) {
+		bp->flags2 |= BNXT_FLAGS2_MULTIROOT_EN;
+		PMD_DRV_LOG(DEBUG, "PF enabled with multi root capability\n");
+	}
+
 	HWRM_UNLOCK();
 
 	return 0;
drivers/net/bnxt/hsi_struct_def_dpdk.h +2390 -292

2,971 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/bnxt_ulp.c +6 -4
index bd57229968..dbc8a3c5bb 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Signature · 1 line
2.17.1

Part of the diff is not shown here. View the raw message.

#33 lore raw

PATCH v3 3/20 net/bnxt: fix the out of boundary issue in hash list

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

The number of hash bucket list calculation is fixed and added check to limit the out of boundary condition

Fixes 0001cc58d362 ("net/bnxt: support generic hash table")
---
 drivers/net/bnxt/tf_ulp/ulp_gen_hash.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)
drivers/net/bnxt/tf_ulp/ulp_gen_hash.c +14 -6
index 3c6e7fe924..84c83de35c 100644
@@ -16,20 +16,21 @@ int32_t ulp_bit_alloc_list_alloc(struct bit_alloc_list *blist,
 {
 	uint64_t bentry;
 	uint32_t idx = 0, jdx = 0;
+	uint32_t bsize_64 = blist->bsize / ULP_64B_IN_BYTES;
 
 	/* Iterate all numbers that have all 1's */
 	do {
 		bentry = blist->bdata[idx++];
-	} while (bentry == -1UL && idx < blist->bsize);
+	} while (bentry == -1UL && idx <= bsize_64);
 
-	if (idx < blist->bsize) {
+	if (idx <= bsize_64) {
 		if (bentry)
 			jdx = __builtin_clzl(~bentry);
 		*index = ((idx - 1) * ULP_INDEX_BITMAP_SIZE) + jdx;
 		ULP_INDEX_BITMAP_SET(blist->bdata[(idx - 1)], jdx);
 		return 0;
 	}
-	jdx = (uint32_t)(blist->bsize * ULP_INDEX_BITMAP_SIZE);
+	jdx = (uint32_t)(bsize_64 * ULP_INDEX_BITMAP_SIZE);
 	BNXT_TF_DBG(ERR, "bit allocator is full reached max:%x\n", jdx);
 	return -1;
 }
@@ -39,9 +40,10 @@ int32_t ulp_bit_alloc_list_dealloc(struct bit_alloc_list *blist,
 				   uint32_t index)
 {
 	uint32_t idx = 0, jdx;
+	uint32_t bsize_64 = blist->bsize / ULP_64B_IN_BYTES;
 
 	idx = index / ULP_INDEX_BITMAP_SIZE;
-	if (idx >= blist->bsize) {
+	if (idx >= bsize_64) {
 		BNXT_TF_DBG(ERR, "invalid bit index %x:%x\n", idx,
 			    blist->bsize);
 		return -EINVAL;
@@ -127,7 +129,8 @@ ulp_gen_hash_tbl_list_init(struct ulp_hash_create_params *cparams,
 	hash_tbl->hash_mask = size - 1;
 
 	/* allocate the memory for the bit allocator */
-	size = (cparams->num_key_entries / sizeof(uint64_t)) + 1;
+	size = (cparams->num_key_entries / sizeof(uint64_t));
+	size = ULP_BYTE_ROUND_OFF_8(size);
 	hash_tbl->bit_list.bsize = size;
 	hash_tbl->bit_list.bdata = rte_zmalloc("Generic hash bit alloc", size,
 					       ULP_BUFFER_ALIGN_64_BYTE);
@@ -311,7 +314,12 @@ ulp_gen_hash_tbl_list_add(struct ulp_gen_hash_tbl *hash_tbl,
 		BNXT_TF_DBG(ERR, "Error in bit list alloc\n");
 		return -ENOMEM;
 	}
-
+	if (key_index > hash_tbl->num_key_entries) {
+		BNXT_TF_DBG(ERR, "reached max size %u:%u\n", key_index,
+			    hash_tbl->num_key_entries);
+		ulp_bit_alloc_list_dealloc(&hash_tbl->bit_list, key_index);
+		return -ENOMEM;
+	}
 	/* Update the hash entry */
 	ULP_HASH_BUCKET_MARK_INUSE(bucket, (uint16_t)key_index);
 
Signature · 1 line
2.17.1
#34 lore raw

PATCH v3 4/20 net/bnxt: add clear on read support

In reply to Venkat Duvvuru

From: Farah Smith <[email protected]>

Add clear on read stats support for Thor. Currently, the flow stats are not cleared after they are read from the FW. This patch adds support for clear on read. Since clear on read support is added for flow stats in Thor, the flow accumulation is enabled on Thor as well.

---
 drivers/net/bnxt/hsi_struct_def_dpdk.h | 34 ++++++++++++++++++++------
 drivers/net/bnxt/tf_core/tf_msg.c      | 24 +++++++++++++++---
 drivers/net/bnxt/tf_core/tf_msg.h      |  6 +++--
 drivers/net/bnxt/tf_core/tf_tbl.c      |  6 +++--
 drivers/net/bnxt/tf_core/tf_tbl_sram.c | 13 ++++++++--
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c     |  3 ++-
 6 files changed, 67 insertions(+), 19 deletions(-)
drivers/net/bnxt/hsi_struct_def_dpdk.h +26 -8
index 2a1e6ab97e..77981b5cdb 100644
@@ -1058,8 +1058,8 @@ struct hwrm_err_output {
 #define HWRM_VERSION_MINOR 10
 #define HWRM_VERSION_UPDATE 2
 /* non-zero means beta version */
-#define HWRM_VERSION_RSVD 54
-#define HWRM_VERSION_STR "1.10.2.54"
+#define HWRM_VERSION_RSVD 55
+#define HWRM_VERSION_STR "1.10.2.55"
 
 /****************
  * hwrm_ver_get *
@@ -46253,13 +46253,22 @@ struct hwrm_tf_tbl_type_get_input {
 	/* Control flags. */
 	uint16_t	flags;
 	/* Indicates the flow direction. */
-	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR     UINT32_C(0x1)
+	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR \
+		UINT32_C(0x1)
 	/* If this bit set to 0, then it indicates rx flow. */
-	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_RX    UINT32_C(0x0)
+	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_RX \
+		UINT32_C(0x0)
 	/* If this bit is set to 1, then it indicates tx flow. */
-	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_TX    UINT32_C(0x1)
+	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_TX \
+		UINT32_C(0x1)
 	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_LAST \
 		HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_TX
+	/*
+	 * When set use the special access register access to clear
+	 * the table entry on read.
+	 */
+	#define HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_CLEAR_ON_READ \
+		UINT32_C(0x2)
 	/* unused. */
 	uint8_t	unused0[2];
 	/*
@@ -48489,13 +48498,22 @@ struct hwrm_tf_tbl_type_bulk_get_input {
 	/* Control flags. */
 	uint16_t	flags;
 	/* Indicates the flow direction. */
-	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR     UINT32_C(0x1)
+	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR \
+		UINT32_C(0x1)
 	/* If this bit set to 0, then it indicates rx flow. */
-	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_RX    UINT32_C(0x0)
+	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_RX \
+		UINT32_C(0x0)
 	/* If this bit is set to 1, then it indicates tx flow. */
-	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_TX    UINT32_C(0x1)
+	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_TX \
+		UINT32_C(0x1)
 	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_LAST \
 		HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_TX
+	/*
+	 * When set use the special access register access to clear
+	 * the table entries on read.
+	 */
+	#define HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_CLEAR_ON_READ \
+		UINT32_C(0x2)
 	/* unused. */
 	uint8_t	unused0[2];
 	/*
drivers/net/bnxt/tf_core/tf_msg.c +20 -4
index 0fbb2fe837..ea6e2af7ce 100644
@@ -1851,7 +1851,8 @@ tf_msg_get_tbl_entry(struct tf *tfp,
 		     uint16_t hcapi_type,
 		     uint16_t size,
 		     uint8_t *data,
-		     uint32_t index)
+		     uint32_t index,
+		     bool clear_on_read)
 {
 	int rc;
 	struct hwrm_tf_tbl_type_get_input req = { 0 };
@@ -1860,6 +1861,7 @@ tf_msg_get_tbl_entry(struct tf *tfp,
 	uint8_t fw_session_id;
 	struct tf_dev_info *dev;
 	struct tf_session *tfs;
+	uint32_t flags = 0;
 
 	/* Retrieve the session information */
 	rc = tf_session_get_session_internal(tfp, &tfs);
@@ -1889,10 +1891,16 @@ tf_msg_get_tbl_entry(struct tf *tfp,
 			    strerror(-rc));
 		return rc;
 	}
+	flags = (dir == TF_DIR_TX ?
+		 HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_TX :
+		 HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_DIR_RX);
+
+	if (clear_on_read)
+		flags |= HWRM_TF_TBL_TYPE_GET_INPUT_FLAGS_CLEAR_ON_READ;
 
 	/* Populate the request */
 	req.fw_session_id = tfp_cpu_to_le_32(fw_session_id);
-	req.flags = tfp_cpu_to_le_16(dir);
+	req.flags = tfp_cpu_to_le_16(flags);
 	req.type = tfp_cpu_to_le_32(hcapi_type);
 	req.index = tfp_cpu_to_le_32(index);
 
@@ -2105,7 +2113,8 @@ tf_msg_bulk_get_tbl_entry(struct tf *tfp,
 			  uint32_t starting_idx,
 			  uint16_t num_entries,
 			  uint16_t entry_sz_in_bytes,
-			  uint64_t physical_mem_addr)
+			  uint64_t physical_mem_addr,
+			  bool clear_on_read)
 {
 	int rc;
 	struct tfp_send_msg_parms parms = { 0 };
@@ -2115,6 +2124,7 @@ tf_msg_bulk_get_tbl_entry(struct tf *tfp,
 	uint8_t fw_session_id;
 	struct tf_dev_info *dev;
 	struct tf_session *tfs;
+	uint32_t flags = 0;
 
 	/* Retrieve the session information */
 	rc = tf_session_get_session(tfp, &tfs);
@@ -2144,10 +2154,16 @@ tf_msg_bulk_get_tbl_entry(struct tf *tfp,
 			    strerror(-rc));
 		return rc;
 	}
+	flags = (dir == TF_DIR_TX ?
+		 HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_TX :
+		 HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_DIR_RX);
+
+	if (clear_on_read)
+		flags |= HWRM_TF_TBL_TYPE_BULK_GET_INPUT_FLAGS_CLEAR_ON_READ;
 
 	/* Populate the request */
 	req.fw_session_id = tfp_cpu_to_le_32(fw_session_id);
-	req.flags = tfp_cpu_to_le_16(dir);
+	req.flags = tfp_cpu_to_le_16(flags);
 	req.type = tfp_cpu_to_le_32(hcapi_type);
 	req.start_index = tfp_cpu_to_le_32(starting_idx);
 	req.num_entries = tfp_cpu_to_le_32(num_entries);
drivers/net/bnxt/tf_core/tf_msg.h +4 -2
index b26b15bfa3..718bc2f3b2 100644
@@ -652,7 +652,8 @@ int tf_msg_get_tbl_entry(struct tf *tfp,
 			 uint16_t hcapi_type,
 			 uint16_t size,
 			 uint8_t *data,
-			 uint32_t index);
+			 uint32_t index,
+			 bool clear_on_read);
 
 /* HWRM Tunneled messages */
 
@@ -704,7 +705,8 @@ int tf_msg_bulk_get_tbl_entry(struct tf *tfp,
 			      uint32_t starting_idx,
 			      uint16_t num_entries,
 			      uint16_t entry_sz_in_bytes,
-			      uint64_t physical_mem_addr);
+			      uint64_t physical_mem_addr,
+			      bool clear_on_read);
 
 /**
  * Sends Set message of a IF Table Type element to the firmware.
drivers/net/bnxt/tf_core/tf_tbl.c +4 -2
index 0a8720e7b6..12eca36491 100644
@@ -441,7 +441,8 @@ tf_tbl_get(struct tf *tfp,
 				  hcapi_type,
 				  parms->data_sz_in_bytes,
 				  parms->data,
-				  parms->idx);
+				  parms->idx,
+				  false);
 	if (rc) {
 		TFP_DRV_LOG(ERR,
 			    "%s, Get failed, type:%s, rc:%s\n",
@@ -526,7 +527,8 @@ tf_tbl_bulk_get(struct tf *tfp,
 				       parms->starting_idx,
 				       parms->num_entries,
 				       parms->entry_sz_in_bytes,
-				       parms->physical_mem_addr);
+				       parms->physical_mem_addr,
+				       false);
 	if (rc) {
 		TFP_DRV_LOG(ERR,
 			    "%s, Bulk get failed, type:%s, rc:%s\n",
drivers/net/bnxt/tf_core/tf_tbl_sram.c +11 -2
index 636811bc2d..567f912dfa 100644
@@ -539,6 +539,7 @@ tf_tbl_sram_get(struct tf *tfp,
 	struct tf_tbl_sram_get_info_parms iparms = { 0 };
 	struct tf_sram_mgr_is_allocated_parms aparms = { 0 };
 	void *sram_handle = NULL;
+	bool clear_on_read = false;
 
 	TF_CHECK_PARMS3(tfp, parms, parms->data);
 
@@ -608,6 +609,8 @@ tf_tbl_sram_get(struct tf *tfp,
 			    strerror(-rc));
 		return rc;
 	}
+	if (parms->type == TF_TBL_TYPE_ACT_STATS_64)
+		clear_on_read = true;
 
 	/* Get the entry */
 	rc = tf_msg_get_tbl_entry(tfp,
@@ -615,7 +618,8 @@ tf_tbl_sram_get(struct tf *tfp,
 				  hcapi_type,
 				  parms->data_sz_in_bytes,
 				  parms->data,
-				  parms->idx);
+				  parms->idx,
+				  clear_on_read);
 	if (rc) {
 		TFP_DRV_LOG(ERR,
 			    "%s, Get failed, type:%s, rc:%s\n",
@@ -643,6 +647,7 @@ tf_tbl_sram_bulk_get(struct tf *tfp,
 	struct tf_sram_mgr_is_allocated_parms aparms = { 0 };
 	bool allocated = false;
 	void *sram_handle = NULL;
+	bool clear_on_read = false;
 
 	TF_CHECK_PARMS2(tfp, parms);
 
@@ -728,6 +733,9 @@ tf_tbl_sram_bulk_get(struct tf *tfp,
 		return rc;
 	}
 
+	if (parms->type == TF_TBL_TYPE_ACT_STATS_64)
+		clear_on_read = true;
+
 	/* Get the entries */
 	rc = tf_msg_bulk_get_tbl_entry(tfp,
 				       parms->dir,
@@ -735,7 +743,8 @@ tf_tbl_sram_bulk_get(struct tf *tfp,
 				       parms->starting_idx,
 				       parms->num_entries,
 				       parms->entry_sz_in_bytes,
-				       parms->physical_mem_addr);
+				       parms->physical_mem_addr,
+				       clear_on_read);
 	if (rc) {
 		TFP_DRV_LOG(ERR,
 			    "%s, Bulk get failed, type:%s, rc:%s\n",
drivers/net/bnxt/tf_ulp/bnxt_ulp.c +2 -1
index dbc8a3c5bb..f1763e2519 100644
@@ -1483,7 +1483,8 @@ bnxt_ulp_port_init(struct bnxt *bp)
 		goto jump_to_error;
 	}
 
-	if (devid != BNXT_ULP_DEVICE_ID_THOR && BNXT_ACCUM_STATS_EN(bp))
+	/* set the accumulation of the stats */
+	if (BNXT_ACCUM_STATS_EN(bp))
 		bp->ulp_ctx->cfg_data->accum_stats = true;
 
 	BNXT_TF_DBG(DEBUG, "BNXT Port:%d ULP port init, accum_stats:%d\n",
Signature · 1 line
2.17.1
#35 lore raw

PATCH v3 5/20 net/bnxt: add capability option for socket redirect

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

Added support for socket redirect feature capability so applications can enable or disable this feature. This patch contains the template changes.

---
 drivers/net/bnxt/bnxt.h                       |  13 --
 drivers/net/bnxt/bnxt_ethdev.c                | 203 ------------------
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c            |  11 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.h            |   6 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c       |  10 +-
 .../generic_templates/ulp_template_db_enum.h  |   8 +-
 .../generic_templates/ulp_template_db_tbl.c   |   5 +-
 7 files changed, 30 insertions(+), 226 deletions(-)
drivers/net/bnxt/bnxt.h +0 -13
index e3e38ffa19..c65e360446 100644
@@ -1054,19 +1054,6 @@ int32_t
 bnxt_ulp_create_vfr_default_rules(struct rte_eth_dev *vfr_ethdev);
 int32_t
 bnxt_ulp_delete_vfr_default_rules(struct bnxt_representor *vfr);
-void bnxt_get_iface_mac(uint16_t port, enum bnxt_ulp_intf_type type,
-			uint8_t *mac, uint8_t *parent_mac);
-uint16_t bnxt_get_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type);
-uint16_t bnxt_get_parent_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type);
-struct bnxt *bnxt_get_bp(uint16_t port);
-uint16_t bnxt_get_svif(uint16_t port_id, bool func_svif,
-		       enum bnxt_ulp_intf_type type);
-uint16_t bnxt_get_fw_func_id(uint16_t port, enum bnxt_ulp_intf_type type);
-uint16_t bnxt_get_parif(uint16_t port, enum bnxt_ulp_intf_type type);
-uint16_t bnxt_get_phy_port_id(uint16_t port);
-uint16_t bnxt_get_vport(uint16_t port);
-enum bnxt_ulp_intf_type
-bnxt_get_interface_type(uint16_t port);
 int bnxt_rep_dev_start_op(struct rte_eth_dev *eth_dev);
 
 void bnxt_cancel_fc_thread(struct bnxt *bp);
drivers/net/bnxt/bnxt_ethdev.c +0 -203

209 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/bnxt_ulp.c +9 -2
index f1763e2519..2ac1a8625f 100644
@@ -301,13 +301,14 @@ bnxt_ulp_tf_shared_session_resources_get(struct bnxt_ulp_context *ulp_ctx,
 }
 
 int32_t
-bnxt_ulp_cntxt_app_caps_init(struct bnxt_ulp_context *ulp_ctx,
+bnxt_ulp_cntxt_app_caps_init(struct bnxt *bp,
 			     uint8_t app_id, uint32_t dev_id)
 {
 	struct bnxt_ulp_app_capabilities_info *info;
 	uint32_t num = 0;
 	uint16_t i;
 	bool found = false;
+	struct bnxt_ulp_context *ulp_ctx = bp->ulp_ctx;
 
 	if (ULP_APP_DEV_UNSUPPORTED_ENABLED(ulp_ctx->cfg_data->ulp_flags)) {
 		BNXT_TF_DBG(ERR, "APP ID %d, Device ID: 0x%x not supported.\n",
@@ -334,6 +335,12 @@ bnxt_ulp_cntxt_app_caps_init(struct bnxt_ulp_context *ulp_ctx,
 		if (info[i].flags & BNXT_ULP_APP_CAP_UNICAST_ONLY)
 			ulp_ctx->cfg_data->ulp_flags |=
 				BNXT_ULP_APP_UNICAST_ONLY;
+		if (info[i].flags & BNXT_ULP_APP_CAP_SOCKET_DIRECT) {
+			/* Enable socket direction only if MR is enabled in fw*/
+			if (BNXT_MULTIROOT_EN(bp))
+				ulp_ctx->cfg_data->ulp_flags |=
+					BNXT_ULP_APP_SOCKET_DIRECT;
+		}
 	}
 	if (!found) {
 		BNXT_TF_DBG(ERR, "APP ID %d, Device ID: 0x%x not supported.\n",
@@ -832,7 +839,7 @@ ulp_ctx_init(struct bnxt *bp,
 	}
 	BNXT_TF_DBG(DEBUG, "Ulp initialized with app id %d\n", bp->app_id);
 
-	rc = bnxt_ulp_cntxt_app_caps_init(bp->ulp_ctx, bp->app_id, devid);
+	rc = bnxt_ulp_cntxt_app_caps_init(bp, bp->app_id, devid);
 	if (rc) {
 		BNXT_TF_DBG(ERR, "Unable to set caps for app(%x)/dev(%x)\n",
 			    bp->app_id, devid);
drivers/net/bnxt/tf_ulp/bnxt_ulp.h +5 -1
index 006df9cbc5..68f1470c61 100644
@@ -13,6 +13,7 @@
 #include "rte_version.h"
 #include "rte_ethdev.h"
 
+#include "bnxt.h"
 #include "ulp_template_db_enum.h"
 #include "ulp_tun.h"
 #include "bnxt_tf_common.h"
@@ -33,12 +34,15 @@
 #define BNXT_ULP_APP_DEV_UNSUPPORTED	0x4
 #define BNXT_ULP_HIGH_AVAIL_ENABLED	0x8
 #define BNXT_ULP_APP_UNICAST_ONLY	0x10
+#define BNXT_ULP_APP_SOCKET_DIRECT	0x20
+
 #define ULP_VF_REP_IS_ENABLED(flag)	((flag) & BNXT_ULP_VF_REP_ENABLED)
 #define ULP_SHARED_SESSION_IS_ENABLED(flag) ((flag) &\
 					     BNXT_ULP_SHARED_SESSION_ENABLED)
 #define ULP_APP_DEV_UNSUPPORTED_ENABLED(flag)	((flag) &\
 						 BNXT_ULP_APP_DEV_UNSUPPORTED)
 #define ULP_HIGH_AVAIL_IS_ENABLED(flag)	((flag) & BNXT_ULP_HIGH_AVAIL_ENABLED)
+#define ULP_SOCKET_DIRECT_IS_ENABLED(flag) ((flag) & BNXT_ULP_APP_SOCKET_DIRECT)
 
 enum bnxt_ulp_flow_mem_type {
 	BNXT_ULP_FLOW_MEM_TYPE_INT = 0,
@@ -287,7 +291,7 @@ struct bnxt_ulp_app_capabilities_info *
 bnxt_ulp_app_cap_list_get(uint32_t *num_entries);
 
 int32_t
-bnxt_ulp_cntxt_app_caps_init(struct bnxt_ulp_context *ulp_ctx,
+bnxt_ulp_cntxt_app_caps_init(struct bnxt *bp,
 			     uint8_t app_id, uint32_t dev_id);
 
 struct bnxt_ulp_resource_resv_info *
drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c +8 -2
index 2fec79a388..272195f6a2 100644
@@ -115,9 +115,11 @@ bnxt_ulp_init_mapper_params(struct bnxt_ulp_mapper_create_parms *mapper_cparms,
 	ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_FLOW_SIG_ID,
 			    params->flow_sig_id);
 
+	if (bnxt_ulp_cntxt_ptr2_ulp_flags_get(params->ulp_ctx, &ulp_flags))
+		return;
+
 	/* update the WC Priority flag */
-	if (!bnxt_ulp_cntxt_ptr2_ulp_flags_get(params->ulp_ctx, &ulp_flags) &&
-	    ULP_HIGH_AVAIL_IS_ENABLED(ulp_flags)) {
+	if (ULP_HIGH_AVAIL_IS_ENABLED(ulp_flags)) {
 		enum ulp_ha_mgr_region region = ULP_HA_REGION_LOW;
 		int32_t rc;
 
@@ -129,6 +131,10 @@ bnxt_ulp_init_mapper_params(struct bnxt_ulp_mapper_create_parms *mapper_cparms,
 					    BNXT_ULP_CF_IDX_WC_IS_HA_HIGH_REG,
 					    1);
 	}
+
+	/* Update the socket direct flag */
+	if (ULP_SOCKET_DIRECT_IS_ENABLED(ulp_flags))
+		ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_SOCKET_DIRECT, 1);
 }
 
 /* Function to create the rte flow. */
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h +5 -3
index fcd460e707..31a94c14dc 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Thu Aug 26 17:43:36 2021 */
+/* date: Thu Sep  9 11:11:05 2021 */
 
 #ifndef ULP_TEMPLATE_DB_H_
 #define ULP_TEMPLATE_DB_H_
@@ -211,7 +211,8 @@ enum bnxt_ulp_cf_idx {
 	BNXT_ULP_CF_IDX_OI_VLAN_FB_VID = 71,
 	BNXT_ULP_CF_IDX_IO_VLAN_FB_VID = 72,
 	BNXT_ULP_CF_IDX_II_VLAN_FB_VID = 73,
-	BNXT_ULP_CF_IDX_LAST = 74
+	BNXT_ULP_CF_IDX_SOCKET_DIRECT = 74,
+	BNXT_ULP_CF_IDX_LAST = 75
 };
 
 enum bnxt_ulp_cond_list_opc {
@@ -582,7 +583,8 @@ enum bnxt_ulp_template_type {
 enum bnxt_ulp_app_cap {
 	BNXT_ULP_APP_CAP_SHARED_EN = 0x00000001,
 	BNXT_ULP_APP_CAP_HOT_UPGRADE_EN = 0x00000002,
-	BNXT_ULP_APP_CAP_UNICAST_ONLY = 0x00000004
+	BNXT_ULP_APP_CAP_UNICAST_ONLY = 0x00000004,
+	BNXT_ULP_APP_CAP_SOCKET_DIRECT = 0x00000008
 };
 
 enum bnxt_ulp_fdb_resource_flags {
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c +3 -2
index 84be09b368..5383e2cd70 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Thu Aug 26 17:43:36 2021 */
+/* date: Thu Sep  9 11:11:05 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -347,7 +347,8 @@ struct bnxt_ulp_app_capabilities_info ulp_app_cap_info_list[] = {
 	.device_id               = BNXT_ULP_DEVICE_ID_THOR,
 	.flags                   = BNXT_ULP_APP_CAP_SHARED_EN |
 				   BNXT_ULP_APP_CAP_HOT_UPGRADE_EN |
-				   BNXT_ULP_APP_CAP_UNICAST_ONLY
+				   BNXT_ULP_APP_CAP_UNICAST_ONLY |
+				   BNXT_ULP_APP_CAP_SOCKET_DIRECT
 	},
 	{
 	.app_id                  = 2,
Signature · 1 line
2.17.1
#36 lore raw

PATCH v3 6/20 net/bnxt: enable wildcard match for ingress flows

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

Enabled wildcard match support for ipv4 ingress flows.

---
 .../generic_templates/ulp_template_db_class.c | 1986 ++++++++---------
 .../generic_templates/ulp_template_db_enum.h  |    4 +-
 .../ulp_template_db_thor_class.c              |  251 +--
 3 files changed, 1118 insertions(+), 1123 deletions(-)
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_class.c +993 -993
index ad3866243d..1d1e6463e0 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Fri Aug  6 11:15:47 2021 */
+/* date: Thu Sep 16 13:12:05 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -1016,7 +1016,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_55dd,
 	.class_tid = 1,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 4096,
+	.flow_sig_id = 4096UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1031,7 +1031,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1df1,
 	.class_tid = 1,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 4104,
+	.flow_sig_id = 4104UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1047,7 +1047,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3e55,
 	.class_tid = 1,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 6144,
+	.flow_sig_id = 6144UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1063,7 +1063,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0649,
 	.class_tid = 1,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 6152,
+	.flow_sig_id = 6152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1080,7 +1080,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1011,
 	.class_tid = 1,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 16384,
+	.flow_sig_id = 16384UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1095,7 +1095,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_40e9,
 	.class_tid = 1,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 16392,
+	.flow_sig_id = 16392UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1111,7 +1111,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3e99,
 	.class_tid = 1,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 24576,
+	.flow_sig_id = 24576UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1127,7 +1127,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_06ad,
 	.class_tid = 1,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 24584,
+	.flow_sig_id = 24584UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1144,7 +1144,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_38c7,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 32768,
+	.flow_sig_id = 32768UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1160,7 +1160,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_00fb,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 32776,
+	.flow_sig_id = 32776UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1177,7 +1177,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_24d3,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 32832,
+	.flow_sig_id = 32832UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1194,7 +1194,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_559b,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 32840,
+	.flow_sig_id = 32840UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1212,7 +1212,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5003,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1229,7 +1229,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1837,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 49160,
+	.flow_sig_id = 49160UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1247,7 +1247,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3bef,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 49216,
+	.flow_sig_id = 49216UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1265,7 +1265,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0403,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 49224,
+	.flow_sig_id = 49224UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1284,7 +1284,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3d3f,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 131072,
+	.flow_sig_id = 131072UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1300,7 +1300,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0543,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 131080,
+	.flow_sig_id = 131080UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1317,7 +1317,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_292b,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 131136,
+	.flow_sig_id = 131136UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1334,7 +1334,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_59e3,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 131144,
+	.flow_sig_id = 131144UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1352,7 +1352,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5d3b,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 196608,
+	.flow_sig_id = 196608UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1369,7 +1369,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_254f,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 196616,
+	.flow_sig_id = 196616UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1387,7 +1387,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4917,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 196672,
+	.flow_sig_id = 196672UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1405,7 +1405,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_113b,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 196680,
+	.flow_sig_id = 196680UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1424,7 +1424,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_55fd,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 4096,
+	.flow_sig_id = 4096UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1440,7 +1440,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1dd1,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 4104,
+	.flow_sig_id = 4104UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1457,7 +1457,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3e75,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 6144,
+	.flow_sig_id = 6144UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1474,7 +1474,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0669,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 6152,
+	.flow_sig_id = 6152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1492,7 +1492,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1ba1,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 12288,
+	.flow_sig_id = 12288UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1509,7 +1509,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4c69,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 12296,
+	.flow_sig_id = 12296UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1527,7 +1527,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0439,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 14336,
+	.flow_sig_id = 14336UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1545,7 +1545,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_34e1,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 14344,
+	.flow_sig_id = 14344UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1564,7 +1564,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0465,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 20480,
+	.flow_sig_id = 20480UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1581,7 +1581,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_352d,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 20488,
+	.flow_sig_id = 20488UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1599,7 +1599,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_55b1,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 22528,
+	.flow_sig_id = 22528UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1617,7 +1617,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1da5,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 22536,
+	.flow_sig_id = 22536UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1636,7 +1636,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_32fd,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 28672,
+	.flow_sig_id = 28672UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1654,7 +1654,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_63a5,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 28680,
+	.flow_sig_id = 28680UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1673,7 +1673,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1b75,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 30720,
+	.flow_sig_id = 30720UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1692,7 +1692,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4c3d,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 30728,
+	.flow_sig_id = 30728UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1712,7 +1712,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1031,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 16384,
+	.flow_sig_id = 16384UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1728,7 +1728,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_40c9,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 16392,
+	.flow_sig_id = 16392UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1745,7 +1745,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3eb9,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 24576,
+	.flow_sig_id = 24576UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1762,7 +1762,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_068d,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 24584,
+	.flow_sig_id = 24584UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1780,7 +1780,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5039,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1797,7 +1797,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_180d,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 49160,
+	.flow_sig_id = 49160UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1815,7 +1815,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_15fd,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 57344,
+	.flow_sig_id = 57344UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1833,7 +1833,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_46b5,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 57352,
+	.flow_sig_id = 57352UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1852,7 +1852,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_303d,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 81920,
+	.flow_sig_id = 81920UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1869,7 +1869,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_60f5,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 81928,
+	.flow_sig_id = 81928UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1887,7 +1887,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5ea5,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 90112,
+	.flow_sig_id = 90112UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1905,7 +1905,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2689,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 90120,
+	.flow_sig_id = 90120UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1924,7 +1924,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0771,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1942,7 +1942,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3809,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 114696,
+	.flow_sig_id = 114696UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1961,7 +1961,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_35f9,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 122880,
+	.flow_sig_id = 122880UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -1980,7 +1980,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_66b1,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 122888,
+	.flow_sig_id = 122888UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2000,7 +2000,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_559d,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 4096,
+	.flow_sig_id = 4096UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2016,7 +2016,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1db1,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 4104,
+	.flow_sig_id = 4104UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2033,7 +2033,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3e15,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 6144,
+	.flow_sig_id = 6144UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2050,7 +2050,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0609,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 6152,
+	.flow_sig_id = 6152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2068,7 +2068,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1bc1,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 12288,
+	.flow_sig_id = 12288UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2085,7 +2085,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4c09,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 12296,
+	.flow_sig_id = 12296UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2103,7 +2103,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0459,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 14336,
+	.flow_sig_id = 14336UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2121,7 +2121,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3481,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 14344,
+	.flow_sig_id = 14344UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2140,7 +2140,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0405,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 20480,
+	.flow_sig_id = 20480UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2157,7 +2157,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_354d,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 20488,
+	.flow_sig_id = 20488UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2175,7 +2175,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_55d1,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 22528,
+	.flow_sig_id = 22528UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2193,7 +2193,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1dc5,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 22536,
+	.flow_sig_id = 22536UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2212,7 +2212,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_329d,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 28672,
+	.flow_sig_id = 28672UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2230,7 +2230,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_63c5,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 28680,
+	.flow_sig_id = 28680UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2249,7 +2249,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1b15,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 30720,
+	.flow_sig_id = 30720UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2268,7 +2268,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4c5d,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 30728,
+	.flow_sig_id = 30728UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2288,7 +2288,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1051,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 16384,
+	.flow_sig_id = 16384UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2304,7 +2304,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_40a9,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 16392,
+	.flow_sig_id = 16392UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2321,7 +2321,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3ed9,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 24576,
+	.flow_sig_id = 24576UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2338,7 +2338,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_06ed,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 24584,
+	.flow_sig_id = 24584UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2356,7 +2356,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5059,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2373,7 +2373,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_186d,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 49160,
+	.flow_sig_id = 49160UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2391,7 +2391,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_159d,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 57344,
+	.flow_sig_id = 57344UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2409,7 +2409,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_46d5,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 57352,
+	.flow_sig_id = 57352UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2428,7 +2428,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_305d,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 81920,
+	.flow_sig_id = 81920UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2445,7 +2445,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_6095,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 81928,
+	.flow_sig_id = 81928UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2463,7 +2463,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5ec5,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 90112,
+	.flow_sig_id = 90112UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2481,7 +2481,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_26e9,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 90120,
+	.flow_sig_id = 90120UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2500,7 +2500,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0711,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2518,7 +2518,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3869,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 114696,
+	.flow_sig_id = 114696UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2537,7 +2537,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3599,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 122880,
+	.flow_sig_id = 122880UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2556,7 +2556,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_66d1,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 122888,
+	.flow_sig_id = 122888UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2576,7 +2576,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_38e7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 32768,
+	.flow_sig_id = 32768UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2593,7 +2593,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_00db,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 32776,
+	.flow_sig_id = 32776UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2611,7 +2611,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_24f3,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 32832,
+	.flow_sig_id = 32832UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2629,7 +2629,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_55bb,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 32840,
+	.flow_sig_id = 32840UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2648,7 +2648,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5023,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2666,7 +2666,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1817,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 49160,
+	.flow_sig_id = 49160UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2685,7 +2685,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3bcf,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 49216,
+	.flow_sig_id = 49216UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2704,7 +2704,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0423,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 49224,
+	.flow_sig_id = 49224UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2724,7 +2724,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_58e3,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 98304,
+	.flow_sig_id = 98304UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2742,7 +2742,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_20d7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 98312,
+	.flow_sig_id = 98312UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2761,7 +2761,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_448f,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 98368,
+	.flow_sig_id = 98368UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2780,7 +2780,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0ce3,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 98376,
+	.flow_sig_id = 98376UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2800,7 +2800,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_076b,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2819,7 +2819,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3813,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 114696,
+	.flow_sig_id = 114696UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2839,7 +2839,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5bcb,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 114752,
+	.flow_sig_id = 114752UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2859,7 +2859,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_243f,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 114760,
+	.flow_sig_id = 114760UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2880,7 +2880,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_144b,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 163840,
+	.flow_sig_id = 163840UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2898,7 +2898,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4573,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 163848,
+	.flow_sig_id = 163848UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2917,7 +2917,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0057,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 163904,
+	.flow_sig_id = 163904UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2936,7 +2936,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_311f,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 163912,
+	.flow_sig_id = 163912UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2956,7 +2956,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2b87,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 180224,
+	.flow_sig_id = 180224UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2975,7 +2975,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5c4f,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 180232,
+	.flow_sig_id = 180232UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -2995,7 +2995,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1793,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 180288,
+	.flow_sig_id = 180288UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3015,7 +3015,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_485b,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 180296,
+	.flow_sig_id = 180296UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3036,7 +3036,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3447,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 229376,
+	.flow_sig_id = 229376UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3055,7 +3055,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_650f,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 229384,
+	.flow_sig_id = 229384UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3075,7 +3075,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2053,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 229440,
+	.flow_sig_id = 229440UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3095,7 +3095,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_511b,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 229448,
+	.flow_sig_id = 229448UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3116,7 +3116,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4b83,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 245760,
+	.flow_sig_id = 245760UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3136,7 +3136,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_13f7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 245768,
+	.flow_sig_id = 245768UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3157,7 +3157,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_37af,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 245824,
+	.flow_sig_id = 245824UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3178,7 +3178,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_6857,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 245832,
+	.flow_sig_id = 245832UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3200,7 +3200,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3d1f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 131072,
+	.flow_sig_id = 131072UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3217,7 +3217,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0563,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 131080,
+	.flow_sig_id = 131080UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3235,7 +3235,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_290b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 131136,
+	.flow_sig_id = 131136UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3253,7 +3253,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_59c3,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 131144,
+	.flow_sig_id = 131144UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3272,7 +3272,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5d1b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 196608,
+	.flow_sig_id = 196608UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3290,7 +3290,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_256f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 196616,
+	.flow_sig_id = 196616UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3309,7 +3309,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4937,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 196672,
+	.flow_sig_id = 196672UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3328,7 +3328,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_111b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 196680,
+	.flow_sig_id = 196680UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3348,7 +3348,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5f4b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 393216,
+	.flow_sig_id = 393216UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3366,7 +3366,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_275f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 393224,
+	.flow_sig_id = 393224UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3385,7 +3385,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4b67,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 393280,
+	.flow_sig_id = 393280UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3404,7 +3404,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_134b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 393288,
+	.flow_sig_id = 393288UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3424,7 +3424,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1683,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 458752,
+	.flow_sig_id = 458752UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3443,7 +3443,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_475b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 458760,
+	.flow_sig_id = 458760UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3463,7 +3463,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_02bf,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 458816,
+	.flow_sig_id = 458816UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3483,7 +3483,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3377,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 458824,
+	.flow_sig_id = 458824UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3504,7 +3504,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_19db,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 655360,
+	.flow_sig_id = 655360UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3522,7 +3522,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4a93,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 655368,
+	.flow_sig_id = 655368UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3541,7 +3541,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_05f7,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 655424,
+	.flow_sig_id = 655424UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3560,7 +3560,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_368f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 655432,
+	.flow_sig_id = 655432UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3580,7 +3580,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_39c7,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 720896,
+	.flow_sig_id = 720896UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3599,7 +3599,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_022b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 720904,
+	.flow_sig_id = 720904UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3619,7 +3619,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_25f3,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 720960,
+	.flow_sig_id = 720960UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3639,7 +3639,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_568b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 720968,
+	.flow_sig_id = 720968UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3660,7 +3660,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3c37,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 917504,
+	.flow_sig_id = 917504UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3679,7 +3679,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_041b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 917512,
+	.flow_sig_id = 917512UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3699,7 +3699,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2823,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 917568,
+	.flow_sig_id = 917568UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3719,7 +3719,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_58fb,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 917576,
+	.flow_sig_id = 917576UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3740,7 +3740,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5c33,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 983040,
+	.flow_sig_id = 983040UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3760,7 +3760,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2407,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 983048,
+	.flow_sig_id = 983048UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3781,7 +3781,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_482f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 983104,
+	.flow_sig_id = 983104UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3802,7 +3802,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1033,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 983112,
+	.flow_sig_id = 983112UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3824,7 +3824,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3887,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 32768,
+	.flow_sig_id = 32768UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3841,7 +3841,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_00bb,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 32776,
+	.flow_sig_id = 32776UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3859,7 +3859,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2493,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 32832,
+	.flow_sig_id = 32832UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3877,7 +3877,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_55db,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 32840,
+	.flow_sig_id = 32840UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3896,7 +3896,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5043,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3914,7 +3914,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1877,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 49160,
+	.flow_sig_id = 49160UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3933,7 +3933,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3baf,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 49216,
+	.flow_sig_id = 49216UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3952,7 +3952,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0443,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 49224,
+	.flow_sig_id = 49224UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3972,7 +3972,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5883,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 98304,
+	.flow_sig_id = 98304UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -3990,7 +3990,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_20b7,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 98312,
+	.flow_sig_id = 98312UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4009,7 +4009,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_44ef,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 98368,
+	.flow_sig_id = 98368UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4028,7 +4028,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0c83,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 98376,
+	.flow_sig_id = 98376UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4048,7 +4048,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_070b,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4067,7 +4067,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3873,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 114696,
+	.flow_sig_id = 114696UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4087,7 +4087,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5bab,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 114752,
+	.flow_sig_id = 114752UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4107,7 +4107,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_245f,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 114760,
+	.flow_sig_id = 114760UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4128,7 +4128,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_142b,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 163840,
+	.flow_sig_id = 163840UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4146,7 +4146,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4513,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 163848,
+	.flow_sig_id = 163848UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4165,7 +4165,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0037,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 163904,
+	.flow_sig_id = 163904UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4184,7 +4184,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_317f,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 163912,
+	.flow_sig_id = 163912UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4204,7 +4204,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2be7,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 180224,
+	.flow_sig_id = 180224UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4223,7 +4223,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5c2f,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 180232,
+	.flow_sig_id = 180232UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4243,7 +4243,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_17f3,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 180288,
+	.flow_sig_id = 180288UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4263,7 +4263,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_483b,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 180296,
+	.flow_sig_id = 180296UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4284,7 +4284,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3427,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 229376,
+	.flow_sig_id = 229376UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4303,7 +4303,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_656f,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 229384,
+	.flow_sig_id = 229384UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4323,7 +4323,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2033,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 229440,
+	.flow_sig_id = 229440UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4343,7 +4343,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_517b,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 229448,
+	.flow_sig_id = 229448UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4364,7 +4364,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4be3,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 245760,
+	.flow_sig_id = 245760UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4384,7 +4384,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1397,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 245768,
+	.flow_sig_id = 245768UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4405,7 +4405,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_37cf,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 245824,
+	.flow_sig_id = 245824UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4426,7 +4426,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_6837,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 245832,
+	.flow_sig_id = 245832UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4448,7 +4448,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3d7f,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 131072,
+	.flow_sig_id = 131072UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4465,7 +4465,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0503,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 131080,
+	.flow_sig_id = 131080UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4483,7 +4483,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_296b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 131136,
+	.flow_sig_id = 131136UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4501,7 +4501,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_59a3,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 131144,
+	.flow_sig_id = 131144UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4520,7 +4520,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5d7b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 196608,
+	.flow_sig_id = 196608UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4538,7 +4538,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_250f,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 196616,
+	.flow_sig_id = 196616UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4557,7 +4557,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4957,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 196672,
+	.flow_sig_id = 196672UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4576,7 +4576,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_117b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 196680,
+	.flow_sig_id = 196680UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4596,7 +4596,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5f2b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 393216,
+	.flow_sig_id = 393216UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4614,7 +4614,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_273f,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 393224,
+	.flow_sig_id = 393224UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4633,7 +4633,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4b07,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 393280,
+	.flow_sig_id = 393280UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4652,7 +4652,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_132b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 393288,
+	.flow_sig_id = 393288UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4672,7 +4672,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_16e3,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 458752,
+	.flow_sig_id = 458752UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4691,7 +4691,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_473b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 458760,
+	.flow_sig_id = 458760UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4711,7 +4711,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_02df,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 458816,
+	.flow_sig_id = 458816UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4731,7 +4731,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3317,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 458824,
+	.flow_sig_id = 458824UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4752,7 +4752,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_19bb,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 655360,
+	.flow_sig_id = 655360UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4770,7 +4770,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4af3,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 655368,
+	.flow_sig_id = 655368UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4789,7 +4789,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0597,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 655424,
+	.flow_sig_id = 655424UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4808,7 +4808,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_36ef,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 655432,
+	.flow_sig_id = 655432UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4828,7 +4828,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_39a7,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 720896,
+	.flow_sig_id = 720896UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4847,7 +4847,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_024b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 720904,
+	.flow_sig_id = 720904UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4867,7 +4867,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2593,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 720960,
+	.flow_sig_id = 720960UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4887,7 +4887,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_56eb,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 720968,
+	.flow_sig_id = 720968UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4908,7 +4908,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3c57,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 917504,
+	.flow_sig_id = 917504UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4927,7 +4927,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_047b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 917512,
+	.flow_sig_id = 917512UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4947,7 +4947,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2843,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 917568,
+	.flow_sig_id = 917568UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4967,7 +4967,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_589b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 917576,
+	.flow_sig_id = 917576UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -4988,7 +4988,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5c53,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 983040,
+	.flow_sig_id = 983040UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5008,7 +5008,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2467,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 983048,
+	.flow_sig_id = 983048UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5029,7 +5029,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_484f,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 983104,
+	.flow_sig_id = 983104UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5050,7 +5050,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1053,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 983112,
+	.flow_sig_id = 983112UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5072,7 +5072,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5ce1,
 	.class_tid = 1,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 4096,
+	.flow_sig_id = 4096UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5086,7 +5086,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4579,
 	.class_tid = 1,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 6144,
+	.flow_sig_id = 6144UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5101,7 +5101,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1735,
 	.class_tid = 1,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 16384,
+	.flow_sig_id = 16384UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5115,7 +5115,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_45bd,
 	.class_tid = 1,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 24576,
+	.flow_sig_id = 24576UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5130,7 +5130,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3feb,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 32768,
+	.flow_sig_id = 32768UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5145,7 +5145,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2bf7,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 32832,
+	.flow_sig_id = 32832UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5161,7 +5161,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5727,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5177,7 +5177,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4333,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 49216,
+	.flow_sig_id = 49216UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5194,7 +5194,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4453,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 131072,
+	.flow_sig_id = 131072UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5209,7 +5209,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_304f,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 131136,
+	.flow_sig_id = 131136UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5225,7 +5225,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_645f,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 196608,
+	.flow_sig_id = 196608UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5241,7 +5241,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_504b,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 196672,
+	.flow_sig_id = 196672UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5258,7 +5258,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5cc1,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 4096,
+	.flow_sig_id = 4096UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5273,7 +5273,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4559,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 6144,
+	.flow_sig_id = 6144UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5289,7 +5289,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2285,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 12288,
+	.flow_sig_id = 12288UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5305,7 +5305,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0b1d,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 14336,
+	.flow_sig_id = 14336UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5322,7 +5322,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0b49,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 20480,
+	.flow_sig_id = 20480UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5338,7 +5338,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5c95,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 22528,
+	.flow_sig_id = 22528UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5355,7 +5355,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_39c1,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 28672,
+	.flow_sig_id = 28672UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5372,7 +5372,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2259,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 30720,
+	.flow_sig_id = 30720UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5390,7 +5390,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1715,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 16384,
+	.flow_sig_id = 16384UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5405,7 +5405,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_459d,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 24576,
+	.flow_sig_id = 24576UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5421,7 +5421,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_571d,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5437,7 +5437,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1cd1,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 57344,
+	.flow_sig_id = 57344UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5454,7 +5454,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3711,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 81920,
+	.flow_sig_id = 81920UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5470,7 +5470,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_6599,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 90112,
+	.flow_sig_id = 90112UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5487,7 +5487,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0e55,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5504,7 +5504,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3cdd,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 122880,
+	.flow_sig_id = 122880UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5522,7 +5522,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5ca1,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 4096,
+	.flow_sig_id = 4096UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5537,7 +5537,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4539,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 6144,
+	.flow_sig_id = 6144UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5553,7 +5553,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_22e5,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 12288,
+	.flow_sig_id = 12288UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5569,7 +5569,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0b7d,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 14336,
+	.flow_sig_id = 14336UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5586,7 +5586,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0b29,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 20480,
+	.flow_sig_id = 20480UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5602,7 +5602,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5cf5,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 22528,
+	.flow_sig_id = 22528UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5619,7 +5619,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_39a1,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 28672,
+	.flow_sig_id = 28672UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5636,7 +5636,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2239,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 30720,
+	.flow_sig_id = 30720UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5654,7 +5654,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1775,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 16384,
+	.flow_sig_id = 16384UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5669,7 +5669,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_45fd,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 24576,
+	.flow_sig_id = 24576UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5685,7 +5685,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_577d,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5701,7 +5701,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1cb1,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 57344,
+	.flow_sig_id = 57344UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5718,7 +5718,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3771,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 81920,
+	.flow_sig_id = 81920UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5734,7 +5734,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_65f9,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 90112,
+	.flow_sig_id = 90112UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5751,7 +5751,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0e35,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5768,7 +5768,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3cbd,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 122880,
+	.flow_sig_id = 122880UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5786,7 +5786,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3fcb,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 32768,
+	.flow_sig_id = 32768UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5802,7 +5802,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2bd7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 32832,
+	.flow_sig_id = 32832UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5819,7 +5819,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5707,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5836,7 +5836,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4313,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 49216,
+	.flow_sig_id = 49216UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5854,7 +5854,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5fc7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 98304,
+	.flow_sig_id = 98304UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5871,7 +5871,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4bd3,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 98368,
+	.flow_sig_id = 98368UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5889,7 +5889,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0e4f,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5907,7 +5907,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_632f,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 114752,
+	.flow_sig_id = 114752UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5926,7 +5926,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1baf,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 163840,
+	.flow_sig_id = 163840UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5943,7 +5943,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_07bb,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 163904,
+	.flow_sig_id = 163904UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5961,7 +5961,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_32eb,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 180224,
+	.flow_sig_id = 180224UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5979,7 +5979,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1ef7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 180288,
+	.flow_sig_id = 180288UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -5998,7 +5998,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3bab,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 229376,
+	.flow_sig_id = 229376UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6016,7 +6016,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_27b7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 229440,
+	.flow_sig_id = 229440UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6035,7 +6035,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_52e7,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 245760,
+	.flow_sig_id = 245760UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6054,7 +6054,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3ef3,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 245824,
+	.flow_sig_id = 245824UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6074,7 +6074,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4473,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 131072,
+	.flow_sig_id = 131072UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6090,7 +6090,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_306f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 131136,
+	.flow_sig_id = 131136UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6107,7 +6107,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_647f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 196608,
+	.flow_sig_id = 196608UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6124,7 +6124,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_506b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 196672,
+	.flow_sig_id = 196672UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6142,7 +6142,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_66af,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 393216,
+	.flow_sig_id = 393216UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6159,7 +6159,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_525b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 393280,
+	.flow_sig_id = 393280UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6177,7 +6177,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1de7,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 458752,
+	.flow_sig_id = 458752UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6195,7 +6195,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0993,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 458816,
+	.flow_sig_id = 458816UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6214,7 +6214,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_213f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 655360,
+	.flow_sig_id = 655360UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6231,7 +6231,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0d2b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 655424,
+	.flow_sig_id = 655424UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6249,7 +6249,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_413b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 720896,
+	.flow_sig_id = 720896UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6267,7 +6267,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2cd7,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 720960,
+	.flow_sig_id = 720960UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6286,7 +6286,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_436b,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 917504,
+	.flow_sig_id = 917504UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6304,7 +6304,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2f07,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 917568,
+	.flow_sig_id = 917568UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6323,7 +6323,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_6317,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 983040,
+	.flow_sig_id = 983040UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6342,7 +6342,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4f03,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 983104,
+	.flow_sig_id = 983104UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6362,7 +6362,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3fab,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 32768,
+	.flow_sig_id = 32768UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6378,7 +6378,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2bb7,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 32832,
+	.flow_sig_id = 32832UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6395,7 +6395,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5767,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 49152,
+	.flow_sig_id = 49152UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6412,7 +6412,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4373,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 49216,
+	.flow_sig_id = 49216UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6430,7 +6430,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5fa7,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 98304,
+	.flow_sig_id = 98304UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6447,7 +6447,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4bb3,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 98368,
+	.flow_sig_id = 98368UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6465,7 +6465,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0e2f,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 114688,
+	.flow_sig_id = 114688UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6483,7 +6483,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_634f,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 114752,
+	.flow_sig_id = 114752UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6502,7 +6502,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1bcf,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 163840,
+	.flow_sig_id = 163840UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6519,7 +6519,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_07db,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 163904,
+	.flow_sig_id = 163904UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6537,7 +6537,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_328b,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 180224,
+	.flow_sig_id = 180224UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6555,7 +6555,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1e97,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 180288,
+	.flow_sig_id = 180288UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6574,7 +6574,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3bcb,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 229376,
+	.flow_sig_id = 229376UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6592,7 +6592,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_27d7,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 229440,
+	.flow_sig_id = 229440UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6611,7 +6611,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_5287,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 245760,
+	.flow_sig_id = 245760UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6630,7 +6630,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3e93,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 245824,
+	.flow_sig_id = 245824UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6650,7 +6650,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4413,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 131072,
+	.flow_sig_id = 131072UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6666,7 +6666,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_300f,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 131136,
+	.flow_sig_id = 131136UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6683,7 +6683,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_641f,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 196608,
+	.flow_sig_id = 196608UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6700,7 +6700,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_500b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 196672,
+	.flow_sig_id = 196672UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6718,7 +6718,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_66cf,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 393216,
+	.flow_sig_id = 393216UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6735,7 +6735,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_523b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 393280,
+	.flow_sig_id = 393280UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6753,7 +6753,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1d87,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 458752,
+	.flow_sig_id = 458752UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6771,7 +6771,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_09f3,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 458816,
+	.flow_sig_id = 458816UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6790,7 +6790,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_215f,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 655360,
+	.flow_sig_id = 655360UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6807,7 +6807,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_0d4b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 655424,
+	.flow_sig_id = 655424UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6825,7 +6825,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_415b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 720896,
+	.flow_sig_id = 720896UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6843,7 +6843,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2cb7,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 720960,
+	.flow_sig_id = 720960UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6862,7 +6862,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_430b,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 917504,
+	.flow_sig_id = 917504UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6880,7 +6880,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2f67,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 917568,
+	.flow_sig_id = 917568UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6899,7 +6899,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_6377,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 983040,
+	.flow_sig_id = 983040UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6918,7 +6918,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_4f63,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 983104,
+	.flow_sig_id = 983104UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6938,7 +6938,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29b5,
 	.class_tid = 1,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6953,7 +6953,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29ad,
 	.class_tid = 1,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6968,7 +6968,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29b7,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -6984,7 +6984,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1583,
 	.class_tid = 1,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 72,
+	.flow_sig_id = 72UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7001,7 +7001,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29af,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7017,7 +7017,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_159b,
 	.class_tid = 1,
 	.hdr_sig_id = 3,
-	.flow_sig_id = 72,
+	.flow_sig_id = 72UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7034,7 +7034,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2995,
 	.class_tid = 1,
 	.hdr_sig_id = 4,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7050,7 +7050,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_298d,
 	.class_tid = 1,
 	.hdr_sig_id = 5,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7066,7 +7066,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29f5,
 	.class_tid = 1,
 	.hdr_sig_id = 6,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7082,7 +7082,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29ed,
 	.class_tid = 1,
 	.hdr_sig_id = 7,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7098,7 +7098,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_2997,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7115,7 +7115,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_15a3,
 	.class_tid = 1,
 	.hdr_sig_id = 8,
-	.flow_sig_id = 72,
+	.flow_sig_id = 72UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7133,7 +7133,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_298f,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7150,7 +7150,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_15bb,
 	.class_tid = 1,
 	.hdr_sig_id = 9,
-	.flow_sig_id = 72,
+	.flow_sig_id = 72UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7168,7 +7168,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29f7,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7185,7 +7185,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_15c3,
 	.class_tid = 1,
 	.hdr_sig_id = 10,
-	.flow_sig_id = 72,
+	.flow_sig_id = 72UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7203,7 +7203,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_29ef,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 8,
+	.flow_sig_id = 8UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7220,7 +7220,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_15db,
 	.class_tid = 1,
 	.hdr_sig_id = 11,
-	.flow_sig_id = 72,
+	.flow_sig_id = 72UL,
 	.flow_pattern_id = 2,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7238,7 +7238,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_1151,
 	.class_tid = 1,
 	.hdr_sig_id = 12,
-	.flow_sig_id = 16384,
+	.flow_sig_id = 16384UL,
 	.flow_pattern_id = 3,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7255,7 +7255,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_315d,
 	.class_tid = 1,
 	.hdr_sig_id = 12,
-	.flow_sig_id = 81920,
+	.flow_sig_id = 81920UL,
 	.flow_pattern_id = 3,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7273,7 +7273,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_3612,
 	.class_tid = 2,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 81920,
+	.flow_sig_id = 81920UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7292,7 +7292,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_66da,
 	.class_tid = 2,
 	.hdr_sig_id = 0,
-	.flow_sig_id = 81928,
+	.flow_sig_id = 81928UL,
 	.flow_pattern_id = 0,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7312,7 +7312,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_e082,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1313792,
+	.flow_sig_id = 1313792UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7332,7 +7332,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_ab46,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1321984,
+	.flow_sig_id = 1321984UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7353,7 +7353,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_c82a,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 3410944,
+	.flow_sig_id = 3410944UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7374,7 +7374,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_f9a2,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 3419136,
+	.flow_sig_id = 3419136UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7396,7 +7396,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_d8ce,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 538184704,
+	.flow_sig_id = 538184704UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7417,7 +7417,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_a2d2,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 538192896,
+	.flow_sig_id = 538192896UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7439,7 +7439,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_c076,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 540281856,
+	.flow_sig_id = 540281856UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7461,7 +7461,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_f1ee,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 540290048,
+	.flow_sig_id = 540290048UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7484,7 +7484,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_a96e,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1075055616,
+	.flow_sig_id = 1075055616UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7505,7 +7505,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_dae6,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1075063808,
+	.flow_sig_id = 1075063808UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7527,7 +7527,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_c7aa,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1077152768,
+	.flow_sig_id = 1077152768UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7549,7 +7549,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_c26e,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1077160960,
+	.flow_sig_id = 1077160960UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7572,7 +7572,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_a0fa,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1611926528,
+	.flow_sig_id = 1611926528UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7594,7 +7594,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_d272,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1611934720,
+	.flow_sig_id = 1611934720UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7617,7 +7617,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_fff6,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1614023680,
+	.flow_sig_id = 1614023680UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7640,7 +7640,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_e16e,
 	.class_tid = 2,
 	.hdr_sig_id = 1,
-	.flow_sig_id = 1614031872,
+	.flow_sig_id = 1614031872UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7664,7 +7664,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_e165,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 1313792,
+	.flow_sig_id = 1313792UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7684,7 +7684,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_aaa1,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 1321984,
+	.flow_sig_id = 1321984UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7705,7 +7705,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_c9cd,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 3410944,
+	.flow_sig_id = 3410944UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7726,7 +7726,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_f845,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 3419136,
+	.flow_sig_id = 3419136UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7748,7 +7748,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_90f9,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 2148797440,
+	.flow_sig_id = 2148797440UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7769,7 +7769,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_c371,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 2148805632,
+	.flow_sig_id = 2148805632UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7791,7 +7791,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_e19d,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 2150894592,
+	.flow_sig_id = 2150894592UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7813,7 +7813,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_d015,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 2150902784,
+	.flow_sig_id = 2150902784UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7836,7 +7836,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_8c09,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 4296281088,
+	.flow_sig_id = 4296281088UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7857,7 +7857,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_be89,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 4296289280,
+	.flow_sig_id = 4296289280UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7879,7 +7879,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_ddad,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 4298378240,
+	.flow_sig_id = 4298378240UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =
@@ -7901,7 +7901,7 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
 	.class_hid = BNXT_ULP_CLASS_HID_cc2d,
 	.class_tid = 2,
 	.hdr_sig_id = 2,
-	.flow_sig_id = 4298386432,
+	.flow_sig_id = 4298386432UL,
 	.flow_pattern_id = 1,
 	.app_sig = 0,
 	.hdr_sig = { .bits =

Lines of this file are not shown. View the raw message.

drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h +2 -2
index 31a94c14dc..8706e45f28 100644

Lines of this file are not shown. View the raw message.

drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c +123 -128

251 lines not on this page · raw message

The rest of this diff is not shown. View the raw message.

Signature · 1 line
2.17.1

Part of the diff is not shown here. View the raw message.

#37 lore raw

PATCH v3 7/20 net/bnxt: support inner IP header for GRE tunnel flows

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

This change allows adding IP header matches for GRE flows that does not specify outer IP header in the flow match pattern.

---
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      | 7 ++++---
 drivers/net/bnxt/tf_ulp/ulp_template_struct.h | 2 +-
 2 files changed, 5 insertions(+), 4 deletions(-)
drivers/net/bnxt/tf_ulp/ulp_rte_parser.c +4 -3
index 40da953f06..605c29223c 100644
@@ -1119,7 +1119,8 @@ ulp_rte_ipv4_hdr_handler(const struct rte_flow_item *item,
 
 	/* Set the ipv4 header bitmap and computed l3 header bitmaps */
 	if (ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV4) ||
-	    ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV6)) {
+	    ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV6) ||
+	    ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_L3_TUN)) {
 		ULP_BITMAP_SET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_I_IPV4);
 		ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L3, 1);
 		inner_flag = 1;
@@ -1245,7 +1246,8 @@ ulp_rte_ipv6_hdr_handler(const struct rte_flow_item *item,
 
 	/* Set the ipv6 header bitmap and computed l3 header bitmaps */
 	if (ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV4) ||
-	    ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV6)) {
+	    ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_O_IPV6) ||
+	    ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_L3_TUN)) {
 		ULP_BITMAP_SET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_I_IPV6);
 		ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L3, 1);
 		inner_flag = 1;
@@ -2127,7 +2129,6 @@ ulp_rte_vxlan_decap_act_handler(const struct rte_flow_action *action_item
 		       BNXT_ULP_ACT_BIT_VXLAN_DECAP);
 	/* Update computational field with tunnel decap info */
 	ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_L3_TUN_DECAP, 1);
-	ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_L3_TUN, 1);
 	return BNXT_TF_RC_SUCCESS;
 }
 
drivers/net/bnxt/tf_ulp/ulp_template_struct.h +1 -1
index d3bfb8c12d..7d1bc06a3e 100644
@@ -27,7 +27,7 @@
 #define BNXT_ULP_PROTO_HDR_UDP_NUM	4
 #define BNXT_ULP_PROTO_HDR_TCP_NUM	9
 #define BNXT_ULP_PROTO_HDR_VXLAN_NUM	4
-#define BNXT_ULP_PROTO_HDR_GRE_NUM	6
+#define BNXT_ULP_PROTO_HDR_GRE_NUM	2
 #define BNXT_ULP_PROTO_HDR_ICMP_NUM	5
 #define BNXT_ULP_PROTO_HDR_MAX		128
 #define BNXT_ULP_PROTO_HDR_ENCAP_MAX	64
Signature · 1 line
2.17.1
#38 lore raw

PATCH v3 8/20 net/bnxt: get TruFlow version

In reply to Venkat Duvvuru

From: Jay Ding <[email protected]>

Implement tf_get_version that returns TruFlow version numbers and CFA resources capbilities.

---
 drivers/net/bnxt/hsi_struct_def_dpdk.h   | 15 ++--
 drivers/net/bnxt/tf_core/tf_core.c       | 29 ++++++++
 drivers/net/bnxt/tf_core/tf_core.h       | 75 ++++++++++++++++++++
 drivers/net/bnxt/tf_core/tf_device.h     | 50 ++++++++++++++
 drivers/net/bnxt/tf_core/tf_device_p4.c  | 65 +++++++++++++++++-
 drivers/net/bnxt/tf_core/tf_device_p4.h  | 79 +++++++++++++++++++++
 drivers/net/bnxt/tf_core/tf_device_p58.c | 65 +++++++++++++++++-
 drivers/net/bnxt/tf_core/tf_device_p58.h | 87 ++++++++++++++++++++++++
 drivers/net/bnxt/tf_core/tf_msg.c        | 35 ++++++++++
 drivers/net/bnxt/tf_core/tf_msg.h        | 19 ++++++
 10 files changed, 513 insertions(+), 6 deletions(-)
drivers/net/bnxt/hsi_struct_def_dpdk.h +11 -4
index 77981b5cdb..6d04e39e48 100644
@@ -1058,8 +1058,8 @@ struct hwrm_err_output {
 #define HWRM_VERSION_MINOR 10
 #define HWRM_VERSION_UPDATE 2
 /* non-zero means beta version */
-#define HWRM_VERSION_RSVD 55
-#define HWRM_VERSION_STR "1.10.2.55"
+#define HWRM_VERSION_RSVD 58
+#define HWRM_VERSION_STR "1.10.2.58"
 
 /****************
  * hwrm_ver_get *
@@ -45178,7 +45178,7 @@ struct hwrm_tf_version_get_input {
 	uint64_t	resp_addr;
 } __rte_packed;
 
-/* hwrm_tf_version_get_output (size:128b/16B) */
+/* hwrm_tf_version_get_output (size:256b/32B) */
 struct hwrm_tf_version_get_output {
 	/* The specific error status for the command. */
 	uint16_t	error_code;
@@ -45195,7 +45195,14 @@ struct hwrm_tf_version_get_output {
 	/* Version Update number. */
 	uint8_t	update;
 	/* unused. */
-	uint8_t	unused0[4];
+	uint8_t	unused0[5];
+	/*
+	 * This field is used to indicate device's capabilities and
+	 * configurations.
+	 */
+	uint64_t	dev_caps_cfg;
+	/* unused. */
+	uint8_t	unused1[7];
 	/*
 	 * This field is used in Output records to indicate that the output
 	 * is completely written to RAM. This field should be read as '1'
drivers/net/bnxt/tf_core/tf_core.c +29 -0
index 936102c804..86dfec0eb4 100644
@@ -1802,3 +1802,32 @@ int tf_get_session_info(struct tf *tfp,
 
 	return 0;
 }
+
+int tf_get_version(struct tf *tfp,
+		   struct tf_get_version_parms *parms)
+{
+	int rc;
+	struct tf_dev_info dev;
+
+	TF_CHECK_PARMS2(tfp, parms);
+
+	/* This function can be called before open session, filter
+	 * out any non-supported device types on the Core side.
+	 */
+	if (parms->device_type != TF_DEVICE_TYPE_WH &&
+	    parms->device_type != TF_DEVICE_TYPE_THOR &&
+	    parms->device_type != TF_DEVICE_TYPE_SR) {
+		TFP_DRV_LOG(ERR,
+			    "Unsupported device type %d\n",
+			    parms->device_type);
+		return -ENOTSUP;
+	}
+
+	tf_dev_bind_ops(parms->device_type, &dev);
+
+	rc = tf_msg_get_version(parms->bp, &dev, parms);
+	if (rc)
+		return rc;
+
+	return 0;
+}
drivers/net/bnxt/tf_core/tf_core.h +75 -0

79 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device.h +50 -0

72 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device_p4.c +64 -1

81 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device_p4.h +79 -0

83 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device_p58.c +64 -1

87 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device_p58.h +87 -0

91 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_msg.c +35 -0
index ea6e2af7ce..25bf026658 100644
@@ -2306,3 +2306,38 @@ tf_msg_set_if_tbl_entry(struct tf *tfp,
 
 	return 0;
 }
+
+int
+tf_msg_get_version(struct bnxt *bp,
+		   struct tf_dev_info *dev,
+		   struct tf_get_version_parms *params)
+
+{
+	int rc;
+	struct hwrm_tf_version_get_input req = { 0 };
+	struct hwrm_tf_version_get_output resp = { 0 };
+	struct tfp_send_msg_parms parms = { 0 };
+
+	/* Populate the request */
+	parms.tf_type = HWRM_TF_VERSION_GET,
+	parms.req_data = (uint32_t *)&req;
+	parms.req_size = sizeof(req);
+	parms.resp_data = (uint32_t *)&resp;
+	parms.resp_size = sizeof(resp);
+	parms.mailbox = dev->ops->tf_dev_get_mailbox();
+
+	rc = tfp_send_msg_direct(bp,
+				 &parms);
+
+	params->major = resp.major;
+	params->minor = resp.minor;
+	params->update = resp.update;
+
+	dev->ops->tf_dev_map_hcapi_caps(resp.dev_caps_cfg,
+					&params->dev_ident_caps,
+					&params->dev_tcam_caps,
+					&params->dev_tbl_caps,
+					&params->dev_em_caps);
+
+	return rc;
+}
drivers/net/bnxt/tf_core/tf_msg.h +19 -0
index 718bc2f3b2..08d20cdd7a 100644
@@ -738,4 +738,23 @@ int tf_msg_set_if_tbl_entry(struct tf *tfp,
 int tf_msg_get_if_tbl_entry(struct tf *tfp,
 			    struct tf_if_tbl_get_parms *params);
 
+/**
+ * Send get version request to the firmware.
+ *
+ * [in] bp
+ *   Pointer to bnxt handle
+ *
+ * [in] dev
+ *   Pointer to the associated device
+ *
+ * [in/out] parms
+ *   Pointer to the version info parameter
+ *
+ * Returns:
+ *  0 on Success else internal Truflow error
+ */
+int
+tf_msg_get_version(struct bnxt *bp,
+		   struct tf_dev_info *dev,
+		   struct tf_get_version_parms *parms);
 #endif  /* _TF_MSG_H_ */
Signature · 1 line
2.17.1
#39 lore raw

PATCH v3 9/20 net/bnxt: increase flow scale for Thor

In reply to Venkat Duvvuru

From: Shahaji Bhosle <[email protected]>

* Updated defines and data types to allow 256 VFRs.
* Increased the encap record cache to support 256 to 4K entries. So VxLAN connections can be scaled to 4K entries.

---
 drivers/net/bnxt/bnxt.h                        |  6 +++++-
 drivers/net/bnxt/bnxt_cpr.c                    |  2 +-
 drivers/net/bnxt/bnxt_ethdev.c                 | 18 +++++++++---------
 drivers/net/bnxt/bnxt_reps.c                   |  3 +--
 drivers/net/bnxt/tf_ulp/bnxt_ulp.h             |  2 +-
 .../generic_templates/ulp_template_db_tbl.c    |  8 ++++----
 drivers/net/bnxt/tf_ulp/ulp_def_rules.c        |  6 +++---
 7 files changed, 24 insertions(+), 21 deletions(-)
drivers/net/bnxt/bnxt.h +5 -1
index c65e360446..5c064fd119 100644
@@ -240,7 +240,11 @@ struct bnxt_parent_info {
 struct bnxt_pf_info {
 #define BNXT_FIRST_PF_FID	1
 #define BNXT_MAX_VFS(bp)	((bp)->pf->max_vfs)
-#define BNXT_MAX_VF_REPS	64
+#define BNXT_MAX_VF_REPS_WH     64
+#define BNXT_MAX_VF_REPS_TH     256
+#define BNXT_MAX_VF_REPS(bp) \
+				(BNXT_CHIP_P5(bp) ? BNXT_MAX_VF_REPS_TH : \
+				BNXT_MAX_VF_REPS_WH)
 #define BNXT_TOTAL_VFS(bp)	((bp)->pf->total_vfs)
 #define BNXT_FIRST_VF_FID	128
 #define BNXT_PF_RINGS_USED(bp)	bnxt_get_num_queues(bp)
drivers/net/bnxt/bnxt_cpr.c +1 -1
index 63ff02a198..6bb70d516e 100644
@@ -74,7 +74,7 @@ bnxt_process_default_vnic_change(struct bnxt *bp,
 			BNXT_DEFAULT_VNIC_CHANGE_VF_ID_SFT;
 	PMD_DRV_LOG(INFO, "async event received vf_id 0x%x\n", vf_fid);
 
-	for (vf_id = 0; vf_id < BNXT_MAX_VF_REPS; vf_id++) {
+	for (vf_id = 0; vf_id < BNXT_MAX_VF_REPS(bp); vf_id++) {
 		eth_dev = bp->rep_info[vf_id].vfr_eth_dev;
 		if (!eth_dev)
 			continue;
drivers/net/bnxt/bnxt_ethdev.c +9 -9
index bf034db336..8c72ab8fd1 100644
@@ -1179,7 +1179,7 @@ void bnxt_print_link_info(struct rte_eth_dev *eth_dev)
 	struct rte_eth_link *link = &eth_dev->data->dev_link;
 
 	if (link->link_status)
-		PMD_DRV_LOG(INFO, "Port %d Link Up - speed %u Mbps - %s\n",
+		PMD_DRV_LOG(DEBUG, "Port %d Link Up - speed %u Mbps - %s\n",
 			eth_dev->data->port_id,
 			(uint32_t)link->link_speed,
 			(link->link_duplex == ETH_LINK_FULL_DUPLEX) ?
@@ -6034,7 +6034,7 @@ static int bnxt_init_rep_info(struct bnxt *bp)
 		return 0;
 
 	bp->rep_info = rte_zmalloc("bnxt_rep_info",
-				   sizeof(bp->rep_info[0]) * BNXT_MAX_VF_REPS,
+				   sizeof(bp->rep_info[0]) * BNXT_MAX_VF_REPS(bp),
 				   0);
 	if (!bp->rep_info) {
 		PMD_DRV_LOG(ERR, "Failed to alloc memory for rep info\n");
@@ -6076,7 +6076,9 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
 {
 	struct rte_eth_dev *vf_rep_eth_dev;
 	char name[RTE_ETH_NAME_MAX_LEN];
-	struct bnxt *backing_bp;
+	struct bnxt *backing_bp = backing_eth_dev->data->dev_private;
+	uint16_t max_vf_reps = BNXT_MAX_VF_REPS(backing_bp);
+
 	uint16_t num_rep;
 	int i, ret = 0;
 	struct rte_kvargs *kvlist = NULL;
@@ -6089,9 +6091,9 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
 		return -ENOTSUP;
 	}
 	num_rep = eth_da->nb_representor_ports;
-	if (num_rep > BNXT_MAX_VF_REPS) {
+	if (num_rep > max_vf_reps) {
 		PMD_DRV_LOG(ERR, "nb_representor_ports = %d > %d MAX VF REPS\n",
-			    num_rep, BNXT_MAX_VF_REPS);
+			    num_rep, max_vf_reps);
 		return -EINVAL;
 	}
 
@@ -6102,8 +6104,6 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
 		return -EINVAL;
 	}
 
-	backing_bp = backing_eth_dev->data->dev_private;
-
 	if (!(BNXT_PF(backing_bp) || BNXT_VF_IS_TRUSTED(backing_bp))) {
 		PMD_DRV_LOG(ERR,
 			    "Not a PF or trusted VF. No Representor support\n");
@@ -6123,9 +6123,9 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,
 			.parent_dev = backing_eth_dev
 		};
 
-		if (representor.vf_id >= BNXT_MAX_VF_REPS) {
+		if (representor.vf_id >= max_vf_reps) {
 			PMD_DRV_LOG(ERR, "VF-Rep id %d >= %d MAX VF ID\n",
-				    representor.vf_id, BNXT_MAX_VF_REPS);
+				    representor.vf_id, max_vf_reps);
 			continue;
 		}
 
drivers/net/bnxt/bnxt_reps.c +1 -2
index b7e88e013a..988f5a33a7 100644
@@ -210,7 +210,6 @@ int bnxt_representor_init(struct rte_eth_dev *eth_dev, void *params)
 	eth_dev->data->dev_link.link_status = link->link_status;
 	eth_dev->data->dev_link.link_autoneg = link->link_autoneg;
 
-	PMD_DRV_LOG(INFO, "calling bnxt_print_link_info\n");
 	bnxt_print_link_info(eth_dev);
 
 	PMD_DRV_LOG(INFO,
@@ -821,7 +820,7 @@ int bnxt_rep_stop_all(struct bnxt *bp)
 	if (!bp->rep_info)
 		return 0;
 
-	for (vf_id = 0; vf_id < BNXT_MAX_VF_REPS; vf_id++) {
+	for (vf_id = 0; vf_id < BNXT_MAX_VF_REPS(bp); vf_id++) {
 		rep_eth_dev = bp->rep_info[vf_id].vfr_eth_dev;
 		if (!rep_eth_dev)
 			continue;
drivers/net/bnxt/tf_ulp/bnxt_ulp.h +1 -1
index 68f1470c61..960a5a0c93 100644
@@ -262,7 +262,7 @@ bnxt_ulp_cntxt_ptr2_ulp_flags_get(struct bnxt_ulp_context *ulp_ctx,
 				  uint32_t *flags);
 
 int32_t
-bnxt_ulp_get_df_rule_info(uint8_t port_id, struct bnxt_ulp_context *ulp_ctx,
+bnxt_ulp_get_df_rule_info(uint16_t port_id, struct bnxt_ulp_context *ulp_ctx,
 			  struct bnxt_ulp_df_rule_info *info);
 
 struct bnxt_ulp_vfr_rule_info*
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c +4 -4
index 5383e2cd70..e43e341927 100644
@@ -3,7 +3,7 @@
  * All rights reserved.
  */
 
-/* date: Thu Sep  9 11:11:05 2021 */
+/* date: Thu Sep 16 11:49:55 2021 */
 
 #include "ulp_template_db_enum.h"
 #include "ulp_template_db_field.h"
@@ -164,12 +164,12 @@ struct bnxt_ulp_generic_tbl_params ulp_generic_tbl_params[] = {
 	},
 	[BNXT_ULP_RESOURCE_SUB_TYPE_GENERIC_TABLE_VXLAN_ENCAP_REC_CACHE << 1 |
 		BNXT_ULP_DIRECTION_EGRESS] = {
-	.name                    = "INGRESS GEN_TABLE_VXLAN_ENCAP_REC_CACHE",
-	.result_num_entries      = 256,
+	.name                    = "EGRESS GEN_TABLE_VXLAN_ENCAP_REC_CACHE",
+	.result_num_entries      = 4096,
 	.result_num_bytes        = 6,
 	.key_num_bytes           = 17,
 	.num_buckets             = 8,
-	.hash_tbl_entries        = 1024,
+	.hash_tbl_entries        = 16384,
 	.result_byte_order       = BNXT_ULP_BYTE_ORDER_LE
 	}
 };
drivers/net/bnxt/tf_ulp/ulp_def_rules.c +3 -3
index d8336d164e..01233c0f5e 100644
@@ -441,7 +441,7 @@ void
 bnxt_ulp_destroy_df_rules(struct bnxt *bp, bool global)
 {
 	struct bnxt_ulp_df_rule_info *info;
-	uint8_t port_id;
+	uint16_t port_id;
 
 	if (!BNXT_TRUFLOW_EN(bp) ||
 	    BNXT_ETH_DEV_IS_REPRESENTOR(bp->eth_dev))
@@ -505,7 +505,7 @@ int32_t
 bnxt_ulp_create_df_rules(struct bnxt *bp)
 {
 	struct bnxt_ulp_df_rule_info *info;
-	uint8_t port_id;
+	uint16_t port_id;
 	int rc = 0;
 
 	if (!BNXT_TRUFLOW_EN(bp) ||
@@ -562,7 +562,7 @@ bnxt_ulp_create_vfr_default_rules(struct rte_eth_dev *vfr_ethdev)
 	struct rte_eth_dev *parent_dev = vfr->parent_dev;
 	struct bnxt *bp = parent_dev->data->dev_private;
 	uint16_t vfr_port_id = vfr_ethdev->data->port_id;
-	uint8_t port_id;
+	uint16_t port_id;
 	int rc;
 
 	if (!bp || !BNXT_TRUFLOW_EN(bp))
Signature · 1 line
2.17.1
#40 lore raw

PATCH v3 10/20 net/bnxt: remove accumulation of stats devargs argument

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

The accumulation of flow counters is not determined by the application device arguments instead it is dictated by the platform capabilities whether to do software based accumulation or not.

Change-Id I7275a0ed6ab089358e0a95f43d6291ec65ebe030
---
 drivers/net/bnxt/bnxt.h              |  3 --
 drivers/net/bnxt/bnxt_ethdev.c       | 53 ----------------------------
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c   |  8 -----
 drivers/net/bnxt/tf_ulp/bnxt_ulp.h   |  1 -
 drivers/net/bnxt/tf_ulp/ulp_fc_mgr.c | 12 +++----
 5 files changed, 4 insertions(+), 73 deletions(-)
drivers/net/bnxt/bnxt.h +0 -3
index 5c064fd119..5cc4a5afae 100644
@@ -718,11 +718,8 @@ struct bnxt {
 	uint32_t			flags2;
 #define BNXT_FLAGS2_PTP_TIMESYNC_ENABLED	BIT(0)
 #define BNXT_FLAGS2_PTP_ALARM_SCHEDULED		BIT(1)
-#define	BNXT_FLAGS2_ACCUM_STATS_EN		BIT(2)
 #define BNXT_P5_PTP_TIMESYNC_ENABLED(bp)	\
 	((bp)->flags2 & BNXT_FLAGS2_PTP_TIMESYNC_ENABLED)
-#define	BNXT_ACCUM_STATS_EN(bp)			\
-	((bp)->flags2 & BNXT_FLAGS2_ACCUM_STATS_EN)
 
 	uint16_t		chip_num;
 #define CHIP_NUM_58818		0xd818
drivers/net/bnxt/bnxt_ethdev.c +0 -53

83 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/bnxt_ulp.c +0 -8
index 2ac1a8625f..7deacd1f3e 100644
@@ -1490,14 +1490,6 @@ bnxt_ulp_port_init(struct bnxt *bp)
 		goto jump_to_error;
 	}
 
-	/* set the accumulation of the stats */
-	if (BNXT_ACCUM_STATS_EN(bp))
-		bp->ulp_ctx->cfg_data->accum_stats = true;
-
-	BNXT_TF_DBG(DEBUG, "BNXT Port:%d ULP port init, accum_stats:%d\n",
-		    bp->eth_dev->data->port_id,
-		    bp->ulp_ctx->cfg_data->accum_stats);
-
 	/* set the unicast mode */
 	if (bnxt_ulp_cntxt_ptr2_ulp_flags_get(bp->ulp_ctx, &ulp_flags)) {
 		BNXT_TF_DBG(ERR, "Error in getting ULP context flags\n");
drivers/net/bnxt/tf_ulp/bnxt_ulp.h +0 -1
index 960a5a0c93..17c6898196 100644
@@ -92,7 +92,6 @@ struct bnxt_ulp_data {
 #define	BNXT_ULP_TUN_ENTRY_INVALID	-1
 #define	BNXT_ULP_MAX_TUN_CACHE_ENTRIES	16
 	struct bnxt_tun_cache_entry	tun_tbl[BNXT_ULP_MAX_TUN_CACHE_ENTRIES];
-	bool				accum_stats;
 	uint8_t				app_id;
 	uint8_t				num_shared_clients;
 	struct bnxt_flow_app_tun_ent	app_tun[BNXT_ULP_MAX_TUN_CACHE_ENTRIES];
drivers/net/bnxt/tf_ulp/ulp_fc_mgr.c +4 -8
index d6b4f93d31..92243083b5 100644
@@ -396,21 +396,17 @@ static int ulp_get_single_flow_stat(struct bnxt_ulp_context *ctxt,
 		return rc;
 	}
 
-	/* TBD - Get PKT/BYTE COUNT SHIFT/MASK from Template */
+	/* PKT/BYTE COUNT SHIFT/MASK are device specific */
 	sw_cntr_indx = hw_cntr_id - fc_info->shadow_hw_tbl[dir].start_idx;
 	sw_acc_tbl_entry = &fc_info->sw_acc_tbl[dir][sw_cntr_indx];
+
 	/* Some dpdk applications may accumulate the flow counters while some
 	 * may not. In cases where the application is accumulating the counters
 	 * the PMD need not do the accumulation itself and viceversa to report
 	 * the correct flow counters.
 	 */
-	if (ctxt->cfg_data->accum_stats) {
-		sw_acc_tbl_entry->pkt_count += FLOW_CNTR_PKTS(stats, dparms);
-		sw_acc_tbl_entry->byte_count += FLOW_CNTR_BYTES(stats, dparms);
-	} else {
-		sw_acc_tbl_entry->pkt_count = FLOW_CNTR_PKTS(stats, dparms);
-		sw_acc_tbl_entry->byte_count = FLOW_CNTR_BYTES(stats, dparms);
-	}
+	sw_acc_tbl_entry->pkt_count += FLOW_CNTR_PKTS(stats, dparms);
+	sw_acc_tbl_entry->byte_count += FLOW_CNTR_BYTES(stats, dparms);
 
 	/* Update the parent counters if it is child flow */
 	if (sw_acc_tbl_entry->pc_flow_idx & FLOW_CNTR_PC_FLOW_VALID) {
Signature · 1 line
2.17.1
#41 lore raw

PATCH v3 11/20 net/bnxt: fix clang compiler warnings

In reply to Venkat Duvvuru

From: Shahaji Bhosle <[email protected]>

Typecast flow_item type, action_item type and the ENUMs to uint32_t before comparing.

Fixes 53a0d4f7663 ("net/bnxt: support flow API item parsing")
---
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/net/bnxt/tf_ulp/ulp_rte_parser.c +4 -4
index 605c29223c..d21c088d59 100644
@@ -137,10 +137,10 @@ bnxt_ulp_rte_parser_hdr_parse(const struct rte_flow_item pattern[],
 
 	/* Parse all the items in the pattern */
 	while (item && item->type != RTE_FLOW_ITEM_TYPE_END) {
-		if (item->type >= (uint32_t)
+		if (item->type >= (typeof(item->type))
 		    BNXT_RTE_FLOW_ITEM_TYPE_END) {
 			if (item->type >=
-			    (uint32_t)BNXT_RTE_FLOW_ITEM_TYPE_LAST)
+			    (typeof(item->type))BNXT_RTE_FLOW_ITEM_TYPE_LAST)
 				goto hdr_parser_error;
 			/* get the header information */
 			hdr_info = &ulp_vendor_hdr_info[item->type -
@@ -186,9 +186,9 @@ bnxt_ulp_rte_parser_act_parse(const struct rte_flow_action actions[],
 	/* Parse all the items in the pattern */
 	while (action_item && action_item->type != RTE_FLOW_ACTION_TYPE_END) {
 		if (action_item->type >=
-		    (uint32_t)BNXT_RTE_FLOW_ACTION_TYPE_END) {
+		    (typeof(action_item->type))BNXT_RTE_FLOW_ACTION_TYPE_END) {
 			if (action_item->type >=
-			    (uint32_t)BNXT_RTE_FLOW_ACTION_TYPE_LAST)
+			    (typeof(action_item->type))BNXT_RTE_FLOW_ACTION_TYPE_LAST)
 				goto act_parser_error;
 			/* get the header information from bnxt actinfo table */
 			hdr_info = &ulp_vendor_act_info[action_item->type -
Signature · 1 line
2.17.1
#42 lore raw

PATCH v3 12/20 net/bnxt: updated the log messages

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

Some of the error level log messages are made debug level messages. When Truflow is not enabled then Truflow init error messages are moved to debug level instead.

---
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c      | 24 ++++++++++++------------
 drivers/net/bnxt/tf_ulp/ulp_def_rules.c |  2 +-
 drivers/net/bnxt/tf_ulp/ulp_flow_db.c   |  2 +-
 drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c  |  2 +-
 4 files changed, 15 insertions(+), 15 deletions(-)
drivers/net/bnxt/tf_ulp/bnxt_ulp.c +12 -12
index 7deacd1f3e..21f71d6445 100644
@@ -1396,16 +1396,16 @@ bnxt_ulp_port_init(struct bnxt *bp)
 	uint32_t ulp_flags;
 	int32_t rc = 0;
 
-	if (!BNXT_PF(bp) && !BNXT_VF_IS_TRUSTED(bp)) {
-		BNXT_TF_DBG(ERR,
-			    "Skip ulp init for port: %d, not a TVF or PF\n",
+	if (!BNXT_TRUFLOW_EN(bp)) {
+		BNXT_TF_DBG(DEBUG,
+			    "Skip ulp init for port: %d, TF is not enabled\n",
 			    bp->eth_dev->data->port_id);
 		return rc;
 	}
 
-	if (!BNXT_TRUFLOW_EN(bp)) {
-		BNXT_TF_DBG(ERR,
-			    "Skip ulp init for port: %d, truflow is not enabled\n",
+	if (!BNXT_PF(bp) && !BNXT_VF_IS_TRUSTED(bp)) {
+		BNXT_TF_DBG(DEBUG,
+			    "Skip ulp init for port: %d, not a TVF or PF\n",
 			    bp->eth_dev->data->port_id);
 		return rc;
 	}
@@ -1520,16 +1520,16 @@ bnxt_ulp_port_deinit(struct bnxt *bp)
 	struct rte_pci_device *pci_dev;
 	struct rte_pci_addr *pci_addr;
 
-	if (!BNXT_PF(bp) && !BNXT_VF_IS_TRUSTED(bp)) {
-		BNXT_TF_DBG(ERR,
-			    "Skip ULP deinit port:%d, not a TVF or PF\n",
+	if (!BNXT_TRUFLOW_EN(bp)) {
+		BNXT_TF_DBG(DEBUG,
+			    "Skip ULP deinit for port:%d, TF is not enabled\n",
 			    bp->eth_dev->data->port_id);
 		return;
 	}
 
-	if (!BNXT_TRUFLOW_EN(bp)) {
-		BNXT_TF_DBG(ERR,
-			    "Skip ULP deinit for port:%d, truflow is not enabled\n",
+	if (!BNXT_PF(bp) && !BNXT_VF_IS_TRUSTED(bp)) {
+		BNXT_TF_DBG(DEBUG,
+			    "Skip ULP deinit port:%d, not a TVF or PF\n",
 			    bp->eth_dev->data->port_id);
 		return;
 	}
drivers/net/bnxt/tf_ulp/ulp_def_rules.c +1 -1
index 01233c0f5e..8790d7ac0d 100644
@@ -323,7 +323,7 @@ ulp_default_flow_create(struct rte_eth_dev *eth_dev,
 	ulp_ctx = bnxt_ulp_eth_dev_ptr2_cntxt_get(eth_dev);
 	if (!ulp_ctx) {
 		BNXT_TF_DBG(ERR,
-			    "ULP context is not initialized. Failed to create dflt flow.\n");
+			    "ULP is not init'ed. Fail to create dflt flow.\n");
 		return -EINVAL;
 	}
 
drivers/net/bnxt/tf_ulp/ulp_flow_db.c +1 -1
index 79dc869e64..9968311c44 100644
@@ -470,7 +470,7 @@ ulp_flow_db_init(struct bnxt_ulp_context *ulp_ctxt)
 	}
 
 	/* All good so return. */
-	BNXT_TF_DBG(INFO, "FlowDB initialized with %d flows.\n",
+	BNXT_TF_DBG(DEBUG, "FlowDB initialized with %d flows.\n",
 		    flow_tbl->num_flows);
 	return 0;
 error_free:
drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c +1 -1
index 271520e1d3..9dffaef73b 100644
@@ -116,7 +116,7 @@ ulp_mark_db_init(struct bnxt_ulp_context *ctxt)
 	mark_tbl->gfid_mask	= (mark_tbl->gfid_num_entries / 2) - 1;
 	mark_tbl->gfid_type_bit = (mark_tbl->gfid_num_entries / 2);
 
-	BNXT_TF_DBG(DEBUG, "GFID Max = 0x%08x\nGFID MASK = 0x%08x\n",
+	BNXT_TF_DBG(DEBUG, "GFID Max = 0x%08x GFID MASK = 0x%08x\n",
 		    mark_tbl->gfid_num_entries - 1,
 		    mark_tbl->gfid_mask);
 
Signature · 1 line
2.17.1
#43 lore raw

PATCH v3 13/20 net/bnxt: add support for socket direct feature

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

Added support for socket direct feature. This feature allows to ignore the incoming interface and use other fields in the packet to identify the flow and forward.

---
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c            |    2 +
 drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c       |   23 +-
 .../generic_templates/ulp_template_db_enum.h  |   71 +-
 .../generic_templates/ulp_template_db_tbl.c   | 3917 +++++++++++++----
 .../ulp_template_db_thor_act.c                |  150 +-
 .../ulp_template_db_thor_class.c              |  660 +--
 .../ulp_template_db_wh_plus_act.c             |  242 +-
 .../ulp_template_db_wh_plus_class.c           |  222 +-
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      |    5 +
 9 files changed, 3699 insertions(+), 1593 deletions(-)
drivers/net/bnxt/tf_ulp/bnxt_ulp.c +2 -0
index 21f71d6445..14be079eaa 100644
@@ -340,6 +340,8 @@ bnxt_ulp_cntxt_app_caps_init(struct bnxt *bp,
 			if (BNXT_MULTIROOT_EN(bp))
 				ulp_ctx->cfg_data->ulp_flags |=
 					BNXT_ULP_APP_SOCKET_DIRECT;
+				BNXT_TF_DBG(DEBUG,
+					    "Socket Direct feature is enabled");
 		}
 	}
 	if (!found) {
drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c +21 -2
index 272195f6a2..55885d1b8c 100644
@@ -133,8 +133,27 @@ bnxt_ulp_init_mapper_params(struct bnxt_ulp_mapper_create_parms *mapper_cparms,
 	}
 
 	/* Update the socket direct flag */
-	if (ULP_SOCKET_DIRECT_IS_ENABLED(ulp_flags))
-		ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_SOCKET_DIRECT, 1);
+	if (ULP_BITMAP_ISSET(params->hdr_bitmap.bits,
+			     BNXT_ULP_HDR_BIT_SVIF_IGNORE)) {
+		uint32_t ifindex;
+		uint16_t vport;
+
+		/* Get the port db ifindex */
+		if (ulp_port_db_dev_port_to_ulp_index(params->ulp_ctx,
+						      params->port_id,
+						      &ifindex)) {
+			BNXT_TF_DBG(ERR, "Invalid port id %u\n",
+				    params->port_id);
+			return;
+		}
+		/* Update the phy port of the other interface */
+		if (ulp_port_db_vport_get(params->ulp_ctx, ifindex, &vport)) {
+			BNXT_TF_DBG(ERR, "Invalid port if index %u\n", ifindex);
+			return;
+		}
+		ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_SOCKET_DIRECT_VPORT,
+				    (vport == 1) ? 2 : 1);
+	}
 }
 
 /* Function to create the rte flow. */
drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h +44 -27

119 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c +2990 -927

2,844 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_act.c +75 -75

150 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c +330 -330

660 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_wh_plus_act.c +121 -121

242 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_wh_plus_class.c +111 -111

222 lines not on this page · raw message

drivers/net/bnxt/tf_ulp/ulp_rte_parser.c +5 -0
index d21c088d59..2ec3279239 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Signature · 1 line
2.17.1

Part of the diff is not shown here. View the raw message.

#44 lore raw

PATCH v3 14/20 net/bnxt: delete the VF pair before VF representor alloc

In reply to Venkat Duvvuru

From: Kishore Padmanabha <[email protected]>

When the VF representor interface is created, the VF pair relationship is established between the VF and it is representor. If the pair already exists then the pair needs to be deleted before allocation. This could happen if the application is abruptly killed and restarted. If the deletion of an existing VF rep is not done then hw pipeline is not cleaned and a new allocation shall leave the hw in inconsistent state.

---
 drivers/net/bnxt/bnxt_hwrm.c | 28 ++++++++++++++++++++++++++++
 drivers/net/bnxt/bnxt_hwrm.h |  1 +
 drivers/net/bnxt/bnxt_reps.c |  6 ++++++
 3 files changed, 35 insertions(+)
drivers/net/bnxt/bnxt_hwrm.c +28 -0
index c7041143a3..f8c27fe316 100644
@@ -6025,6 +6025,34 @@ int bnxt_hwrm_first_vf_id_query(struct bnxt *bp, uint16_t fid,
 	return rc;
 }
 
+int bnxt_hwrm_cfa_pair_exists(struct bnxt *bp, struct bnxt_representor *rep_bp)
+{
+	struct hwrm_cfa_pair_info_output *resp = bp->hwrm_cmd_resp_addr;
+	struct hwrm_cfa_pair_info_input req = {0};
+	int rc = 0;
+
+	if (!(BNXT_PF(bp) || BNXT_VF_IS_TRUSTED(bp))) {
+		PMD_DRV_LOG(DEBUG,
+			    "Not a PF or trusted VF. Command not supported\n");
+		return 0;
+	}
+
+	HWRM_PREP(&req, HWRM_CFA_PAIR_INFO, BNXT_USE_CHIMP_MB);
+	snprintf(req.pair_name, sizeof(req.pair_name), "%svfr%d",
+		 bp->eth_dev->data->name, rep_bp->vf_id);
+	req.flags =
+		rte_cpu_to_le_32(HWRM_CFA_PAIR_INFO_INPUT_FLAGS_LOOKUP_TYPE);
+
+	rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB);
+	HWRM_CHECK_RESULT();
+	if (rc == HWRM_ERR_CODE_SUCCESS && strlen(resp->pair_name)) {
+		HWRM_UNLOCK();
+		return !rc;
+	}
+	HWRM_UNLOCK();
+	return rc;
+}
+
 int bnxt_hwrm_cfa_pair_alloc(struct bnxt *bp, struct bnxt_representor *rep_bp)
 {
 	struct hwrm_cfa_pair_alloc_output *resp = bp->hwrm_cmd_resp_addr;
drivers/net/bnxt/bnxt_hwrm.h +1 -0
index 6dc23b93ac..33e6ba99d5 100644
@@ -294,6 +294,7 @@ int bnxt_clear_one_vnic_filter(struct bnxt *bp,
 void bnxt_free_vf_info(struct bnxt *bp);
 int bnxt_hwrm_first_vf_id_query(struct bnxt *bp, uint16_t fid,
 				uint16_t *first_vf_id);
+int bnxt_hwrm_cfa_pair_exists(struct bnxt *bp, struct bnxt_representor *rep_bp);
 int bnxt_hwrm_cfa_pair_alloc(struct bnxt *bp, struct bnxt_representor *rep);
 int bnxt_hwrm_cfa_pair_free(struct bnxt *bp, struct bnxt_representor *rep);
 int bnxt_hwrm_cfa_adv_flow_mgmt_qcaps(struct bnxt *bp);
drivers/net/bnxt/bnxt_reps.c +6 -0
index 988f5a33a7..111d226a59 100644
@@ -315,6 +315,12 @@ static int bnxt_tf_vfr_alloc(struct rte_eth_dev *vfr_ethdev)
 		BNXT_TF_DBG(ERR, "Invalid arguments\n");
 		return 0;
 	}
+	/* update the port id so you can backtrack to ethdev */
+	vfr->dpdk_port_id = vfr_ethdev->data->port_id;
+
+	/* If pair is present, then delete the pair */
+	if (bnxt_hwrm_cfa_pair_exists(parent_bp, vfr))
+		(void)bnxt_hwrm_cfa_pair_free(parent_bp, vfr);
 
 	/* Update the ULP portdata base with the new VFR interface */
 	rc = ulp_port_db_dev_port_intf_update(parent_bp->ulp_ctx, vfr_ethdev);
Signature · 1 line
2.17.1
#45 lore raw

PATCH v3 15/20 net/bnxt: add new API TruFlow get SRAM resources

In reply to Venkat Duvvuru

From: Jay Ding <[email protected]>

Implement tf_get_sram_resources to return SRAM
partition information, including bank count and
SRAM profile number.

---
 drivers/net/bnxt/hsi_struct_def_dpdk.h   | 11 ++-
 drivers/net/bnxt/tf_core/tf_core.c       | 86 ++++++++++++++++++++++++
 drivers/net/bnxt/tf_core/tf_core.h       | 63 +++++++++++++++++
 drivers/net/bnxt/tf_core/tf_device.h     | 20 ++++++
 drivers/net/bnxt/tf_core/tf_device_p4.c  |  6 +-
 drivers/net/bnxt/tf_core/tf_device_p58.c | 53 ++++++++++++++-
 drivers/net/bnxt/tf_core/tf_msg.c        | 28 ++------
 drivers/net/bnxt/tf_core/tf_msg.h        |  6 +-
 drivers/net/bnxt/tf_core/tf_rm.c         |  3 +-
 drivers/net/bnxt/tf_core/tf_sram_mgr.h   | 10 ---
 10 files changed, 245 insertions(+), 41 deletions(-)
drivers/net/bnxt/hsi_struct_def_dpdk.h +8 -3
index 6d04e39e48..1a46f34249 100644
@@ -1058,8 +1058,8 @@ struct hwrm_err_output {
 #define HWRM_VERSION_MINOR 10
 #define HWRM_VERSION_UPDATE 2
 /* non-zero means beta version */
-#define HWRM_VERSION_RSVD 58
-#define HWRM_VERSION_STR "1.10.2.58"
+#define HWRM_VERSION_RSVD 64
+#define HWRM_VERSION_STR "1.10.2.64"
 
 /****************
  * hwrm_ver_get *
@@ -45817,8 +45817,13 @@ struct hwrm_tf_session_resc_qcaps_output {
 	 * qcaps_size.
 	 */
 	uint16_t	size;
+	/*
+	 * SRAM profile number that sets the partition of SRAM memory
+	 * between TF and AFM within the 4 internal memory banks (Thor).
+	 */
+	uint8_t	sram_profile;
 	/* unused. */
-	uint16_t	unused0;
+	uint8_t	unused0;
 	/* unused. */
 	uint8_t	unused1[7];
 	/*
drivers/net/bnxt/tf_core/tf_core.c +86 -0

89 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_core.h +63 -0

73 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_device.h +20 -0
index 88bd4515ff..9360eb1358 100644
@@ -1081,6 +1081,26 @@ struct tf_dev_ops {
 				     uint32_t *tcam_caps,
 				     uint32_t *tbl_caps,
 				     uint32_t *em_caps);
+
+	/**
+	 * Device specific function that retrieve the sram resource
+	 *
+	 * [in] query
+	 *   Point to resources query result
+	 *
+	 * [out] sram_bank_caps
+	 *   Pointer to SRAM bank capabilities
+	 *
+	 * [out] dynamic_sram_capable
+	 *   Pointer to dynamic sram capable
+	 *
+	 * Returns
+	 *   - (0) if successful.
+	 *   - (-EINVAL) on failure.
+	 */
+	int (*tf_dev_get_sram_resources)(void *query,
+					 uint32_t *sram_bank_caps,
+					 bool *dynamic_sram_capable);
 };
 
 /**
drivers/net/bnxt/tf_core/tf_device_p4.c +4 -2
index 8089785b82..cf0e919f9f 100644
@@ -382,7 +382,8 @@ const struct tf_dev_ops tf_dev_ops_p4_init = {
 	.tf_dev_get_global_cfg = NULL,
 	.tf_dev_get_mailbox = tf_dev_p4_get_mailbox,
 	.tf_dev_word_align = NULL,
-	.tf_dev_map_hcapi_caps = tf_dev_p4_map_hcapi_caps
+	.tf_dev_map_hcapi_caps = tf_dev_p4_map_hcapi_caps,
+	.tf_dev_get_sram_resources = NULL
 };
 
 /**
@@ -445,5 +446,6 @@ const struct tf_dev_ops tf_dev_ops_p4 = {
 	.tf_dev_get_mailbox = tf_dev_p4_get_mailbox,
 	.tf_dev_word_align = tf_dev_p4_word_align,
 	.tf_dev_cfa_key_hash = hcapi_cfa_p4_key_hash,
-	.tf_dev_map_hcapi_caps = tf_dev_p4_map_hcapi_caps
+	.tf_dev_map_hcapi_caps = tf_dev_p4_map_hcapi_caps,
+	.tf_dev_get_sram_resources = NULL
 };
drivers/net/bnxt/tf_core/tf_device_p58.c +51 -2

69 lines not on this page · raw message

drivers/net/bnxt/tf_core/tf_msg.c +6 -22
index 25bf026658..fbc96d374c 100644
@@ -380,39 +380,20 @@ tf_msg_session_resc_qcaps(struct tf *tfp,
 			  enum tf_dir dir,
 			  uint16_t size,
 			  struct tf_rm_resc_req_entry *query,
-			  enum tf_rm_resc_resv_strategy *resv_strategy)
+			  enum tf_rm_resc_resv_strategy *resv_strategy,
+			  uint8_t *sram_profile)
 {
 	int rc;
 	int i;
 	struct tfp_send_msg_parms parms = { 0 };
 	struct hwrm_tf_session_resc_qcaps_input req = { 0 };
 	struct hwrm_tf_session_resc_qcaps_output resp = { 0 };
-	uint8_t fw_session_id;
 	struct tf_msg_dma_buf qcaps_buf = { 0 };
 	struct tf_rm_resc_req_entry *data;
 	int dma_size;
-	struct tf_session *tfs;
-
-	/* Retrieve the session information */
-	rc = tf_session_get_session_internal(tfp, &tfs);
-	if (rc) {
-		TFP_DRV_LOG(ERR,
-			    "Failed to lookup session, rc:%s\n",
-			    strerror(-rc));
-		return rc;
-	}
 
 	TF_CHECK_PARMS3(tfp, query, resv_strategy);
 
-	rc = tf_session_get_fw_session_id(tfp, &fw_session_id);
-	if (rc) {
-		TFP_DRV_LOG(ERR,
-			    "%s: Unable to lookup FW id, rc:%s\n",
-			    tf_dir_2_str(dir),
-			    strerror(-rc));
-		return rc;
-	}
-
 	/* Prepare DMA buffer */
 	dma_size = size * sizeof(struct tf_rm_resc_req_entry);
 	rc = tf_msg_alloc_dma_buf(&qcaps_buf, dma_size);
@@ -420,7 +401,7 @@ tf_msg_session_resc_qcaps(struct tf *tfp,
 		return rc;
 
 	/* Populate the request */
-	req.fw_session_id = tfp_cpu_to_le_32(fw_session_id);
+	req.fw_session_id = 0;
 	req.flags = tfp_cpu_to_le_16(dir);
 	req.qcaps_size = size;
 	req.qcaps_addr = tfp_cpu_to_le_64(qcaps_buf.pa_addr);
@@ -460,6 +441,9 @@ tf_msg_session_resc_qcaps(struct tf *tfp,
 	*resv_strategy = resp.flags &
 	      HWRM_TF_SESSION_RESC_QCAPS_OUTPUT_FLAGS_SESS_RESV_STRATEGY_MASK;
 
+	if (sram_profile != NULL)
+		*sram_profile = resp.sram_profile;
+
 cleanup:
 	tf_msg_free_dma_buf(&qcaps_buf);
 
drivers/net/bnxt/tf_core/tf_msg.h +5 -1
index 08d20cdd7a..188b361d71 100644
@@ -158,6 +158,9 @@ int tf_msg_session_qcfg(struct tf *tfp);
  * [out] resv_strategy
  *   Pointer to the reservation strategy
  *
+ * [out] sram_profile
+ *   Pointer to the sram profile
+ *
  * Returns:
  *   0 on Success else internal Truflow error
  */
@@ -166,7 +169,8 @@ int tf_msg_session_resc_qcaps(struct tf *tfp,
 			      enum tf_dir dir,
 			      uint16_t size,
 			      struct tf_rm_resc_req_entry *query,
-			      enum tf_rm_resc_resv_strategy *resv_strategy);
+			      enum tf_rm_resc_resv_strategy *resv_strategy,
+			      uint8_t *sram_profile);
 
 /**
  * Sends session HW resource allocation request to TF Firmware
drivers/net/bnxt/tf_core/tf_rm.c +2 -1
index dd537aaece..d2045921b9 100644
@@ -551,7 +551,8 @@ tf_rm_create_db(struct tf *tfp,
 				       parms->dir,
 				       max_types,
 				       query,
-				       &resv_strategy);
+				       &resv_strategy,
+				       NULL);
 	if (rc)
 		return rc;
 
drivers/net/bnxt/tf_core/tf_sram_mgr.h +0 -10
index 4abe3fb468..eb2156456a 100644
@@ -28,16 +28,6 @@
 
 #define TF_SRAM_MGR_BLOCK_SZ_BYTES 64
 #define TF_SRAM_MGR_MIN_SLICE_BYTES 8
-/**
- * Bank identifier
- */
-enum tf_sram_bank_id {
-	TF_SRAM_BANK_ID_0,		/**< SRAM Bank 0 id */
-	TF_SRAM_BANK_ID_1,		/**< SRAM Bank 1 id */
-	TF_SRAM_BANK_ID_2,		/**< SRAM Bank 2 id */
-	TF_SRAM_BANK_ID_3,		/**< SRAM Bank 3 id */
-	TF_SRAM_BANK_ID_MAX		/**< SRAM Bank index limit */
-};
 
 /**
  * TF slice size.
Signature · 1 line
2.17.1