aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
diff options
context:
space:
mode:
authorDmitry Kravkov <dmitry@broadcom.com>2013-03-11 01:17:52 -0400
committerDavid S. Miller <davem@davemloft.net>2013-03-12 07:54:26 -0400
commit91226790bbe2dbfbba48dd79d49f2b38ef10eb97 (patch)
tree7192ce4c32dade780bb439f86ead0c221dac5e3b /drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
parent82594f8f47bc1167d55776cfb599633ec4ac8e77 (diff)
bnx2x: use FW 7.8.17
Update appropriate HSI files and adapt driver accordingly. Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com> Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com> Signed-off-by: Ariel Elior <ariele@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.h235
1 files changed, 205 insertions, 30 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
index a7a3504e1bd5..12f00a40cdf0 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
@@ -114,6 +114,10 @@ struct license_key {
114#define EPIO_CFG_EPIO30 0x0000001f 114#define EPIO_CFG_EPIO30 0x0000001f
115#define EPIO_CFG_EPIO31 0x00000020 115#define EPIO_CFG_EPIO31 0x00000020
116 116
117struct mac_addr {
118 u32 upper;
119 u32 lower;
120};
117 121
118struct shared_hw_cfg { /* NVRAM Offset */ 122struct shared_hw_cfg { /* NVRAM Offset */
119 /* Up to 16 bytes of NULL-terminated string */ 123 /* Up to 16 bytes of NULL-terminated string */
@@ -2836,8 +2840,8 @@ struct afex_stats {
2836 2840
2837#define BCM_5710_FW_MAJOR_VERSION 7 2841#define BCM_5710_FW_MAJOR_VERSION 7
2838#define BCM_5710_FW_MINOR_VERSION 8 2842#define BCM_5710_FW_MINOR_VERSION 8
2839#define BCM_5710_FW_REVISION_VERSION 2 2843#define BCM_5710_FW_REVISION_VERSION 17
2840#define BCM_5710_FW_ENGINEERING_VERSION 0 2844#define BCM_5710_FW_ENGINEERING_VERSION 0
2841#define BCM_5710_FW_COMPILE_FLAGS 1 2845#define BCM_5710_FW_COMPILE_FLAGS 1
2842 2846
2843 2847
@@ -3528,11 +3532,14 @@ struct client_init_tx_data {
3528#define CLIENT_INIT_TX_DATA_BCAST_ACCEPT_ALL_SHIFT 2 3532#define CLIENT_INIT_TX_DATA_BCAST_ACCEPT_ALL_SHIFT 2
3529#define CLIENT_INIT_TX_DATA_ACCEPT_ANY_VLAN (0x1<<3) 3533#define CLIENT_INIT_TX_DATA_ACCEPT_ANY_VLAN (0x1<<3)
3530#define CLIENT_INIT_TX_DATA_ACCEPT_ANY_VLAN_SHIFT 3 3534#define CLIENT_INIT_TX_DATA_ACCEPT_ANY_VLAN_SHIFT 3
3531#define CLIENT_INIT_TX_DATA_RESERVED1 (0xFFF<<4) 3535#define CLIENT_INIT_TX_DATA_RESERVED0 (0xFFF<<4)
3532#define CLIENT_INIT_TX_DATA_RESERVED1_SHIFT 4 3536#define CLIENT_INIT_TX_DATA_RESERVED0_SHIFT 4
3533 u8 default_vlan_flg; 3537 u8 default_vlan_flg;
3534 u8 force_default_pri_flg; 3538 u8 force_default_pri_flg;
3535 __le32 reserved3; 3539 u8 tunnel_lso_inc_ip_id;
3540 u8 refuse_outband_vlan_flg;
3541 u8 tunnel_non_lso_pcsum_location;
3542 u8 reserved1;
3536}; 3543};
3537 3544
3538/* 3545/*
@@ -3566,6 +3573,11 @@ struct client_update_ramrod_data {
3566 __le16 silent_vlan_mask; 3573 __le16 silent_vlan_mask;
3567 u8 silent_vlan_removal_flg; 3574 u8 silent_vlan_removal_flg;
3568 u8 silent_vlan_change_flg; 3575 u8 silent_vlan_change_flg;
3576 u8 refuse_outband_vlan_flg;
3577 u8 refuse_outband_vlan_change_flg;
3578 u8 tx_switching_flg;
3579 u8 tx_switching_change_flg;
3580 __le32 reserved1;
3569 __le32 echo; 3581 __le32 echo;
3570}; 3582};
3571 3583
@@ -3635,7 +3647,8 @@ struct eth_classify_header {
3635 */ 3647 */
3636struct eth_classify_mac_cmd { 3648struct eth_classify_mac_cmd {
3637 struct eth_classify_cmd_header header; 3649 struct eth_classify_cmd_header header;
3638 __le32 reserved0; 3650 __le16 reserved0;
3651 __le16 inner_mac;
3639 __le16 mac_lsb; 3652 __le16 mac_lsb;
3640 __le16 mac_mid; 3653 __le16 mac_mid;
3641 __le16 mac_msb; 3654 __le16 mac_msb;
@@ -3648,7 +3661,8 @@ struct eth_classify_mac_cmd {
3648 */ 3661 */
3649struct eth_classify_pair_cmd { 3662struct eth_classify_pair_cmd {
3650 struct eth_classify_cmd_header header; 3663 struct eth_classify_cmd_header header;
3651 __le32 reserved0; 3664 __le16 reserved0;
3665 __le16 inner_mac;
3652 __le16 mac_lsb; 3666 __le16 mac_lsb;
3653 __le16 mac_mid; 3667 __le16 mac_mid;
3654 __le16 mac_msb; 3668 __le16 mac_msb;
@@ -3870,8 +3884,68 @@ struct eth_halt_ramrod_data {
3870 3884
3871 3885
3872/* 3886/*
3873 * Command for setting multicast classification for a client 3887 * destination and source mac address.
3888 */
3889struct eth_mac_addresses {
3890#if defined(__BIG_ENDIAN)
3891 __le16 dst_mid;
3892 __le16 dst_lo;
3893#elif defined(__LITTLE_ENDIAN)
3894 __le16 dst_lo;
3895 __le16 dst_mid;
3896#endif
3897#if defined(__BIG_ENDIAN)
3898 __le16 src_lo;
3899 __le16 dst_hi;
3900#elif defined(__LITTLE_ENDIAN)
3901 __le16 dst_hi;
3902 __le16 src_lo;
3903#endif
3904#if defined(__BIG_ENDIAN)
3905 __le16 src_hi;
3906 __le16 src_mid;
3907#elif defined(__LITTLE_ENDIAN)
3908 __le16 src_mid;
3909 __le16 src_hi;
3910#endif
3911};
3912
3913/* tunneling related data */
3914struct eth_tunnel_data {
3915#if defined(__BIG_ENDIAN)
3916 __le16 dst_mid;
3917 __le16 dst_lo;
3918#elif defined(__LITTLE_ENDIAN)
3919 __le16 dst_lo;
3920 __le16 dst_mid;
3921#endif
3922#if defined(__BIG_ENDIAN)
3923 __le16 reserved0;
3924 __le16 dst_hi;
3925#elif defined(__LITTLE_ENDIAN)
3926 __le16 dst_hi;
3927 __le16 reserved0;
3928#endif
3929#if defined(__BIG_ENDIAN)
3930 u8 reserved1;
3931 u8 ip_hdr_start_inner_w;
3932 __le16 pseudo_csum;
3933#elif defined(__LITTLE_ENDIAN)
3934 __le16 pseudo_csum;
3935 u8 ip_hdr_start_inner_w;
3936 u8 reserved1;
3937#endif
3938};
3939
3940/* union for mac addresses and for tunneling data.
3941 * considered as tunneling data only if (tunnel_exist == 1).
3874 */ 3942 */
3943union eth_mac_addr_or_tunnel_data {
3944 struct eth_mac_addresses mac_addr;
3945 struct eth_tunnel_data tunnel_data;
3946};
3947
3948/*Command for setting multicast classification for a client */
3875struct eth_multicast_rules_cmd { 3949struct eth_multicast_rules_cmd {
3876 u8 cmd_general_data; 3950 u8 cmd_general_data;
3877#define ETH_MULTICAST_RULES_CMD_RX_CMD (0x1<<0) 3951#define ETH_MULTICAST_RULES_CMD_RX_CMD (0x1<<0)
@@ -3889,7 +3963,6 @@ struct eth_multicast_rules_cmd {
3889 struct regpair reserved3; 3963 struct regpair reserved3;
3890}; 3964};
3891 3965
3892
3893/* 3966/*
3894 * parameters for multicast classification ramrod 3967 * parameters for multicast classification ramrod
3895 */ 3968 */
@@ -3898,7 +3971,6 @@ struct eth_multicast_rules_ramrod_data {
3898 struct eth_multicast_rules_cmd rules[MULTICAST_RULES_COUNT]; 3971 struct eth_multicast_rules_cmd rules[MULTICAST_RULES_COUNT];
3899}; 3972};
3900 3973
3901
3902/* 3974/*
3903 * Place holder for ramrods protocol specific data 3975 * Place holder for ramrods protocol specific data
3904 */ 3976 */
@@ -3962,11 +4034,14 @@ struct eth_rss_update_ramrod_data {
3962#define ETH_RSS_UPDATE_RAMROD_DATA_IPV6_TCP_CAPABILITY_SHIFT 4 4034#define ETH_RSS_UPDATE_RAMROD_DATA_IPV6_TCP_CAPABILITY_SHIFT 4
3963#define ETH_RSS_UPDATE_RAMROD_DATA_IPV6_UDP_CAPABILITY (0x1<<5) 4035#define ETH_RSS_UPDATE_RAMROD_DATA_IPV6_UDP_CAPABILITY (0x1<<5)
3964#define ETH_RSS_UPDATE_RAMROD_DATA_IPV6_UDP_CAPABILITY_SHIFT 5 4036#define ETH_RSS_UPDATE_RAMROD_DATA_IPV6_UDP_CAPABILITY_SHIFT 5
4037#define ETH_RSS_UPDATE_RAMROD_DATA_EN_5_TUPLE_CAPABILITY (0x1<<6)
4038#define ETH_RSS_UPDATE_RAMROD_DATA_EN_5_TUPLE_CAPABILITY_SHIFT 6
3965#define ETH_RSS_UPDATE_RAMROD_DATA_UPDATE_RSS_KEY (0x1<<7) 4039#define ETH_RSS_UPDATE_RAMROD_DATA_UPDATE_RSS_KEY (0x1<<7)
3966#define ETH_RSS_UPDATE_RAMROD_DATA_UPDATE_RSS_KEY_SHIFT 7 4040#define ETH_RSS_UPDATE_RAMROD_DATA_UPDATE_RSS_KEY_SHIFT 7
3967 u8 rss_result_mask; 4041 u8 rss_result_mask;
3968 u8 rss_mode; 4042 u8 rss_mode;
3969 __le32 __reserved2; 4043 __le16 udp_4tuple_dst_port_mask;
4044 __le16 udp_4tuple_dst_port_value;
3970 u8 indirection_table[T_ETH_INDIRECTION_TABLE_SIZE]; 4045 u8 indirection_table[T_ETH_INDIRECTION_TABLE_SIZE];
3971 __le32 rss_key[T_ETH_RSS_KEY]; 4046 __le32 rss_key[T_ETH_RSS_KEY];
3972 __le32 echo; 4047 __le32 echo;
@@ -4130,6 +4205,23 @@ enum eth_tpa_update_command {
4130 MAX_ETH_TPA_UPDATE_COMMAND 4205 MAX_ETH_TPA_UPDATE_COMMAND
4131}; 4206};
4132 4207
4208/* In case of LSO over IPv4 tunnel, whether to increment
4209 * IP ID on external IP header or internal IP header
4210 */
4211enum eth_tunnel_lso_inc_ip_id {
4212 EXT_HEADER,
4213 INT_HEADER,
4214 MAX_ETH_TUNNEL_LSO_INC_IP_ID
4215};
4216
4217/* In case tunnel exist and L4 checksum offload,
4218 * the pseudo checksum location, on packet or on BD.
4219 */
4220enum eth_tunnel_non_lso_pcsum_location {
4221 PCSUM_ON_PKT,
4222 PCSUM_ON_BD,
4223 MAX_ETH_TUNNEL_NON_LSO_PCSUM_LOCATION
4224};
4133 4225
4134/* 4226/*
4135 * Tx regular BD structure 4227 * Tx regular BD structure
@@ -4181,8 +4273,8 @@ struct eth_tx_start_bd {
4181#define ETH_TX_START_BD_FORCE_VLAN_MODE_SHIFT 4 4273#define ETH_TX_START_BD_FORCE_VLAN_MODE_SHIFT 4
4182#define ETH_TX_START_BD_PARSE_NBDS (0x3<<5) 4274#define ETH_TX_START_BD_PARSE_NBDS (0x3<<5)
4183#define ETH_TX_START_BD_PARSE_NBDS_SHIFT 5 4275#define ETH_TX_START_BD_PARSE_NBDS_SHIFT 5
4184#define ETH_TX_START_BD_RESREVED (0x1<<7) 4276#define ETH_TX_START_BD_TUNNEL_EXIST (0x1<<7)
4185#define ETH_TX_START_BD_RESREVED_SHIFT 7 4277#define ETH_TX_START_BD_TUNNEL_EXIST_SHIFT 7
4186}; 4278};
4187 4279
4188/* 4280/*
@@ -4231,15 +4323,10 @@ struct eth_tx_parse_bd_e1x {
4231 * Tx parsing BD structure for ETH E2 4323 * Tx parsing BD structure for ETH E2
4232 */ 4324 */
4233struct eth_tx_parse_bd_e2 { 4325struct eth_tx_parse_bd_e2 {
4234 __le16 dst_mac_addr_lo; 4326 union eth_mac_addr_or_tunnel_data data;
4235 __le16 dst_mac_addr_mid;
4236 __le16 dst_mac_addr_hi;
4237 __le16 src_mac_addr_lo;
4238 __le16 src_mac_addr_mid;
4239 __le16 src_mac_addr_hi;
4240 __le32 parsing_data; 4327 __le32 parsing_data;
4241#define ETH_TX_PARSE_BD_E2_TCP_HDR_START_OFFSET_W (0x7FF<<0) 4328#define ETH_TX_PARSE_BD_E2_L4_HDR_START_OFFSET_W (0x7FF<<0)
4242#define ETH_TX_PARSE_BD_E2_TCP_HDR_START_OFFSET_W_SHIFT 0 4329#define ETH_TX_PARSE_BD_E2_L4_HDR_START_OFFSET_W_SHIFT 0
4243#define ETH_TX_PARSE_BD_E2_TCP_HDR_LENGTH_DW (0xF<<11) 4330#define ETH_TX_PARSE_BD_E2_TCP_HDR_LENGTH_DW (0xF<<11)
4244#define ETH_TX_PARSE_BD_E2_TCP_HDR_LENGTH_DW_SHIFT 11 4331#define ETH_TX_PARSE_BD_E2_TCP_HDR_LENGTH_DW_SHIFT 11
4245#define ETH_TX_PARSE_BD_E2_IPV6_WITH_EXT_HDR (0x1<<15) 4332#define ETH_TX_PARSE_BD_E2_IPV6_WITH_EXT_HDR (0x1<<15)
@@ -4251,8 +4338,51 @@ struct eth_tx_parse_bd_e2 {
4251}; 4338};
4252 4339
4253/* 4340/*
4254 * The last BD in the BD memory will hold a pointer to the next BD memory 4341 * Tx 2nd parsing BD structure for ETH packet
4255 */ 4342 */
4343struct eth_tx_parse_2nd_bd {
4344 __le16 global_data;
4345#define ETH_TX_PARSE_2ND_BD_IP_HDR_START_OUTER_W (0xF<<0)
4346#define ETH_TX_PARSE_2ND_BD_IP_HDR_START_OUTER_W_SHIFT 0
4347#define ETH_TX_PARSE_2ND_BD_IP_HDR_TYPE_OUTER (0x1<<4)
4348#define ETH_TX_PARSE_2ND_BD_IP_HDR_TYPE_OUTER_SHIFT 4
4349#define ETH_TX_PARSE_2ND_BD_LLC_SNAP_EN (0x1<<5)
4350#define ETH_TX_PARSE_2ND_BD_LLC_SNAP_EN_SHIFT 5
4351#define ETH_TX_PARSE_2ND_BD_NS_FLG (0x1<<6)
4352#define ETH_TX_PARSE_2ND_BD_NS_FLG_SHIFT 6
4353#define ETH_TX_PARSE_2ND_BD_TUNNEL_UDP_EXIST (0x1<<7)
4354#define ETH_TX_PARSE_2ND_BD_TUNNEL_UDP_EXIST_SHIFT 7
4355#define ETH_TX_PARSE_2ND_BD_IP_HDR_LEN_OUTER_W (0x1F<<8)
4356#define ETH_TX_PARSE_2ND_BD_IP_HDR_LEN_OUTER_W_SHIFT 8
4357#define ETH_TX_PARSE_2ND_BD_RESERVED0 (0x7<<13)
4358#define ETH_TX_PARSE_2ND_BD_RESERVED0_SHIFT 13
4359 __le16 reserved1;
4360 u8 tcp_flags;
4361#define ETH_TX_PARSE_2ND_BD_FIN_FLG (0x1<<0)
4362#define ETH_TX_PARSE_2ND_BD_FIN_FLG_SHIFT 0
4363#define ETH_TX_PARSE_2ND_BD_SYN_FLG (0x1<<1)
4364#define ETH_TX_PARSE_2ND_BD_SYN_FLG_SHIFT 1
4365#define ETH_TX_PARSE_2ND_BD_RST_FLG (0x1<<2)
4366#define ETH_TX_PARSE_2ND_BD_RST_FLG_SHIFT 2
4367#define ETH_TX_PARSE_2ND_BD_PSH_FLG (0x1<<3)
4368#define ETH_TX_PARSE_2ND_BD_PSH_FLG_SHIFT 3
4369#define ETH_TX_PARSE_2ND_BD_ACK_FLG (0x1<<4)
4370#define ETH_TX_PARSE_2ND_BD_ACK_FLG_SHIFT 4
4371#define ETH_TX_PARSE_2ND_BD_URG_FLG (0x1<<5)
4372#define ETH_TX_PARSE_2ND_BD_URG_FLG_SHIFT 5
4373#define ETH_TX_PARSE_2ND_BD_ECE_FLG (0x1<<6)
4374#define ETH_TX_PARSE_2ND_BD_ECE_FLG_SHIFT 6
4375#define ETH_TX_PARSE_2ND_BD_CWR_FLG (0x1<<7)
4376#define ETH_TX_PARSE_2ND_BD_CWR_FLG_SHIFT 7
4377 u8 reserved2;
4378 u8 tunnel_udp_hdr_start_w;
4379 u8 fw_ip_hdr_to_payload_w;
4380 __le16 fw_ip_csum_wo_len_flags_frag;
4381 __le16 hw_ip_id;
4382 __le32 tcp_send_seq;
4383};
4384
4385/* The last BD in the BD memory will hold a pointer to the next BD memory */
4256struct eth_tx_next_bd { 4386struct eth_tx_next_bd {
4257 __le32 addr_lo; 4387 __le32 addr_lo;
4258 __le32 addr_hi; 4388 __le32 addr_hi;
@@ -4267,6 +4397,7 @@ union eth_tx_bd_types {
4267 struct eth_tx_bd reg_bd; 4397 struct eth_tx_bd reg_bd;
4268 struct eth_tx_parse_bd_e1x parse_bd_e1x; 4398 struct eth_tx_parse_bd_e1x parse_bd_e1x;
4269 struct eth_tx_parse_bd_e2 parse_bd_e2; 4399 struct eth_tx_parse_bd_e2 parse_bd_e2;
4400 struct eth_tx_parse_2nd_bd parse_2nd_bd;
4270 struct eth_tx_next_bd next_bd; 4401 struct eth_tx_next_bd next_bd;
4271}; 4402};
4272 4403
@@ -4678,10 +4809,10 @@ enum common_spqe_cmd_id {
4678 RAMROD_CMD_ID_COMMON_STOP_TRAFFIC, 4809 RAMROD_CMD_ID_COMMON_STOP_TRAFFIC,
4679 RAMROD_CMD_ID_COMMON_START_TRAFFIC, 4810 RAMROD_CMD_ID_COMMON_START_TRAFFIC,
4680 RAMROD_CMD_ID_COMMON_AFEX_VIF_LISTS, 4811 RAMROD_CMD_ID_COMMON_AFEX_VIF_LISTS,
4812 RAMROD_CMD_ID_COMMON_SET_TIMESYNC,
4681 MAX_COMMON_SPQE_CMD_ID 4813 MAX_COMMON_SPQE_CMD_ID
4682}; 4814};
4683 4815
4684
4685/* 4816/*
4686 * Per-protocol connection types 4817 * Per-protocol connection types
4687 */ 4818 */
@@ -4878,7 +5009,7 @@ struct vf_flr_event_data {
4878 */ 5009 */
4879struct malicious_vf_event_data { 5010struct malicious_vf_event_data {
4880 u8 vf_id; 5011 u8 vf_id;
4881 u8 reserved0; 5012 u8 err_id;
4882 u16 reserved1; 5013 u16 reserved1;
4883 u32 reserved2; 5014 u32 reserved2;
4884 u32 reserved3; 5015 u32 reserved3;
@@ -4984,10 +5115,10 @@ enum event_ring_opcode {
4984 EVENT_RING_OPCODE_CLASSIFICATION_RULES, 5115 EVENT_RING_OPCODE_CLASSIFICATION_RULES,
4985 EVENT_RING_OPCODE_FILTERS_RULES, 5116 EVENT_RING_OPCODE_FILTERS_RULES,
4986 EVENT_RING_OPCODE_MULTICAST_RULES, 5117 EVENT_RING_OPCODE_MULTICAST_RULES,
5118 EVENT_RING_OPCODE_SET_TIMESYNC,
4987 MAX_EVENT_RING_OPCODE 5119 MAX_EVENT_RING_OPCODE
4988}; 5120};
4989 5121
4990
4991/* 5122/*
4992 * Modes for fairness algorithm 5123 * Modes for fairness algorithm
4993 */ 5124 */
@@ -5025,14 +5156,18 @@ struct flow_control_configuration {
5025 */ 5156 */
5026struct function_start_data { 5157struct function_start_data {
5027 u8 function_mode; 5158 u8 function_mode;
5028 u8 reserved; 5159 u8 allow_npar_tx_switching;
5029 __le16 sd_vlan_tag; 5160 __le16 sd_vlan_tag;
5030 __le16 vif_id; 5161 __le16 vif_id;
5031 u8 path_id; 5162 u8 path_id;
5032 u8 network_cos_mode; 5163 u8 network_cos_mode;
5164 u8 dmae_cmd_id;
5165 u8 gre_tunnel_mode;
5166 u8 gre_tunnel_rss;
5167 u8 nvgre_clss_en;
5168 __le16 reserved1[2];
5033}; 5169};
5034 5170
5035
5036struct function_update_data { 5171struct function_update_data {
5037 u8 vif_id_change_flg; 5172 u8 vif_id_change_flg;
5038 u8 afex_default_vlan_change_flg; 5173 u8 afex_default_vlan_change_flg;
@@ -5042,14 +5177,19 @@ struct function_update_data {
5042 __le16 afex_default_vlan; 5177 __le16 afex_default_vlan;
5043 u8 allowed_priorities; 5178 u8 allowed_priorities;
5044 u8 network_cos_mode; 5179 u8 network_cos_mode;
5180 u8 lb_mode_en_change_flg;
5045 u8 lb_mode_en; 5181 u8 lb_mode_en;
5046 u8 tx_switch_suspend_change_flg; 5182 u8 tx_switch_suspend_change_flg;
5047 u8 tx_switch_suspend; 5183 u8 tx_switch_suspend;
5048 u8 echo; 5184 u8 echo;
5049 __le16 reserved1; 5185 u8 reserved1;
5186 u8 update_gre_cfg_flg;
5187 u8 gre_tunnel_mode;
5188 u8 gre_tunnel_rss;
5189 u8 nvgre_clss_en;
5190 u32 reserved3;
5050}; 5191};
5051 5192
5052
5053/* 5193/*
5054 * FW version stored in the Xstorm RAM 5194 * FW version stored in the Xstorm RAM
5055 */ 5195 */
@@ -5076,6 +5216,22 @@ struct fw_version {
5076#define __FW_VERSION_RESERVED_SHIFT 4 5216#define __FW_VERSION_RESERVED_SHIFT 4
5077}; 5217};
5078 5218
5219/* GRE RSS Mode */
5220enum gre_rss_mode {
5221 GRE_OUTER_HEADERS_RSS,
5222 GRE_INNER_HEADERS_RSS,
5223 NVGRE_KEY_ENTROPY_RSS,
5224 MAX_GRE_RSS_MODE
5225};
5226
5227/* GRE Tunnel Mode */
5228enum gre_tunnel_type {
5229 NO_GRE_TUNNEL,
5230 NVGRE_TUNNEL,
5231 L2GRE_TUNNEL,
5232 IPGRE_TUNNEL,
5233 MAX_GRE_TUNNEL_TYPE
5234};
5079 5235
5080/* 5236/*
5081 * Dynamic Host-Coalescing - Driver(host) counters 5237 * Dynamic Host-Coalescing - Driver(host) counters
@@ -5239,6 +5395,26 @@ enum ip_ver {
5239 MAX_IP_VER 5395 MAX_IP_VER
5240}; 5396};
5241 5397
5398/*
5399 * Malicious VF error ID
5400 */
5401enum malicious_vf_error_id {
5402 VF_PF_CHANNEL_NOT_READY,
5403 ETH_ILLEGAL_BD_LENGTHS,
5404 ETH_PACKET_TOO_SHORT,
5405 ETH_PAYLOAD_TOO_BIG,
5406 ETH_ILLEGAL_ETH_TYPE,
5407 ETH_ILLEGAL_LSO_HDR_LEN,
5408 ETH_TOO_MANY_BDS,
5409 ETH_ZERO_HDR_NBDS,
5410 ETH_START_BD_NOT_SET,
5411 ETH_ILLEGAL_PARSE_NBDS,
5412 ETH_IPV6_AND_CHECKSUM,
5413 ETH_VLAN_FLG_INCORRECT,
5414 ETH_ILLEGAL_LSO_MSS,
5415 ETH_TUNNEL_NOT_SUPPORTED,
5416 MAX_MALICIOUS_VF_ERROR_ID
5417};
5242 5418
5243/* 5419/*
5244 * Multi-function modes 5420 * Multi-function modes
@@ -5383,7 +5559,6 @@ struct protocol_common_spe {
5383 union protocol_common_specific_data data; 5559 union protocol_common_specific_data data;
5384}; 5560};
5385 5561
5386
5387/* 5562/*
5388 * The send queue element 5563 * The send queue element
5389 */ 5564 */