diff options
author | Yuval Mintz <yuvalmin@broadcom.com> | 2012-04-03 14:41:29 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-04-04 01:37:59 -0400 |
commit | b475d78f464195cbdeeda0d80a2ffbd54653a4bd (patch) | |
tree | 716c06b09bf324df76ae35660efeb0040a810096 /drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | |
parent | 7e8e02df17106007f4b043a39d22682f74df6f6f (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.h | 92 |
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 | */ | ||
4454 | struct 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 | */ | ||
4468 | struct rate_shaping_vars_per_vn { | ||
4469 | struct rate_shaping_counter vn_counter; | ||
4470 | }; | ||
4471 | |||
4472 | /* | ||
4473 | * per-vnic fairness variables | ||
4474 | */ | ||
4475 | struct 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 | */ | ||
4484 | struct 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 | */ | ||
4492 | struct 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 | */ | ||
4501 | struct 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 | */ | ||
4768 | struct 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 | */ |
4778 | struct priority_cos { | 4827 | struct 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 | */ | ||
5145 | struct 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 | */ | ||
5160 | struct 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 | */ |
5168 | struct slow_path_element { | 5194 | struct slow_path_element { |