1*d14abf15SRobert Mustacchi /*******************************************************************************
2*d14abf15SRobert Mustacchi  * CDDL HEADER START
3*d14abf15SRobert Mustacchi  *
4*d14abf15SRobert Mustacchi  * The contents of this file are subject to the terms of the
5*d14abf15SRobert Mustacchi  * Common Development and Distribution License (the "License").
6*d14abf15SRobert Mustacchi  * You may not use this file except in compliance with the License.
7*d14abf15SRobert Mustacchi  *
8*d14abf15SRobert Mustacchi  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*d14abf15SRobert Mustacchi  * or http://www.opensolaris.org/os/licensing.
10*d14abf15SRobert Mustacchi  * See the License for the specific language governing permissions
11*d14abf15SRobert Mustacchi  * and limitations under the License.
12*d14abf15SRobert Mustacchi  *
13*d14abf15SRobert Mustacchi  * When distributing Covered Code, include this CDDL HEADER in each
14*d14abf15SRobert Mustacchi  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*d14abf15SRobert Mustacchi  * If applicable, add the following below this CDDL HEADER, with the
16*d14abf15SRobert Mustacchi  * fields enclosed by brackets "[]" replaced with your own identifying
17*d14abf15SRobert Mustacchi  * information: Portions Copyright [yyyy] [name of copyright owner]
18*d14abf15SRobert Mustacchi  *
19*d14abf15SRobert Mustacchi  * CDDL HEADER END
20*d14abf15SRobert Mustacchi  *
21*d14abf15SRobert Mustacchi  * Copyright 2014 QLogic Corporation
22*d14abf15SRobert Mustacchi  * The contents of this file are subject to the terms of the
23*d14abf15SRobert Mustacchi  * QLogic End User License (the "License").
24*d14abf15SRobert Mustacchi  * You may not use this file except in compliance with the License.
25*d14abf15SRobert Mustacchi  *
26*d14abf15SRobert Mustacchi  * You can obtain a copy of the License at
27*d14abf15SRobert Mustacchi  * http://www.qlogic.com/Resources/Documents/DriverDownloadHelp/
28*d14abf15SRobert Mustacchi  * QLogic_End_User_Software_License.txt
29*d14abf15SRobert Mustacchi  * See the License for the specific language governing permissions
30*d14abf15SRobert Mustacchi  * and limitations under the License.
31*d14abf15SRobert Mustacchi  *
32*d14abf15SRobert Mustacchi  *
33*d14abf15SRobert Mustacchi  * Module Description:
34*d14abf15SRobert Mustacchi  *
35*d14abf15SRobert Mustacchi  *
36*d14abf15SRobert Mustacchi  * History:
37*d14abf15SRobert Mustacchi  *    28/06/11 ShayH    Inception.
38*d14abf15SRobert Mustacchi  ******************************************************************************/
39*d14abf15SRobert Mustacchi #ifndef _LM_DCBX_MP_H
40*d14abf15SRobert Mustacchi #define _LM_DCBX_MP_H
41*d14abf15SRobert Mustacchi 
42*d14abf15SRobert Mustacchi /*******************************************************************************
43*d14abf15SRobert Mustacchi  * Constants.
44*d14abf15SRobert Mustacchi  ******************************************************************************/
45*d14abf15SRobert Mustacchi #define MAX_NUM_OF_ETH_CONS_PER_COS                 (MAX_RSS_CHAINS)
46*d14abf15SRobert Mustacchi #define ETH_MP_MAX_COS_SUPPORTED                    (3)
47*d14abf15SRobert Mustacchi 
48*d14abf15SRobert Mustacchi /*******************************************************************************
49*d14abf15SRobert Mustacchi  * Defines.
50*d14abf15SRobert Mustacchi  ******************************************************************************/
51*d14abf15SRobert Mustacchi 
52*d14abf15SRobert Mustacchi #define MAX_ETH_TX_ONLY_CONS                        ((ETH_MP_MAX_COS_SUPPORTED - 1)*(MAX_NUM_OF_ETH_CONS_PER_COS))
53*d14abf15SRobert Mustacchi #define MAX_ETH_TX_ONLY_CHAINS                      ((ETH_MP_MAX_COS_SUPPORTED - 1)*(MAX_HW_CHAINS))
54*d14abf15SRobert Mustacchi 
55*d14abf15SRobert Mustacchi 
56*d14abf15SRobert Mustacchi typedef enum
57*d14abf15SRobert Mustacchi {
58*d14abf15SRobert Mustacchi     lm_chain_type_cos_reg       = 0,
59*d14abf15SRobert Mustacchi     lm_chain_type_cos_tx_only   = 1,
60*d14abf15SRobert Mustacchi     lm_chain_type_not_cos       = 2
61*d14abf15SRobert Mustacchi }lm_chain_type_t;
62*d14abf15SRobert Mustacchi 
63*d14abf15SRobert Mustacchi /**
64*d14abf15SRobert Mustacchi  * @description
65*d14abf15SRobert Mustacchi  * Get COS number based on chain.
66*d14abf15SRobert Mustacchi  * If the chain doesn't belong to a specific COS (e.g. ISCSI L2
67*d14abf15SRobert Mustacchi  * chain)
68*d14abf15SRobert Mustacchi  * @param pdev
69*d14abf15SRobert Mustacchi  * @param chain
70*d14abf15SRobert Mustacchi  *
71*d14abf15SRobert Mustacchi  * @return u8_t
72*d14abf15SRobert Mustacchi  */
73*d14abf15SRobert Mustacchi u8_t
74*d14abf15SRobert Mustacchi lm_mp_cos_from_chain(IN struct _lm_device_t *pdev,
75*d14abf15SRobert Mustacchi                      IN const u32_t         chain);
76*d14abf15SRobert Mustacchi 
77*d14abf15SRobert Mustacchi /**
78*d14abf15SRobert Mustacchi  * @description
79*d14abf15SRobert Mustacchi  * Get max cos chain used.
80*d14abf15SRobert Mustacchi  * @param pdev
81*d14abf15SRobert Mustacchi  * @param chain
82*d14abf15SRobert Mustacchi  * @param cos
83*d14abf15SRobert Mustacchi  *
84*d14abf15SRobert Mustacchi  * @return u32_t
85*d14abf15SRobert Mustacchi  */
86*d14abf15SRobert Mustacchi u8_t
87*d14abf15SRobert Mustacchi lm_mp_max_cos_chain_used(
88*d14abf15SRobert Mustacchi     IN struct _lm_device_t  *pdev);
89*d14abf15SRobert Mustacchi 
90*d14abf15SRobert Mustacchi #endif// _LM_DCBX_MP_H
91