* @param slab
* When function call returns 1, slab contains the value of the entire 64-bit
* slab where the bit indicated by pos is located. Slabs are always 64-bit
- * aligned, so the position of the first bit of the slab (this bit is not
+ * aligned, so the position of the first bit of the slab (this bit is not
* necessarily set) is pos / 64. Once a slab has been returned by the bitmap
* scan operation, the internal pointers of the bitmap are updated to point
- * after this slab, so the same slab will not be returned again if it
+ * after this slab, so the same slab will not be returned again if it
* contains more than one bit which is set. When function call returns 0,
* slab is not modified.
* @return
* of prefetching the data structures. The naming convention is presented in the
* diagram below:
*
- * p00 _______ p10 _______ p20 _______ p30 _______
+ * p00 _______ p10 _______ p20 _______ p30 _______
* ----->| |----->| |----->| |----->| |----->
- * | 0 | | 1 | | 2 | | 3 |
+ * | 0 | | 1 | | 2 | | 3 |
* ----->|_______|----->|_______|----->|_______|----->|_______|----->
- * p01 p11 p21 p31
+ * p01 p11 p21 p31
*
***/
int
#endif /* RTE_SCHED_TS_CREDITS_UPDATE, RTE_SCHED_SUBPORT_TC_OV */
+#if RTE_SCHED_TS_CREDITS_CHECK
+
#ifndef RTE_SCHED_SUBPORT_TC_OV
static inline int
#endif /* RTE_SCHED_SUBPORT_TC_OV */
+#endif /* RTE_SCHED_TS_CREDITS_CHECK */
+
static inline int
grinder_schedule(struct rte_sched_port *port, uint32_t pos)
{
* for the current network node.
*
* The scheduler supports thousands of packet queues grouped under a 5-level hierarchy:
- * 1. Port:
+ * 1. Port:
* - Typical usage: output Ethernet port;
* - Multiple ports are scheduled in round robin order with equal priority;
* 2. Subport:
* - Upper limit enforced per traffic class at subport level;
* - Lower priority traffic classes able to reuse subport bandwidth currently
* unused by higher priority traffic classes of the same subport;
- * - When any subport traffic class is oversubscribed (configuration time
- * event), the usage of subport member pipes with high demand for that
- * traffic class pipes is truncated to a dynamically adjusted value with no
+ * - When any subport traffic class is oversubscribed (configuration time
+ * event), the usage of subport member pipes with high demand for that
+ * traffic class pipes is truncated to a dynamically adjusted value with no
* impact to low demand pipes;
- * 3. Pipe:
+ * 3. Pipe:
* - Typical usage: individual user/subscriber;
* - Traffic shaping using the token bucket algorithm (one bucket per pipe);
* 4. Traffic class:
* - Lower priority traffic classes able to reuse pipe bandwidth currently
* unused by higher priority traffic classes of the same pipe;
* 5. Queue:
- * - Typical usage: queue hosting packets from one or multiple connections
+ * - Typical usage: queue hosting packets from one or multiple connections
* of same traffic class belonging to the same user;
- * - Weighted Round Robin (WRR) is used to service the queues within same
+ * - Weighted Round Robin (WRR) is used to service the queues within same
* pipe traffic class.
*
***/
* @param subport_id
* Subport ID
* @param stats
- * Pointer to pre-allocated subport statistics structure where the statistics
+ * Pointer to pre-allocated subport statistics structure where the statistics
* counters should be stored
* @param tc_ov
* Pointer to pre-allocated 4-entry array where the oversubscription status for
* @param queue_id
* Queue ID within port scheduler
* @param stats
- * Pointer to pre-allocated subport statistics structure where the statistics
+ * Pointer to pre-allocated subport statistics structure where the statistics
* counters should be stored
* @param qlen
* Pointer to pre-allocated variable where the current queue length should be stored.
* Traffic class ID within pipe (0 .. 3)
* @param queue
* Queue ID within pipe traffic class (0 .. 3)
- *
+ *
*/
static inline void
rte_sched_port_pkt_read_tree_path(struct rte_mbuf *pkt, uint32_t *subport, uint32_t *pipe, uint32_t *traffic_class, uint32_t *queue)
* @param port
* Handle to port scheduler instance
* @param pkts
- * Pre-allocated packet descriptor array where the packets dequeued from the port
+ * Pre-allocated packet descriptor array where the packets dequeued from the port
* scheduler should be stored
* @param n_pkts
* Number of packets to dequeue from the port scheduler