cap->shaper_private_rate_min = 0;
/* 40Gbps -> 5GBps */
cap->shaper_private_rate_max = 5000000000ull;
+ cap->shaper_private_packet_mode_supported = 0;
+ cap->shaper_private_byte_mode_supported = 1;
cap->shaper_shared_n_max = 0;
cap->shaper_shared_n_nodes_per_shaper_max = 0;
cap->shaper_shared_n_shapers_per_node_max = 0;
cap->shaper_shared_dual_rate_n_max = 0;
cap->shaper_shared_rate_min = 0;
cap->shaper_shared_rate_max = 0;
+ cap->shaper_shared_packet_mode_supported = 0;
+ cap->shaper_shared_byte_mode_supported = 0;
cap->sched_n_children_max = hw->func_caps.num_tx_qp;
/**
* HW supports SP. But no plan to support it now.
* So, all the nodes should have the same weight.
*/
cap->sched_wfq_weight_max = 1;
+ cap->sched_wfq_packet_mode_supported = 0;
+ cap->sched_wfq_byte_mode_supported = 0;
cap->cman_head_drop_supported = 0;
cap->dynamic_update_mask = 0;
cap->shaper_pkt_length_adjust_min = RTE_TM_ETH_FRAMING_OVERHEAD;
cap->nonleaf.shaper_private_rate_min = 0;
/* 40Gbps -> 5GBps */
cap->nonleaf.shaper_private_rate_max = 5000000000ull;
+ cap->nonleaf.shaper_private_packet_mode_supported = 0;
+ cap->nonleaf.shaper_private_byte_mode_supported = 1;
cap->nonleaf.shaper_shared_n_max = 0;
+ cap->nonleaf.shaper_shared_packet_mode_supported = 0;
+ cap->nonleaf.shaper_shared_byte_mode_supported = 0;
if (level_id == I40E_TM_NODE_TYPE_PORT)
cap->nonleaf.sched_n_children_max =
I40E_MAX_TRAFFIC_CLASS;
cap->nonleaf.sched_wfq_n_children_per_group_max = 0;
cap->nonleaf.sched_wfq_n_groups_max = 0;
cap->nonleaf.sched_wfq_weight_max = 1;
+ cap->nonleaf.sched_wfq_packet_mode_supported = 0;
+ cap->nonleaf.sched_wfq_byte_mode_supported = 0;
cap->nonleaf.stats_mask = 0;
return 0;
cap->leaf.shaper_private_rate_min = 0;
/* 40Gbps -> 5GBps */
cap->leaf.shaper_private_rate_max = 5000000000ull;
+ cap->leaf.shaper_private_packet_mode_supported = 0;
+ cap->leaf.shaper_private_byte_mode_supported = 1;
cap->leaf.shaper_shared_n_max = 0;
+ cap->leaf.shaper_shared_packet_mode_supported = 0;
+ cap->leaf.shaper_shared_byte_mode_supported = 0;
cap->leaf.cman_head_drop_supported = false;
cap->leaf.cman_wred_context_private_supported = true;
cap->leaf.cman_wred_context_shared_n_max = 0;
cap->shaper_private_rate_min = 0;
/* 40Gbps -> 5GBps */
cap->shaper_private_rate_max = 5000000000ull;
+ cap->shaper_private_packet_mode_supported = 0;
+ cap->shaper_private_byte_mode_supported = 1;
cap->shaper_shared_n_max = 0;
+ cap->shaper_shared_packet_mode_supported = 0;
+ cap->shaper_shared_byte_mode_supported = 0;
if (node_type == I40E_TM_NODE_TYPE_QUEUE) {
cap->leaf.cman_head_drop_supported = false;
cap->nonleaf.sched_wfq_n_children_per_group_max = 0;
cap->nonleaf.sched_wfq_n_groups_max = 0;
cap->nonleaf.sched_wfq_weight_max = 1;
+ cap->nonleaf.sched_wfq_packet_mode_supported = 0;
+ cap->nonleaf.sched_wfq_byte_mode_supported = 0;
}
cap->stats_mask = 0;
cap->shaper_private_dual_rate_n_max = 0;
cap->shaper_private_rate_min = 1;
cap->shaper_private_rate_max = 1 + IPN3KE_TM_VT_NODE_NUM;
+ cap->shaper_private_packet_mode_supported = 0;
+ cap->shaper_private_byte_mode_supported = 1;
cap->shaper_shared_n_max = 0;
cap->shaper_shared_n_nodes_per_shaper_max = 0;
cap->shaper_shared_dual_rate_n_max = 0;
cap->shaper_shared_rate_min = 0;
cap->shaper_shared_rate_max = 0;
+ cap->shaper_shared_packet_mode_supported = 0;
+ cap->shaper_shared_byte_mode_supported = 0;
cap->shaper_pkt_length_adjust_min = RTE_TM_ETH_FRAMING_OVERHEAD_FCS;
cap->shaper_pkt_length_adjust_max = RTE_TM_ETH_FRAMING_OVERHEAD_FCS;
cap->sched_wfq_n_children_per_group_max = UINT32_MAX;
cap->sched_wfq_n_groups_max = 1;
cap->sched_wfq_weight_max = UINT32_MAX;
+ cap->sched_wfq_packet_mode_supported = 0;
+ cap->sched_wfq_byte_mode_supported = 1;
cap->cman_wred_packet_mode_supported = 0;
cap->cman_wred_byte_mode_supported = 0;
cap->nonleaf.shaper_private_dual_rate_supported = 0;
cap->nonleaf.shaper_private_rate_min = 1;
cap->nonleaf.shaper_private_rate_max = UINT32_MAX;
+ cap->nonleaf.shaper_private_packet_mode_supported = 0;
+ cap->nonleaf.shaper_private_byte_mode_supported = 1;
cap->nonleaf.shaper_shared_n_max = 0;
+ cap->nonleaf.shaper_shared_packet_mode_supported = 0;
+ cap->nonleaf.shaper_shared_byte_mode_supported = 0;
cap->nonleaf.sched_n_children_max = IPN3KE_TM_VT_NODE_NUM;
cap->nonleaf.sched_sp_n_priorities_max = 1;
cap->nonleaf.sched_wfq_n_children_per_group_max = 0;
cap->nonleaf.sched_wfq_n_groups_max = 0;
cap->nonleaf.sched_wfq_weight_max = 0;
+ cap->nonleaf.sched_wfq_packet_mode_supported = 0;
+ cap->nonleaf.sched_wfq_byte_mode_supported = 0;
cap->nonleaf.stats_mask = STATS_MASK_DEFAULT;
break;
cap->nonleaf.shaper_private_dual_rate_supported = 0;
cap->nonleaf.shaper_private_rate_min = 1;
cap->nonleaf.shaper_private_rate_max = UINT32_MAX;
+ cap->nonleaf.shaper_private_packet_mode_supported = 0;
+ cap->nonleaf.shaper_private_byte_mode_supported = 1;
cap->nonleaf.shaper_shared_n_max = 0;
+ cap->nonleaf.shaper_shared_packet_mode_supported = 0;
+ cap->nonleaf.shaper_shared_byte_mode_supported = 0;
cap->nonleaf.sched_n_children_max = IPN3KE_TM_COS_NODE_NUM;
cap->nonleaf.sched_sp_n_priorities_max = 1;
cap->nonleaf.sched_wfq_n_children_per_group_max = 0;
cap->nonleaf.sched_wfq_n_groups_max = 0;
cap->nonleaf.sched_wfq_weight_max = 0;
+ cap->nonleaf.sched_wfq_packet_mode_supported = 0;
+ cap->nonleaf.sched_wfq_byte_mode_supported = 0;
cap->nonleaf.stats_mask = STATS_MASK_DEFAULT;
break;
cap->leaf.shaper_private_dual_rate_supported = 0;
cap->leaf.shaper_private_rate_min = 0;
cap->leaf.shaper_private_rate_max = 0;
+ cap->leaf.shaper_private_packet_mode_supported = 0;
+ cap->leaf.shaper_private_byte_mode_supported = 1;
cap->leaf.shaper_shared_n_max = 0;
+ cap->leaf.shaper_shared_packet_mode_supported = 0;
+ cap->leaf.shaper_shared_byte_mode_supported = 0;
cap->leaf.cman_head_drop_supported = 0;
cap->leaf.cman_wred_packet_mode_supported = WRED_SUPPORTED;
cap->shaper_private_dual_rate_supported = 0;
cap->shaper_private_rate_min = 1;
cap->shaper_private_rate_max = UINT32_MAX;
+ cap->shaper_private_packet_mode_supported = 0;
+ cap->shaper_private_byte_mode_supported = 1;
cap->shaper_shared_n_max = 0;
+ cap->shaper_shared_packet_mode_supported = 0;
+ cap->shaper_shared_byte_mode_supported = 0;
cap->nonleaf.sched_n_children_max = IPN3KE_TM_VT_NODE_NUM;
cap->nonleaf.sched_sp_n_priorities_max = 1;
IPN3KE_TM_VT_NODE_NUM;
cap->nonleaf.sched_wfq_n_groups_max = 1;
cap->nonleaf.sched_wfq_weight_max = 1;
+ cap->nonleaf.sched_wfq_packet_mode_supported = 0;
+ cap->nonleaf.sched_wfq_byte_mode_supported = 0;
cap->stats_mask = STATS_MASK_DEFAULT;
break;
cap->shaper_private_dual_rate_supported = 0;
cap->shaper_private_rate_min = 1;
cap->shaper_private_rate_max = UINT32_MAX;
+ cap->shaper_private_packet_mode_supported = 0;
+ cap->shaper_private_byte_mode_supported = 1;
cap->shaper_shared_n_max = 0;
+ cap->shaper_shared_packet_mode_supported = 0;
+ cap->shaper_shared_byte_mode_supported = 0;
cap->nonleaf.sched_n_children_max = IPN3KE_TM_COS_NODE_NUM;
cap->nonleaf.sched_sp_n_priorities_max = 1;
IPN3KE_TM_COS_NODE_NUM;
cap->nonleaf.sched_wfq_n_groups_max = 1;
cap->nonleaf.sched_wfq_weight_max = 1;
+ cap->nonleaf.sched_wfq_packet_mode_supported = 0;
+ cap->nonleaf.sched_wfq_byte_mode_supported = 0;
cap->stats_mask = STATS_MASK_DEFAULT;
break;
cap->shaper_private_dual_rate_supported = 0;
cap->shaper_private_rate_min = 0;
cap->shaper_private_rate_max = 0;
+ cap->shaper_private_packet_mode_supported = 0;
+ cap->shaper_private_byte_mode_supported = 0;
cap->shaper_shared_n_max = 0;
+ cap->shaper_shared_packet_mode_supported = 0;
+ cap->shaper_shared_byte_mode_supported = 0;
cap->leaf.cman_head_drop_supported = 0;
cap->leaf.cman_wred_packet_mode_supported = WRED_SUPPORTED;
cap->shaper_private_rate_min = 0;
/* 10Gbps -> 1.25GBps */
cap->shaper_private_rate_max = 1250000000ull;
+ cap->shaper_private_packet_mode_supported = 0;
+ cap->shaper_private_byte_mode_supported = 1;
cap->shaper_shared_n_max = 0;
cap->shaper_shared_n_nodes_per_shaper_max = 0;
cap->shaper_shared_n_shapers_per_node_max = 0;
cap->shaper_shared_dual_rate_n_max = 0;
cap->shaper_shared_rate_min = 0;
cap->shaper_shared_rate_max = 0;
+ cap->shaper_shared_packet_mode_supported = 0;
+ cap->shaper_shared_byte_mode_supported = 0;
cap->sched_n_children_max = hw->mac.max_tx_queues;
/**
* HW supports SP. But no plan to support it now.
cap->sched_sp_n_priorities_max = 1;
cap->sched_wfq_n_children_per_group_max = 0;
cap->sched_wfq_n_groups_max = 0;
+ cap->sched_wfq_packet_mode_supported = 0;
+ cap->sched_wfq_byte_mode_supported = 0;
/**
* SW only supports fair round robin now.
* So, all the nodes should have the same weight.
cap->nonleaf.shaper_private_rate_min = 0;
/* 10Gbps -> 1.25GBps */
cap->nonleaf.shaper_private_rate_max = 1250000000ull;
+ cap->nonleaf.shaper_private_packet_mode_supported = 0;
+ cap->nonleaf.shaper_private_byte_mode_supported = 1;
cap->nonleaf.shaper_shared_n_max = 0;
+ cap->nonleaf.shaper_shared_packet_mode_supported = 0;
+ cap->nonleaf.shaper_shared_byte_mode_supported = 0;
if (level_id == IXGBE_TM_NODE_TYPE_PORT)
cap->nonleaf.sched_n_children_max =
IXGBE_DCB_MAX_TRAFFIC_CLASS;
cap->nonleaf.sched_wfq_n_children_per_group_max = 0;
cap->nonleaf.sched_wfq_n_groups_max = 0;
cap->nonleaf.sched_wfq_weight_max = 1;
+ cap->nonleaf.sched_wfq_packet_mode_supported = 0;
+ cap->nonleaf.sched_wfq_byte_mode_supported = 0;
cap->nonleaf.stats_mask = 0;
return 0;
cap->leaf.shaper_private_rate_min = 0;
/* 10Gbps -> 1.25GBps */
cap->leaf.shaper_private_rate_max = 1250000000ull;
+ cap->leaf.shaper_private_packet_mode_supported = 0;
+ cap->leaf.shaper_private_byte_mode_supported = 1;
cap->leaf.shaper_shared_n_max = 0;
+ cap->leaf.shaper_shared_packet_mode_supported = 0;
+ cap->leaf.shaper_shared_byte_mode_supported = 0;
cap->leaf.cman_head_drop_supported = false;
cap->leaf.cman_wred_context_private_supported = true;
cap->leaf.cman_wred_context_shared_n_max = 0;
cap->shaper_private_rate_min = 0;
/* 10Gbps -> 1.25GBps */
cap->shaper_private_rate_max = 1250000000ull;
+ cap->shaper_private_packet_mode_supported = 0;
+ cap->shaper_private_byte_mode_supported = 1;
cap->shaper_shared_n_max = 0;
+ cap->shaper_shared_packet_mode_supported = 0;
+ cap->shaper_shared_byte_mode_supported = 0;
if (node_type == IXGBE_TM_NODE_TYPE_QUEUE) {
cap->leaf.cman_head_drop_supported = false;
cap->nonleaf.sched_wfq_n_children_per_group_max = 0;
cap->nonleaf.sched_wfq_n_groups_max = 0;
cap->nonleaf.sched_wfq_weight_max = 1;
+ cap->nonleaf.sched_wfq_packet_mode_supported = 0;
+ cap->nonleaf.sched_wfq_byte_mode_supported = 0;
}
cap->stats_mask = 0;
cap->shaper_private_n_max = cap->shaper_n_max;
cap->shaper_private_rate_min = MRVL_RATE_MIN;
cap->shaper_private_rate_max = priv->rate_max;
+ cap->shaper_private_packet_mode_supported = 0;
+ cap->shaper_private_byte_mode_supported = 1;
cap->sched_n_children_max = dev->data->nb_tx_queues;
cap->sched_sp_n_priorities_max = dev->data->nb_tx_queues;
cap->sched_wfq_n_children_per_group_max = dev->data->nb_tx_queues;
cap->sched_wfq_n_groups_max = 1;
cap->sched_wfq_weight_max = MRVL_WEIGHT_MAX;
+ cap->sched_wfq_packet_mode_supported = 0;
+ cap->sched_wfq_byte_mode_supported = 1;
cap->dynamic_update_mask = RTE_TM_UPDATE_NODE_SUSPEND_RESUME |
RTE_TM_UPDATE_NODE_STATS;
cap->nonleaf.shaper_private_supported = 1;
cap->nonleaf.shaper_private_rate_min = MRVL_RATE_MIN;
cap->nonleaf.shaper_private_rate_max = priv->rate_max;
+ cap->nonleaf.shaper_private_packet_mode_supported = 0;
+ cap->nonleaf.shaper_private_byte_mode_supported = 1;
cap->nonleaf.sched_n_children_max = dev->data->nb_tx_queues;
cap->nonleaf.sched_sp_n_priorities_max = 1;
dev->data->nb_tx_queues;
cap->nonleaf.sched_wfq_n_groups_max = 1;
cap->nonleaf.sched_wfq_weight_max = MRVL_WEIGHT_MAX;
+ cap->nonleaf.sched_wfq_packet_mode_supported = 0;
+ cap->nonleaf.sched_wfq_byte_mode_supported = 1;
cap->nonleaf.stats_mask = RTE_TM_STATS_N_PKTS |
RTE_TM_STATS_N_BYTES;
} else { /* level_id == MRVL_NODE_QUEUE */
cap->leaf.shaper_private_supported = 1;
cap->leaf.shaper_private_rate_min = MRVL_RATE_MIN;
cap->leaf.shaper_private_rate_max = priv->rate_max;
+ cap->leaf.shaper_private_packet_mode_supported = 0;
+ cap->leaf.shaper_private_byte_mode_supported = 1;
cap->leaf.stats_mask = RTE_TM_STATS_N_PKTS;
}
cap->shaper_private_supported = 1;
cap->shaper_private_rate_min = MRVL_RATE_MIN;
cap->shaper_private_rate_max = priv->rate_max;
+ cap->shaper_private_packet_mode_supported = 0;
+ cap->shaper_private_byte_mode_supported = 1;
if (node->type == MRVL_NODE_PORT) {
cap->nonleaf.sched_n_children_max = dev->data->nb_tx_queues;
dev->data->nb_tx_queues;
cap->nonleaf.sched_wfq_n_groups_max = 1;
cap->nonleaf.sched_wfq_weight_max = MRVL_WEIGHT_MAX;
+ cap->nonleaf.sched_wfq_packet_mode_supported = 0;
+ cap->nonleaf.sched_wfq_byte_mode_supported = 1;
cap->stats_mask = RTE_TM_STATS_N_PKTS | RTE_TM_STATS_N_BYTES;
} else {
cap->stats_mask = RTE_TM_STATS_N_PKTS;