Commit 8a1c38d1 authored by Eilon Greenstein's avatar Eilon Greenstein Committed by David S. Miller

bnx2x: BW shaper enhancements

Some of the configuration can be set when loading the device and shouldn't be
re-calculated after each link up indication since it is not dependent on the
link speed
Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 748e5439
...@@ -883,6 +883,9 @@ struct bnx2x { ...@@ -883,6 +883,9 @@ struct bnx2x {
struct bnx2x_common common; struct bnx2x_common common;
struct bnx2x_port port; struct bnx2x_port port;
struct cmng_struct_per_port cmng;
u32 vn_weight_sum;
u32 mf_config; u32 mf_config;
u16 e1hov; u16 e1hov;
u8 e1hmf; u8 e1hmf;
......
...@@ -2640,17 +2640,19 @@ struct ustorm_eth_rx_producers { ...@@ -2640,17 +2640,19 @@ struct ustorm_eth_rx_producers {
*/ */
struct cmng_flags_per_port { struct cmng_flags_per_port {
u8 con_number[NUM_OF_PROTOCOLS]; u8 con_number[NUM_OF_PROTOCOLS];
#if defined(__BIG_ENDIAN) u32 cmng_enables;
u8 fairness_enable; #define CMNG_FLAGS_PER_PORT_FAIRNESS_VN (0x1<<0)
u8 rate_shaping_enable; #define CMNG_FLAGS_PER_PORT_FAIRNESS_VN_SHIFT 0
u8 cmng_protocol_enable; #define CMNG_FLAGS_PER_PORT_RATE_SHAPING_VN (0x1<<1)
u8 cmng_vn_enable; #define CMNG_FLAGS_PER_PORT_RATE_SHAPING_VN_SHIFT 1
#elif defined(__LITTLE_ENDIAN) #define CMNG_FLAGS_PER_PORT_FAIRNESS_PROTOCOL (0x1<<2)
u8 cmng_vn_enable; #define CMNG_FLAGS_PER_PORT_FAIRNESS_PROTOCOL_SHIFT 2
u8 cmng_protocol_enable; #define CMNG_FLAGS_PER_PORT_RATE_SHAPING_PROTOCOL (0x1<<3)
u8 rate_shaping_enable; #define CMNG_FLAGS_PER_PORT_RATE_SHAPING_PROTOCOL_SHIFT 3
u8 fairness_enable; #define CMNG_FLAGS_PER_PORT_FAIRNESS_COS (0x1<<4)
#endif #define CMNG_FLAGS_PER_PORT_FAIRNESS_COS_SHIFT 4
#define __CMNG_FLAGS_PER_PORT_RESERVED0 (0x7FFFFFF<<5)
#define __CMNG_FLAGS_PER_PORT_RESERVED0_SHIFT 5
}; };
...@@ -2803,6 +2805,7 @@ struct eth_stats_query { ...@@ -2803,6 +2805,7 @@ struct eth_stats_query {
* per-vnic fairness variables * per-vnic fairness variables
*/ */
struct fairness_vars_per_vn { struct fairness_vars_per_vn {
u32 cos_credit_delta[MAX_COS_NUMBER];
u32 protocol_credit_delta[NUM_OF_PROTOCOLS]; u32 protocol_credit_delta[NUM_OF_PROTOCOLS];
u32 vn_credit_delta; u32 vn_credit_delta;
u32 __reserved0; u32 __reserved0;
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment