13126df22SRasesh Mody /* SPDX-License-Identifier: BSD-3-Clause 29adde217SRasesh Mody * Copyright (c) 2016 - 2018 Cavium Inc. 3ec94dbc5SRasesh Mody * All rights reserved. 49adde217SRasesh Mody * www.cavium.com 5ec94dbc5SRasesh Mody */ 6ec94dbc5SRasesh Mody 7ec94dbc5SRasesh Mody #ifndef __ECORE_HSI_ETH__ 8ec94dbc5SRasesh Mody #define __ECORE_HSI_ETH__ 9ec94dbc5SRasesh Mody /************************************************************************/ 10ec94dbc5SRasesh Mody /* Add include to common eth target for both eCore and protocol driver */ 11ec94dbc5SRasesh Mody /************************************************************************/ 12ec94dbc5SRasesh Mody #include "eth_common.h" 13ec94dbc5SRasesh Mody 14ec94dbc5SRasesh Mody /* 15ec94dbc5SRasesh Mody * The eth storm context for the Tstorm 16ec94dbc5SRasesh Mody */ 17ec94dbc5SRasesh Mody struct tstorm_eth_conn_st_ctx { 18ec94dbc5SRasesh Mody __le32 reserved[4]; 19ec94dbc5SRasesh Mody }; 20ec94dbc5SRasesh Mody 21ec94dbc5SRasesh Mody /* 22ec94dbc5SRasesh Mody * The eth storm context for the Pstorm 23ec94dbc5SRasesh Mody */ 24ec94dbc5SRasesh Mody struct pstorm_eth_conn_st_ctx { 25ec94dbc5SRasesh Mody __le32 reserved[8]; 26ec94dbc5SRasesh Mody }; 27ec94dbc5SRasesh Mody 28ec94dbc5SRasesh Mody /* 29ec94dbc5SRasesh Mody * The eth storm context for the Xstorm 30ec94dbc5SRasesh Mody */ 31ec94dbc5SRasesh Mody struct xstorm_eth_conn_st_ctx { 32ec94dbc5SRasesh Mody __le32 reserved[60]; 33ec94dbc5SRasesh Mody }; 34ec94dbc5SRasesh Mody 3552fa735cSRasesh Mody struct xstorm_eth_conn_ag_ctx { 36ec94dbc5SRasesh Mody u8 reserved0 /* cdu_validation */; 37*7ed1cd53SRasesh Mody u8 state /* state */; 38ec94dbc5SRasesh Mody u8 flags0; 39610ccd98SRasesh Mody /* exist_in_qm0 */ 4052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 4152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 42610ccd98SRasesh Mody /* exist_in_qm1 */ 4352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED1_MASK 0x1 4452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED1_SHIFT 1 45610ccd98SRasesh Mody /* exist_in_qm2 */ 4652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED2_MASK 0x1 4752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED2_SHIFT 2 48610ccd98SRasesh Mody /* exist_in_qm3 */ 4952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 5052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3 5152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED3_MASK 0x1 /* bit4 */ 5252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED3_SHIFT 4 53610ccd98SRasesh Mody /* cf_array_active */ 5452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED4_MASK 0x1 5552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED4_SHIFT 5 5652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED5_MASK 0x1 /* bit6 */ 5752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED5_SHIFT 6 5852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED6_MASK 0x1 /* bit7 */ 5952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED6_SHIFT 7 60ec94dbc5SRasesh Mody u8 flags1; 6152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED7_MASK 0x1 /* bit8 */ 6252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED7_SHIFT 0 6352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED8_MASK 0x1 /* bit9 */ 6452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED8_SHIFT 1 6552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED9_MASK 0x1 /* bit10 */ 6652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED9_SHIFT 2 6752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_BIT11_MASK 0x1 /* bit11 */ 6852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_BIT11_SHIFT 3 6952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_E5_RESERVED2_MASK 0x1 /* bit12 */ 7052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_E5_RESERVED2_SHIFT 4 7152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_E5_RESERVED3_MASK 0x1 /* bit13 */ 7252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_E5_RESERVED3_SHIFT 5 7352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1 /* bit14 */ 7452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6 7552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1 /* bit15 */ 7652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7 77ec94dbc5SRasesh Mody u8 flags2; 7852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */ 7952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 0 8052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */ 8152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 2 8252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */ 8352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 4 84610ccd98SRasesh Mody /* timer_stop_all */ 8552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3 8652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF3_SHIFT 6 87ec94dbc5SRasesh Mody u8 flags3; 8852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */ 8952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF4_SHIFT 0 9052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */ 9152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF5_SHIFT 2 9252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 9352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF6_SHIFT 4 9452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */ 9552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF7_SHIFT 6 96ec94dbc5SRasesh Mody u8 flags4; 9752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */ 9852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF8_SHIFT 0 9952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */ 10052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF9_SHIFT 2 10152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */ 10252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF10_SHIFT 4 10352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF11_MASK 0x3 /* cf11 */ 10452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF11_SHIFT 6 105ec94dbc5SRasesh Mody u8 flags5; 10652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF12_MASK 0x3 /* cf12 */ 10752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF12_SHIFT 0 10852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF13_MASK 0x3 /* cf13 */ 10952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF13_SHIFT 2 11052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF14_MASK 0x3 /* cf14 */ 11152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF14_SHIFT 4 11252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF15_MASK 0x3 /* cf15 */ 11352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF15_SHIFT 6 114ec94dbc5SRasesh Mody u8 flags6; 11552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_MASK 0x3 /* cf16 */ 11652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_SHIFT 0 117610ccd98SRasesh Mody /* cf_array_cf */ 11852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_MASK 0x3 11952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_SHIFT 2 12052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_MASK 0x3 /* cf18 */ 12152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_SHIFT 4 12252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_MASK 0x3 /* cf19 */ 12352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_SHIFT 6 124ec94dbc5SRasesh Mody u8 flags7; 12552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 /* cf20 */ 12652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_SHIFT 0 12752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED10_MASK 0x3 /* cf21 */ 12852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED10_SHIFT 2 12952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_MASK 0x3 /* cf22 */ 13052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_SHIFT 4 13152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 13252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 6 13352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 13452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 7 135ec94dbc5SRasesh Mody u8 flags8; 13652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 13752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 0 13852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */ 13952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 1 14052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */ 14152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF4EN_SHIFT 2 14252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */ 14352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF5EN_SHIFT 3 14452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 14552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF6EN_SHIFT 4 14652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */ 14752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF7EN_SHIFT 5 14852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */ 14952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF8EN_SHIFT 6 15052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */ 15152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF9EN_SHIFT 7 152ec94dbc5SRasesh Mody u8 flags9; 15352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */ 15452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF10EN_SHIFT 0 15552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF11EN_MASK 0x1 /* cf11en */ 15652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF11EN_SHIFT 1 15752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF12EN_MASK 0x1 /* cf12en */ 15852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF12EN_SHIFT 2 15952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF13EN_MASK 0x1 /* cf13en */ 16052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF13EN_SHIFT 3 16152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF14EN_MASK 0x1 /* cf14en */ 16252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF14EN_SHIFT 4 16352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF15EN_MASK 0x1 /* cf15en */ 16452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_CF15EN_SHIFT 5 16552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_MASK 0x1 /* cf16en */ 16652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_SHIFT 6 167610ccd98SRasesh Mody /* cf_array_cf_en */ 16852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_EN_MASK 0x1 16952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_EN_SHIFT 7 170ec94dbc5SRasesh Mody u8 flags10; 17152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_EN_MASK 0x1 /* cf18en */ 17252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_EN_SHIFT 0 17352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1 /* cf19en */ 17452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1 17552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 /* cf20en */ 17652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2 17752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED11_MASK 0x1 /* cf21en */ 17852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED11_SHIFT 3 17952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 /* cf22en */ 18052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4 18152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_MASK 0x1 /* cf23en */ 18252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_SHIFT 5 18352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED12_MASK 0x1 /* rule0en */ 18452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED12_SHIFT 6 18552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED13_MASK 0x1 /* rule1en */ 18652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED13_SHIFT 7 187ec94dbc5SRasesh Mody u8 flags11; 18852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED14_MASK 0x1 /* rule2en */ 18952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED14_SHIFT 0 19052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED15_MASK 0x1 /* rule3en */ 19152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RESERVED15_SHIFT 1 19252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1 /* rule4en */ 19352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2 19452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 19552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 3 19652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */ 19752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE6EN_SHIFT 4 19852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 19952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 5 20052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 /* rule8en */ 20152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED1_SHIFT 6 20252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE9EN_MASK 0x1 /* rule9en */ 20352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE9EN_SHIFT 7 204ec94dbc5SRasesh Mody u8 flags12; 20552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE10EN_MASK 0x1 /* rule10en */ 20652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE10EN_SHIFT 0 20752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE11EN_MASK 0x1 /* rule11en */ 20852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE11EN_SHIFT 1 20952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 /* rule12en */ 21052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED2_SHIFT 2 21152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 /* rule13en */ 21252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED3_SHIFT 3 21352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE14EN_MASK 0x1 /* rule14en */ 21452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE14EN_SHIFT 4 21552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE15EN_MASK 0x1 /* rule15en */ 21652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE15EN_SHIFT 5 21752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE16EN_MASK 0x1 /* rule16en */ 21852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE16EN_SHIFT 6 21952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE17EN_MASK 0x1 /* rule17en */ 22052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE17EN_SHIFT 7 221ec94dbc5SRasesh Mody u8 flags13; 22252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE18EN_MASK 0x1 /* rule18en */ 22352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE18EN_SHIFT 0 22452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE19EN_MASK 0x1 /* rule19en */ 22552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_RULE19EN_SHIFT 1 22652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED4_MASK 0x1 /* rule20en */ 22752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED4_SHIFT 2 22852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED5_MASK 0x1 /* rule21en */ 22952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED5_SHIFT 3 23052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 /* rule22en */ 23152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED6_SHIFT 4 23252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED7_MASK 0x1 /* rule23en */ 23352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED7_SHIFT 5 23452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 /* rule24en */ 23552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED8_SHIFT 6 23652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 /* rule25en */ 23752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED9_SHIFT 7 238ec94dbc5SRasesh Mody u8 flags14; 23952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_EDPM_USE_EXT_HDR_MASK 0x1 /* bit16 */ 24052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_EDPM_USE_EXT_HDR_SHIFT 0 24152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_MASK 0x1 /* bit17 */ 24252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_SHIFT 1 24352fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_MASK 0x1 /* bit18 */ 24452fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_SHIFT 2 24552fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_MASK 0x1 /* bit19 */ 24652fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_SHIFT 3 24752fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_L2_EDPM_ENABLE_MASK 0x1 /* bit20 */ 24852fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_L2_EDPM_ENABLE_SHIFT 4 24952fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1 /* bit21 */ 25052fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5 25152fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_MASK 0x3 /* cf23 */ 25252fa735cSRasesh Mody #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_SHIFT 6 253ec94dbc5SRasesh Mody u8 edpm_event_id /* byte2 */; 254ec94dbc5SRasesh Mody __le16 physical_q0 /* physical_q0 */; 25569ff7477SRasesh Mody __le16 e5_reserved1 /* physical_q1 */; 256ec94dbc5SRasesh Mody __le16 edpm_num_bds /* physical_q2 */; 257ec94dbc5SRasesh Mody __le16 tx_bd_cons /* word3 */; 258ec94dbc5SRasesh Mody __le16 tx_bd_prod /* word4 */; 259c2817ba4SRasesh Mody __le16 updated_qm_pq_id /* word5 */; 260ec94dbc5SRasesh Mody __le16 conn_dpi /* conn_dpi */; 261ec94dbc5SRasesh Mody u8 byte3 /* byte3 */; 262ec94dbc5SRasesh Mody u8 byte4 /* byte4 */; 263ec94dbc5SRasesh Mody u8 byte5 /* byte5 */; 264ec94dbc5SRasesh Mody u8 byte6 /* byte6 */; 265ec94dbc5SRasesh Mody __le32 reg0 /* reg0 */; 266ec94dbc5SRasesh Mody __le32 reg1 /* reg1 */; 267ec94dbc5SRasesh Mody __le32 reg2 /* reg2 */; 268ec94dbc5SRasesh Mody __le32 reg3 /* reg3 */; 269ec94dbc5SRasesh Mody __le32 reg4 /* reg4 */; 270ec94dbc5SRasesh Mody __le32 reg5 /* cf_array0 */; 271ec94dbc5SRasesh Mody __le32 reg6 /* cf_array1 */; 272ec94dbc5SRasesh Mody __le16 word7 /* word7 */; 273ec94dbc5SRasesh Mody __le16 word8 /* word8 */; 274ec94dbc5SRasesh Mody __le16 word9 /* word9 */; 275ec94dbc5SRasesh Mody __le16 word10 /* word10 */; 276ec94dbc5SRasesh Mody __le32 reg7 /* reg7 */; 277ec94dbc5SRasesh Mody __le32 reg8 /* reg8 */; 278ec94dbc5SRasesh Mody __le32 reg9 /* reg9 */; 279ec94dbc5SRasesh Mody u8 byte7 /* byte7 */; 280ec94dbc5SRasesh Mody u8 byte8 /* byte8 */; 281ec94dbc5SRasesh Mody u8 byte9 /* byte9 */; 282ec94dbc5SRasesh Mody u8 byte10 /* byte10 */; 283ec94dbc5SRasesh Mody u8 byte11 /* byte11 */; 284ec94dbc5SRasesh Mody u8 byte12 /* byte12 */; 285ec94dbc5SRasesh Mody u8 byte13 /* byte13 */; 286ec94dbc5SRasesh Mody u8 byte14 /* byte14 */; 287ec94dbc5SRasesh Mody u8 byte15 /* byte15 */; 28869ff7477SRasesh Mody u8 e5_reserved /* e5_reserved */; 289ec94dbc5SRasesh Mody __le16 word11 /* word11 */; 290ec94dbc5SRasesh Mody __le32 reg10 /* reg10 */; 291ec94dbc5SRasesh Mody __le32 reg11 /* reg11 */; 292ec94dbc5SRasesh Mody __le32 reg12 /* reg12 */; 293ec94dbc5SRasesh Mody __le32 reg13 /* reg13 */; 294ec94dbc5SRasesh Mody __le32 reg14 /* reg14 */; 295ec94dbc5SRasesh Mody __le32 reg15 /* reg15 */; 296ec94dbc5SRasesh Mody __le32 reg16 /* reg16 */; 297ec94dbc5SRasesh Mody __le32 reg17 /* reg17 */; 298ec94dbc5SRasesh Mody __le32 reg18 /* reg18 */; 299ec94dbc5SRasesh Mody __le32 reg19 /* reg19 */; 300ec94dbc5SRasesh Mody __le16 word12 /* word12 */; 301ec94dbc5SRasesh Mody __le16 word13 /* word13 */; 302ec94dbc5SRasesh Mody __le16 word14 /* word14 */; 303ec94dbc5SRasesh Mody __le16 word15 /* word15 */; 304ec94dbc5SRasesh Mody }; 305ec94dbc5SRasesh Mody 30652fa735cSRasesh Mody struct tstorm_eth_conn_ag_ctx { 307ec94dbc5SRasesh Mody u8 byte0 /* cdu_validation */; 308ec94dbc5SRasesh Mody u8 byte1 /* state */; 309ec94dbc5SRasesh Mody u8 flags0; 31052fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */ 31152fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0 31252fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 31352fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1 31452fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_BIT2_MASK 0x1 /* bit2 */ 31552fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_BIT2_SHIFT 2 31652fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_BIT3_MASK 0x1 /* bit3 */ 31752fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_BIT3_SHIFT 3 31852fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_BIT4_MASK 0x1 /* bit4 */ 31952fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_BIT4_SHIFT 4 32052fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_BIT5_MASK 0x1 /* bit5 */ 32152fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_BIT5_SHIFT 5 32252fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */ 32352fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 6 324ec94dbc5SRasesh Mody u8 flags1; 32552fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */ 32652fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 0 32752fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */ 32852fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 2 32952fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */ 33052fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF3_SHIFT 4 33152fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */ 33252fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF4_SHIFT 6 333ec94dbc5SRasesh Mody u8 flags2; 33452fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */ 33552fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF5_SHIFT 0 33652fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 33752fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF6_SHIFT 2 33852fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */ 33952fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF7_SHIFT 4 34052fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */ 34152fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF8_SHIFT 6 342ec94dbc5SRasesh Mody u8 flags3; 34352fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */ 34452fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF9_SHIFT 0 34552fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */ 34652fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF10_SHIFT 2 34752fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 34852fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 4 34952fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 35052fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 5 35152fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 35252fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 6 35352fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */ 35452fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 7 355ec94dbc5SRasesh Mody u8 flags4; 35652fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */ 35752fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF4EN_SHIFT 0 35852fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */ 35952fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF5EN_SHIFT 1 36052fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 36152fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF6EN_SHIFT 2 36252fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */ 36352fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF7EN_SHIFT 3 36452fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */ 36552fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF8EN_SHIFT 4 36652fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */ 36752fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF9EN_SHIFT 5 36852fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */ 36952fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_CF10EN_SHIFT 6 37052fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 37152fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 7 372ec94dbc5SRasesh Mody u8 flags5; 37352fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 37452fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 0 37552fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 37652fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 1 37752fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 37852fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 2 37952fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 38052fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 3 38152fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 38252fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 4 38352fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RX_BD_EN_MASK 0x1 /* rule6en */ 38452fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RX_BD_EN_SHIFT 5 38552fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 38652fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 6 38752fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE8EN_MASK 0x1 /* rule8en */ 38852fa735cSRasesh Mody #define TSTORM_ETH_CONN_AG_CTX_RULE8EN_SHIFT 7 389ec94dbc5SRasesh Mody __le32 reg0 /* reg0 */; 390ec94dbc5SRasesh Mody __le32 reg1 /* reg1 */; 391ec94dbc5SRasesh Mody __le32 reg2 /* reg2 */; 392ec94dbc5SRasesh Mody __le32 reg3 /* reg3 */; 393ec94dbc5SRasesh Mody __le32 reg4 /* reg4 */; 394ec94dbc5SRasesh Mody __le32 reg5 /* reg5 */; 395ec94dbc5SRasesh Mody __le32 reg6 /* reg6 */; 396ec94dbc5SRasesh Mody __le32 reg7 /* reg7 */; 397ec94dbc5SRasesh Mody __le32 reg8 /* reg8 */; 398ec94dbc5SRasesh Mody u8 byte2 /* byte2 */; 399ec94dbc5SRasesh Mody u8 byte3 /* byte3 */; 400ec94dbc5SRasesh Mody __le16 rx_bd_cons /* word0 */; 401ec94dbc5SRasesh Mody u8 byte4 /* byte4 */; 402ec94dbc5SRasesh Mody u8 byte5 /* byte5 */; 403ec94dbc5SRasesh Mody __le16 rx_bd_prod /* word1 */; 404ec94dbc5SRasesh Mody __le16 word2 /* conn_dpi */; 405ec94dbc5SRasesh Mody __le16 word3 /* word3 */; 406ec94dbc5SRasesh Mody __le32 reg9 /* reg9 */; 407ec94dbc5SRasesh Mody __le32 reg10 /* reg10 */; 408ec94dbc5SRasesh Mody }; 409ec94dbc5SRasesh Mody 410*7ed1cd53SRasesh Mody /* 411*7ed1cd53SRasesh Mody * The eth storm context for the Ystorm 412*7ed1cd53SRasesh Mody */ 413*7ed1cd53SRasesh Mody struct ystorm_eth_conn_st_ctx { 414*7ed1cd53SRasesh Mody __le32 reserved[8]; 415*7ed1cd53SRasesh Mody }; 416*7ed1cd53SRasesh Mody 417*7ed1cd53SRasesh Mody struct ystorm_eth_conn_ag_ctx { 418*7ed1cd53SRasesh Mody u8 byte0 /* cdu_validation */; 419*7ed1cd53SRasesh Mody u8 state /* state */; 420*7ed1cd53SRasesh Mody u8 flags0; 421*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */ 422*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0 423*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 424*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1 425*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_MASK 0x3 /* cf0 */ 426*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_SHIFT 2 427*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_MASK 0x3 /* cf1 */ 428*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_SHIFT 4 429*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* cf2 */ 430*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6 431*7ed1cd53SRasesh Mody u8 flags1; 432*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_MASK 0x1 /* cf0en */ 433*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_SHIFT 0 434*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_EN_MASK 0x1 /* cf1en */ 435*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_EN_SHIFT 1 436*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 437*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2 438*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 439*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 3 440*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 441*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 4 442*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 443*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 5 444*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 445*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 6 446*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 447*7ed1cd53SRasesh Mody #define YSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 7 448*7ed1cd53SRasesh Mody u8 tx_q0_int_coallecing_timeset /* byte2 */; 449*7ed1cd53SRasesh Mody u8 byte3 /* byte3 */; 450*7ed1cd53SRasesh Mody __le16 word0 /* word0 */; 451*7ed1cd53SRasesh Mody __le32 terminate_spqe /* reg0 */; 452*7ed1cd53SRasesh Mody __le32 reg1 /* reg1 */; 453*7ed1cd53SRasesh Mody __le16 tx_bd_cons_upd /* word1 */; 454*7ed1cd53SRasesh Mody __le16 word2 /* word2 */; 455*7ed1cd53SRasesh Mody __le16 word3 /* word3 */; 456*7ed1cd53SRasesh Mody __le16 word4 /* word4 */; 457*7ed1cd53SRasesh Mody __le32 reg2 /* reg2 */; 458*7ed1cd53SRasesh Mody __le32 reg3 /* reg3 */; 459*7ed1cd53SRasesh Mody }; 460*7ed1cd53SRasesh Mody 46152fa735cSRasesh Mody struct ustorm_eth_conn_ag_ctx { 462ec94dbc5SRasesh Mody u8 byte0 /* cdu_validation */; 463ec94dbc5SRasesh Mody u8 byte1 /* state */; 464ec94dbc5SRasesh Mody u8 flags0; 465610ccd98SRasesh Mody /* exist_in_qm0 */ 46652fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1 46752fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0 468610ccd98SRasesh Mody /* exist_in_qm1 */ 46952fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 47052fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1 47152fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_MASK 0x3 /* timer0cf */ 47252fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_SHIFT 2 47352fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_MASK 0x3 /* timer1cf */ 47452fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_SHIFT 4 47552fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */ 47652fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6 477ec94dbc5SRasesh Mody u8 flags1; 478610ccd98SRasesh Mody /* timer_stop_all */ 47952fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3 48052fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_CF3_SHIFT 0 48152fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_MASK 0x3 /* cf4 */ 48252fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_SHIFT 2 48352fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_MASK 0x3 /* cf5 */ 48452fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_SHIFT 4 48552fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_MASK 0x3 /* cf6 */ 48652fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_SHIFT 6 487ec94dbc5SRasesh Mody u8 flags2; 48852fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_EN_MASK 0x1 /* cf0en */ 48952fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_EN_SHIFT 0 49052fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_EN_MASK 0x1 /* cf1en */ 49152fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_EN_SHIFT 1 49252fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 49352fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2 49452fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */ 49552fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 3 49652fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_EN_MASK 0x1 /* cf4en */ 49752fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_EN_SHIFT 4 49852fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_EN_MASK 0x1 /* cf5en */ 49952fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_EN_SHIFT 5 50052fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_MASK 0x1 /* cf6en */ 50152fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_SHIFT 6 50252fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 50352fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 7 504ec94dbc5SRasesh Mody u8 flags3; 50552fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 50652fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 0 50752fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 50852fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 1 50952fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 51052fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 2 51152fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 51252fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 3 51352fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 51452fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 4 51552fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */ 51652fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE6EN_SHIFT 5 51752fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 51852fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 6 51952fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE8EN_MASK 0x1 /* rule8en */ 52052fa735cSRasesh Mody #define USTORM_ETH_CONN_AG_CTX_RULE8EN_SHIFT 7 521ec94dbc5SRasesh Mody u8 byte2 /* byte2 */; 522ec94dbc5SRasesh Mody u8 byte3 /* byte3 */; 523ec94dbc5SRasesh Mody __le16 word0 /* conn_dpi */; 524ec94dbc5SRasesh Mody __le16 tx_bd_cons /* word1 */; 525ec94dbc5SRasesh Mody __le32 reg0 /* reg0 */; 526ec94dbc5SRasesh Mody __le32 reg1 /* reg1 */; 527ec94dbc5SRasesh Mody __le32 reg2 /* reg2 */; 528ec94dbc5SRasesh Mody __le32 tx_int_coallecing_timeset /* reg3 */; 529ec94dbc5SRasesh Mody __le16 tx_drv_bd_cons /* word2 */; 530ec94dbc5SRasesh Mody __le16 rx_drv_cqe_cons /* word3 */; 531ec94dbc5SRasesh Mody }; 532ec94dbc5SRasesh Mody 533ec94dbc5SRasesh Mody /* 534ec94dbc5SRasesh Mody * The eth storm context for the Ustorm 535ec94dbc5SRasesh Mody */ 536ec94dbc5SRasesh Mody struct ustorm_eth_conn_st_ctx { 537ec94dbc5SRasesh Mody __le32 reserved[40]; 538ec94dbc5SRasesh Mody }; 539ec94dbc5SRasesh Mody 540ec94dbc5SRasesh Mody /* 541ec94dbc5SRasesh Mody * The eth storm context for the Mstorm 542ec94dbc5SRasesh Mody */ 543ec94dbc5SRasesh Mody struct mstorm_eth_conn_st_ctx { 544ec94dbc5SRasesh Mody __le32 reserved[8]; 545ec94dbc5SRasesh Mody }; 546ec94dbc5SRasesh Mody 547ec94dbc5SRasesh Mody /* 548ec94dbc5SRasesh Mody * eth connection context 549ec94dbc5SRasesh Mody */ 55052fa735cSRasesh Mody struct eth_conn_context { 551610ccd98SRasesh Mody /* tstorm storm context */ 552610ccd98SRasesh Mody struct tstorm_eth_conn_st_ctx tstorm_st_context; 553ec94dbc5SRasesh Mody struct regpair tstorm_st_padding[2] /* padding */; 554610ccd98SRasesh Mody /* pstorm storm context */ 555610ccd98SRasesh Mody struct pstorm_eth_conn_st_ctx pstorm_st_context; 556610ccd98SRasesh Mody /* xstorm storm context */ 557610ccd98SRasesh Mody struct xstorm_eth_conn_st_ctx xstorm_st_context; 558610ccd98SRasesh Mody /* xstorm aggregative context */ 55952fa735cSRasesh Mody struct xstorm_eth_conn_ag_ctx xstorm_ag_context; 560*7ed1cd53SRasesh Mody /* tstorm aggregative context */ 561*7ed1cd53SRasesh Mody struct tstorm_eth_conn_ag_ctx tstorm_ag_context; 562610ccd98SRasesh Mody /* ystorm storm context */ 563610ccd98SRasesh Mody struct ystorm_eth_conn_st_ctx ystorm_st_context; 564610ccd98SRasesh Mody /* ystorm aggregative context */ 56552fa735cSRasesh Mody struct ystorm_eth_conn_ag_ctx ystorm_ag_context; 566610ccd98SRasesh Mody /* ustorm aggregative context */ 56752fa735cSRasesh Mody struct ustorm_eth_conn_ag_ctx ustorm_ag_context; 568610ccd98SRasesh Mody /* ustorm storm context */ 569610ccd98SRasesh Mody struct ustorm_eth_conn_st_ctx ustorm_st_context; 570610ccd98SRasesh Mody /* mstorm storm context */ 571610ccd98SRasesh Mody struct mstorm_eth_conn_st_ctx mstorm_st_context; 572ec94dbc5SRasesh Mody }; 573ec94dbc5SRasesh Mody 574610ccd98SRasesh Mody 575ec94dbc5SRasesh Mody /* 576ec94dbc5SRasesh Mody * Ethernet filter types: mac/vlan/pair 577ec94dbc5SRasesh Mody */ 578ec94dbc5SRasesh Mody enum eth_error_code { 579ec94dbc5SRasesh Mody ETH_OK = 0x00 /* command succeeded */, 580610ccd98SRasesh Mody /* mac add filters command failed due to cam full state */ 581610ccd98SRasesh Mody ETH_FILTERS_MAC_ADD_FAIL_FULL, 582610ccd98SRasesh Mody /* mac add filters command failed due to mtt2 full state */ 583610ccd98SRasesh Mody ETH_FILTERS_MAC_ADD_FAIL_FULL_MTT2, 584610ccd98SRasesh Mody /* mac add filters command failed due to duplicate mac address */ 585610ccd98SRasesh Mody ETH_FILTERS_MAC_ADD_FAIL_DUP_MTT2, 586610ccd98SRasesh Mody /* mac add filters command failed due to duplicate mac address */ 587610ccd98SRasesh Mody ETH_FILTERS_MAC_ADD_FAIL_DUP_STT2, 588610ccd98SRasesh Mody /* mac delete filters command failed due to not found state */ 589610ccd98SRasesh Mody ETH_FILTERS_MAC_DEL_FAIL_NOF, 590610ccd98SRasesh Mody /* mac delete filters command failed due to not found state */ 591610ccd98SRasesh Mody ETH_FILTERS_MAC_DEL_FAIL_NOF_MTT2, 592610ccd98SRasesh Mody /* mac delete filters command failed due to not found state */ 593610ccd98SRasesh Mody ETH_FILTERS_MAC_DEL_FAIL_NOF_STT2, 594610ccd98SRasesh Mody /* mac add filters command failed due to MAC Address of 00:00:00:00:00:00 */ 595610ccd98SRasesh Mody ETH_FILTERS_MAC_ADD_FAIL_ZERO_MAC, 596610ccd98SRasesh Mody /* vlan add filters command failed due to cam full state */ 597610ccd98SRasesh Mody ETH_FILTERS_VLAN_ADD_FAIL_FULL, 598610ccd98SRasesh Mody /* vlan add filters command failed due to duplicate VLAN filter */ 599610ccd98SRasesh Mody ETH_FILTERS_VLAN_ADD_FAIL_DUP, 600610ccd98SRasesh Mody /* vlan delete filters command failed due to not found state */ 601610ccd98SRasesh Mody ETH_FILTERS_VLAN_DEL_FAIL_NOF, 602610ccd98SRasesh Mody /* vlan delete filters command failed due to not found state */ 603610ccd98SRasesh Mody ETH_FILTERS_VLAN_DEL_FAIL_NOF_TT1, 604610ccd98SRasesh Mody /* pair add filters command failed due to duplicate request */ 605610ccd98SRasesh Mody ETH_FILTERS_PAIR_ADD_FAIL_DUP, 606610ccd98SRasesh Mody /* pair add filters command failed due to full state */ 607610ccd98SRasesh Mody ETH_FILTERS_PAIR_ADD_FAIL_FULL, 608610ccd98SRasesh Mody /* pair add filters command failed due to full state */ 609610ccd98SRasesh Mody ETH_FILTERS_PAIR_ADD_FAIL_FULL_MAC, 610610ccd98SRasesh Mody /* pair add filters command failed due not found state */ 611610ccd98SRasesh Mody ETH_FILTERS_PAIR_DEL_FAIL_NOF, 612610ccd98SRasesh Mody /* pair add filters command failed due not found state */ 613610ccd98SRasesh Mody ETH_FILTERS_PAIR_DEL_FAIL_NOF_TT1, 614610ccd98SRasesh Mody /* pair add filters command failed due to MAC Address of 00:00:00:00:00:00 */ 615610ccd98SRasesh Mody ETH_FILTERS_PAIR_ADD_FAIL_ZERO_MAC, 616610ccd98SRasesh Mody /* vni add filters command failed due to cam full state */ 617610ccd98SRasesh Mody ETH_FILTERS_VNI_ADD_FAIL_FULL, 618610ccd98SRasesh Mody /* vni add filters command failed due to duplicate VNI filter */ 619610ccd98SRasesh Mody ETH_FILTERS_VNI_ADD_FAIL_DUP, 620806474a6SRasesh Mody ETH_FILTERS_GFT_UPDATE_FAIL /* Fail update GFT filter. */, 621ec94dbc5SRasesh Mody MAX_ETH_ERROR_CODE 622ec94dbc5SRasesh Mody }; 623ec94dbc5SRasesh Mody 624610ccd98SRasesh Mody 625ec94dbc5SRasesh Mody /* 626ec94dbc5SRasesh Mody * opcodes for the event ring 627ec94dbc5SRasesh Mody */ 628ec94dbc5SRasesh Mody enum eth_event_opcode { 629ec94dbc5SRasesh Mody ETH_EVENT_UNUSED, 630ec94dbc5SRasesh Mody ETH_EVENT_VPORT_START, 631ec94dbc5SRasesh Mody ETH_EVENT_VPORT_UPDATE, 632ec94dbc5SRasesh Mody ETH_EVENT_VPORT_STOP, 633ec94dbc5SRasesh Mody ETH_EVENT_TX_QUEUE_START, 634ec94dbc5SRasesh Mody ETH_EVENT_TX_QUEUE_STOP, 635ec94dbc5SRasesh Mody ETH_EVENT_RX_QUEUE_START, 636ec94dbc5SRasesh Mody ETH_EVENT_RX_QUEUE_UPDATE, 637ec94dbc5SRasesh Mody ETH_EVENT_RX_QUEUE_STOP, 638ec94dbc5SRasesh Mody ETH_EVENT_FILTERS_UPDATE, 639ec94dbc5SRasesh Mody ETH_EVENT_RX_ADD_OPENFLOW_FILTER, 640ec94dbc5SRasesh Mody ETH_EVENT_RX_DELETE_OPENFLOW_FILTER, 641ec94dbc5SRasesh Mody ETH_EVENT_RX_CREATE_OPENFLOW_ACTION, 642ec94dbc5SRasesh Mody ETH_EVENT_RX_ADD_UDP_FILTER, 643ec94dbc5SRasesh Mody ETH_EVENT_RX_DELETE_UDP_FILTER, 644ec94dbc5SRasesh Mody ETH_EVENT_RX_CREATE_GFT_ACTION, 64522d07d93SRasesh Mody ETH_EVENT_RX_GFT_UPDATE_FILTER, 64640cf1e75SRasesh Mody ETH_EVENT_TX_QUEUE_UPDATE, 647ec94dbc5SRasesh Mody MAX_ETH_EVENT_OPCODE 648ec94dbc5SRasesh Mody }; 649ec94dbc5SRasesh Mody 650610ccd98SRasesh Mody 651ec94dbc5SRasesh Mody /* 652ec94dbc5SRasesh Mody * Classify rule types in E2/E3 653ec94dbc5SRasesh Mody */ 654ec94dbc5SRasesh Mody enum eth_filter_action { 655ec94dbc5SRasesh Mody ETH_FILTER_ACTION_UNUSED, 656ec94dbc5SRasesh Mody ETH_FILTER_ACTION_REMOVE, 657ec94dbc5SRasesh Mody ETH_FILTER_ACTION_ADD, 658610ccd98SRasesh Mody /* Remove all filters of given type and vport ID. */ 659610ccd98SRasesh Mody ETH_FILTER_ACTION_REMOVE_ALL, 660ec94dbc5SRasesh Mody MAX_ETH_FILTER_ACTION 661ec94dbc5SRasesh Mody }; 662ec94dbc5SRasesh Mody 663610ccd98SRasesh Mody 664ec94dbc5SRasesh Mody /* 665ec94dbc5SRasesh Mody * Command for adding/removing a classification rule $$KEEP_ENDIANNESS$$ 666ec94dbc5SRasesh Mody */ 667ec94dbc5SRasesh Mody struct eth_filter_cmd { 668ec94dbc5SRasesh Mody u8 type /* Filter Type (MAC/VLAN/Pair/VNI) */; 669ec94dbc5SRasesh Mody u8 vport_id /* the vport id */; 670ec94dbc5SRasesh Mody u8 action /* filter command action: add/remove/replace */; 671ec94dbc5SRasesh Mody u8 reserved0; 672ec94dbc5SRasesh Mody __le32 vni; 673ec94dbc5SRasesh Mody __le16 mac_lsb; 674ec94dbc5SRasesh Mody __le16 mac_mid; 675ec94dbc5SRasesh Mody __le16 mac_msb; 676ec94dbc5SRasesh Mody __le16 vlan_id; 677ec94dbc5SRasesh Mody }; 678ec94dbc5SRasesh Mody 679610ccd98SRasesh Mody 680ec94dbc5SRasesh Mody /* 681ec94dbc5SRasesh Mody * $$KEEP_ENDIANNESS$$ 682ec94dbc5SRasesh Mody */ 683ec94dbc5SRasesh Mody struct eth_filter_cmd_header { 684ec94dbc5SRasesh Mody u8 rx /* If set, apply these commands to the RX path */; 685ec94dbc5SRasesh Mody u8 tx /* If set, apply these commands to the TX path */; 686ec94dbc5SRasesh Mody u8 cmd_cnt /* Number of filter commands */; 687610ccd98SRasesh Mody /* 0 - dont assert in case of filter configuration error. Just return an error 688610ccd98SRasesh Mody * code. 1 - assert in case of filter configuration error. 689610ccd98SRasesh Mody */ 690ec94dbc5SRasesh Mody u8 assert_on_error; 691ec94dbc5SRasesh Mody u8 reserved1[4]; 692ec94dbc5SRasesh Mody }; 693ec94dbc5SRasesh Mody 694610ccd98SRasesh Mody 695ec94dbc5SRasesh Mody /* 696ec94dbc5SRasesh Mody * Ethernet filter types: mac/vlan/pair 697ec94dbc5SRasesh Mody */ 698ec94dbc5SRasesh Mody enum eth_filter_type { 699ec94dbc5SRasesh Mody ETH_FILTER_TYPE_UNUSED, 700ec94dbc5SRasesh Mody ETH_FILTER_TYPE_MAC /* Add/remove a MAC address */, 701ec94dbc5SRasesh Mody ETH_FILTER_TYPE_VLAN /* Add/remove a VLAN */, 702ec94dbc5SRasesh Mody ETH_FILTER_TYPE_PAIR /* Add/remove a MAC-VLAN pair */, 703ec94dbc5SRasesh Mody ETH_FILTER_TYPE_INNER_MAC /* Add/remove a inner MAC address */, 704ec94dbc5SRasesh Mody ETH_FILTER_TYPE_INNER_VLAN /* Add/remove a inner VLAN */, 705ec94dbc5SRasesh Mody ETH_FILTER_TYPE_INNER_PAIR /* Add/remove a inner MAC-VLAN pair */, 706610ccd98SRasesh Mody /* Add/remove a inner MAC-VNI pair */ 707610ccd98SRasesh Mody ETH_FILTER_TYPE_INNER_MAC_VNI_PAIR, 708ec94dbc5SRasesh Mody ETH_FILTER_TYPE_MAC_VNI_PAIR /* Add/remove a MAC-VNI pair */, 709ec94dbc5SRasesh Mody ETH_FILTER_TYPE_VNI /* Add/remove a VNI */, 710ec94dbc5SRasesh Mody MAX_ETH_FILTER_TYPE 711ec94dbc5SRasesh Mody }; 712ec94dbc5SRasesh Mody 713610ccd98SRasesh Mody 714ec94dbc5SRasesh Mody /* 7153c361686SRasesh Mody * inner to inner vlan priority translation configurations 7163c361686SRasesh Mody */ 7173c361686SRasesh Mody struct eth_in_to_in_pri_map_cfg { 7183c361686SRasesh Mody /* If set, non_rdma_in_to_in_pri_map or rdma_in_to_in_pri_map will be used for 7193c361686SRasesh Mody * inner to inner priority mapping depending on protocol type 7203c361686SRasesh Mody */ 7213c361686SRasesh Mody u8 inner_vlan_pri_remap_en; 7223c361686SRasesh Mody u8 reserved[7]; 7233c361686SRasesh Mody /* Map for inner to inner vlan priority translation for Non RDMA protocols, used 7243c361686SRasesh Mody * for TenantDcb. Set inner_vlan_pri_remap_en, when init the map. 7253c361686SRasesh Mody */ 7263c361686SRasesh Mody u8 non_rdma_in_to_in_pri_map[8]; 7273c361686SRasesh Mody /* Map for inner to inner vlan priority translation for RDMA protocols, used for 7283c361686SRasesh Mody * TenantDcb. Set inner_vlan_pri_remap_en, when init the map. 7293c361686SRasesh Mody */ 7303c361686SRasesh Mody u8 rdma_in_to_in_pri_map[8]; 7313c361686SRasesh Mody }; 7323c361686SRasesh Mody 7333c361686SRasesh Mody 7343c361686SRasesh Mody /* 735ec94dbc5SRasesh Mody * eth IPv4 Fragment Type 736ec94dbc5SRasesh Mody */ 737ec94dbc5SRasesh Mody enum eth_ipv4_frag_type { 738ec94dbc5SRasesh Mody ETH_IPV4_NOT_FRAG /* IPV4 Packet Not Fragmented */, 739610ccd98SRasesh Mody /* First Fragment of IPv4 Packet (contains headers) */ 740610ccd98SRasesh Mody ETH_IPV4_FIRST_FRAG, 741610ccd98SRasesh Mody /* Non-First Fragment of IPv4 Packet (does not contain headers) */ 742610ccd98SRasesh Mody ETH_IPV4_NON_FIRST_FRAG, 743ec94dbc5SRasesh Mody MAX_ETH_IPV4_FRAG_TYPE 744ec94dbc5SRasesh Mody }; 745ec94dbc5SRasesh Mody 746610ccd98SRasesh Mody 747ec94dbc5SRasesh Mody /* 748ec94dbc5SRasesh Mody * eth IPv4 Fragment Type 749ec94dbc5SRasesh Mody */ 750ec94dbc5SRasesh Mody enum eth_ip_type { 751ec94dbc5SRasesh Mody ETH_IPV4 /* IPv4 */, 752ec94dbc5SRasesh Mody ETH_IPV6 /* IPv6 */, 753ec94dbc5SRasesh Mody MAX_ETH_IP_TYPE 754ec94dbc5SRasesh Mody }; 755ec94dbc5SRasesh Mody 756610ccd98SRasesh Mody 757ec94dbc5SRasesh Mody /* 758ec94dbc5SRasesh Mody * Ethernet Ramrod Command IDs 759ec94dbc5SRasesh Mody */ 760ec94dbc5SRasesh Mody enum eth_ramrod_cmd_id { 761ec94dbc5SRasesh Mody ETH_RAMROD_UNUSED, 762ec94dbc5SRasesh Mody ETH_RAMROD_VPORT_START /* VPort Start Ramrod */, 763ec94dbc5SRasesh Mody ETH_RAMROD_VPORT_UPDATE /* VPort Update Ramrod */, 764ec94dbc5SRasesh Mody ETH_RAMROD_VPORT_STOP /* VPort Stop Ramrod */, 765ec94dbc5SRasesh Mody ETH_RAMROD_RX_QUEUE_START /* RX Queue Start Ramrod */, 766ec94dbc5SRasesh Mody ETH_RAMROD_RX_QUEUE_STOP /* RX Queue Stop Ramrod */, 767ec94dbc5SRasesh Mody ETH_RAMROD_TX_QUEUE_START /* TX Queue Start Ramrod */, 768ec94dbc5SRasesh Mody ETH_RAMROD_TX_QUEUE_STOP /* TX Queue Stop Ramrod */, 769ec94dbc5SRasesh Mody ETH_RAMROD_FILTERS_UPDATE /* Add or Remove Mac/Vlan/Pair filters */, 770ec94dbc5SRasesh Mody ETH_RAMROD_RX_QUEUE_UPDATE /* RX Queue Update Ramrod */, 77122d07d93SRasesh Mody /* RX - Create an Openflow Action */ 77222d07d93SRasesh Mody ETH_RAMROD_RX_CREATE_OPENFLOW_ACTION, 77322d07d93SRasesh Mody /* RX - Add an Openflow Filter to the Searcher */ 77422d07d93SRasesh Mody ETH_RAMROD_RX_ADD_OPENFLOW_FILTER, 77522d07d93SRasesh Mody /* RX - Delete an Openflow Filter to the Searcher */ 77622d07d93SRasesh Mody ETH_RAMROD_RX_DELETE_OPENFLOW_FILTER, 77722d07d93SRasesh Mody /* RX - Add a UDP Filter to the Searcher */ 77822d07d93SRasesh Mody ETH_RAMROD_RX_ADD_UDP_FILTER, 77922d07d93SRasesh Mody /* RX - Delete a UDP Filter to the Searcher */ 78022d07d93SRasesh Mody ETH_RAMROD_RX_DELETE_UDP_FILTER, 78122d07d93SRasesh Mody ETH_RAMROD_RX_CREATE_GFT_ACTION /* RX - Create a Gft Action */, 78222d07d93SRasesh Mody /* RX - Add/Delete a GFT Filter to the Searcher */ 78322d07d93SRasesh Mody ETH_RAMROD_GFT_UPDATE_FILTER, 78440cf1e75SRasesh Mody ETH_RAMROD_TX_QUEUE_UPDATE /* TX Queue Update Ramrod */, 785ec94dbc5SRasesh Mody MAX_ETH_RAMROD_CMD_ID 786ec94dbc5SRasesh Mody }; 787ec94dbc5SRasesh Mody 788610ccd98SRasesh Mody 789ec94dbc5SRasesh Mody /* 790ec94dbc5SRasesh Mody * return code from eth sp ramrods 791ec94dbc5SRasesh Mody */ 792ec94dbc5SRasesh Mody struct eth_return_code { 793ec94dbc5SRasesh Mody u8 value; 794610ccd98SRasesh Mody /* error code (use enum eth_error_code) */ 795*7ed1cd53SRasesh Mody #define ETH_RETURN_CODE_ERR_CODE_MASK 0x3F 796ec94dbc5SRasesh Mody #define ETH_RETURN_CODE_ERR_CODE_SHIFT 0 797*7ed1cd53SRasesh Mody #define ETH_RETURN_CODE_RESERVED_MASK 0x1 798*7ed1cd53SRasesh Mody #define ETH_RETURN_CODE_RESERVED_SHIFT 6 799610ccd98SRasesh Mody /* rx path - 0, tx path - 1 */ 800ec94dbc5SRasesh Mody #define ETH_RETURN_CODE_RX_TX_MASK 0x1 801ec94dbc5SRasesh Mody #define ETH_RETURN_CODE_RX_TX_SHIFT 7 802ec94dbc5SRasesh Mody }; 803ec94dbc5SRasesh Mody 804610ccd98SRasesh Mody 805ec94dbc5SRasesh Mody /* 806*7ed1cd53SRasesh Mody * tx destination enum 807*7ed1cd53SRasesh Mody */ 808*7ed1cd53SRasesh Mody enum eth_tx_dst_mode_config_enum { 809*7ed1cd53SRasesh Mody /* tx destination configuration override is disabled */ 810*7ed1cd53SRasesh Mody ETH_TX_DST_MODE_CONFIG_DISABLE, 811*7ed1cd53SRasesh Mody /* tx destination configuration override is enabled, vport and tx dst will be 812*7ed1cd53SRasesh Mody * taken from from 4th bd 813*7ed1cd53SRasesh Mody */ 814*7ed1cd53SRasesh Mody ETH_TX_DST_MODE_CONFIG_FORWARD_DATA_IN_BD, 815*7ed1cd53SRasesh Mody /* tx destination configuration override is enabled, vport and tx dst will be 816*7ed1cd53SRasesh Mody * taken from from vport data 817*7ed1cd53SRasesh Mody */ 818*7ed1cd53SRasesh Mody ETH_TX_DST_MODE_CONFIG_FORWARD_DATA_IN_VPORT, 819*7ed1cd53SRasesh Mody MAX_ETH_TX_DST_MODE_CONFIG_ENUM 820*7ed1cd53SRasesh Mody }; 821*7ed1cd53SRasesh Mody 822*7ed1cd53SRasesh Mody 823*7ed1cd53SRasesh Mody /* 824ec94dbc5SRasesh Mody * What to do in case an error occurs 825ec94dbc5SRasesh Mody */ 826ec94dbc5SRasesh Mody enum eth_tx_err { 827ec94dbc5SRasesh Mody ETH_TX_ERR_DROP /* Drop erroneous packet. */, 828610ccd98SRasesh Mody /* Assert an interrupt for PF, declare as malicious for VF */ 829610ccd98SRasesh Mody ETH_TX_ERR_ASSERT_MALICIOUS, 830ec94dbc5SRasesh Mody MAX_ETH_TX_ERR 831ec94dbc5SRasesh Mody }; 832ec94dbc5SRasesh Mody 833610ccd98SRasesh Mody 834ec94dbc5SRasesh Mody /* 835ec94dbc5SRasesh Mody * Array of the different error type behaviors 836ec94dbc5SRasesh Mody */ 837ec94dbc5SRasesh Mody struct eth_tx_err_vals { 838ec94dbc5SRasesh Mody __le16 values; 839610ccd98SRasesh Mody /* Wrong VLAN insertion mode (use enum eth_tx_err) */ 840ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_ILLEGAL_VLAN_MODE_MASK 0x1 841ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_ILLEGAL_VLAN_MODE_SHIFT 0 842610ccd98SRasesh Mody /* Packet is below minimal size (use enum eth_tx_err) */ 843ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_PACKET_TOO_SMALL_MASK 0x1 844ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_PACKET_TOO_SMALL_SHIFT 1 845610ccd98SRasesh Mody /* Vport has sent spoofed packet (use enum eth_tx_err) */ 846ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_ANTI_SPOOFING_ERR_MASK 0x1 847ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_ANTI_SPOOFING_ERR_SHIFT 2 848610ccd98SRasesh Mody /* Packet with illegal type of inband tag (use enum eth_tx_err) */ 849ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_ILLEGAL_INBAND_TAGS_MASK 0x1 850ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_ILLEGAL_INBAND_TAGS_SHIFT 3 851610ccd98SRasesh Mody /* Packet marked for VLAN insertion when inband tag is present 852610ccd98SRasesh Mody * (use enum eth_tx_err) 853610ccd98SRasesh Mody */ 854ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_VLAN_INSERTION_W_INBAND_TAG_MASK 0x1 855ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_VLAN_INSERTION_W_INBAND_TAG_SHIFT 4 856610ccd98SRasesh Mody /* Non LSO packet larger than MTU (use enum eth_tx_err) */ 857ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_MTU_VIOLATION_MASK 0x1 858ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_MTU_VIOLATION_SHIFT 5 859610ccd98SRasesh Mody /* VF/PF has sent LLDP/PFC or any other type of control packet which is not 860610ccd98SRasesh Mody * allowed to (use enum eth_tx_err) 861610ccd98SRasesh Mody */ 862ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_MASK 0x1 863ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_SHIFT 6 864ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_RESERVED_MASK 0x1FF 865ec94dbc5SRasesh Mody #define ETH_TX_ERR_VALS_RESERVED_SHIFT 7 866ec94dbc5SRasesh Mody }; 867ec94dbc5SRasesh Mody 868610ccd98SRasesh Mody 869ec94dbc5SRasesh Mody /* 870ec94dbc5SRasesh Mody * vport rss configuration data 871ec94dbc5SRasesh Mody */ 872ec94dbc5SRasesh Mody struct eth_vport_rss_config { 873ec94dbc5SRasesh Mody __le16 capabilities; 874610ccd98SRasesh Mody /* configuration of the IpV4 2-tuple capability */ 875ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_IPV4_CAPABILITY_MASK 0x1 876ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_IPV4_CAPABILITY_SHIFT 0 877610ccd98SRasesh Mody /* configuration of the IpV6 2-tuple capability */ 878ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_IPV6_CAPABILITY_MASK 0x1 879ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_IPV6_CAPABILITY_SHIFT 1 880610ccd98SRasesh Mody /* configuration of the IpV4 4-tuple capability for TCP */ 881ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_IPV4_TCP_CAPABILITY_MASK 0x1 882ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_IPV4_TCP_CAPABILITY_SHIFT 2 883610ccd98SRasesh Mody /* configuration of the IpV6 4-tuple capability for TCP */ 884ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_IPV6_TCP_CAPABILITY_MASK 0x1 885ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_IPV6_TCP_CAPABILITY_SHIFT 3 886610ccd98SRasesh Mody /* configuration of the IpV4 4-tuple capability for UDP */ 887ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_IPV4_UDP_CAPABILITY_MASK 0x1 888ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_IPV4_UDP_CAPABILITY_SHIFT 4 889610ccd98SRasesh Mody /* configuration of the IpV6 4-tuple capability for UDP */ 890ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_IPV6_UDP_CAPABILITY_MASK 0x1 891ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_IPV6_UDP_CAPABILITY_SHIFT 5 892610ccd98SRasesh Mody /* configuration of the 5-tuple capability */ 893ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_EN_5_TUPLE_CAPABILITY_MASK 0x1 894ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_EN_5_TUPLE_CAPABILITY_SHIFT 6 895610ccd98SRasesh Mody /* if set update the rss keys */ 896ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_RESERVED0_MASK 0x1FF 897ec94dbc5SRasesh Mody #define ETH_VPORT_RSS_CONFIG_RESERVED0_SHIFT 7 898610ccd98SRasesh Mody /* The RSS engine ID. Must be allocated to each vport with RSS enabled. 899610ccd98SRasesh Mody * Total number of RSS engines is ETH_RSS_ENGINE_NUM_ , according to chip type. 900610ccd98SRasesh Mody */ 901ec94dbc5SRasesh Mody u8 rss_id; 902ec94dbc5SRasesh Mody u8 rss_mode /* The RSS mode for this function */; 903ec94dbc5SRasesh Mody u8 update_rss_key /* if set update the rss key */; 904806474a6SRasesh Mody /* if set update the indirection table values */ 905806474a6SRasesh Mody u8 update_rss_ind_table; 906806474a6SRasesh Mody /* if set update the capabilities and indirection table size. */ 907806474a6SRasesh Mody u8 update_rss_capabilities; 908ec94dbc5SRasesh Mody u8 tbl_size /* rss mask (Tbl size) */; 909ec94dbc5SRasesh Mody __le32 reserved2[2]; 910610ccd98SRasesh Mody /* RSS indirection table */ 911610ccd98SRasesh Mody __le16 indirection_table[ETH_RSS_IND_TABLE_ENTRIES_NUM]; 912610ccd98SRasesh Mody /* RSS key supplied to us by OS */ 913610ccd98SRasesh Mody __le32 rss_key[ETH_RSS_KEY_SIZE_REGS]; 914ec94dbc5SRasesh Mody __le32 reserved3[2]; 915ec94dbc5SRasesh Mody }; 916ec94dbc5SRasesh Mody 917610ccd98SRasesh Mody 918ec94dbc5SRasesh Mody /* 919ec94dbc5SRasesh Mody * eth vport RSS mode 920ec94dbc5SRasesh Mody */ 921ec94dbc5SRasesh Mody enum eth_vport_rss_mode { 922ec94dbc5SRasesh Mody ETH_VPORT_RSS_MODE_DISABLED /* RSS Disabled */, 923ec94dbc5SRasesh Mody ETH_VPORT_RSS_MODE_REGULAR /* Regular (ndis-like) RSS */, 924ec94dbc5SRasesh Mody MAX_ETH_VPORT_RSS_MODE 925ec94dbc5SRasesh Mody }; 926ec94dbc5SRasesh Mody 927610ccd98SRasesh Mody 928ec94dbc5SRasesh Mody /* 929ec94dbc5SRasesh Mody * Command for setting classification flags for a vport $$KEEP_ENDIANNESS$$ 930ec94dbc5SRasesh Mody */ 931ec94dbc5SRasesh Mody struct eth_vport_rx_mode { 932ec94dbc5SRasesh Mody __le16 state; 933610ccd98SRasesh Mody /* drop all unicast packets */ 934ec94dbc5SRasesh Mody #define ETH_VPORT_RX_MODE_UCAST_DROP_ALL_MASK 0x1 935ec94dbc5SRasesh Mody #define ETH_VPORT_RX_MODE_UCAST_DROP_ALL_SHIFT 0 936610ccd98SRasesh Mody /* accept all unicast packets (subject to vlan) */ 937ec94dbc5SRasesh Mody #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_ALL_MASK 0x1 938ec94dbc5SRasesh Mody #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_ALL_SHIFT 1 939610ccd98SRasesh Mody /* accept all unmatched unicast packets */ 940ec94dbc5SRasesh Mody #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_UNMATCHED_MASK 0x1 941ec94dbc5SRasesh Mody #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_UNMATCHED_SHIFT 2 942610ccd98SRasesh Mody /* drop all multicast packets */ 943ec94dbc5SRasesh Mody #define ETH_VPORT_RX_MODE_MCAST_DROP_ALL_MASK 0x1 944ec94dbc5SRasesh Mody #define ETH_VPORT_RX_MODE_MCAST_DROP_ALL_SHIFT 3 945610ccd98SRasesh Mody /* accept all multicast packets (subject to vlan) */ 946ec94dbc5SRasesh Mody #define ETH_VPORT_RX_MODE_MCAST_ACCEPT_ALL_MASK 0x1 947ec94dbc5SRasesh Mody #define ETH_VPORT_RX_MODE_MCAST_ACCEPT_ALL_SHIFT 4 948610ccd98SRasesh Mody /* accept all broadcast packets (subject to vlan) */ 949ec94dbc5SRasesh Mody #define ETH_VPORT_RX_MODE_BCAST_ACCEPT_ALL_MASK 0x1 950ec94dbc5SRasesh Mody #define ETH_VPORT_RX_MODE_BCAST_ACCEPT_ALL_SHIFT 5 9513c361686SRasesh Mody /* accept any VNI in tunnel VNI classification. Used for default queue. */ 9523c361686SRasesh Mody #define ETH_VPORT_RX_MODE_ACCEPT_ANY_VNI_MASK 0x1 9533c361686SRasesh Mody #define ETH_VPORT_RX_MODE_ACCEPT_ANY_VNI_SHIFT 6 9543c361686SRasesh Mody #define ETH_VPORT_RX_MODE_RESERVED1_MASK 0x1FF 9553c361686SRasesh Mody #define ETH_VPORT_RX_MODE_RESERVED1_SHIFT 7 956ec94dbc5SRasesh Mody }; 957ec94dbc5SRasesh Mody 958610ccd98SRasesh Mody 959ec94dbc5SRasesh Mody /* 960ec94dbc5SRasesh Mody * Command for setting tpa parameters 961ec94dbc5SRasesh Mody */ 962ec94dbc5SRasesh Mody struct eth_vport_tpa_param { 963ec94dbc5SRasesh Mody u8 tpa_ipv4_en_flg /* Enable TPA for IPv4 packets */; 964ec94dbc5SRasesh Mody u8 tpa_ipv6_en_flg /* Enable TPA for IPv6 packets */; 965ec94dbc5SRasesh Mody u8 tpa_ipv4_tunn_en_flg /* Enable TPA for IPv4 over tunnel */; 966ec94dbc5SRasesh Mody u8 tpa_ipv6_tunn_en_flg /* Enable TPA for IPv6 over tunnel */; 9671fc24374SRasesh Mody /* If set, start each TPA segment on new BD (GRO mode). One BD per segment 9681fc24374SRasesh Mody * allowed. 969610ccd98SRasesh Mody */ 970ec94dbc5SRasesh Mody u8 tpa_pkt_split_flg; 9711fc24374SRasesh Mody /* If set, put header of first TPA segment on first BD and data on second BD. */ 972610ccd98SRasesh Mody u8 tpa_hdr_data_split_flg; 973610ccd98SRasesh Mody /* If set, GRO data consistent will checked for TPA continue */ 974610ccd98SRasesh Mody u8 tpa_gro_consistent_flg; 975610ccd98SRasesh Mody /* maximum number of opened aggregations per v-port */ 976610ccd98SRasesh Mody u8 tpa_max_aggs_num; 977ec94dbc5SRasesh Mody __le16 tpa_max_size /* maximal size for the aggregated TPA packets */; 978610ccd98SRasesh Mody /* minimum TCP payload size for a packet to start aggregation */ 979610ccd98SRasesh Mody __le16 tpa_min_size_to_start; 980ec94dbc5SRasesh Mody /* minimum TCP payload size for a packet to continue aggregation */ 981610ccd98SRasesh Mody __le16 tpa_min_size_to_cont; 982ec94dbc5SRasesh Mody /* maximal number of buffers that can be used for one aggregation */ 983610ccd98SRasesh Mody u8 max_buff_num; 984ec94dbc5SRasesh Mody u8 reserved; 985ec94dbc5SRasesh Mody }; 986ec94dbc5SRasesh Mody 987610ccd98SRasesh Mody 988ec94dbc5SRasesh Mody /* 989ec94dbc5SRasesh Mody * Command for setting classification flags for a vport $$KEEP_ENDIANNESS$$ 990ec94dbc5SRasesh Mody */ 991ec94dbc5SRasesh Mody struct eth_vport_tx_mode { 992ec94dbc5SRasesh Mody __le16 state; 993610ccd98SRasesh Mody /* drop all unicast packets */ 994ec94dbc5SRasesh Mody #define ETH_VPORT_TX_MODE_UCAST_DROP_ALL_MASK 0x1 995ec94dbc5SRasesh Mody #define ETH_VPORT_TX_MODE_UCAST_DROP_ALL_SHIFT 0 996610ccd98SRasesh Mody /* accept all unicast packets (subject to vlan) */ 997ec94dbc5SRasesh Mody #define ETH_VPORT_TX_MODE_UCAST_ACCEPT_ALL_MASK 0x1 998ec94dbc5SRasesh Mody #define ETH_VPORT_TX_MODE_UCAST_ACCEPT_ALL_SHIFT 1 999610ccd98SRasesh Mody /* drop all multicast packets */ 1000ec94dbc5SRasesh Mody #define ETH_VPORT_TX_MODE_MCAST_DROP_ALL_MASK 0x1 1001ec94dbc5SRasesh Mody #define ETH_VPORT_TX_MODE_MCAST_DROP_ALL_SHIFT 2 1002610ccd98SRasesh Mody /* accept all multicast packets (subject to vlan) */ 1003ec94dbc5SRasesh Mody #define ETH_VPORT_TX_MODE_MCAST_ACCEPT_ALL_MASK 0x1 1004ec94dbc5SRasesh Mody #define ETH_VPORT_TX_MODE_MCAST_ACCEPT_ALL_SHIFT 3 1005610ccd98SRasesh Mody /* accept all broadcast packets (subject to vlan) */ 1006ec94dbc5SRasesh Mody #define ETH_VPORT_TX_MODE_BCAST_ACCEPT_ALL_MASK 0x1 1007ec94dbc5SRasesh Mody #define ETH_VPORT_TX_MODE_BCAST_ACCEPT_ALL_SHIFT 4 1008ec94dbc5SRasesh Mody #define ETH_VPORT_TX_MODE_RESERVED1_MASK 0x7FF 1009ec94dbc5SRasesh Mody #define ETH_VPORT_TX_MODE_RESERVED1_SHIFT 5 1010ec94dbc5SRasesh Mody }; 1011ec94dbc5SRasesh Mody 1012610ccd98SRasesh Mody 1013ec94dbc5SRasesh Mody /* 101440cf1e75SRasesh Mody * GFT filter update action type. 1015ec94dbc5SRasesh Mody */ 101622d07d93SRasesh Mody enum gft_filter_update_action { 101722d07d93SRasesh Mody GFT_ADD_FILTER, 101822d07d93SRasesh Mody GFT_DELETE_FILTER, 101922d07d93SRasesh Mody MAX_GFT_FILTER_UPDATE_ACTION 102022d07d93SRasesh Mody }; 102122d07d93SRasesh Mody 1022610ccd98SRasesh Mody 1023610ccd98SRasesh Mody 1024610ccd98SRasesh Mody 1025ec94dbc5SRasesh Mody /* 1026ec94dbc5SRasesh Mody * Ramrod data for rx add openflow filter 1027ec94dbc5SRasesh Mody */ 1028ec94dbc5SRasesh Mody struct rx_add_openflow_filter_data { 1029ec94dbc5SRasesh Mody __le16 action_icid /* CID of Action to run for this filter */; 1030ec94dbc5SRasesh Mody u8 priority /* Searcher String - Packet priority */; 1031ec94dbc5SRasesh Mody u8 reserved0; 1032ec94dbc5SRasesh Mody __le32 tenant_id /* Searcher String - Tenant ID */; 1033610ccd98SRasesh Mody /* Searcher String - Destination Mac Bytes 0 to 1 */ 1034610ccd98SRasesh Mody __le16 dst_mac_hi; 1035610ccd98SRasesh Mody /* Searcher String - Destination Mac Bytes 2 to 3 */ 1036610ccd98SRasesh Mody __le16 dst_mac_mid; 1037610ccd98SRasesh Mody /* Searcher String - Destination Mac Bytes 4 to 5 */ 1038610ccd98SRasesh Mody __le16 dst_mac_lo; 1039ec94dbc5SRasesh Mody __le16 src_mac_hi /* Searcher String - Source Mac 0 to 1 */; 1040ec94dbc5SRasesh Mody __le16 src_mac_mid /* Searcher String - Source Mac 2 to 3 */; 1041ec94dbc5SRasesh Mody __le16 src_mac_lo /* Searcher String - Source Mac 4 to 5 */; 1042ec94dbc5SRasesh Mody __le16 vlan_id /* Searcher String - Vlan ID */; 1043ec94dbc5SRasesh Mody __le16 l2_eth_type /* Searcher String - Last L2 Ethertype */; 1044ec94dbc5SRasesh Mody u8 ipv4_dscp /* Searcher String - IPv4 6 MSBs of the TOS Field */; 1045ec94dbc5SRasesh Mody u8 ipv4_frag_type /* Searcher String - IPv4 Fragmentation Type */; 1046ec94dbc5SRasesh Mody u8 ipv4_over_ip /* Searcher String - IPv4 Over IP Type */; 1047ec94dbc5SRasesh Mody u8 tenant_id_exists /* Searcher String - Tenant ID Exists */; 1048ec94dbc5SRasesh Mody __le32 ipv4_dst_addr /* Searcher String - IPv4 Destination Address */; 1049ec94dbc5SRasesh Mody __le32 ipv4_src_addr /* Searcher String - IPv4 Source Address */; 1050ec94dbc5SRasesh Mody __le16 l4_dst_port /* Searcher String - TCP/UDP Destination Port */; 1051ec94dbc5SRasesh Mody __le16 l4_src_port /* Searcher String - TCP/UDP Source Port */; 1052ec94dbc5SRasesh Mody }; 1053ec94dbc5SRasesh Mody 1054610ccd98SRasesh Mody 1055ec94dbc5SRasesh Mody /* 1056ec94dbc5SRasesh Mody * Ramrod data for rx create gft action 1057ec94dbc5SRasesh Mody */ 1058ec94dbc5SRasesh Mody struct rx_create_gft_action_data { 1059ec94dbc5SRasesh Mody u8 vport_id /* Vport Id of GFT Action */; 1060ec94dbc5SRasesh Mody u8 reserved[7]; 1061ec94dbc5SRasesh Mody }; 1062ec94dbc5SRasesh Mody 1063610ccd98SRasesh Mody 1064ec94dbc5SRasesh Mody /* 1065ec94dbc5SRasesh Mody * Ramrod data for rx create openflow action 1066ec94dbc5SRasesh Mody */ 1067ec94dbc5SRasesh Mody struct rx_create_openflow_action_data { 1068ec94dbc5SRasesh Mody u8 vport_id /* ID of RX queue */; 1069ec94dbc5SRasesh Mody u8 reserved[7]; 1070ec94dbc5SRasesh Mody }; 1071ec94dbc5SRasesh Mody 1072610ccd98SRasesh Mody 1073ec94dbc5SRasesh Mody /* 1074ec94dbc5SRasesh Mody * Ramrod data for rx queue start ramrod 1075ec94dbc5SRasesh Mody */ 1076ec94dbc5SRasesh Mody struct rx_queue_start_ramrod_data { 1077ec94dbc5SRasesh Mody __le16 rx_queue_id /* ID of RX queue */; 107840cf1e75SRasesh Mody __le16 num_of_pbl_pages /* Number of pages in CQE PBL */; 1079ec94dbc5SRasesh Mody __le16 bd_max_bytes /* maximal bytes that can be places on the bd */; 1080ec94dbc5SRasesh Mody __le16 sb_id /* Status block ID */; 1081ec94dbc5SRasesh Mody u8 sb_index /* index of the protocol index */; 1082ec94dbc5SRasesh Mody u8 vport_id /* ID of virtual port */; 1083ec94dbc5SRasesh Mody u8 default_rss_queue_flg /* set queue as default rss queue if set */; 1084ec94dbc5SRasesh Mody u8 complete_cqe_flg /* post completion to the CQE ring if set */; 1085ec94dbc5SRasesh Mody u8 complete_event_flg /* post completion to the event ring if set */; 1086ec94dbc5SRasesh Mody u8 stats_counter_id /* Statistics counter ID */; 1087ec94dbc5SRasesh Mody u8 pin_context /* Pin context in CCFC to improve performance */; 1088ec94dbc5SRasesh Mody u8 pxp_tph_valid_bd /* PXP command TPH Valid - for BD/SGE fetch */; 1089610ccd98SRasesh Mody /* PXP command TPH Valid - for packet placement */ 1090610ccd98SRasesh Mody u8 pxp_tph_valid_pkt; 1091610ccd98SRasesh Mody /* PXP command Steering tag hint. Use enum pxp_tph_st_hint */ 1092610ccd98SRasesh Mody u8 pxp_st_hint; 1093ec94dbc5SRasesh Mody __le16 pxp_st_index /* PXP command Steering tag index */; 1094610ccd98SRasesh Mody /* Indicates that current queue belongs to poll-mode driver */ 1095610ccd98SRasesh Mody u8 pmd_mode; 1096610ccd98SRasesh Mody /* Indicates that the current queue is using the TX notification queue 1097610ccd98SRasesh Mody * mechanism - should be set only for PMD queue 1098610ccd98SRasesh Mody */ 1099ec94dbc5SRasesh Mody u8 notify_en; 1100610ccd98SRasesh Mody /* Initial value for the toggle valid bit - used in PMD mode */ 1101610ccd98SRasesh Mody u8 toggle_val; 110222d07d93SRasesh Mody /* Index of RX producers in VF zone. Used for VF only. */ 110322d07d93SRasesh Mody u8 vf_rx_prod_index; 110422d07d93SRasesh Mody /* Backward compatibility mode. If set, unprotected mStorm queue zone will used 110522d07d93SRasesh Mody * for VF RX producers instead of VF zone. 110622d07d93SRasesh Mody */ 110722d07d93SRasesh Mody u8 vf_rx_prod_use_zone_a; 110822d07d93SRasesh Mody u8 reserved[5]; 1109ec94dbc5SRasesh Mody __le16 reserved1 /* FW reserved. */; 1110ec94dbc5SRasesh Mody struct regpair cqe_pbl_addr /* Base address on host of CQE PBL */; 1111ec94dbc5SRasesh Mody struct regpair bd_base /* bd address of the first bd page */; 1112ec94dbc5SRasesh Mody struct regpair reserved2 /* FW reserved. */; 1113ec94dbc5SRasesh Mody }; 1114ec94dbc5SRasesh Mody 1115610ccd98SRasesh Mody 1116ec94dbc5SRasesh Mody /* 11179455b556SRasesh Mody * Ramrod data for rx queue stop ramrod 1118ec94dbc5SRasesh Mody */ 1119ec94dbc5SRasesh Mody struct rx_queue_stop_ramrod_data { 1120ec94dbc5SRasesh Mody __le16 rx_queue_id /* ID of RX queue */; 1121ec94dbc5SRasesh Mody u8 complete_cqe_flg /* post completion to the CQE ring if set */; 1122ec94dbc5SRasesh Mody u8 complete_event_flg /* post completion to the event ring if set */; 1123ec94dbc5SRasesh Mody u8 vport_id /* ID of virtual port */; 1124ec94dbc5SRasesh Mody u8 reserved[3]; 1125ec94dbc5SRasesh Mody }; 1126ec94dbc5SRasesh Mody 1127610ccd98SRasesh Mody 1128ec94dbc5SRasesh Mody /* 1129ec94dbc5SRasesh Mody * Ramrod data for rx queue update ramrod 1130ec94dbc5SRasesh Mody */ 1131ec94dbc5SRasesh Mody struct rx_queue_update_ramrod_data { 1132ec94dbc5SRasesh Mody __le16 rx_queue_id /* ID of RX queue */; 1133ec94dbc5SRasesh Mody u8 complete_cqe_flg /* post completion to the CQE ring if set */; 1134ec94dbc5SRasesh Mody u8 complete_event_flg /* post completion to the event ring if set */; 1135ec94dbc5SRasesh Mody u8 vport_id /* ID of virtual port */; 1136c2817ba4SRasesh Mody /* If set, update default rss queue to this RX queue. */ 1137c2817ba4SRasesh Mody u8 set_default_rss_queue; 1138c2817ba4SRasesh Mody u8 reserved[3]; 1139ec94dbc5SRasesh Mody u8 reserved1 /* FW reserved. */; 1140ec94dbc5SRasesh Mody u8 reserved2 /* FW reserved. */; 1141ec94dbc5SRasesh Mody u8 reserved3 /* FW reserved. */; 1142ec94dbc5SRasesh Mody __le16 reserved4 /* FW reserved. */; 1143ec94dbc5SRasesh Mody __le16 reserved5 /* FW reserved. */; 1144ec94dbc5SRasesh Mody struct regpair reserved6 /* FW reserved. */; 1145ec94dbc5SRasesh Mody }; 1146ec94dbc5SRasesh Mody 1147610ccd98SRasesh Mody 1148ec94dbc5SRasesh Mody /* 1149ec94dbc5SRasesh Mody * Ramrod data for rx Add UDP Filter 1150ec94dbc5SRasesh Mody */ 1151ec94dbc5SRasesh Mody struct rx_udp_filter_data { 1152ec94dbc5SRasesh Mody __le16 action_icid /* CID of Action to run for this filter */; 1153ec94dbc5SRasesh Mody __le16 vlan_id /* Searcher String - Vlan ID */; 1154ec94dbc5SRasesh Mody u8 ip_type /* Searcher String - IP Type */; 1155ec94dbc5SRasesh Mody u8 tenant_id_exists /* Searcher String - Tenant ID Exists */; 1156ec94dbc5SRasesh Mody __le16 reserved1; 1157610ccd98SRasesh Mody /* Searcher String - IP Destination Address, for IPv4 use ip_dst_addr[0] only */ 1158ec94dbc5SRasesh Mody __le32 ip_dst_addr[4]; 1159610ccd98SRasesh Mody /* Searcher String - IP Source Address, for IPv4 use ip_dst_addr[0] only */ 1160610ccd98SRasesh Mody __le32 ip_src_addr[4]; 1161ec94dbc5SRasesh Mody __le16 udp_dst_port /* Searcher String - UDP Destination Port */; 1162ec94dbc5SRasesh Mody __le16 udp_src_port /* Searcher String - UDP Source Port */; 1163ec94dbc5SRasesh Mody __le32 tenant_id /* Searcher String - Tenant ID */; 1164ec94dbc5SRasesh Mody }; 1165ec94dbc5SRasesh Mody 1166610ccd98SRasesh Mody 1167ec94dbc5SRasesh Mody /* 116840cf1e75SRasesh Mody * add or delete GFT filter - filter is packet header of type of packet wished 116940cf1e75SRasesh Mody * to pass certain FW flow 117022d07d93SRasesh Mody */ 117122d07d93SRasesh Mody struct rx_update_gft_filter_data { 117222d07d93SRasesh Mody /* Pointer to Packet Header That Defines GFT Filter */ 117322d07d93SRasesh Mody struct regpair pkt_hdr_addr; 117422d07d93SRasesh Mody __le16 pkt_hdr_length /* Packet Header Length */; 117540cf1e75SRasesh Mody /* Action icid. Valid if action_icid_valid flag set. */ 117640cf1e75SRasesh Mody __le16 action_icid; 117740cf1e75SRasesh Mody __le16 rx_qid /* RX queue ID. Valid if rx_qid_valid set. */; 117840cf1e75SRasesh Mody __le16 flow_id /* RX flow ID. Valid if flow_id_valid set. */; 1179c2817ba4SRasesh Mody /* RX vport Id. For drop flow, set to ETH_GFT_TRASHCAN_VPORT. */ 1180c2817ba4SRasesh Mody __le16 vport_id; 118140cf1e75SRasesh Mody /* If set, action_icid will used for GFT filter update. */ 118240cf1e75SRasesh Mody u8 action_icid_valid; 118340cf1e75SRasesh Mody /* If set, rx_qid will used for traffic steering, in additional to vport_id. 118440cf1e75SRasesh Mody * flow_id_valid must be cleared. If cleared, queue ID will selected by RSS. 118522d07d93SRasesh Mody */ 118640cf1e75SRasesh Mody u8 rx_qid_valid; 118740cf1e75SRasesh Mody /* If set, flow_id will reported by CQE, rx_qid_valid must be cleared. If 118840cf1e75SRasesh Mody * cleared, flow_id 0 will reported by CQE. 118940cf1e75SRasesh Mody */ 119040cf1e75SRasesh Mody u8 flow_id_valid; 119122d07d93SRasesh Mody u8 filter_action /* Use to set type of action on filter */; 1192806474a6SRasesh Mody /* 0 - dont assert in case of error. Just return an error code. 1 - assert in 1193806474a6SRasesh Mody * case of error. 1194806474a6SRasesh Mody */ 1195806474a6SRasesh Mody u8 assert_on_error; 1196c2817ba4SRasesh Mody /* If set, inner VLAN will be removed regardless to VPORT configuration. 1197c2817ba4SRasesh Mody * Supported by E4 only. 1198c2817ba4SRasesh Mody */ 1199c2817ba4SRasesh Mody u8 inner_vlan_removal_en; 120022d07d93SRasesh Mody }; 120122d07d93SRasesh Mody 1202610ccd98SRasesh Mody 1203610ccd98SRasesh Mody 120422d07d93SRasesh Mody /* 120522d07d93SRasesh Mody * Ramrod data for tx queue start ramrod 1206ec94dbc5SRasesh Mody */ 1207ec94dbc5SRasesh Mody struct tx_queue_start_ramrod_data { 1208ec94dbc5SRasesh Mody __le16 sb_id /* Status block ID */; 1209ec94dbc5SRasesh Mody u8 sb_index /* Status block protocol index */; 1210ec94dbc5SRasesh Mody u8 vport_id /* VPort ID */; 121122d07d93SRasesh Mody u8 reserved0 /* FW reserved. (qcn_rl_en) */; 1212ec94dbc5SRasesh Mody u8 stats_counter_id /* Statistics counter ID to use */; 1213ec94dbc5SRasesh Mody __le16 qm_pq_id /* QM PQ ID */; 1214ec94dbc5SRasesh Mody u8 flags; 1215610ccd98SRasesh Mody /* 0: Enable QM opportunistic flow. 1: Disable QM opportunistic flow */ 1216ec94dbc5SRasesh Mody #define TX_QUEUE_START_RAMROD_DATA_DISABLE_OPPORTUNISTIC_MASK 0x1 1217ec94dbc5SRasesh Mody #define TX_QUEUE_START_RAMROD_DATA_DISABLE_OPPORTUNISTIC_SHIFT 0 1218610ccd98SRasesh Mody /* If set, Test Mode - packets will be duplicated by Xstorm handler */ 1219ec94dbc5SRasesh Mody #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_MASK 0x1 1220ec94dbc5SRasesh Mody #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_SHIFT 1 1221610ccd98SRasesh Mody /* If set, Test Mode - packets destination will be determined by dest_port_mode 1222610ccd98SRasesh Mody * field from Tx BD 1223610ccd98SRasesh Mody */ 1224ec94dbc5SRasesh Mody #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_TX_DEST_MASK 0x1 1225ec94dbc5SRasesh Mody #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_TX_DEST_SHIFT 2 1226610ccd98SRasesh Mody /* Indicates that current queue belongs to poll-mode driver */ 1227ec94dbc5SRasesh Mody #define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_MASK 0x1 1228ec94dbc5SRasesh Mody #define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_SHIFT 3 1229610ccd98SRasesh Mody /* Indicates that the current queue is using the TX notification queue 1230610ccd98SRasesh Mody * mechanism - should be set only for PMD queue 1231610ccd98SRasesh Mody */ 1232ec94dbc5SRasesh Mody #define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_MASK 0x1 1233ec94dbc5SRasesh Mody #define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_SHIFT 4 1234610ccd98SRasesh Mody /* Pin context in CCFC to improve performance */ 1235ec94dbc5SRasesh Mody #define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_MASK 0x1 1236ec94dbc5SRasesh Mody #define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_SHIFT 5 1237ec94dbc5SRasesh Mody #define TX_QUEUE_START_RAMROD_DATA_RESERVED1_MASK 0x3 1238ec94dbc5SRasesh Mody #define TX_QUEUE_START_RAMROD_DATA_RESERVED1_SHIFT 6 1239ec94dbc5SRasesh Mody u8 pxp_st_hint /* PXP command Steering tag hint */; 1240ec94dbc5SRasesh Mody u8 pxp_tph_valid_bd /* PXP command TPH Valid - for BD fetch */; 1241ec94dbc5SRasesh Mody u8 pxp_tph_valid_pkt /* PXP command TPH Valid - for packet fetch */; 1242ec94dbc5SRasesh Mody __le16 pxp_st_index /* PXP command Steering tag index */; 1243610ccd98SRasesh Mody /* TX completion min agg size - for PMD queues */ 1244610ccd98SRasesh Mody __le16 comp_agg_size; 1245ec94dbc5SRasesh Mody __le16 queue_zone_id /* queue zone ID to use */; 124622d07d93SRasesh Mody __le16 reserved2 /* FW reserved. (test_dup_count) */; 1247ec94dbc5SRasesh Mody __le16 pbl_size /* Number of BD pages pointed by PBL */; 1248610ccd98SRasesh Mody /* unique Queue ID - currently used only by PMD flow */ 1249610ccd98SRasesh Mody __le16 tx_queue_id; 125022d07d93SRasesh Mody /* Unique Same-As-Last Resource ID - improves performance for same-as-last 125122d07d93SRasesh Mody * packets per connection (range 0..ETH_TX_NUM_SAME_AS_LAST_ENTRIES-1 IDs 125222d07d93SRasesh Mody * available) 125322d07d93SRasesh Mody */ 125422d07d93SRasesh Mody __le16 same_as_last_id; 125522d07d93SRasesh Mody __le16 reserved[3]; 1256ec94dbc5SRasesh Mody struct regpair pbl_base_addr /* address of the pbl page */; 1257610ccd98SRasesh Mody /* BD consumer address in host - for PMD queues */ 1258610ccd98SRasesh Mody struct regpair bd_cons_address; 1259ec94dbc5SRasesh Mody }; 1260ec94dbc5SRasesh Mody 1261610ccd98SRasesh Mody 1262ec94dbc5SRasesh Mody /* 1263ec94dbc5SRasesh Mody * Ramrod data for tx queue stop ramrod 1264ec94dbc5SRasesh Mody */ 1265ec94dbc5SRasesh Mody struct tx_queue_stop_ramrod_data { 1266ec94dbc5SRasesh Mody __le16 reserved[4]; 1267ec94dbc5SRasesh Mody }; 1268ec94dbc5SRasesh Mody 1269610ccd98SRasesh Mody 127040cf1e75SRasesh Mody /* 127140cf1e75SRasesh Mody * Ramrod data for tx queue update ramrod 127240cf1e75SRasesh Mody */ 127340cf1e75SRasesh Mody struct tx_queue_update_ramrod_data { 127440cf1e75SRasesh Mody __le16 update_qm_pq_id_flg /* Flag to Update QM PQ ID */; 127540cf1e75SRasesh Mody __le16 qm_pq_id /* Updated QM PQ ID */; 127640cf1e75SRasesh Mody __le32 reserved0; 127740cf1e75SRasesh Mody struct regpair reserved1[5]; 127840cf1e75SRasesh Mody }; 127940cf1e75SRasesh Mody 128040cf1e75SRasesh Mody 12813c361686SRasesh Mody /* 12823c361686SRasesh Mody * Inner to Inner VLAN priority map update mode 12833c361686SRasesh Mody */ 12843c361686SRasesh Mody enum update_in_to_in_pri_map_mode_enum { 12853c361686SRasesh Mody /* Inner to Inner VLAN priority map update Disabled */ 12863c361686SRasesh Mody ETH_IN_TO_IN_PRI_MAP_UPDATE_DISABLED, 12873c361686SRasesh Mody /* Update Inner to Inner VLAN priority map for non RDMA protocols */ 12883c361686SRasesh Mody ETH_IN_TO_IN_PRI_MAP_UPDATE_NON_RDMA_TBL, 12893c361686SRasesh Mody /* Update Inner to Inner VLAN priority map for RDMA protocols */ 12903c361686SRasesh Mody ETH_IN_TO_IN_PRI_MAP_UPDATE_RDMA_TBL, 12913c361686SRasesh Mody MAX_UPDATE_IN_TO_IN_PRI_MAP_MODE_ENUM 12923c361686SRasesh Mody }; 12933c361686SRasesh Mody 12943c361686SRasesh Mody 1295610ccd98SRasesh Mody 1296ec94dbc5SRasesh Mody /* 1297ec94dbc5SRasesh Mody * Ramrod data for vport update ramrod 1298ec94dbc5SRasesh Mody */ 1299ec94dbc5SRasesh Mody struct vport_filter_update_ramrod_data { 1300610ccd98SRasesh Mody /* Header for Filter Commands (RX/TX, Add/Remove/Replace, etc) */ 1301610ccd98SRasesh Mody struct eth_filter_cmd_header filter_cmd_hdr; 1302610ccd98SRasesh Mody /* Filter Commands */ 1303610ccd98SRasesh Mody struct eth_filter_cmd filter_cmds[ETH_FILTER_RULES_COUNT]; 1304ec94dbc5SRasesh Mody }; 1305ec94dbc5SRasesh Mody 1306610ccd98SRasesh Mody 1307ec94dbc5SRasesh Mody /* 1308ec94dbc5SRasesh Mody * Ramrod data for vport start ramrod 1309ec94dbc5SRasesh Mody */ 1310ec94dbc5SRasesh Mody struct vport_start_ramrod_data { 1311ec94dbc5SRasesh Mody u8 vport_id; 1312ec94dbc5SRasesh Mody u8 sw_fid; 1313ec94dbc5SRasesh Mody __le16 mtu; 1314ec94dbc5SRasesh Mody u8 drop_ttl0_en /* if set, drop packet with ttl=0 */; 1315ec94dbc5SRasesh Mody u8 inner_vlan_removal_en; 1316ec94dbc5SRasesh Mody struct eth_vport_rx_mode rx_mode /* Rx filter data */; 1317ec94dbc5SRasesh Mody struct eth_vport_tx_mode tx_mode /* Tx filter data */; 1318610ccd98SRasesh Mody /* TPA configuration parameters */ 1319610ccd98SRasesh Mody struct eth_vport_tpa_param tpa_param; 1320ec94dbc5SRasesh Mody __le16 default_vlan /* Default Vlan value to be forced by FW */; 1321ec94dbc5SRasesh Mody u8 tx_switching_en /* Tx switching is enabled for current Vport */; 1322610ccd98SRasesh Mody /* Anti-spoofing verification is set for current Vport */ 1323610ccd98SRasesh Mody u8 anti_spoofing_en; 1324610ccd98SRasesh Mody /* If set, the default Vlan value is forced by the FW */ 1325610ccd98SRasesh Mody u8 default_vlan_en; 1326610ccd98SRasesh Mody /* If set, the vport handles PTP Timesync Packets */ 1327610ccd98SRasesh Mody u8 handle_ptp_pkts; 1328ec94dbc5SRasesh Mody /* If enable then innerVlan will be striped and not written to cqe */ 1329610ccd98SRasesh Mody u8 silent_vlan_removal_en; 1330610ccd98SRasesh Mody /* If set untagged filter (vlan0) is added to current Vport, otherwise port is 1331610ccd98SRasesh Mody * marked as any-vlan 1332610ccd98SRasesh Mody */ 1333ec94dbc5SRasesh Mody u8 untagged; 1334610ccd98SRasesh Mody /* Desired behavior per TX error type */ 1335610ccd98SRasesh Mody struct eth_tx_err_vals tx_err_behav; 1336610ccd98SRasesh Mody /* If set, ETH header padding will not inserted. placement_offset will be zero. 1337610ccd98SRasesh Mody */ 1338ec94dbc5SRasesh Mody u8 zero_placement_offset; 133940cf1e75SRasesh Mody /* If set, control frames will be filtered according to MAC check. */ 134022d07d93SRasesh Mody u8 ctl_frame_mac_check_en; 134140cf1e75SRasesh Mody /* If set, control frames will be filtered according to ethtype check. */ 134222d07d93SRasesh Mody u8 ctl_frame_ethtype_check_en; 13433c361686SRasesh Mody /* If set, the inner vlan (802.1q tag) priority that is written to cqe will be 13443c361686SRasesh Mody * zero out, used for TenantDcb 13453c361686SRasesh Mody */ 13463c361686SRasesh Mody u8 wipe_inner_vlan_pri_en; 13473c361686SRasesh Mody /* inner to inner vlan priority translation configurations */ 13483c361686SRasesh Mody struct eth_in_to_in_pri_map_cfg in_to_in_vlan_pri_map_cfg; 1349ec94dbc5SRasesh Mody }; 1350ec94dbc5SRasesh Mody 1351610ccd98SRasesh Mody 1352ec94dbc5SRasesh Mody /* 1353ec94dbc5SRasesh Mody * Ramrod data for vport stop ramrod 1354ec94dbc5SRasesh Mody */ 1355ec94dbc5SRasesh Mody struct vport_stop_ramrod_data { 1356ec94dbc5SRasesh Mody u8 vport_id; 1357ec94dbc5SRasesh Mody u8 reserved[7]; 1358ec94dbc5SRasesh Mody }; 1359ec94dbc5SRasesh Mody 1360610ccd98SRasesh Mody 1361ec94dbc5SRasesh Mody /* 1362ec94dbc5SRasesh Mody * Ramrod data for vport update ramrod 1363ec94dbc5SRasesh Mody */ 1364ec94dbc5SRasesh Mody struct vport_update_ramrod_data_cmn { 1365ec94dbc5SRasesh Mody u8 vport_id; 1366ec94dbc5SRasesh Mody u8 update_rx_active_flg /* set if rx active flag should be handled */; 1367ec94dbc5SRasesh Mody u8 rx_active_flg /* rx active flag value */; 1368ec94dbc5SRasesh Mody u8 update_tx_active_flg /* set if tx active flag should be handled */; 1369ec94dbc5SRasesh Mody u8 tx_active_flg /* tx active flag value */; 1370ec94dbc5SRasesh Mody u8 update_rx_mode_flg /* set if rx state data should be handled */; 1371ec94dbc5SRasesh Mody u8 update_tx_mode_flg /* set if tx state data should be handled */; 1372610ccd98SRasesh Mody /* set if approx. mcast data should be handled */ 1373610ccd98SRasesh Mody u8 update_approx_mcast_flg; 1374ec94dbc5SRasesh Mody u8 update_rss_flg /* set if rss data should be handled */; 1375610ccd98SRasesh Mody /* set if inner_vlan_removal_en should be handled */ 1376610ccd98SRasesh Mody u8 update_inner_vlan_removal_en_flg; 1377ec94dbc5SRasesh Mody u8 inner_vlan_removal_en; 1378610ccd98SRasesh Mody /* set if tpa parameters should be handled, TPA must be disable before */ 1379ec94dbc5SRasesh Mody u8 update_tpa_param_flg; 1380ec94dbc5SRasesh Mody u8 update_tpa_en_flg /* set if tpa enable changes */; 1381610ccd98SRasesh Mody /* set if tx switching en flag should be handled */ 1382610ccd98SRasesh Mody u8 update_tx_switching_en_flg; 1383ec94dbc5SRasesh Mody u8 tx_switching_en /* tx switching en value */; 1384610ccd98SRasesh Mody /* set if anti spoofing flag should be handled */ 1385610ccd98SRasesh Mody u8 update_anti_spoofing_en_flg; 1386ec94dbc5SRasesh Mody u8 anti_spoofing_en /* Anti-spoofing verification en value */; 1387610ccd98SRasesh Mody /* set if handle_ptp_pkts should be handled. */ 1388610ccd98SRasesh Mody u8 update_handle_ptp_pkts; 1389610ccd98SRasesh Mody /* If set, the vport handles PTP Timesync Packets */ 1390610ccd98SRasesh Mody u8 handle_ptp_pkts; 1391610ccd98SRasesh Mody /* If set, the default Vlan enable flag is updated */ 1392610ccd98SRasesh Mody u8 update_default_vlan_en_flg; 1393610ccd98SRasesh Mody /* If set, the default Vlan value is forced by the FW */ 1394610ccd98SRasesh Mody u8 default_vlan_en; 1395610ccd98SRasesh Mody /* If set, the default Vlan value is updated */ 1396610ccd98SRasesh Mody u8 update_default_vlan_flg; 1397ec94dbc5SRasesh Mody __le16 default_vlan /* Default Vlan value to be forced by FW */; 1398610ccd98SRasesh Mody /* set if accept_any_vlan should be handled */ 1399610ccd98SRasesh Mody u8 update_accept_any_vlan_flg; 1400ec94dbc5SRasesh Mody u8 accept_any_vlan /* accept_any_vlan updated value */; 1401610ccd98SRasesh Mody /* Set to remove vlan silently, update_inner_vlan_removal_en_flg must be enabled 1402610ccd98SRasesh Mody * as well. If Rx is in noSgl mode send rx_queue_update_ramrod_data 1403610ccd98SRasesh Mody */ 1404ec94dbc5SRasesh Mody u8 silent_vlan_removal_en; 1405610ccd98SRasesh Mody /* If set, MTU will be updated. Vport must be not active. */ 1406610ccd98SRasesh Mody u8 update_mtu_flg; 1407ec94dbc5SRasesh Mody __le16 mtu /* New MTU value. Used if update_mtu_flg are set */; 1408869c47d0SRasesh Mody /* If set, ctl_frame_mac_check_en and ctl_frame_ethtype_check_en will be 1409869c47d0SRasesh Mody * updated 1410869c47d0SRasesh Mody */ 1411869c47d0SRasesh Mody u8 update_ctl_frame_checks_en_flg; 141240cf1e75SRasesh Mody /* If set, control frames will be filtered according to MAC check. */ 1413869c47d0SRasesh Mody u8 ctl_frame_mac_check_en; 141440cf1e75SRasesh Mody /* If set, control frames will be filtered according to ethtype check. */ 1415869c47d0SRasesh Mody u8 ctl_frame_ethtype_check_en; 14163c361686SRasesh Mody /* Indicates to update RDMA or NON-RDMA vlan remapping priority table according 14173c361686SRasesh Mody * to update_in_to_in_pri_map_mode_enum, used for TenantDcb (use enum 14183c361686SRasesh Mody * update_in_to_in_pri_map_mode_enum) 14193c361686SRasesh Mody */ 14203c361686SRasesh Mody u8 update_in_to_in_pri_map_mode; 14213c361686SRasesh Mody /* Map for inner to inner vlan priority translation, used for TenantDcb. */ 14223c361686SRasesh Mody u8 in_to_in_pri_map[8]; 14233c361686SRasesh Mody u8 reserved[6]; 1424ec94dbc5SRasesh Mody }; 1425ec94dbc5SRasesh Mody 1426ec94dbc5SRasesh Mody struct vport_update_ramrod_mcast { 1427ec94dbc5SRasesh Mody __le32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS] /* multicast bins */; 1428ec94dbc5SRasesh Mody }; 1429ec94dbc5SRasesh Mody 1430ec94dbc5SRasesh Mody /* 1431ec94dbc5SRasesh Mody * Ramrod data for vport update ramrod 1432ec94dbc5SRasesh Mody */ 1433ec94dbc5SRasesh Mody struct vport_update_ramrod_data { 1434610ccd98SRasesh Mody /* Common data for all vport update ramrods */ 1435610ccd98SRasesh Mody struct vport_update_ramrod_data_cmn common; 1436ec94dbc5SRasesh Mody struct eth_vport_rx_mode rx_mode /* vport rx mode bitmap */; 1437ec94dbc5SRasesh Mody struct eth_vport_tx_mode tx_mode /* vport tx mode bitmap */; 1438c2817ba4SRasesh Mody __le32 reserved[3]; 1439610ccd98SRasesh Mody /* TPA configuration parameters */ 1440610ccd98SRasesh Mody struct eth_vport_tpa_param tpa_param; 1441ec94dbc5SRasesh Mody struct vport_update_ramrod_mcast approx_mcast; 1442ec94dbc5SRasesh Mody struct eth_vport_rss_config rss_config /* rss config data */; 1443ec94dbc5SRasesh Mody }; 1444ec94dbc5SRasesh Mody 1445610ccd98SRasesh Mody 1446610ccd98SRasesh Mody 1447610ccd98SRasesh Mody 1448610ccd98SRasesh Mody 1449610ccd98SRasesh Mody 145069ff7477SRasesh Mody struct E4XstormEthConnAgCtxDqExtLdPart { 145169ff7477SRasesh Mody u8 reserved0 /* cdu_validation */; 1452*7ed1cd53SRasesh Mody u8 state /* state */; 145369ff7477SRasesh Mody u8 flags0; 145469ff7477SRasesh Mody /* exist_in_qm0 */ 145569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM0_MASK 0x1 145669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM0_SHIFT 0 145769ff7477SRasesh Mody /* exist_in_qm1 */ 145869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED1_MASK 0x1 145969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED1_SHIFT 1 146069ff7477SRasesh Mody /* exist_in_qm2 */ 146169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED2_MASK 0x1 146269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED2_SHIFT 2 146369ff7477SRasesh Mody /* exist_in_qm3 */ 146469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM3_MASK 0x1 146569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EXIST_IN_QM3_SHIFT 3 146669ff7477SRasesh Mody /* bit4 */ 146769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED3_MASK 0x1 146869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED3_SHIFT 4 146969ff7477SRasesh Mody /* cf_array_active */ 147069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED4_MASK 0x1 147169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED4_SHIFT 5 147269ff7477SRasesh Mody /* bit6 */ 147369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED5_MASK 0x1 147469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED5_SHIFT 6 147569ff7477SRasesh Mody /* bit7 */ 147669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED6_MASK 0x1 147769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED6_SHIFT 7 147869ff7477SRasesh Mody u8 flags1; 147969ff7477SRasesh Mody /* bit8 */ 148069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED7_MASK 0x1 148169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED7_SHIFT 0 148269ff7477SRasesh Mody /* bit9 */ 148369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED8_MASK 0x1 148469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED8_SHIFT 1 148569ff7477SRasesh Mody /* bit10 */ 148669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED9_MASK 0x1 148769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED9_SHIFT 2 148869ff7477SRasesh Mody /* bit11 */ 148969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_BIT11_MASK 0x1 149069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_BIT11_SHIFT 3 149169ff7477SRasesh Mody /* bit12 */ 149269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_BIT12_MASK 0x1 149369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_BIT12_SHIFT 4 149469ff7477SRasesh Mody /* bit13 */ 149569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_BIT13_MASK 0x1 149669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_BIT13_SHIFT 5 149769ff7477SRasesh Mody /* bit14 */ 149869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TX_RULE_ACTIVE_MASK 0x1 149969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TX_RULE_ACTIVE_SHIFT 6 150069ff7477SRasesh Mody /* bit15 */ 150169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_ACTIVE_MASK 0x1 150269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_ACTIVE_SHIFT 7 150369ff7477SRasesh Mody u8 flags2; 150469ff7477SRasesh Mody /* timer0cf */ 150569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF0_MASK 0x3 150669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF0_SHIFT 0 150769ff7477SRasesh Mody /* timer1cf */ 150869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF1_MASK 0x3 150969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF1_SHIFT 2 151069ff7477SRasesh Mody /* timer2cf */ 151169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF2_MASK 0x3 151269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF2_SHIFT 4 151369ff7477SRasesh Mody /* timer_stop_all */ 151469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF3_MASK 0x3 151569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF3_SHIFT 6 151669ff7477SRasesh Mody u8 flags3; 151769ff7477SRasesh Mody /* cf4 */ 151869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF4_MASK 0x3 151969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF4_SHIFT 0 152069ff7477SRasesh Mody /* cf5 */ 152169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF5_MASK 0x3 152269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF5_SHIFT 2 152369ff7477SRasesh Mody /* cf6 */ 152469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF6_MASK 0x3 152569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF6_SHIFT 4 152669ff7477SRasesh Mody /* cf7 */ 152769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF7_MASK 0x3 152869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF7_SHIFT 6 152969ff7477SRasesh Mody u8 flags4; 153069ff7477SRasesh Mody /* cf8 */ 153169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF8_MASK 0x3 153269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF8_SHIFT 0 153369ff7477SRasesh Mody /* cf9 */ 153469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF9_MASK 0x3 153569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF9_SHIFT 2 153669ff7477SRasesh Mody /* cf10 */ 153769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF10_MASK 0x3 153869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF10_SHIFT 4 153969ff7477SRasesh Mody /* cf11 */ 154069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF11_MASK 0x3 154169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF11_SHIFT 6 154269ff7477SRasesh Mody u8 flags5; 154369ff7477SRasesh Mody /* cf12 */ 154469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF12_MASK 0x3 154569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF12_SHIFT 0 154669ff7477SRasesh Mody /* cf13 */ 154769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF13_MASK 0x3 154869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF13_SHIFT 2 154969ff7477SRasesh Mody /* cf14 */ 155069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF14_MASK 0x3 155169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF14_SHIFT 4 155269ff7477SRasesh Mody /* cf15 */ 155369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF15_MASK 0x3 155469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF15_SHIFT 6 155569ff7477SRasesh Mody u8 flags6; 155669ff7477SRasesh Mody /* cf16 */ 155769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_MASK 0x3 155869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_SHIFT 0 155969ff7477SRasesh Mody /* cf_array_cf */ 156069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_MASK 0x3 156169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_SHIFT 2 156269ff7477SRasesh Mody /* cf18 */ 156369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_MASK 0x3 156469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_SHIFT 4 156569ff7477SRasesh Mody /* cf19 */ 156669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_MASK 0x3 156769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_SHIFT 6 156869ff7477SRasesh Mody u8 flags7; 156969ff7477SRasesh Mody /* cf20 */ 157069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_MASK 0x3 157169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_SHIFT 0 157269ff7477SRasesh Mody /* cf21 */ 157369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED10_MASK 0x3 157469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED10_SHIFT 2 157569ff7477SRasesh Mody /* cf22 */ 157669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_MASK 0x3 157769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_SHIFT 4 157869ff7477SRasesh Mody /* cf0en */ 157969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF0EN_MASK 0x1 158069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF0EN_SHIFT 6 158169ff7477SRasesh Mody /* cf1en */ 158269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF1EN_MASK 0x1 158369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF1EN_SHIFT 7 158469ff7477SRasesh Mody u8 flags8; 158569ff7477SRasesh Mody /* cf2en */ 158669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF2EN_MASK 0x1 158769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF2EN_SHIFT 0 158869ff7477SRasesh Mody /* cf3en */ 158969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF3EN_MASK 0x1 159069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF3EN_SHIFT 1 159169ff7477SRasesh Mody /* cf4en */ 159269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF4EN_MASK 0x1 159369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF4EN_SHIFT 2 159469ff7477SRasesh Mody /* cf5en */ 159569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF5EN_MASK 0x1 159669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF5EN_SHIFT 3 159769ff7477SRasesh Mody /* cf6en */ 159869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF6EN_MASK 0x1 159969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF6EN_SHIFT 4 160069ff7477SRasesh Mody /* cf7en */ 160169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF7EN_MASK 0x1 160269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF7EN_SHIFT 5 160369ff7477SRasesh Mody /* cf8en */ 160469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF8EN_MASK 0x1 160569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF8EN_SHIFT 6 160669ff7477SRasesh Mody /* cf9en */ 160769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF9EN_MASK 0x1 160869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF9EN_SHIFT 7 160969ff7477SRasesh Mody u8 flags9; 161069ff7477SRasesh Mody /* cf10en */ 161169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF10EN_MASK 0x1 161269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF10EN_SHIFT 0 161369ff7477SRasesh Mody /* cf11en */ 161469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF11EN_MASK 0x1 161569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF11EN_SHIFT 1 161669ff7477SRasesh Mody /* cf12en */ 161769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF12EN_MASK 0x1 161869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF12EN_SHIFT 2 161969ff7477SRasesh Mody /* cf13en */ 162069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF13EN_MASK 0x1 162169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF13EN_SHIFT 3 162269ff7477SRasesh Mody /* cf14en */ 162369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF14EN_MASK 0x1 162469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF14EN_SHIFT 4 162569ff7477SRasesh Mody /* cf15en */ 162669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF15EN_MASK 0x1 162769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_CF15EN_SHIFT 5 162869ff7477SRasesh Mody /* cf16en */ 162969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_EN_MASK 0x1 163069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_GO_TO_BD_CONS_CF_EN_SHIFT 6 163169ff7477SRasesh Mody /* cf_array_cf_en */ 163269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_EN_MASK 0x1 163369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_MULTI_UNICAST_CF_EN_SHIFT 7 163469ff7477SRasesh Mody u8 flags10; 163569ff7477SRasesh Mody /* cf18en */ 163669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_EN_MASK 0x1 163769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_DQ_CF_EN_SHIFT 0 163869ff7477SRasesh Mody /* cf19en */ 163969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_EN_MASK 0x1 164069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TERMINATE_CF_EN_SHIFT 1 164169ff7477SRasesh Mody /* cf20en */ 164269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_EN_MASK 0x1 164369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_FLUSH_Q0_EN_SHIFT 2 164469ff7477SRasesh Mody /* cf21en */ 164569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED11_MASK 0x1 164669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED11_SHIFT 3 164769ff7477SRasesh Mody /* cf22en */ 164869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_EN_MASK 0x1 164969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_SLOW_PATH_EN_SHIFT 4 165069ff7477SRasesh Mody /* cf23en */ 165169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_EN_RESERVED_MASK 0x1 165269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_EN_RESERVED_SHIFT 5 165369ff7477SRasesh Mody /* rule0en */ 165469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED12_MASK 0x1 165569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED12_SHIFT 6 165669ff7477SRasesh Mody /* rule1en */ 165769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED13_MASK 0x1 165869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED13_SHIFT 7 165969ff7477SRasesh Mody u8 flags11; 166069ff7477SRasesh Mody /* rule2en */ 166169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED14_MASK 0x1 166269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED14_SHIFT 0 166369ff7477SRasesh Mody /* rule3en */ 166469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED15_MASK 0x1 166569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RESERVED15_SHIFT 1 166669ff7477SRasesh Mody /* rule4en */ 166769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TX_DEC_RULE_EN_MASK 0x1 166869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TX_DEC_RULE_EN_SHIFT 2 166969ff7477SRasesh Mody /* rule5en */ 167069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE5EN_MASK 0x1 167169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE5EN_SHIFT 3 167269ff7477SRasesh Mody /* rule6en */ 167369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE6EN_MASK 0x1 167469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE6EN_SHIFT 4 167569ff7477SRasesh Mody /* rule7en */ 167669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE7EN_MASK 0x1 167769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE7EN_SHIFT 5 167869ff7477SRasesh Mody /* rule8en */ 167969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED1_MASK 0x1 168069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED1_SHIFT 6 168169ff7477SRasesh Mody /* rule9en */ 168269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE9EN_MASK 0x1 168369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE9EN_SHIFT 7 168469ff7477SRasesh Mody u8 flags12; 168569ff7477SRasesh Mody /* rule10en */ 168669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE10EN_MASK 0x1 168769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE10EN_SHIFT 0 168869ff7477SRasesh Mody /* rule11en */ 168969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE11EN_MASK 0x1 169069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE11EN_SHIFT 1 169169ff7477SRasesh Mody /* rule12en */ 169269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED2_MASK 0x1 169369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED2_SHIFT 2 169469ff7477SRasesh Mody /* rule13en */ 169569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED3_MASK 0x1 169669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED3_SHIFT 3 169769ff7477SRasesh Mody /* rule14en */ 169869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE14EN_MASK 0x1 169969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE14EN_SHIFT 4 170069ff7477SRasesh Mody /* rule15en */ 170169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE15EN_MASK 0x1 170269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE15EN_SHIFT 5 170369ff7477SRasesh Mody /* rule16en */ 170469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE16EN_MASK 0x1 170569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE16EN_SHIFT 6 170669ff7477SRasesh Mody /* rule17en */ 170769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE17EN_MASK 0x1 170869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE17EN_SHIFT 7 170969ff7477SRasesh Mody u8 flags13; 171069ff7477SRasesh Mody /* rule18en */ 171169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE18EN_MASK 0x1 171269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE18EN_SHIFT 0 171369ff7477SRasesh Mody /* rule19en */ 171469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE19EN_MASK 0x1 171569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_RULE19EN_SHIFT 1 171669ff7477SRasesh Mody /* rule20en */ 171769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED4_MASK 0x1 171869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED4_SHIFT 2 171969ff7477SRasesh Mody /* rule21en */ 172069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED5_MASK 0x1 172169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED5_SHIFT 3 172269ff7477SRasesh Mody /* rule22en */ 172369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED6_MASK 0x1 172469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED6_SHIFT 4 172569ff7477SRasesh Mody /* rule23en */ 172669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED7_MASK 0x1 172769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED7_SHIFT 5 172869ff7477SRasesh Mody /* rule24en */ 172969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED8_MASK 0x1 173069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED8_SHIFT 6 173169ff7477SRasesh Mody /* rule25en */ 173269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED9_MASK 0x1 173369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_A0_RESERVED9_SHIFT 7 173469ff7477SRasesh Mody u8 flags14; 173569ff7477SRasesh Mody /* bit16 */ 173669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_USE_EXT_HDR_MASK 0x1 173769ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_USE_EXT_HDR_SHIFT 0 173869ff7477SRasesh Mody /* bit17 */ 173969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_RAW_L3L4_MASK 0x1 174069ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_RAW_L3L4_SHIFT 1 174169ff7477SRasesh Mody /* bit18 */ 174269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_INBAND_PROP_HDR_MASK 0x1 174369ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_INBAND_PROP_HDR_SHIFT 2 174469ff7477SRasesh Mody /* bit19 */ 174569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_EXT_TUNNEL_MASK 0x1 174669ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_EDPM_SEND_EXT_TUNNEL_SHIFT 3 174769ff7477SRasesh Mody /* bit20 */ 174869ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_L2_EDPM_ENABLE_MASK 0x1 174969ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_L2_EDPM_ENABLE_SHIFT 4 175069ff7477SRasesh Mody /* bit21 */ 175169ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_MASK 0x1 175269ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_SHIFT 5 175369ff7477SRasesh Mody /* cf23 */ 175469ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_MASK 0x3 175569ff7477SRasesh Mody #define E4XSTORMETHCONNAGCTXDQEXTLDPART_TPH_ENABLE_SHIFT 6 175669ff7477SRasesh Mody u8 edpm_event_id /* byte2 */; 175769ff7477SRasesh Mody __le16 physical_q0 /* physical_q0 */; 175869ff7477SRasesh Mody __le16 e5_reserved1 /* physical_q1 */; 175969ff7477SRasesh Mody __le16 edpm_num_bds /* physical_q2 */; 176069ff7477SRasesh Mody __le16 tx_bd_cons /* word3 */; 176169ff7477SRasesh Mody __le16 tx_bd_prod /* word4 */; 1762c2817ba4SRasesh Mody __le16 updated_qm_pq_id /* word5 */; 176369ff7477SRasesh Mody __le16 conn_dpi /* conn_dpi */; 176469ff7477SRasesh Mody u8 byte3 /* byte3 */; 176569ff7477SRasesh Mody u8 byte4 /* byte4 */; 176669ff7477SRasesh Mody u8 byte5 /* byte5 */; 176769ff7477SRasesh Mody u8 byte6 /* byte6 */; 176869ff7477SRasesh Mody __le32 reg0 /* reg0 */; 176969ff7477SRasesh Mody __le32 reg1 /* reg1 */; 177069ff7477SRasesh Mody __le32 reg2 /* reg2 */; 177169ff7477SRasesh Mody __le32 reg3 /* reg3 */; 177269ff7477SRasesh Mody __le32 reg4 /* reg4 */; 177369ff7477SRasesh Mody }; 177469ff7477SRasesh Mody 177569ff7477SRasesh Mody 177652fa735cSRasesh Mody struct mstorm_eth_conn_ag_ctx { 177769ff7477SRasesh Mody u8 byte0 /* cdu_validation */; 177869ff7477SRasesh Mody u8 byte1 /* state */; 177969ff7477SRasesh Mody u8 flags0; 178052fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */ 178152fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 178252fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 178352fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1 178452fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3 /* cf0 */ 178552fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 2 178652fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3 /* cf1 */ 178752fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 4 178852fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 /* cf2 */ 178952fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6 179069ff7477SRasesh Mody u8 flags1; 179152fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 179252fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 0 179352fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 179452fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 1 179552fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 179652fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2 179752fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 179852fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 3 179952fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 180052fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 4 180152fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 180252fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 5 180352fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 180452fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 6 180552fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 180652fa735cSRasesh Mody #define MSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 7 180769ff7477SRasesh Mody __le16 word0 /* word0 */; 180869ff7477SRasesh Mody __le16 word1 /* word1 */; 180969ff7477SRasesh Mody __le32 reg0 /* reg0 */; 181069ff7477SRasesh Mody __le32 reg1 /* reg1 */; 181169ff7477SRasesh Mody }; 181269ff7477SRasesh Mody 181369ff7477SRasesh Mody 181469ff7477SRasesh Mody 181569ff7477SRasesh Mody 181669ff7477SRasesh Mody 181752fa735cSRasesh Mody struct xstorm_eth_hw_conn_ag_ctx { 181869ff7477SRasesh Mody u8 reserved0 /* cdu_validation */; 181969ff7477SRasesh Mody u8 eth_state /* state */; 182069ff7477SRasesh Mody u8 flags0; 182169ff7477SRasesh Mody /* exist_in_qm0 */ 182252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 182352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 182469ff7477SRasesh Mody /* exist_in_qm1 */ 182552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED1_MASK 0x1 182652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED1_SHIFT 1 182769ff7477SRasesh Mody /* exist_in_qm2 */ 182852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED2_MASK 0x1 182952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED2_SHIFT 2 183069ff7477SRasesh Mody /* exist_in_qm3 */ 183152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 183252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3 183352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED3_MASK 0x1 /* bit4 */ 183452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED3_SHIFT 4 183569ff7477SRasesh Mody /* cf_array_active */ 183652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED4_MASK 0x1 183752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED4_SHIFT 5 183852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED5_MASK 0x1 /* bit6 */ 183952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED5_SHIFT 6 184052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED6_MASK 0x1 /* bit7 */ 184152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED6_SHIFT 7 184269ff7477SRasesh Mody u8 flags1; 184352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED7_MASK 0x1 /* bit8 */ 184452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED7_SHIFT 0 184552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED8_MASK 0x1 /* bit9 */ 184652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED8_SHIFT 1 184752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED9_MASK 0x1 /* bit10 */ 184852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED9_SHIFT 2 184952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_BIT11_MASK 0x1 /* bit11 */ 185052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_BIT11_SHIFT 3 185152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_E5_RESERVED2_MASK 0x1 /* bit12 */ 185252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_E5_RESERVED2_SHIFT 4 185352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_E5_RESERVED3_MASK 0x1 /* bit13 */ 185452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_E5_RESERVED3_SHIFT 5 185552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1 /* bit14 */ 185652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6 185752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1 /* bit15 */ 185852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7 185969ff7477SRasesh Mody u8 flags2; 186069ff7477SRasesh Mody /* timer0cf */ 186152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF0_MASK 0x3 186252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF0_SHIFT 0 186369ff7477SRasesh Mody /* timer1cf */ 186452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF1_MASK 0x3 186552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF1_SHIFT 2 186669ff7477SRasesh Mody /* timer2cf */ 186752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF2_MASK 0x3 186852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF2_SHIFT 4 186969ff7477SRasesh Mody /* timer_stop_all */ 187052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF3_MASK 0x3 187152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF3_SHIFT 6 187269ff7477SRasesh Mody u8 flags3; 187352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */ 187452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF4_SHIFT 0 187552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */ 187652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF5_SHIFT 2 187752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 187852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF6_SHIFT 4 187952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */ 188052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF7_SHIFT 6 188169ff7477SRasesh Mody u8 flags4; 188252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */ 188352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF8_SHIFT 0 188452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */ 188552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF9_SHIFT 2 188652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */ 188752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF10_SHIFT 4 188852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF11_MASK 0x3 /* cf11 */ 188952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF11_SHIFT 6 189069ff7477SRasesh Mody u8 flags5; 189152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF12_MASK 0x3 /* cf12 */ 189252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF12_SHIFT 0 189352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF13_MASK 0x3 /* cf13 */ 189452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF13_SHIFT 2 189552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF14_MASK 0x3 /* cf14 */ 189652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF14_SHIFT 4 189752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF15_MASK 0x3 /* cf15 */ 189852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF15_SHIFT 6 189969ff7477SRasesh Mody u8 flags6; 190052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_MASK 0x3 /* cf16 */ 190152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_SHIFT 0 190269ff7477SRasesh Mody /* cf_array_cf */ 190352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_MASK 0x3 190452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_SHIFT 2 190552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_MASK 0x3 /* cf18 */ 190652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_SHIFT 4 190752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_MASK 0x3 /* cf19 */ 190852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_SHIFT 6 190969ff7477SRasesh Mody u8 flags7; 191052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 /* cf20 */ 191152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_SHIFT 0 191252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED10_MASK 0x3 /* cf21 */ 191352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED10_SHIFT 2 191452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_MASK 0x3 /* cf22 */ 191552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_SHIFT 4 191652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 191752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF0EN_SHIFT 6 191852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 191952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF1EN_SHIFT 7 192069ff7477SRasesh Mody u8 flags8; 192152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 192252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF2EN_SHIFT 0 192352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */ 192452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF3EN_SHIFT 1 192552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */ 192652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF4EN_SHIFT 2 192752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */ 192852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF5EN_SHIFT 3 192952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 193052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF6EN_SHIFT 4 193152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */ 193252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF7EN_SHIFT 5 193352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */ 193452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF8EN_SHIFT 6 193552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */ 193652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF9EN_SHIFT 7 193769ff7477SRasesh Mody u8 flags9; 193852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */ 193952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF10EN_SHIFT 0 194052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF11EN_MASK 0x1 /* cf11en */ 194152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF11EN_SHIFT 1 194252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF12EN_MASK 0x1 /* cf12en */ 194352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF12EN_SHIFT 2 194452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF13EN_MASK 0x1 /* cf13en */ 194552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF13EN_SHIFT 3 194652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF14EN_MASK 0x1 /* cf14en */ 194752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF14EN_SHIFT 4 194852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF15EN_MASK 0x1 /* cf15en */ 194952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_CF15EN_SHIFT 5 195052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_MASK 0x1 /* cf16en */ 195152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_SHIFT 6 195269ff7477SRasesh Mody /* cf_array_cf_en */ 195352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_EN_MASK 0x1 195452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_MULTI_UNICAST_CF_EN_SHIFT 7 195569ff7477SRasesh Mody u8 flags10; 195652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_EN_MASK 0x1 /* cf18en */ 195752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_DQ_CF_EN_SHIFT 0 195852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1 /* cf19en */ 195952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1 196052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 /* cf20en */ 196152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2 196252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED11_MASK 0x1 /* cf21en */ 196352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED11_SHIFT 3 196452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 /* cf22en */ 196552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4 196652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_MASK 0x1 /* cf23en */ 196752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_SHIFT 5 196852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED12_MASK 0x1 /* rule0en */ 196952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED12_SHIFT 6 197052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED13_MASK 0x1 /* rule1en */ 197152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED13_SHIFT 7 197269ff7477SRasesh Mody u8 flags11; 197352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED14_MASK 0x1 /* rule2en */ 197452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED14_SHIFT 0 197552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED15_MASK 0x1 /* rule3en */ 197652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RESERVED15_SHIFT 1 197752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1 /* rule4en */ 197852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2 197952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 198052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE5EN_SHIFT 3 198152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */ 198252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE6EN_SHIFT 4 198352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 198452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE7EN_SHIFT 5 198552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 /* rule8en */ 198652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED1_SHIFT 6 198752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE9EN_MASK 0x1 /* rule9en */ 198852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE9EN_SHIFT 7 198969ff7477SRasesh Mody u8 flags12; 199069ff7477SRasesh Mody /* rule10en */ 199152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE10EN_MASK 0x1 199252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE10EN_SHIFT 0 199369ff7477SRasesh Mody /* rule11en */ 199452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE11EN_MASK 0x1 199552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE11EN_SHIFT 1 199669ff7477SRasesh Mody /* rule12en */ 199752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 199852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED2_SHIFT 2 199969ff7477SRasesh Mody /* rule13en */ 200052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 200152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED3_SHIFT 3 200269ff7477SRasesh Mody /* rule14en */ 200352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE14EN_MASK 0x1 200452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE14EN_SHIFT 4 200569ff7477SRasesh Mody /* rule15en */ 200652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE15EN_MASK 0x1 200752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE15EN_SHIFT 5 200869ff7477SRasesh Mody /* rule16en */ 200952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE16EN_MASK 0x1 201052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE16EN_SHIFT 6 201169ff7477SRasesh Mody /* rule17en */ 201252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE17EN_MASK 0x1 201352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE17EN_SHIFT 7 201469ff7477SRasesh Mody u8 flags13; 201569ff7477SRasesh Mody /* rule18en */ 201652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE18EN_MASK 0x1 201752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE18EN_SHIFT 0 201869ff7477SRasesh Mody /* rule19en */ 201952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE19EN_MASK 0x1 202052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_RULE19EN_SHIFT 1 202169ff7477SRasesh Mody /* rule20en */ 202252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED4_MASK 0x1 202352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED4_SHIFT 2 202469ff7477SRasesh Mody /* rule21en */ 202552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED5_MASK 0x1 202652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED5_SHIFT 3 202769ff7477SRasesh Mody /* rule22en */ 202852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 202952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED6_SHIFT 4 203069ff7477SRasesh Mody /* rule23en */ 203152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED7_MASK 0x1 203252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED7_SHIFT 5 203369ff7477SRasesh Mody /* rule24en */ 203452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 203552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED8_SHIFT 6 203669ff7477SRasesh Mody /* rule25en */ 203752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 203852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_A0_RESERVED9_SHIFT 7 203969ff7477SRasesh Mody u8 flags14; 204052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_EDPM_USE_EXT_HDR_MASK 0x1 /* bit16 */ 204152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_EDPM_USE_EXT_HDR_SHIFT 0 204252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_MASK 0x1 /* bit17 */ 204352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_SHIFT 1 204452fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_MASK 0x1 /* bit18 */ 204552fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_SHIFT 2 204652fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_MASK 0x1 /* bit19 */ 204752fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_SHIFT 3 204852fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_L2_EDPM_ENABLE_MASK 0x1 /* bit20 */ 204952fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_L2_EDPM_ENABLE_SHIFT 4 205052fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1 /* bit21 */ 205152fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5 205252fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_MASK 0x3 /* cf23 */ 205352fa735cSRasesh Mody #define XSTORM_ETH_HW_CONN_AG_CTX_TPH_ENABLE_SHIFT 6 205469ff7477SRasesh Mody u8 edpm_event_id /* byte2 */; 205569ff7477SRasesh Mody __le16 physical_q0 /* physical_q0 */; 205669ff7477SRasesh Mody __le16 e5_reserved1 /* physical_q1 */; 205769ff7477SRasesh Mody __le16 edpm_num_bds /* physical_q2 */; 205869ff7477SRasesh Mody __le16 tx_bd_cons /* word3 */; 205969ff7477SRasesh Mody __le16 tx_bd_prod /* word4 */; 2060c2817ba4SRasesh Mody __le16 updated_qm_pq_id /* word5 */; 206169ff7477SRasesh Mody __le16 conn_dpi /* conn_dpi */; 206269ff7477SRasesh Mody }; 206369ff7477SRasesh Mody 206469ff7477SRasesh Mody 206569ff7477SRasesh Mody 2066ec94dbc5SRasesh Mody /* 2067ec94dbc5SRasesh Mody * GFT CAM line struct 2068ec94dbc5SRasesh Mody */ 2069ec94dbc5SRasesh Mody struct gft_cam_line { 2070ec94dbc5SRasesh Mody __le32 camline; 2071610ccd98SRasesh Mody /* Indication if the line is valid. */ 2072ec94dbc5SRasesh Mody #define GFT_CAM_LINE_VALID_MASK 0x1 2073ec94dbc5SRasesh Mody #define GFT_CAM_LINE_VALID_SHIFT 0 2074610ccd98SRasesh Mody /* Data bits, the word that compared with the profile key */ 2075ec94dbc5SRasesh Mody #define GFT_CAM_LINE_DATA_MASK 0x3FFF 2076ec94dbc5SRasesh Mody #define GFT_CAM_LINE_DATA_SHIFT 1 2077610ccd98SRasesh Mody /* Mask bits, indicate the bits in the data that are Dont-Care */ 2078ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MASK_BITS_MASK 0x3FFF 2079ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MASK_BITS_SHIFT 15 2080ec94dbc5SRasesh Mody #define GFT_CAM_LINE_RESERVED1_MASK 0x7 2081ec94dbc5SRasesh Mody #define GFT_CAM_LINE_RESERVED1_SHIFT 29 2082ec94dbc5SRasesh Mody }; 2083ec94dbc5SRasesh Mody 2084610ccd98SRasesh Mody 2085ec94dbc5SRasesh Mody /* 2086ec94dbc5SRasesh Mody * GFT CAM line struct (for driversim use) 2087ec94dbc5SRasesh Mody */ 2088ec94dbc5SRasesh Mody struct gft_cam_line_mapped { 2089ec94dbc5SRasesh Mody __le32 camline; 2090610ccd98SRasesh Mody /* Indication if the line is valid. */ 2091ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_VALID_MASK 0x1 2092ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_VALID_SHIFT 0 2093610ccd98SRasesh Mody /* use enum gft_profile_ip_version (use enum gft_profile_ip_version) */ 2094ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_IP_VERSION_MASK 0x1 2095ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_IP_VERSION_SHIFT 1 2096610ccd98SRasesh Mody /* use enum gft_profile_ip_version (use enum gft_profile_ip_version) */ 2097ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_TUNNEL_IP_VERSION_MASK 0x1 2098ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_TUNNEL_IP_VERSION_SHIFT 2 2099610ccd98SRasesh Mody /* use enum gft_profile_upper_protocol_type 2100610ccd98SRasesh Mody * (use enum gft_profile_upper_protocol_type) 2101610ccd98SRasesh Mody */ 2102ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE_MASK 0xF 2103ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE_SHIFT 3 2104610ccd98SRasesh Mody /* use enum gft_profile_tunnel_type (use enum gft_profile_tunnel_type) */ 2105ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_TUNNEL_TYPE_MASK 0xF 2106ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_TUNNEL_TYPE_SHIFT 7 2107ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_PF_ID_MASK 0xF 2108ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_PF_ID_SHIFT 11 2109610ccd98SRasesh Mody /* use enum gft_profile_ip_version (use enum gft_profile_ip_version) */ 2110ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_IP_VERSION_MASK_MASK 0x1 2111ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_IP_VERSION_MASK_SHIFT 15 2112610ccd98SRasesh Mody /* use enum gft_profile_ip_version (use enum gft_profile_ip_version) */ 2113ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_TUNNEL_IP_VERSION_MASK_MASK 0x1 2114ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_TUNNEL_IP_VERSION_MASK_SHIFT 16 2115610ccd98SRasesh Mody /* use enum gft_profile_upper_protocol_type 2116610ccd98SRasesh Mody * (use enum gft_profile_upper_protocol_type) 2117610ccd98SRasesh Mody */ 2118ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE_MASK_MASK 0xF 2119ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE_MASK_SHIFT 17 2120610ccd98SRasesh Mody /* use enum gft_profile_tunnel_type (use enum gft_profile_tunnel_type) */ 2121ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_TUNNEL_TYPE_MASK_MASK 0xF 2122ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_TUNNEL_TYPE_MASK_SHIFT 21 2123ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_PF_ID_MASK_MASK 0xF 2124ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_PF_ID_MASK_SHIFT 25 2125ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_RESERVED1_MASK 0x7 2126ec94dbc5SRasesh Mody #define GFT_CAM_LINE_MAPPED_RESERVED1_SHIFT 29 2127ec94dbc5SRasesh Mody }; 2128ec94dbc5SRasesh Mody 2129610ccd98SRasesh Mody 2130ec94dbc5SRasesh Mody union gft_cam_line_union { 2131ec94dbc5SRasesh Mody struct gft_cam_line cam_line; 2132ec94dbc5SRasesh Mody struct gft_cam_line_mapped cam_line_mapped; 2133ec94dbc5SRasesh Mody }; 2134ec94dbc5SRasesh Mody 2135610ccd98SRasesh Mody 2136ec94dbc5SRasesh Mody /* 2137ec94dbc5SRasesh Mody * Used in gft_profile_key: Indication for ip version 2138ec94dbc5SRasesh Mody */ 2139ec94dbc5SRasesh Mody enum gft_profile_ip_version { 2140ec94dbc5SRasesh Mody GFT_PROFILE_IPV4 = 0, 2141ec94dbc5SRasesh Mody GFT_PROFILE_IPV6 = 1, 2142ec94dbc5SRasesh Mody MAX_GFT_PROFILE_IP_VERSION 2143ec94dbc5SRasesh Mody }; 2144ec94dbc5SRasesh Mody 2145610ccd98SRasesh Mody 2146ec94dbc5SRasesh Mody /* 2147ec94dbc5SRasesh Mody * Profile key stucr fot GFT logic in Prs 2148ec94dbc5SRasesh Mody */ 2149ec94dbc5SRasesh Mody struct gft_profile_key { 2150ec94dbc5SRasesh Mody __le16 profile_key; 2151610ccd98SRasesh Mody /* use enum gft_profile_ip_version (use enum gft_profile_ip_version) */ 2152ec94dbc5SRasesh Mody #define GFT_PROFILE_KEY_IP_VERSION_MASK 0x1 2153ec94dbc5SRasesh Mody #define GFT_PROFILE_KEY_IP_VERSION_SHIFT 0 2154610ccd98SRasesh Mody /* use enum gft_profile_ip_version (use enum gft_profile_ip_version) */ 2155ec94dbc5SRasesh Mody #define GFT_PROFILE_KEY_TUNNEL_IP_VERSION_MASK 0x1 2156ec94dbc5SRasesh Mody #define GFT_PROFILE_KEY_TUNNEL_IP_VERSION_SHIFT 1 2157610ccd98SRasesh Mody /* use enum gft_profile_upper_protocol_type 2158610ccd98SRasesh Mody * (use enum gft_profile_upper_protocol_type) 2159610ccd98SRasesh Mody */ 2160ec94dbc5SRasesh Mody #define GFT_PROFILE_KEY_UPPER_PROTOCOL_TYPE_MASK 0xF 2161ec94dbc5SRasesh Mody #define GFT_PROFILE_KEY_UPPER_PROTOCOL_TYPE_SHIFT 2 2162610ccd98SRasesh Mody /* use enum gft_profile_tunnel_type (use enum gft_profile_tunnel_type) */ 2163ec94dbc5SRasesh Mody #define GFT_PROFILE_KEY_TUNNEL_TYPE_MASK 0xF 2164ec94dbc5SRasesh Mody #define GFT_PROFILE_KEY_TUNNEL_TYPE_SHIFT 6 2165ec94dbc5SRasesh Mody #define GFT_PROFILE_KEY_PF_ID_MASK 0xF 2166ec94dbc5SRasesh Mody #define GFT_PROFILE_KEY_PF_ID_SHIFT 10 2167ec94dbc5SRasesh Mody #define GFT_PROFILE_KEY_RESERVED0_MASK 0x3 2168ec94dbc5SRasesh Mody #define GFT_PROFILE_KEY_RESERVED0_SHIFT 14 2169ec94dbc5SRasesh Mody }; 2170ec94dbc5SRasesh Mody 2171610ccd98SRasesh Mody 2172ec94dbc5SRasesh Mody /* 2173ec94dbc5SRasesh Mody * Used in gft_profile_key: Indication for tunnel type 2174ec94dbc5SRasesh Mody */ 2175ec94dbc5SRasesh Mody enum gft_profile_tunnel_type { 2176ec94dbc5SRasesh Mody GFT_PROFILE_NO_TUNNEL = 0, 2177ec94dbc5SRasesh Mody GFT_PROFILE_VXLAN_TUNNEL = 1, 2178ec94dbc5SRasesh Mody GFT_PROFILE_GRE_MAC_OR_NVGRE_TUNNEL = 2, 2179ec94dbc5SRasesh Mody GFT_PROFILE_GRE_IP_TUNNEL = 3, 2180ec94dbc5SRasesh Mody GFT_PROFILE_GENEVE_MAC_TUNNEL = 4, 2181ec94dbc5SRasesh Mody GFT_PROFILE_GENEVE_IP_TUNNEL = 5, 2182ec94dbc5SRasesh Mody MAX_GFT_PROFILE_TUNNEL_TYPE 2183ec94dbc5SRasesh Mody }; 2184ec94dbc5SRasesh Mody 2185610ccd98SRasesh Mody 2186ec94dbc5SRasesh Mody /* 2187ec94dbc5SRasesh Mody * Used in gft_profile_key: Indication for protocol type 2188ec94dbc5SRasesh Mody */ 2189ec94dbc5SRasesh Mody enum gft_profile_upper_protocol_type { 2190ec94dbc5SRasesh Mody GFT_PROFILE_ROCE_PROTOCOL = 0, 2191ec94dbc5SRasesh Mody GFT_PROFILE_RROCE_PROTOCOL = 1, 2192ec94dbc5SRasesh Mody GFT_PROFILE_FCOE_PROTOCOL = 2, 2193ec94dbc5SRasesh Mody GFT_PROFILE_ICMP_PROTOCOL = 3, 2194ec94dbc5SRasesh Mody GFT_PROFILE_ARP_PROTOCOL = 4, 2195ec94dbc5SRasesh Mody GFT_PROFILE_USER_TCP_SRC_PORT_1_INNER = 5, 2196ec94dbc5SRasesh Mody GFT_PROFILE_USER_TCP_DST_PORT_1_INNER = 6, 2197ec94dbc5SRasesh Mody GFT_PROFILE_TCP_PROTOCOL = 7, 2198ec94dbc5SRasesh Mody GFT_PROFILE_USER_UDP_DST_PORT_1_INNER = 8, 2199ec94dbc5SRasesh Mody GFT_PROFILE_USER_UDP_DST_PORT_2_OUTER = 9, 2200ec94dbc5SRasesh Mody GFT_PROFILE_UDP_PROTOCOL = 10, 2201ec94dbc5SRasesh Mody GFT_PROFILE_USER_IP_1_INNER = 11, 2202ec94dbc5SRasesh Mody GFT_PROFILE_USER_IP_2_OUTER = 12, 2203ec94dbc5SRasesh Mody GFT_PROFILE_USER_ETH_1_INNER = 13, 2204ec94dbc5SRasesh Mody GFT_PROFILE_USER_ETH_2_OUTER = 14, 2205ec94dbc5SRasesh Mody GFT_PROFILE_RAW = 15, 2206ec94dbc5SRasesh Mody MAX_GFT_PROFILE_UPPER_PROTOCOL_TYPE 2207ec94dbc5SRasesh Mody }; 2208ec94dbc5SRasesh Mody 2209610ccd98SRasesh Mody 2210ec94dbc5SRasesh Mody /* 2211ec94dbc5SRasesh Mody * GFT RAM line struct 2212ec94dbc5SRasesh Mody */ 2213ec94dbc5SRasesh Mody struct gft_ram_line { 2214806474a6SRasesh Mody __le32 lo; 2215ec94dbc5SRasesh Mody #define GFT_RAM_LINE_VLAN_SELECT_MASK 0x3 2216ec94dbc5SRasesh Mody #define GFT_RAM_LINE_VLAN_SELECT_SHIFT 0 2217ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_ENTROPHY_MASK 0x1 2218ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_ENTROPHY_SHIFT 2 2219ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_TTL_EQUAL_ONE_MASK 0x1 2220ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_TTL_EQUAL_ONE_SHIFT 3 2221ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_TTL_MASK 0x1 2222ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_TTL_SHIFT 4 2223ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_ETHERTYPE_MASK 0x1 2224ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_ETHERTYPE_SHIFT 5 2225ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_DST_PORT_MASK 0x1 2226ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_DST_PORT_SHIFT 6 2227ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_SRC_PORT_MASK 0x1 2228ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_SRC_PORT_SHIFT 7 2229ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_DSCP_MASK 0x1 2230ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_DSCP_SHIFT 8 2231ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_OVER_IP_PROTOCOL_MASK 0x1 2232ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_OVER_IP_PROTOCOL_SHIFT 9 2233ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_DST_IP_MASK 0x1 2234ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_DST_IP_SHIFT 10 2235ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_SRC_IP_MASK 0x1 2236ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_SRC_IP_SHIFT 11 2237ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_PRIORITY_MASK 0x1 2238ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_PRIORITY_SHIFT 12 2239ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_PROVIDER_VLAN_MASK 0x1 2240ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_PROVIDER_VLAN_SHIFT 13 2241ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_VLAN_MASK 0x1 2242ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_VLAN_SHIFT 14 2243ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_DST_MAC_MASK 0x1 2244ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_DST_MAC_SHIFT 15 2245ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_SRC_MAC_MASK 0x1 2246ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TUNNEL_SRC_MAC_SHIFT 16 2247ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TTL_EQUAL_ONE_MASK 0x1 2248ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TTL_EQUAL_ONE_SHIFT 17 2249ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TTL_MASK 0x1 2250ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TTL_SHIFT 18 2251ec94dbc5SRasesh Mody #define GFT_RAM_LINE_ETHERTYPE_MASK 0x1 2252ec94dbc5SRasesh Mody #define GFT_RAM_LINE_ETHERTYPE_SHIFT 19 2253ec94dbc5SRasesh Mody #define GFT_RAM_LINE_RESERVED0_MASK 0x1 2254ec94dbc5SRasesh Mody #define GFT_RAM_LINE_RESERVED0_SHIFT 20 2255ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_FIN_MASK 0x1 2256ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_FIN_SHIFT 21 2257ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_SYN_MASK 0x1 2258ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_SYN_SHIFT 22 2259ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_RST_MASK 0x1 2260ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_RST_SHIFT 23 2261ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_PSH_MASK 0x1 2262ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_PSH_SHIFT 24 2263ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_ACK_MASK 0x1 2264ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_ACK_SHIFT 25 2265ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_URG_MASK 0x1 2266ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_URG_SHIFT 26 2267ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_ECE_MASK 0x1 2268ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_ECE_SHIFT 27 2269ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_CWR_MASK 0x1 2270ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_CWR_SHIFT 28 2271ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_NS_MASK 0x1 2272ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TCP_FLAG_NS_SHIFT 29 2273ec94dbc5SRasesh Mody #define GFT_RAM_LINE_DST_PORT_MASK 0x1 2274ec94dbc5SRasesh Mody #define GFT_RAM_LINE_DST_PORT_SHIFT 30 2275902f389fSAndrius Sirvys #define GFT_RAM_LINE_SRC_PORT_MASK 0x1U 2276ec94dbc5SRasesh Mody #define GFT_RAM_LINE_SRC_PORT_SHIFT 31 2277806474a6SRasesh Mody __le32 hi; 2278ec94dbc5SRasesh Mody #define GFT_RAM_LINE_DSCP_MASK 0x1 2279ec94dbc5SRasesh Mody #define GFT_RAM_LINE_DSCP_SHIFT 0 2280ec94dbc5SRasesh Mody #define GFT_RAM_LINE_OVER_IP_PROTOCOL_MASK 0x1 2281ec94dbc5SRasesh Mody #define GFT_RAM_LINE_OVER_IP_PROTOCOL_SHIFT 1 2282ec94dbc5SRasesh Mody #define GFT_RAM_LINE_DST_IP_MASK 0x1 2283ec94dbc5SRasesh Mody #define GFT_RAM_LINE_DST_IP_SHIFT 2 2284ec94dbc5SRasesh Mody #define GFT_RAM_LINE_SRC_IP_MASK 0x1 2285ec94dbc5SRasesh Mody #define GFT_RAM_LINE_SRC_IP_SHIFT 3 2286ec94dbc5SRasesh Mody #define GFT_RAM_LINE_PRIORITY_MASK 0x1 2287ec94dbc5SRasesh Mody #define GFT_RAM_LINE_PRIORITY_SHIFT 4 2288ec94dbc5SRasesh Mody #define GFT_RAM_LINE_PROVIDER_VLAN_MASK 0x1 2289ec94dbc5SRasesh Mody #define GFT_RAM_LINE_PROVIDER_VLAN_SHIFT 5 2290ec94dbc5SRasesh Mody #define GFT_RAM_LINE_VLAN_MASK 0x1 2291ec94dbc5SRasesh Mody #define GFT_RAM_LINE_VLAN_SHIFT 6 2292ec94dbc5SRasesh Mody #define GFT_RAM_LINE_DST_MAC_MASK 0x1 2293ec94dbc5SRasesh Mody #define GFT_RAM_LINE_DST_MAC_SHIFT 7 2294ec94dbc5SRasesh Mody #define GFT_RAM_LINE_SRC_MAC_MASK 0x1 2295ec94dbc5SRasesh Mody #define GFT_RAM_LINE_SRC_MAC_SHIFT 8 2296ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TENANT_ID_MASK 0x1 2297ec94dbc5SRasesh Mody #define GFT_RAM_LINE_TENANT_ID_SHIFT 9 2298ec94dbc5SRasesh Mody #define GFT_RAM_LINE_RESERVED1_MASK 0x3FFFFF 2299ec94dbc5SRasesh Mody #define GFT_RAM_LINE_RESERVED1_SHIFT 10 2300ec94dbc5SRasesh Mody }; 2301ec94dbc5SRasesh Mody 2302610ccd98SRasesh Mody 2303ec94dbc5SRasesh Mody /* 2304ec94dbc5SRasesh Mody * Used in the first 2 bits for gft_ram_line: Indication for vlan mask 2305ec94dbc5SRasesh Mody */ 2306ec94dbc5SRasesh Mody enum gft_vlan_select { 2307ec94dbc5SRasesh Mody INNER_PROVIDER_VLAN = 0, 2308ec94dbc5SRasesh Mody INNER_VLAN = 1, 2309ec94dbc5SRasesh Mody OUTER_PROVIDER_VLAN = 2, 2310ec94dbc5SRasesh Mody OUTER_VLAN = 3, 2311ec94dbc5SRasesh Mody MAX_GFT_VLAN_SELECT 2312ec94dbc5SRasesh Mody }; 2313ec94dbc5SRasesh Mody 2314610ccd98SRasesh Mody 2315ec94dbc5SRasesh Mody #endif /* __ECORE_HSI_ETH__ */ 2316