Lines Matching defs:sch
317 struct Qdisc *sch,
328 struct taprio_sched *q = qdisc_priv(sch);
329 struct net_device *dev = qdisc_dev(sch);
393 static bool is_valid_interval(struct sk_buff *skb, struct Qdisc *sch)
395 struct taprio_sched *q = qdisc_priv(sch);
404 entry = find_entry_to_transmit(skb, sch, sched, admin, skb->tstamp,
474 static long get_packet_txtime(struct sk_buff *skb, struct Qdisc *sch)
477 struct taprio_sched *q = qdisc_priv(sch);
508 entry = find_entry_to_transmit(skb, sch, sched, admin,
546 static bool taprio_skb_exceeds_queue_max_sdu(struct Qdisc *sch,
549 struct taprio_sched *q = qdisc_priv(sch);
550 struct net_device *dev = qdisc_dev(sch);
567 static int taprio_enqueue_one(struct sk_buff *skb, struct Qdisc *sch,
570 struct taprio_sched *q = qdisc_priv(sch);
574 if (!is_valid_interval(skb, sch))
575 return qdisc_drop(skb, sch, to_free);
577 skb->tstamp = get_packet_txtime(skb, sch);
579 return qdisc_drop(skb, sch, to_free);
582 qdisc_qstats_backlog_inc(sch, skb);
583 sch->q.qlen++;
588 static int taprio_enqueue_segmented(struct sk_buff *skb, struct Qdisc *sch,
599 return qdisc_drop(skb, sch, to_free);
609 if (taprio_skb_exceeds_queue_max_sdu(sch, segs))
610 ret = qdisc_drop(segs, sch, to_free);
612 ret = taprio_enqueue_one(segs, sch, child, to_free);
616 qdisc_qstats_drop(sch);
623 qdisc_tree_reduce_backlog(sch, 1 - numsegs, len - slen);
632 static int taprio_enqueue(struct sk_buff *skb, struct Qdisc *sch,
635 struct taprio_sched *q = qdisc_priv(sch);
643 return qdisc_drop(skb, sch, to_free);
645 if (taprio_skb_exceeds_queue_max_sdu(sch, skb)) {
652 return taprio_enqueue_segmented(skb, sch, child,
655 return qdisc_drop(skb, sch, to_free);
658 return taprio_enqueue_one(skb, sch, child, to_free);
661 static struct sk_buff *taprio_peek(struct Qdisc *sch)
711 static struct sk_buff *taprio_dequeue_from_txq(struct Qdisc *sch, int txq,
715 struct taprio_sched *q = qdisc_priv(sch);
716 struct net_device *dev = qdisc_dev(sch);
761 qdisc_bstats_update(sch, skb);
762 qdisc_qstats_backlog_dec(sch, skb);
763 sch->q.qlen--;
781 static struct sk_buff *taprio_dequeue_tc_priority(struct Qdisc *sch,
785 struct taprio_sched *q = qdisc_priv(sch);
786 struct net_device *dev = qdisc_dev(sch);
798 skb = taprio_dequeue_from_txq(sch, q->cur_txq[tc],
817 static struct sk_buff *taprio_dequeue_txq_priority(struct Qdisc *sch,
821 struct net_device *dev = qdisc_dev(sch);
826 skb = taprio_dequeue_from_txq(sch, i, entry, gate_mask);
837 static struct sk_buff *taprio_dequeue(struct Qdisc *sch)
839 struct taprio_sched *q = qdisc_priv(sch);
858 skb = taprio_dequeue_txq_priority(sch, entry, gate_mask);
862 skb = taprio_dequeue_tc_priority(sch, entry, gate_mask);
866 skb = taprio_dequeue_txq_priority(sch, entry, gate_mask);
868 skb = taprio_dequeue_tc_priority(sch, entry, gate_mask);
931 struct Qdisc *sch = q->root;
997 __netif_schedule(sch);
1213 static int taprio_get_start_time(struct Qdisc *sch,
1217 struct taprio_sched *q = qdisc_priv(sch);
1277 static void taprio_start_sched(struct Qdisc *sch,
1280 struct taprio_sched *q = qdisc_priv(sch);
1617 static int taprio_parse_clockid(struct Qdisc *sch, struct nlattr **tb,
1620 struct taprio_sched *q = qdisc_priv(sch);
1621 struct net_device *dev = qdisc_dev(sch);
1695 static int taprio_parse_tc_entry(struct Qdisc *sch,
1703 struct net_device *dev = qdisc_dev(sch);
1746 static int taprio_parse_tc_entries(struct Qdisc *sch,
1750 struct taprio_sched *q = qdisc_priv(sch);
1751 struct net_device *dev = qdisc_dev(sch);
1769 err = taprio_parse_tc_entry(sch, n, max_sdu, fp, &seen_tcs,
1846 static int taprio_change(struct Qdisc *sch, struct nlattr *opt,
1849 struct qdisc_size_table *stab = rtnl_dereference(sch->stab);
1852 struct taprio_sched *q = qdisc_priv(sch);
1853 struct net_device *dev = qdisc_dev(sch);
1878 err = taprio_parse_tc_entries(sch, opt, extack);
1929 err = taprio_parse_clockid(sch, tb, extack);
1944 spin_lock_bh(qdisc_lock(sch));
1963 err = taprio_get_start_time(sch, new_admin, &start);
1988 taprio_start_sched(sch, start, new_admin);
2008 spin_unlock_bh(qdisc_lock(sch));
2017 static void taprio_reset(struct Qdisc *sch)
2019 struct taprio_sched *q = qdisc_priv(sch);
2020 struct net_device *dev = qdisc_dev(sch);
2032 static void taprio_destroy(struct Qdisc *sch)
2034 struct taprio_sched *q = qdisc_priv(sch);
2035 struct net_device *dev = qdisc_dev(sch);
2045 qdisc_synchronize(sch);
2071 static int taprio_init(struct Qdisc *sch, struct nlattr *opt,
2074 struct taprio_sched *q = qdisc_priv(sch);
2075 struct net_device *dev = qdisc_dev(sch);
2083 q->root = sch;
2093 if (sch->parent != TC_H_ROOT) {
2118 TC_H_MAKE(TC_H_MAJ(sch->handle),
2135 return taprio_change(sch, opt, extack);
2138 static void taprio_attach(struct Qdisc *sch)
2140 struct taprio_sched *q = qdisc_priv(sch);
2141 struct net_device *dev = qdisc_dev(sch);
2162 dev_queue_qdisc = sch;
2174 static struct netdev_queue *taprio_queue_get(struct Qdisc *sch,
2177 struct net_device *dev = qdisc_dev(sch);
2186 static int taprio_graft(struct Qdisc *sch, unsigned long cl,
2190 struct taprio_sched *q = qdisc_priv(sch);
2191 struct net_device *dev = qdisc_dev(sch);
2192 struct netdev_queue *dev_queue = taprio_queue_get(sch, cl);
2333 static int taprio_dump_xstats(struct Qdisc *sch, struct gnet_dump *d,
2337 struct net_device *dev = qdisc_dev(sch);
2343 ops = qdisc_dev(sch)->netdev_ops;
2346 * with sch->flags depending on whether the device reports taprio
2381 static int taprio_dump_stats(struct Qdisc *sch, struct gnet_dump *d)
2387 return taprio_dump_xstats(sch, d, &offload, &offload.stats);
2390 static int taprio_dump(struct Qdisc *sch, struct sk_buff *skb)
2392 struct taprio_sched *q = qdisc_priv(sch);
2393 struct net_device *dev = qdisc_dev(sch);
2452 static struct Qdisc *taprio_leaf(struct Qdisc *sch, unsigned long cl)
2454 struct taprio_sched *q = qdisc_priv(sch);
2455 struct net_device *dev = qdisc_dev(sch);
2464 static unsigned long taprio_find(struct Qdisc *sch, u32 classid)
2468 if (!taprio_queue_get(sch, ntx))
2473 static int taprio_dump_class(struct Qdisc *sch, unsigned long cl,
2476 struct Qdisc *child = taprio_leaf(sch, cl);
2485 static int taprio_dump_class_stats(struct Qdisc *sch, unsigned long cl,
2490 struct Qdisc *child = taprio_leaf(sch, cl);
2502 return taprio_dump_xstats(sch, d, &offload, &offload.queue_stats.stats);
2505 static void taprio_walk(struct Qdisc *sch, struct qdisc_walker *arg)
2507 struct net_device *dev = qdisc_dev(sch);
2515 if (!tc_qdisc_stats_dump(sch, ntx + 1, arg))
2520 static struct netdev_queue *taprio_select_queue(struct Qdisc *sch,
2523 return taprio_queue_get(sch, TC_H_MIN(tcm->tcm_parent));