[dpdk-dev] [PATCH v2 01/28] sched: update macros for flexible config
Jasvinder Singh
jasvinder.singh at intel.com
Tue Jun 25 17:31:50 CEST 2019
Update macros to allow configuration flexiblity for pipe traffic
classes and queues, and subport level configuration of the pipe
parameters.
Signed-off-by: Jasvinder Singh <jasvinder.singh at intel.com>
Signed-off-by: Abraham Tovar <abrahamx.tovar at intel.com>
Signed-off-by: Lukasz Krakowiak <lukaszx.krakowiak at intel.com>
---
lib/librte_sched/rte_sched.h | 36 +++++++++++++++++++++++++-----------
1 file changed, 25 insertions(+), 11 deletions(-)
diff --git a/lib/librte_sched/rte_sched.h b/lib/librte_sched/rte_sched.h
index 9c55a787d..470a0036a 100644
--- a/lib/librte_sched/rte_sched.h
+++ b/lib/librte_sched/rte_sched.h
@@ -52,7 +52,7 @@ extern "C" {
* multiple connections of same traffic class belonging to
* the same user;
* - Weighted Round Robin (WRR) is used to service the
- * queues within same pipe traffic class.
+ * queues within same pipe lowest priority traffic class (best-effort).
*
*/
@@ -66,20 +66,32 @@ extern "C" {
#include "rte_red.h"
#endif
-/** Number of traffic classes per pipe (as well as subport).
- * Cannot be changed.
+/** Maximum number of queues per pipe.
+ * Note that the multiple queues (power of 2) can only be assigned to
+ * lowest priority (best-effort) traffic class. Other higher priority traffic
+ * classes can only have one queue.
+ * Can not change.
+ *
+ * @see struct rte_sched_subport_params
*/
-#define RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE 4
+#define RTE_SCHED_QUEUES_PER_PIPE 16
-/** Number of queues per pipe traffic class. Cannot be changed. */
-#define RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS 4
+/** Number of WRR queues for best-effort traffic class per pipe.
+ *
+ * @see struct rte_sched_pipe_params
+ */
+#define RTE_SCHED_BE_QUEUES_PER_PIPE 8
-/** Number of queues per pipe. */
-#define RTE_SCHED_QUEUES_PER_PIPE \
- (RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE * \
- RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS)
+#define RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS 4
+/** Number of traffic classes per pipe (as well as subport).
+ *
+ * @see struct rte_sched_subport_params
+ * @see struct rte_sched_pipe_params
+ */
+#define RTE_SCHED_TRAFFIC_CLASSES_PER_PIPE \
+(RTE_SCHED_QUEUES_PER_PIPE - RTE_SCHED_BE_QUEUES_PER_PIPE + 1)
-/** Maximum number of pipe profiles that can be defined per port.
+/** Maximum number of pipe profiles that can be defined per subport.
* Compile-time configurable.
*/
#ifndef RTE_SCHED_PIPE_PROFILES_PER_PORT
@@ -95,6 +107,8 @@ extern "C" {
*
* The FCS is considered overhead only if not included in the packet
* length (field pkt_len of struct rte_mbuf).
+ *
+ * @see struct rte_sched_port_params
*/
#ifndef RTE_SCHED_FRAME_OVERHEAD_DEFAULT
#define RTE_SCHED_FRAME_OVERHEAD_DEFAULT 24
--
2.21.0
More information about the dev
mailing list