xref: /dpdk/drivers/net/qede/base/ecore_hsi_eth.h (revision 7ed1cd53dbb515328f8780aa95aabce85e1ffb2f)
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