* byte.
*/
struct rte_sched_subport_params {
- /** Token bucket rate (measured in bytes per second) */
- uint64_t tb_rate;
-
- /** Token bucket size (measured in credits) */
- uint64_t tb_size;
-
- /** Traffic class rates (measured in bytes per second) */
- uint64_t tc_rate[RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE];
-
- /** Enforcement period for rates (measured in milliseconds) */
- uint64_t tc_period;
-
/** Number of subport pipes.
* The subport can enable/allocate fewer pipes than the maximum
* number set through struct port_params::n_max_pipes_per_subport,
uint32_t *pipe_profile_id);
/**
- * Hierarchical scheduler subport configuration
+ * @warning
+ * @b EXPERIMENTAL: this API may change without prior notice.
*
+ * Hierarchical scheduler subport bandwidth profile add
+ * Note that this function is safe to use in runtime for adding new
+ * subport bandwidth profile as it doesn't have any impact on hiearchical
+ * structure of the scheduler.
+ * @param port
+ * Handle to port scheduler instance
+ * @param profile
+ * Subport bandwidth profile
+ * @param subport_profile_id
+ * Subport profile id
+ * @return
+ * 0 upon success, error code otherwise
+ */
+__rte_experimental
+int
+rte_sched_port_subport_profile_add(struct rte_sched_port *port,
+ struct rte_sched_subport_profile_params *profile,
+ uint32_t *subport_profile_id);
+
+/**
+ * Hierarchical scheduler subport configuration
+ * Note that this function is safe to use at runtime
+ * to configure subport bandwidth profile.
* @param port
* Handle to port scheduler instance
* @param subport_id
* Subport ID
* @param params
- * Subport configuration parameters
+ * Subport configuration parameters. Must be non-NULL
+ * for first invocation (i.e initialization) for a given
+ * subport. Ignored (recommended value is NULL) for all
+ * subsequent invocation on the same subport.
+ * @param subport_profile_id
+ * ID of subport bandwidth profile
* @return
* 0 upon success, error code otherwise
*/
int
rte_sched_subport_config(struct rte_sched_port *port,
uint32_t subport_id,
- struct rte_sched_subport_params *params);
+ struct rte_sched_subport_params *params,
+ uint32_t subport_profile_id);
/**
* Hierarchical scheduler pipe configuration