162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/* Copyright(c) 2013 - 2021 Intel Corporation. */
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#ifndef _I40E_DCB_H_
562306a36Sopenharmony_ci#define _I40E_DCB_H_
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#include "i40e_type.h"
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#define I40E_DCBX_STATUS_NOT_STARTED	0
1062306a36Sopenharmony_ci#define I40E_DCBX_STATUS_IN_PROGRESS	1
1162306a36Sopenharmony_ci#define I40E_DCBX_STATUS_DONE		2
1262306a36Sopenharmony_ci#define I40E_DCBX_STATUS_MULTIPLE_PEERS	3
1362306a36Sopenharmony_ci#define I40E_DCBX_STATUS_DISABLED	7
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#define I40E_TLV_TYPE_END		0
1662306a36Sopenharmony_ci#define I40E_TLV_TYPE_ORG		127
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci#define I40E_IEEE_8021QAZ_OUI		0x0080C2
1962306a36Sopenharmony_ci#define I40E_IEEE_SUBTYPE_ETS_CFG	9
2062306a36Sopenharmony_ci#define I40E_IEEE_SUBTYPE_ETS_REC	10
2162306a36Sopenharmony_ci#define I40E_IEEE_SUBTYPE_PFC_CFG	11
2262306a36Sopenharmony_ci#define I40E_IEEE_SUBTYPE_APP_PRI	12
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci#define I40E_CEE_DCBX_OUI		0x001b21
2562306a36Sopenharmony_ci#define I40E_CEE_DCBX_TYPE		2
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci#define I40E_CEE_SUBTYPE_CTRL		1
2862306a36Sopenharmony_ci#define I40E_CEE_SUBTYPE_PG_CFG		2
2962306a36Sopenharmony_ci#define I40E_CEE_SUBTYPE_PFC_CFG	3
3062306a36Sopenharmony_ci#define I40E_CEE_SUBTYPE_APP_PRI	4
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci#define I40E_CEE_MAX_FEAT_TYPE		3
3362306a36Sopenharmony_ci#define I40E_LLDP_CURRENT_STATUS_XL710_OFFSET	0x2B
3462306a36Sopenharmony_ci#define I40E_LLDP_CURRENT_STATUS_X722_OFFSET	0x31
3562306a36Sopenharmony_ci#define I40E_LLDP_CURRENT_STATUS_OFFSET		1
3662306a36Sopenharmony_ci#define I40E_LLDP_CURRENT_STATUS_SIZE		1
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci/* Defines for LLDP TLV header */
3962306a36Sopenharmony_ci#define I40E_LLDP_TLV_LEN_SHIFT		0
4062306a36Sopenharmony_ci#define I40E_LLDP_TLV_LEN_MASK		(0x01FF << I40E_LLDP_TLV_LEN_SHIFT)
4162306a36Sopenharmony_ci#define I40E_LLDP_TLV_TYPE_SHIFT	9
4262306a36Sopenharmony_ci#define I40E_LLDP_TLV_TYPE_MASK		(0x7F << I40E_LLDP_TLV_TYPE_SHIFT)
4362306a36Sopenharmony_ci#define I40E_LLDP_TLV_SUBTYPE_SHIFT	0
4462306a36Sopenharmony_ci#define I40E_LLDP_TLV_SUBTYPE_MASK	(0xFF << I40E_LLDP_TLV_SUBTYPE_SHIFT)
4562306a36Sopenharmony_ci#define I40E_LLDP_TLV_OUI_SHIFT		8
4662306a36Sopenharmony_ci#define I40E_LLDP_TLV_OUI_MASK		(0xFFFFFF << I40E_LLDP_TLV_OUI_SHIFT)
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci/* Defines for IEEE ETS TLV */
4962306a36Sopenharmony_ci#define I40E_IEEE_ETS_MAXTC_SHIFT	0
5062306a36Sopenharmony_ci#define I40E_IEEE_ETS_MAXTC_MASK	(0x7 << I40E_IEEE_ETS_MAXTC_SHIFT)
5162306a36Sopenharmony_ci#define I40E_IEEE_ETS_CBS_SHIFT		6
5262306a36Sopenharmony_ci#define I40E_IEEE_ETS_CBS_MASK		BIT(I40E_IEEE_ETS_CBS_SHIFT)
5362306a36Sopenharmony_ci#define I40E_IEEE_ETS_WILLING_SHIFT	7
5462306a36Sopenharmony_ci#define I40E_IEEE_ETS_WILLING_MASK	BIT(I40E_IEEE_ETS_WILLING_SHIFT)
5562306a36Sopenharmony_ci#define I40E_IEEE_ETS_PRIO_0_SHIFT	0
5662306a36Sopenharmony_ci#define I40E_IEEE_ETS_PRIO_0_MASK	(0x7 << I40E_IEEE_ETS_PRIO_0_SHIFT)
5762306a36Sopenharmony_ci#define I40E_IEEE_ETS_PRIO_1_SHIFT	4
5862306a36Sopenharmony_ci#define I40E_IEEE_ETS_PRIO_1_MASK	(0x7 << I40E_IEEE_ETS_PRIO_1_SHIFT)
5962306a36Sopenharmony_ci#define I40E_CEE_PGID_PRIO_0_SHIFT	0
6062306a36Sopenharmony_ci#define I40E_CEE_PGID_PRIO_0_MASK	(0xF << I40E_CEE_PGID_PRIO_0_SHIFT)
6162306a36Sopenharmony_ci#define I40E_CEE_PGID_PRIO_1_SHIFT	4
6262306a36Sopenharmony_ci#define I40E_CEE_PGID_PRIO_1_MASK	(0xF << I40E_CEE_PGID_PRIO_1_SHIFT)
6362306a36Sopenharmony_ci#define I40E_CEE_PGID_STRICT		15
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci/* Defines for IEEE TSA types */
6662306a36Sopenharmony_ci#define I40E_IEEE_TSA_STRICT		0
6762306a36Sopenharmony_ci#define I40E_IEEE_TSA_ETS		2
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci/* Defines for IEEE PFC TLV */
7062306a36Sopenharmony_ci#define I40E_DCB_PFC_ENABLED		2
7162306a36Sopenharmony_ci#define I40E_DCB_PFC_FORCED_NUM_TC	2
7262306a36Sopenharmony_ci#define I40E_IEEE_PFC_CAP_SHIFT		0
7362306a36Sopenharmony_ci#define I40E_IEEE_PFC_CAP_MASK		(0xF << I40E_IEEE_PFC_CAP_SHIFT)
7462306a36Sopenharmony_ci#define I40E_IEEE_PFC_MBC_SHIFT		6
7562306a36Sopenharmony_ci#define I40E_IEEE_PFC_MBC_MASK		BIT(I40E_IEEE_PFC_MBC_SHIFT)
7662306a36Sopenharmony_ci#define I40E_IEEE_PFC_WILLING_SHIFT	7
7762306a36Sopenharmony_ci#define I40E_IEEE_PFC_WILLING_MASK	BIT(I40E_IEEE_PFC_WILLING_SHIFT)
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci/* Defines for IEEE APP TLV */
8062306a36Sopenharmony_ci#define I40E_IEEE_APP_SEL_SHIFT		0
8162306a36Sopenharmony_ci#define I40E_IEEE_APP_SEL_MASK		(0x7 << I40E_IEEE_APP_SEL_SHIFT)
8262306a36Sopenharmony_ci#define I40E_IEEE_APP_PRIO_SHIFT	5
8362306a36Sopenharmony_ci#define I40E_IEEE_APP_PRIO_MASK		(0x7 << I40E_IEEE_APP_PRIO_SHIFT)
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci/* TLV definitions for preparing MIB */
8662306a36Sopenharmony_ci#define I40E_TLV_ID_CHASSIS_ID		0
8762306a36Sopenharmony_ci#define I40E_TLV_ID_PORT_ID		1
8862306a36Sopenharmony_ci#define I40E_TLV_ID_TIME_TO_LIVE	2
8962306a36Sopenharmony_ci#define I40E_IEEE_TLV_ID_ETS_CFG	3
9062306a36Sopenharmony_ci#define I40E_IEEE_TLV_ID_ETS_REC	4
9162306a36Sopenharmony_ci#define I40E_IEEE_TLV_ID_PFC_CFG	5
9262306a36Sopenharmony_ci#define I40E_IEEE_TLV_ID_APP_PRI	6
9362306a36Sopenharmony_ci#define I40E_TLV_ID_END_OF_LLDPPDU	7
9462306a36Sopenharmony_ci#define I40E_TLV_ID_START		I40E_IEEE_TLV_ID_ETS_CFG
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci#define I40E_IEEE_TLV_HEADER_LENGTH	2
9762306a36Sopenharmony_ci#define I40E_IEEE_ETS_TLV_LENGTH	25
9862306a36Sopenharmony_ci#define I40E_IEEE_PFC_TLV_LENGTH	6
9962306a36Sopenharmony_ci#define I40E_IEEE_APP_TLV_LENGTH	11
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci/* Defines for default SW DCB config */
10262306a36Sopenharmony_ci#define I40E_IEEE_DEFAULT_ETS_TCBW	100
10362306a36Sopenharmony_ci#define I40E_IEEE_DEFAULT_ETS_WILLING	1
10462306a36Sopenharmony_ci#define I40E_IEEE_DEFAULT_PFC_WILLING	1
10562306a36Sopenharmony_ci#define I40E_IEEE_DEFAULT_NUM_APPS	1
10662306a36Sopenharmony_ci#define I40E_IEEE_DEFAULT_APP_PRIO	3
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci#pragma pack(1)
10962306a36Sopenharmony_ci/* IEEE 802.1AB LLDP Organization specific TLV */
11062306a36Sopenharmony_cistruct i40e_lldp_org_tlv {
11162306a36Sopenharmony_ci	__be16 typelength;
11262306a36Sopenharmony_ci	__be32 ouisubtype;
11362306a36Sopenharmony_ci	u8 tlvinfo[1];
11462306a36Sopenharmony_ci};
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_cistruct i40e_cee_tlv_hdr {
11762306a36Sopenharmony_ci	__be16 typelen;
11862306a36Sopenharmony_ci	u8 operver;
11962306a36Sopenharmony_ci	u8 maxver;
12062306a36Sopenharmony_ci};
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_cistruct i40e_cee_ctrl_tlv {
12362306a36Sopenharmony_ci	struct i40e_cee_tlv_hdr hdr;
12462306a36Sopenharmony_ci	__be32 seqno;
12562306a36Sopenharmony_ci	__be32 ackno;
12662306a36Sopenharmony_ci};
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_cistruct i40e_cee_feat_tlv {
12962306a36Sopenharmony_ci	struct i40e_cee_tlv_hdr hdr;
13062306a36Sopenharmony_ci	u8 en_will_err; /* Bits: |En|Will|Err|Reserved(5)| */
13162306a36Sopenharmony_ci#define I40E_CEE_FEAT_TLV_ENABLE_MASK	0x80
13262306a36Sopenharmony_ci#define I40E_CEE_FEAT_TLV_WILLING_MASK	0x40
13362306a36Sopenharmony_ci#define I40E_CEE_FEAT_TLV_ERR_MASK	0x20
13462306a36Sopenharmony_ci	u8 subtype;
13562306a36Sopenharmony_ci	u8 tlvinfo[1];
13662306a36Sopenharmony_ci};
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_cistruct i40e_cee_app_prio {
13962306a36Sopenharmony_ci	__be16 protocol;
14062306a36Sopenharmony_ci	u8 upper_oui_sel; /* Bits: |Upper OUI(6)|Selector(2)| */
14162306a36Sopenharmony_ci#define I40E_CEE_APP_SELECTOR_MASK	0x03
14262306a36Sopenharmony_ci	__be16 lower_oui;
14362306a36Sopenharmony_ci	u8 prio_map;
14462306a36Sopenharmony_ci};
14562306a36Sopenharmony_ci#pragma pack()
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_cienum i40e_get_fw_lldp_status_resp {
14862306a36Sopenharmony_ci	I40E_GET_FW_LLDP_STATUS_DISABLED = 0,
14962306a36Sopenharmony_ci	I40E_GET_FW_LLDP_STATUS_ENABLED = 1
15062306a36Sopenharmony_ci};
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci/* Data structures to pass for SW DCBX */
15362306a36Sopenharmony_cistruct i40e_rx_pb_config {
15462306a36Sopenharmony_ci	u32	shared_pool_size;
15562306a36Sopenharmony_ci	u32	shared_pool_high_wm;
15662306a36Sopenharmony_ci	u32	shared_pool_low_wm;
15762306a36Sopenharmony_ci	u32	shared_pool_high_thresh[I40E_MAX_TRAFFIC_CLASS];
15862306a36Sopenharmony_ci	u32	shared_pool_low_thresh[I40E_MAX_TRAFFIC_CLASS];
15962306a36Sopenharmony_ci	u32	tc_pool_size[I40E_MAX_TRAFFIC_CLASS];
16062306a36Sopenharmony_ci	u32	tc_pool_high_wm[I40E_MAX_TRAFFIC_CLASS];
16162306a36Sopenharmony_ci	u32	tc_pool_low_wm[I40E_MAX_TRAFFIC_CLASS];
16262306a36Sopenharmony_ci};
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_cienum i40e_dcb_arbiter_mode {
16562306a36Sopenharmony_ci	I40E_DCB_ARB_MODE_STRICT_PRIORITY = 0,
16662306a36Sopenharmony_ci	I40E_DCB_ARB_MODE_ROUND_ROBIN = 1
16762306a36Sopenharmony_ci};
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci#define I40E_DCB_DEFAULT_MAX_EXPONENT		0xB
17062306a36Sopenharmony_ci#define I40E_DEFAULT_PAUSE_TIME			0xffff
17162306a36Sopenharmony_ci#define I40E_MAX_FRAME_SIZE			4608 /* 4.5 KB */
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ci#define I40E_DEVICE_RPB_SIZE			968000 /* 968 KB */
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci/* BitTimes (BT) conversion */
17662306a36Sopenharmony_ci#define I40E_BT2KB(BT) (((BT) + (8 * 1024 - 1)) / (8 * 1024))
17762306a36Sopenharmony_ci#define I40E_B2BT(BT) ((BT) * 8)
17862306a36Sopenharmony_ci#define I40E_BT2B(BT) (((BT) + (8 - 1)) / 8)
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ci/* Max Frame(TC) = MFS(max) + MFS(TC) */
18162306a36Sopenharmony_ci#define I40E_MAX_FRAME_TC(mfs_max, mfs_tc)	I40E_B2BT((mfs_max) + (mfs_tc))
18262306a36Sopenharmony_ci
18362306a36Sopenharmony_ci/* EEE Tx LPI Exit time in Bit Times */
18462306a36Sopenharmony_ci#define I40E_EEE_TX_LPI_EXIT_TIME		142500
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ci/* PCI Round Trip Time in Bit Times */
18762306a36Sopenharmony_ci#define I40E_PCIRTT_LINK_SPEED_10G		20000
18862306a36Sopenharmony_ci#define I40E_PCIRTT_BYTE_LINK_SPEED_20G		40000
18962306a36Sopenharmony_ci#define I40E_PCIRTT_BYTE_LINK_SPEED_40G		80000
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ci/* PFC Frame Delay Bit Times */
19262306a36Sopenharmony_ci#define I40E_PFC_FRAME_DELAY			672
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ci/* Worst case Cable (10GBase-T) Delay Bit Times */
19562306a36Sopenharmony_ci#define I40E_CABLE_DELAY			5556
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_ci/* Higher Layer Delay @10G Bit Times */
19862306a36Sopenharmony_ci#define I40E_HIGHER_LAYER_DELAY_10G		6144
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ci/* Interface Delays in Bit Times */
20162306a36Sopenharmony_ci/* TODO: Add for other link speeds 20G/40G/etc. */
20262306a36Sopenharmony_ci#define I40E_INTERFACE_DELAY_10G_MAC_CONTROL	8192
20362306a36Sopenharmony_ci#define I40E_INTERFACE_DELAY_10G_MAC		8192
20462306a36Sopenharmony_ci#define I40E_INTERFACE_DELAY_10G_RS		8192
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ci#define I40E_INTERFACE_DELAY_XGXS		2048
20762306a36Sopenharmony_ci#define I40E_INTERFACE_DELAY_XAUI		2048
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ci#define I40E_INTERFACE_DELAY_10G_BASEX_PCS	2048
21062306a36Sopenharmony_ci#define I40E_INTERFACE_DELAY_10G_BASER_PCS	3584
21162306a36Sopenharmony_ci#define I40E_INTERFACE_DELAY_LX4_PMD		512
21262306a36Sopenharmony_ci#define I40E_INTERFACE_DELAY_CX4_PMD		512
21362306a36Sopenharmony_ci#define I40E_INTERFACE_DELAY_SERIAL_PMA		512
21462306a36Sopenharmony_ci#define I40E_INTERFACE_DELAY_PMD		512
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ci#define I40E_INTERFACE_DELAY_10G_BASET		25600
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ci/* Hardware RX DCB config related defines */
21962306a36Sopenharmony_ci#define I40E_DCB_1_PORT_THRESHOLD		0xF
22062306a36Sopenharmony_ci#define I40E_DCB_1_PORT_FIFO_SIZE		0x10
22162306a36Sopenharmony_ci#define I40E_DCB_2_PORT_THRESHOLD_LOW_NUM_TC	0xF
22262306a36Sopenharmony_ci#define I40E_DCB_2_PORT_FIFO_SIZE_LOW_NUM_TC	0x10
22362306a36Sopenharmony_ci#define I40E_DCB_2_PORT_THRESHOLD_HIGH_NUM_TC	0xC
22462306a36Sopenharmony_ci#define I40E_DCB_2_PORT_FIFO_SIZE_HIGH_NUM_TC	0x8
22562306a36Sopenharmony_ci#define I40E_DCB_4_PORT_THRESHOLD_LOW_NUM_TC	0x9
22662306a36Sopenharmony_ci#define I40E_DCB_4_PORT_FIFO_SIZE_LOW_NUM_TC	0x8
22762306a36Sopenharmony_ci#define I40E_DCB_4_PORT_THRESHOLD_HIGH_NUM_TC	0x6
22862306a36Sopenharmony_ci#define I40E_DCB_4_PORT_FIFO_SIZE_HIGH_NUM_TC	0x4
22962306a36Sopenharmony_ci#define I40E_DCB_WATERMARK_START_FACTOR		0x2
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ci/* delay values for with 10G BaseT in Bit Times */
23262306a36Sopenharmony_ci#define I40E_INTERFACE_DELAY_10G_COPPER	\
23362306a36Sopenharmony_ci	(I40E_INTERFACE_DELAY_10G_MAC + (2 * I40E_INTERFACE_DELAY_XAUI) \
23462306a36Sopenharmony_ci	 + I40E_INTERFACE_DELAY_10G_BASET)
23562306a36Sopenharmony_ci#define I40E_DV_TC(mfs_max, mfs_tc) \
23662306a36Sopenharmony_ci		((2 * I40E_MAX_FRAME_TC(mfs_max, mfs_tc)) \
23762306a36Sopenharmony_ci		 + I40E_PFC_FRAME_DELAY \
23862306a36Sopenharmony_ci		 + (2 * I40E_CABLE_DELAY) \
23962306a36Sopenharmony_ci		 + (2 * I40E_INTERFACE_DELAY_10G_COPPER) \
24062306a36Sopenharmony_ci		 + I40E_HIGHER_LAYER_DELAY_10G)
24162306a36Sopenharmony_cistatic inline u32 I40E_STD_DV_TC(u32 mfs_max, u32 mfs_tc)
24262306a36Sopenharmony_ci{
24362306a36Sopenharmony_ci	return I40E_DV_TC(mfs_max, mfs_tc) + I40E_B2BT(mfs_max);
24462306a36Sopenharmony_ci}
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ci/* APIs for SW DCBX */
24762306a36Sopenharmony_civoid i40e_dcb_hw_rx_fifo_config(struct i40e_hw *hw,
24862306a36Sopenharmony_ci				enum i40e_dcb_arbiter_mode ets_mode,
24962306a36Sopenharmony_ci				enum i40e_dcb_arbiter_mode non_ets_mode,
25062306a36Sopenharmony_ci				u32 max_exponent, u8 lltc_map);
25162306a36Sopenharmony_civoid i40e_dcb_hw_rx_cmd_monitor_config(struct i40e_hw *hw,
25262306a36Sopenharmony_ci				       u8 num_tc, u8 num_ports);
25362306a36Sopenharmony_civoid i40e_dcb_hw_pfc_config(struct i40e_hw *hw,
25462306a36Sopenharmony_ci			    u8 pfc_en, u8 *prio_tc);
25562306a36Sopenharmony_civoid i40e_dcb_hw_set_num_tc(struct i40e_hw *hw, u8 num_tc);
25662306a36Sopenharmony_ciu8 i40e_dcb_hw_get_num_tc(struct i40e_hw *hw);
25762306a36Sopenharmony_civoid i40e_dcb_hw_rx_ets_bw_config(struct i40e_hw *hw, u8 *bw_share,
25862306a36Sopenharmony_ci				  u8 *mode, u8 *prio_type);
25962306a36Sopenharmony_civoid i40e_dcb_hw_rx_up2tc_config(struct i40e_hw *hw, u8 *prio_tc);
26062306a36Sopenharmony_civoid i40e_dcb_hw_calculate_pool_sizes(struct i40e_hw *hw,
26162306a36Sopenharmony_ci				      u8 num_ports, bool eee_enabled,
26262306a36Sopenharmony_ci				      u8 pfc_en, u32 *mfs_tc,
26362306a36Sopenharmony_ci				      struct i40e_rx_pb_config *pb_cfg);
26462306a36Sopenharmony_civoid i40e_dcb_hw_rx_pb_config(struct i40e_hw *hw,
26562306a36Sopenharmony_ci			      struct i40e_rx_pb_config *old_pb_cfg,
26662306a36Sopenharmony_ci			      struct i40e_rx_pb_config *new_pb_cfg);
26762306a36Sopenharmony_ciint i40e_get_dcbx_status(struct i40e_hw *hw,
26862306a36Sopenharmony_ci			 u16 *status);
26962306a36Sopenharmony_ciint i40e_lldp_to_dcb_config(u8 *lldpmib,
27062306a36Sopenharmony_ci			    struct i40e_dcbx_config *dcbcfg);
27162306a36Sopenharmony_ciint i40e_aq_get_dcb_config(struct i40e_hw *hw, u8 mib_type,
27262306a36Sopenharmony_ci			   u8 bridgetype,
27362306a36Sopenharmony_ci			   struct i40e_dcbx_config *dcbcfg);
27462306a36Sopenharmony_ciint i40e_get_dcb_config(struct i40e_hw *hw);
27562306a36Sopenharmony_ciint i40e_init_dcb(struct i40e_hw *hw,
27662306a36Sopenharmony_ci		  bool enable_mib_change);
27762306a36Sopenharmony_ciint
27862306a36Sopenharmony_cii40e_get_fw_lldp_status(struct i40e_hw *hw,
27962306a36Sopenharmony_ci			enum i40e_get_fw_lldp_status_resp *lldp_status);
28062306a36Sopenharmony_ciint i40e_set_dcb_config(struct i40e_hw *hw);
28162306a36Sopenharmony_ciint i40e_dcb_config_to_lldp(u8 *lldpmib, u16 *miblen,
28262306a36Sopenharmony_ci			    struct i40e_dcbx_config *dcbcfg);
28362306a36Sopenharmony_ci#endif /* _I40E_DCB_H_ */
284