| 966 | } |
| 967 | |
| 968 | static void |
| 969 | ixgbe_dcb_init(struct ixgbe_hw *hw, struct ixgbe_dcb_config *dcb_config) |
| 970 | { |
| 971 | uint8_t i; |
| 972 | struct ixgbe_dcb_tc_config *tc; |
| 973 | uint8_t dcb_max_tc = IXGBE_DCB_MAX_TRAFFIC_CLASS; |
| 974 | |
| 975 | dcb_config->num_tcs.pg_tcs = dcb_max_tc; |
| 976 | dcb_config->num_tcs.pfc_tcs = dcb_max_tc; |
| 977 | for (i = 0; i < dcb_max_tc; i++) { |
| 978 | tc = &dcb_config->tc_config[i]; |
| 979 | tc->path[IXGBE_DCB_TX_CONFIG].bwg_id = i; |
| 980 | tc->path[IXGBE_DCB_TX_CONFIG].bwg_percent = |
| 981 | (uint8_t)(100/dcb_max_tc + (i & 1)); |
| 982 | tc->path[IXGBE_DCB_RX_CONFIG].bwg_id = i; |
| 983 | tc->path[IXGBE_DCB_RX_CONFIG].bwg_percent = |
| 984 | (uint8_t)(100/dcb_max_tc + (i & 1)); |
| 985 | tc->pfc = ixgbe_dcb_pfc_disabled; |
| 986 | } |
| 987 | |
| 988 | /* Initialize default user to priority mapping, UPx->TC0 */ |
| 989 | tc = &dcb_config->tc_config[0]; |
| 990 | tc->path[IXGBE_DCB_TX_CONFIG].up_to_tc_bitmap = 0xFF; |
| 991 | tc->path[IXGBE_DCB_RX_CONFIG].up_to_tc_bitmap = 0xFF; |
| 992 | for (i = 0; i < IXGBE_DCB_MAX_BW_GROUP; i++) { |
| 993 | dcb_config->bw_percentage[IXGBE_DCB_TX_CONFIG][i] = 100; |
| 994 | dcb_config->bw_percentage[IXGBE_DCB_RX_CONFIG][i] = 100; |
| 995 | } |
| 996 | dcb_config->rx_pba_cfg = ixgbe_dcb_pba_equal; |
| 997 | dcb_config->pfc_mode_enable = false; |
| 998 | dcb_config->vt_mode = true; |
| 999 | dcb_config->round_robin_enable = false; |
| 1000 | /* support all DCB capabilities in 82599 */ |
| 1001 | dcb_config->support.capabilities = 0xFF; |
| 1002 | |
| 1003 | /*we only support 4 Tcs for X540, X550 */ |
| 1004 | if (hw->mac.type == ixgbe_mac_X540 || |
| 1005 | hw->mac.type == ixgbe_mac_X550 || |
| 1006 | hw->mac.type == ixgbe_mac_X550EM_x || |
| 1007 | hw->mac.type == ixgbe_mac_X550EM_a) { |
| 1008 | dcb_config->num_tcs.pg_tcs = 4; |
| 1009 | dcb_config->num_tcs.pfc_tcs = 4; |
| 1010 | } |
| 1011 | } |
| 1012 | |
| 1013 | /* |
| 1014 | * Ensure that all locks are released before first NVM or PHY access |
no outgoing calls
no test coverage detected