MCPcopy Create free account
hub / github.com/F-Stack/f-stack / grinder_next_tc

Function grinder_next_tc

dpdk/lib/sched/rte_sched.c:2573–2619  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2571}
2572
2573static inline int
2574grinder_next_tc(struct rte_sched_port *port,
2575 struct rte_sched_subport *subport, uint32_t pos)
2576{
2577 struct rte_sched_grinder *grinder = subport->grinder + pos;
2578 struct rte_mbuf **qbase;
2579 uint32_t qindex;
2580 uint16_t qsize;
2581
2582 if (grinder->tccache_r == grinder->tccache_w)
2583 return 0;
2584
2585 qindex = grinder->tccache_qindex[grinder->tccache_r];
2586 qbase = rte_sched_subport_pipe_qbase(subport, qindex);
2587 qsize = rte_sched_subport_pipe_qsize(port, subport, qindex);
2588
2589 grinder->tc_index = rte_sched_port_pipe_tc(port, qindex);
2590 grinder->qmask = grinder->tccache_qmask[grinder->tccache_r];
2591 grinder->qsize = qsize;
2592
2593 if (grinder->tc_index < RTE_SCHED_TRAFFIC_CLASS_BE) {
2594 grinder->queue[0] = subport->queue + qindex;
2595 grinder->qbase[0] = qbase;
2596 grinder->qindex[0] = qindex;
2597 grinder->tccache_r++;
2598
2599 return 1;
2600 }
2601
2602 grinder->queue[0] = subport->queue + qindex;
2603 grinder->queue[1] = subport->queue + qindex + 1;
2604 grinder->queue[2] = subport->queue + qindex + 2;
2605 grinder->queue[3] = subport->queue + qindex + 3;
2606
2607 grinder->qbase[0] = qbase;
2608 grinder->qbase[1] = qbase + qsize;
2609 grinder->qbase[2] = qbase + 2 * qsize;
2610 grinder->qbase[3] = qbase + 3 * qsize;
2611
2612 grinder->qindex[0] = qindex;
2613 grinder->qindex[1] = qindex + 1;
2614 grinder->qindex[2] = qindex + 2;
2615 grinder->qindex[3] = qindex + 3;
2616
2617 grinder->tccache_r++;
2618 return 1;
2619}
2620
2621static inline int
2622grinder_next_pipe(struct rte_sched_port *port,

Callers 2

grinder_next_pipeFunction · 0.85
grinder_handleFunction · 0.85

Calls 3

rte_sched_port_pipe_tcFunction · 0.85

Tested by

no test coverage detected