Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ixgbe/ixgbe_dcb.c
Show First 20 Lines • Show All 403 Lines • ▼ Show 20 Lines | s32 ixgbe_dcb_get_tc_stats(struct ixgbe_hw *hw, struct ixgbe_hw_stats *stats, | ||||
case ixgbe_mac_82598EB: | case ixgbe_mac_82598EB: | ||||
ret = ixgbe_dcb_get_tc_stats_82598(hw, stats, tc_count); | ret = ixgbe_dcb_get_tc_stats_82598(hw, stats, tc_count); | ||||
break; | break; | ||||
case ixgbe_mac_82599EB: | case ixgbe_mac_82599EB: | ||||
case ixgbe_mac_X540: | case ixgbe_mac_X540: | ||||
case ixgbe_mac_X550: | case ixgbe_mac_X550: | ||||
case ixgbe_mac_X550EM_x: | case ixgbe_mac_X550EM_x: | ||||
case ixgbe_mac_X550EM_a: | case ixgbe_mac_X550EM_a: | ||||
#if !defined(NO_82599_SUPPORT) || !defined(NO_X540_SUPPORT) | |||||
ret = ixgbe_dcb_get_tc_stats_82599(hw, stats, tc_count); | ret = ixgbe_dcb_get_tc_stats_82599(hw, stats, tc_count); | ||||
break; | break; | ||||
#endif | |||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
return ret; | return ret; | ||||
} | } | ||||
/** | /** | ||||
* ixgbe_dcb_get_pfc_stats - Returns CBFC status of each traffic class | * ixgbe_dcb_get_pfc_stats - Returns CBFC status of each traffic class | ||||
Show All 11 Lines | s32 ixgbe_dcb_get_pfc_stats(struct ixgbe_hw *hw, struct ixgbe_hw_stats *stats, | ||||
case ixgbe_mac_82598EB: | case ixgbe_mac_82598EB: | ||||
ret = ixgbe_dcb_get_pfc_stats_82598(hw, stats, tc_count); | ret = ixgbe_dcb_get_pfc_stats_82598(hw, stats, tc_count); | ||||
break; | break; | ||||
case ixgbe_mac_82599EB: | case ixgbe_mac_82599EB: | ||||
case ixgbe_mac_X540: | case ixgbe_mac_X540: | ||||
case ixgbe_mac_X550: | case ixgbe_mac_X550: | ||||
case ixgbe_mac_X550EM_x: | case ixgbe_mac_X550EM_x: | ||||
case ixgbe_mac_X550EM_a: | case ixgbe_mac_X550EM_a: | ||||
#if !defined(NO_82599_SUPPORT) || !defined(NO_X540_SUPPORT) | |||||
ret = ixgbe_dcb_get_pfc_stats_82599(hw, stats, tc_count); | ret = ixgbe_dcb_get_pfc_stats_82599(hw, stats, tc_count); | ||||
break; | break; | ||||
#endif | |||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
return ret; | return ret; | ||||
} | } | ||||
/** | /** | ||||
* ixgbe_dcb_config_rx_arbiter_cee - Config Rx arbiter | * ixgbe_dcb_config_rx_arbiter_cee - Config Rx arbiter | ||||
Show All 22 Lines | s32 ixgbe_dcb_config_rx_arbiter_cee(struct ixgbe_hw *hw, | ||||
case ixgbe_mac_82598EB: | case ixgbe_mac_82598EB: | ||||
ret = ixgbe_dcb_config_rx_arbiter_82598(hw, refill, max, tsa); | ret = ixgbe_dcb_config_rx_arbiter_82598(hw, refill, max, tsa); | ||||
break; | break; | ||||
case ixgbe_mac_82599EB: | case ixgbe_mac_82599EB: | ||||
case ixgbe_mac_X540: | case ixgbe_mac_X540: | ||||
case ixgbe_mac_X550: | case ixgbe_mac_X550: | ||||
case ixgbe_mac_X550EM_x: | case ixgbe_mac_X550EM_x: | ||||
case ixgbe_mac_X550EM_a: | case ixgbe_mac_X550EM_a: | ||||
#if !defined(NO_82599_SUPPORT) || !defined(NO_X540_SUPPORT) | |||||
ret = ixgbe_dcb_config_rx_arbiter_82599(hw, refill, max, bwgid, | ret = ixgbe_dcb_config_rx_arbiter_82599(hw, refill, max, bwgid, | ||||
tsa, map); | tsa, map); | ||||
break; | break; | ||||
#endif | |||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
return ret; | return ret; | ||||
} | } | ||||
/** | /** | ||||
* ixgbe_dcb_config_tx_desc_arbiter_cee - Config Tx Desc arbiter | * ixgbe_dcb_config_tx_desc_arbiter_cee - Config Tx Desc arbiter | ||||
Show All 21 Lines | case ixgbe_mac_82598EB: | ||||
ret = ixgbe_dcb_config_tx_desc_arbiter_82598(hw, refill, max, | ret = ixgbe_dcb_config_tx_desc_arbiter_82598(hw, refill, max, | ||||
bwgid, tsa); | bwgid, tsa); | ||||
break; | break; | ||||
case ixgbe_mac_82599EB: | case ixgbe_mac_82599EB: | ||||
case ixgbe_mac_X540: | case ixgbe_mac_X540: | ||||
case ixgbe_mac_X550: | case ixgbe_mac_X550: | ||||
case ixgbe_mac_X550EM_x: | case ixgbe_mac_X550EM_x: | ||||
case ixgbe_mac_X550EM_a: | case ixgbe_mac_X550EM_a: | ||||
#if !defined(NO_82599_SUPPORT) || !defined(NO_X540_SUPPORT) | |||||
ret = ixgbe_dcb_config_tx_desc_arbiter_82599(hw, refill, max, | ret = ixgbe_dcb_config_tx_desc_arbiter_82599(hw, refill, max, | ||||
bwgid, tsa); | bwgid, tsa); | ||||
break; | break; | ||||
#endif | |||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
return ret; | return ret; | ||||
} | } | ||||
/** | /** | ||||
* ixgbe_dcb_config_tx_data_arbiter_cee - Config Tx data arbiter | * ixgbe_dcb_config_tx_data_arbiter_cee - Config Tx data arbiter | ||||
Show All 23 Lines | case ixgbe_mac_82598EB: | ||||
ret = ixgbe_dcb_config_tx_data_arbiter_82598(hw, refill, max, | ret = ixgbe_dcb_config_tx_data_arbiter_82598(hw, refill, max, | ||||
bwgid, tsa); | bwgid, tsa); | ||||
break; | break; | ||||
case ixgbe_mac_82599EB: | case ixgbe_mac_82599EB: | ||||
case ixgbe_mac_X540: | case ixgbe_mac_X540: | ||||
case ixgbe_mac_X550: | case ixgbe_mac_X550: | ||||
case ixgbe_mac_X550EM_x: | case ixgbe_mac_X550EM_x: | ||||
case ixgbe_mac_X550EM_a: | case ixgbe_mac_X550EM_a: | ||||
#if !defined(NO_82599_SUPPORT) || !defined(NO_X540_SUPPORT) | |||||
ret = ixgbe_dcb_config_tx_data_arbiter_82599(hw, refill, max, | ret = ixgbe_dcb_config_tx_data_arbiter_82599(hw, refill, max, | ||||
bwgid, tsa, | bwgid, tsa, | ||||
map); | map); | ||||
break; | break; | ||||
#endif | |||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
return ret; | return ret; | ||||
} | } | ||||
/** | /** | ||||
* ixgbe_dcb_config_pfc_cee - Config priority flow control | * ixgbe_dcb_config_pfc_cee - Config priority flow control | ||||
Show All 16 Lines | s32 ixgbe_dcb_config_pfc_cee(struct ixgbe_hw *hw, | ||||
case ixgbe_mac_82598EB: | case ixgbe_mac_82598EB: | ||||
ret = ixgbe_dcb_config_pfc_82598(hw, pfc_en); | ret = ixgbe_dcb_config_pfc_82598(hw, pfc_en); | ||||
break; | break; | ||||
case ixgbe_mac_82599EB: | case ixgbe_mac_82599EB: | ||||
case ixgbe_mac_X540: | case ixgbe_mac_X540: | ||||
case ixgbe_mac_X550: | case ixgbe_mac_X550: | ||||
case ixgbe_mac_X550EM_x: | case ixgbe_mac_X550EM_x: | ||||
case ixgbe_mac_X550EM_a: | case ixgbe_mac_X550EM_a: | ||||
#if !defined(NO_82599_SUPPORT) || !defined(NO_X540_SUPPORT) | |||||
ret = ixgbe_dcb_config_pfc_82599(hw, pfc_en, map); | ret = ixgbe_dcb_config_pfc_82599(hw, pfc_en, map); | ||||
break; | break; | ||||
#endif | |||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
return ret; | return ret; | ||||
} | } | ||||
/** | /** | ||||
* ixgbe_dcb_config_tc_stats - Config traffic class statistics | * ixgbe_dcb_config_tc_stats - Config traffic class statistics | ||||
Show All 9 Lines | s32 ixgbe_dcb_config_tc_stats(struct ixgbe_hw *hw) | ||||
case ixgbe_mac_82598EB: | case ixgbe_mac_82598EB: | ||||
ret = ixgbe_dcb_config_tc_stats_82598(hw); | ret = ixgbe_dcb_config_tc_stats_82598(hw); | ||||
break; | break; | ||||
case ixgbe_mac_82599EB: | case ixgbe_mac_82599EB: | ||||
case ixgbe_mac_X540: | case ixgbe_mac_X540: | ||||
case ixgbe_mac_X550: | case ixgbe_mac_X550: | ||||
case ixgbe_mac_X550EM_x: | case ixgbe_mac_X550EM_x: | ||||
case ixgbe_mac_X550EM_a: | case ixgbe_mac_X550EM_a: | ||||
#if !defined(NO_82599_SUPPORT) || !defined(NO_X540_SUPPORT) | |||||
ret = ixgbe_dcb_config_tc_stats_82599(hw, NULL); | ret = ixgbe_dcb_config_tc_stats_82599(hw, NULL); | ||||
break; | break; | ||||
#endif | |||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
return ret; | return ret; | ||||
} | } | ||||
/** | /** | ||||
* ixgbe_dcb_hw_config_cee - Config and enable DCB | * ixgbe_dcb_hw_config_cee - Config and enable DCB | ||||
Show All 28 Lines | case ixgbe_mac_82598EB: | ||||
ret = ixgbe_dcb_hw_config_82598(hw, dcb_config->link_speed, | ret = ixgbe_dcb_hw_config_82598(hw, dcb_config->link_speed, | ||||
refill, max, bwgid, tsa); | refill, max, bwgid, tsa); | ||||
break; | break; | ||||
case ixgbe_mac_82599EB: | case ixgbe_mac_82599EB: | ||||
case ixgbe_mac_X540: | case ixgbe_mac_X540: | ||||
case ixgbe_mac_X550: | case ixgbe_mac_X550: | ||||
case ixgbe_mac_X550EM_x: | case ixgbe_mac_X550EM_x: | ||||
case ixgbe_mac_X550EM_a: | case ixgbe_mac_X550EM_a: | ||||
#if !defined(NO_82599_SUPPORT) || !defined(NO_X540_SUPPORT) | |||||
ixgbe_dcb_config_82599(hw, dcb_config); | ixgbe_dcb_config_82599(hw, dcb_config); | ||||
ret = ixgbe_dcb_hw_config_82599(hw, dcb_config->link_speed, | ret = ixgbe_dcb_hw_config_82599(hw, dcb_config->link_speed, | ||||
refill, max, bwgid, | refill, max, bwgid, | ||||
tsa, map); | tsa, map); | ||||
ixgbe_dcb_config_tc_stats_82599(hw, dcb_config); | ixgbe_dcb_config_tc_stats_82599(hw, dcb_config); | ||||
break; | break; | ||||
#endif | |||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
if (!ret && dcb_config->pfc_mode_enable) { | if (!ret && dcb_config->pfc_mode_enable) { | ||||
ixgbe_dcb_unpack_pfc_cee(dcb_config, map, &pfc_en); | ixgbe_dcb_unpack_pfc_cee(dcb_config, map, &pfc_en); | ||||
ret = ixgbe_dcb_config_pfc(hw, pfc_en, map); | ret = ixgbe_dcb_config_pfc(hw, pfc_en, map); | ||||
} | } | ||||
Show All 10 Lines | s32 ixgbe_dcb_config_pfc(struct ixgbe_hw *hw, u8 pfc_en, u8 *map) | ||||
case ixgbe_mac_82598EB: | case ixgbe_mac_82598EB: | ||||
ret = ixgbe_dcb_config_pfc_82598(hw, pfc_en); | ret = ixgbe_dcb_config_pfc_82598(hw, pfc_en); | ||||
break; | break; | ||||
case ixgbe_mac_82599EB: | case ixgbe_mac_82599EB: | ||||
case ixgbe_mac_X540: | case ixgbe_mac_X540: | ||||
case ixgbe_mac_X550: | case ixgbe_mac_X550: | ||||
case ixgbe_mac_X550EM_x: | case ixgbe_mac_X550EM_x: | ||||
case ixgbe_mac_X550EM_a: | case ixgbe_mac_X550EM_a: | ||||
#if !defined(NO_82599_SUPPORT) || !defined(NO_X540_SUPPORT) | |||||
ret = ixgbe_dcb_config_pfc_82599(hw, pfc_en, map); | ret = ixgbe_dcb_config_pfc_82599(hw, pfc_en, map); | ||||
break; | break; | ||||
#endif | |||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
return ret; | return ret; | ||||
} | } | ||||
s32 ixgbe_dcb_hw_config(struct ixgbe_hw *hw, u16 *refill, u16 *max, | s32 ixgbe_dcb_hw_config(struct ixgbe_hw *hw, u16 *refill, u16 *max, | ||||
u8 *bwg_id, u8 *tsa, u8 *map) | u8 *bwg_id, u8 *tsa, u8 *map) | ||||
{ | { | ||||
switch (hw->mac.type) { | switch (hw->mac.type) { | ||||
case ixgbe_mac_82598EB: | case ixgbe_mac_82598EB: | ||||
ixgbe_dcb_config_rx_arbiter_82598(hw, refill, max, tsa); | ixgbe_dcb_config_rx_arbiter_82598(hw, refill, max, tsa); | ||||
ixgbe_dcb_config_tx_desc_arbiter_82598(hw, refill, max, bwg_id, | ixgbe_dcb_config_tx_desc_arbiter_82598(hw, refill, max, bwg_id, | ||||
tsa); | tsa); | ||||
ixgbe_dcb_config_tx_data_arbiter_82598(hw, refill, max, bwg_id, | ixgbe_dcb_config_tx_data_arbiter_82598(hw, refill, max, bwg_id, | ||||
tsa); | tsa); | ||||
break; | break; | ||||
case ixgbe_mac_82599EB: | case ixgbe_mac_82599EB: | ||||
case ixgbe_mac_X540: | case ixgbe_mac_X540: | ||||
case ixgbe_mac_X550: | case ixgbe_mac_X550: | ||||
case ixgbe_mac_X550EM_x: | case ixgbe_mac_X550EM_x: | ||||
case ixgbe_mac_X550EM_a: | case ixgbe_mac_X550EM_a: | ||||
#if !defined(NO_82599_SUPPORT) || !defined(NO_X540_SUPPORT) | |||||
ixgbe_dcb_config_rx_arbiter_82599(hw, refill, max, bwg_id, | ixgbe_dcb_config_rx_arbiter_82599(hw, refill, max, bwg_id, | ||||
tsa, map); | tsa, map); | ||||
ixgbe_dcb_config_tx_desc_arbiter_82599(hw, refill, max, bwg_id, | ixgbe_dcb_config_tx_desc_arbiter_82599(hw, refill, max, bwg_id, | ||||
tsa); | tsa); | ||||
ixgbe_dcb_config_tx_data_arbiter_82599(hw, refill, max, bwg_id, | ixgbe_dcb_config_tx_data_arbiter_82599(hw, refill, max, bwg_id, | ||||
tsa, map); | tsa, map); | ||||
break; | break; | ||||
#endif | |||||
default: | default: | ||||
break; | break; | ||||
} | } | ||||
return 0; | return 0; | ||||
} | } |