aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
diff options
context:
space:
mode:
authorYuval Mintz <yuvalmin@broadcom.com>2012-04-03 14:41:29 -0400
committerDavid S. Miller <davem@davemloft.net>2012-04-04 01:37:59 -0400
commitb475d78f464195cbdeeda0d80a2ffbd54653a4bd (patch)
tree716c06b09bf324df76ae35660efeb0040a810096 /drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
parent7e8e02df17106007f4b043a39d22682f74df6f6f (diff)
bnx2x: congestion management re-organization
The congestion management code has migrated into a common location, allowing all fw writes controlling mf congestion to be made in a single function in the code. This is a semantic change. Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h')
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h92
1 files changed, 59 insertions, 33 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
index dbff5915b81a..799272d164e5 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
@@ -4448,6 +4448,65 @@ struct cmng_struct_per_port {
4448 struct cmng_flags_per_port flags; 4448 struct cmng_flags_per_port flags;
4449}; 4449};
4450 4450
4451/*
4452 * a single rate shaping counter. can be used as protocol or vnic counter
4453 */
4454struct rate_shaping_counter {
4455 u32 quota;
4456#if defined(__BIG_ENDIAN)
4457 u16 __reserved0;
4458 u16 rate;
4459#elif defined(__LITTLE_ENDIAN)
4460 u16 rate;
4461 u16 __reserved0;
4462#endif
4463};
4464
4465/*
4466 * per-vnic rate shaping variables
4467 */
4468struct rate_shaping_vars_per_vn {
4469 struct rate_shaping_counter vn_counter;
4470};
4471
4472/*
4473 * per-vnic fairness variables
4474 */
4475struct fairness_vars_per_vn {
4476 u32 cos_credit_delta[MAX_COS_NUMBER];
4477 u32 vn_credit_delta;
4478 u32 __reserved0;
4479};
4480
4481/*
4482 * cmng port init state
4483 */
4484struct cmng_vnic {
4485 struct rate_shaping_vars_per_vn vnic_max_rate[4];
4486 struct fairness_vars_per_vn vnic_min_rate[4];
4487};
4488
4489/*
4490 * cmng port init state
4491 */
4492struct cmng_init {
4493 struct cmng_struct_per_port port;
4494 struct cmng_vnic vnic;
4495};
4496
4497
4498/*
4499 * driver parameters for congestion management init, all rates are in Mbps
4500 */
4501struct cmng_init_input {
4502 u32 port_rate;
4503 u16 vnic_min_rate[4];
4504 u16 vnic_max_rate[4];
4505 u16 cos_min_rate[MAX_COS_NUMBER];
4506 u16 cos_to_pause_mask[MAX_COS_NUMBER];
4507 struct cmng_flags_per_port flags;
4508};
4509
4451 4510
4452/* 4511/*
4453 * Protocol-common command ID for slow path elements 4512 * Protocol-common command ID for slow path elements
@@ -4763,16 +4822,6 @@ enum fairness_mode {
4763 4822
4764 4823
4765/* 4824/*
4766 * per-vnic fairness variables
4767 */
4768struct fairness_vars_per_vn {
4769 u32 cos_credit_delta[MAX_COS_NUMBER];
4770 u32 vn_credit_delta;
4771 u32 __reserved0;
4772};
4773
4774
4775/*
4776 * Priority and cos 4825 * Priority and cos
4777 */ 4826 */
4778struct priority_cos { 4827struct priority_cos {
@@ -5140,29 +5189,6 @@ struct protocol_common_spe {
5140 5189
5141 5190
5142/* 5191/*
5143 * a single rate shaping counter. can be used as protocol or vnic counter
5144 */
5145struct rate_shaping_counter {
5146 u32 quota;
5147#if defined(__BIG_ENDIAN)
5148 u16 __reserved0;
5149 u16 rate;
5150#elif defined(__LITTLE_ENDIAN)
5151 u16 rate;
5152 u16 __reserved0;
5153#endif
5154};
5155
5156
5157/*
5158 * per-vnic rate shaping variables
5159 */
5160struct rate_shaping_vars_per_vn {
5161 struct rate_shaping_counter vn_counter;
5162};
5163
5164
5165/*
5166 * The send queue element 5192 * The send queue element
5167 */ 5193 */
5168struct slow_path_element { 5194struct slow_path_element {