• Home
  • Raw
  • Download

Lines Matching +full:system +full:- +full:ctl

1 // SPDX-License-Identifier: GPL-2.0-or-later
11 * based fault-tolerance to ensure that the checkpoint from which a system
14 * Consider for e.g. Remus - a Virtual Machine checkpointing system,
47 * ------------------+--------------------+---------------->
51 * ----------------->|<--------+--------->|+--------------->
59 * a pass-through queue for newly arriving packets.
92 if (likely(sch->qstats.backlog + skb->len <= q->limit)) { in plug_enqueue()
93 if (!q->unplug_indefinite) in plug_enqueue()
94 q->pkts_current_epoch++; in plug_enqueue()
105 if (q->throttled) in plug_dequeue()
108 if (!q->unplug_indefinite) { in plug_dequeue()
109 if (!q->pkts_to_release) { in plug_dequeue()
113 q->throttled = true; in plug_dequeue()
116 q->pkts_to_release--; in plug_dequeue()
127 q->pkts_current_epoch = 0; in plug_init()
128 q->pkts_last_epoch = 0; in plug_init()
129 q->pkts_to_release = 0; in plug_init()
130 q->unplug_indefinite = false; in plug_init()
133 q->limit = qdisc_dev(sch)->tx_queue_len in plug_init()
136 struct tc_plug_qopt *ctl = nla_data(opt); in plug_init() local
138 if (nla_len(opt) < sizeof(*ctl)) in plug_init()
139 return -EINVAL; in plug_init()
141 q->limit = ctl->limit; in plug_init()
144 q->throttled = true; in plug_init()
155 * command is received (just act as a pass-thru queue).
165 return -EINVAL; in plug_change()
169 return -EINVAL; in plug_change()
171 switch (msg->action) { in plug_change()
174 q->pkts_last_epoch = q->pkts_current_epoch; in plug_change()
175 q->pkts_current_epoch = 0; in plug_change()
176 if (q->unplug_indefinite) in plug_change()
177 q->throttled = true; in plug_change()
178 q->unplug_indefinite = false; in plug_change()
184 q->pkts_to_release += q->pkts_last_epoch; in plug_change()
185 q->pkts_last_epoch = 0; in plug_change()
186 q->throttled = false; in plug_change()
187 netif_schedule_queue(sch->dev_queue); in plug_change()
190 q->unplug_indefinite = true; in plug_change()
191 q->pkts_to_release = 0; in plug_change()
192 q->pkts_last_epoch = 0; in plug_change()
193 q->pkts_current_epoch = 0; in plug_change()
194 q->throttled = false; in plug_change()
195 netif_schedule_queue(sch->dev_queue); in plug_change()
199 q->limit = msg->limit; in plug_change()
202 return -EINVAL; in plug_change()