sch_tbf.c (f7f593e383145931cb2a65df62c31ce1bcc0cffc) sch_tbf.c (27a884dc3cb63b93c2b3b643f5b31eed5f8a4d26)
1/*
2 * net/sched/sch_tbf.c Token Bucket Filter queue.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version
7 * 2 of the License, or (at your option) any later version.
8 *

--- 373 unchanged lines hidden (view full) ---

382 qdisc_put_rtab(q->R_tab);
383
384 qdisc_destroy(q->qdisc);
385}
386
387static int tbf_dump(struct Qdisc *sch, struct sk_buff *skb)
388{
389 struct tbf_sched_data *q = qdisc_priv(sch);
1/*
2 * net/sched/sch_tbf.c Token Bucket Filter queue.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version
7 * 2 of the License, or (at your option) any later version.
8 *

--- 373 unchanged lines hidden (view full) ---

382 qdisc_put_rtab(q->R_tab);
383
384 qdisc_destroy(q->qdisc);
385}
386
387static int tbf_dump(struct Qdisc *sch, struct sk_buff *skb)
388{
389 struct tbf_sched_data *q = qdisc_priv(sch);
390 unsigned char *b = skb->tail;
390 unsigned char *b = skb_tail_pointer(skb);
391 struct rtattr *rta;
392 struct tc_tbf_qopt opt;
393
394 rta = (struct rtattr*)b;
395 RTA_PUT(skb, TCA_OPTIONS, 0, NULL);
396
397 opt.limit = q->limit;
398 opt.rate = q->R_tab->rate;
399 if (q->P_tab)
400 opt.peakrate = q->P_tab->rate;
401 else
402 memset(&opt.peakrate, 0, sizeof(opt.peakrate));
403 opt.mtu = q->mtu;
404 opt.buffer = q->buffer;
405 RTA_PUT(skb, TCA_TBF_PARMS, sizeof(opt), &opt);
391 struct rtattr *rta;
392 struct tc_tbf_qopt opt;
393
394 rta = (struct rtattr*)b;
395 RTA_PUT(skb, TCA_OPTIONS, 0, NULL);
396
397 opt.limit = q->limit;
398 opt.rate = q->R_tab->rate;
399 if (q->P_tab)
400 opt.peakrate = q->P_tab->rate;
401 else
402 memset(&opt.peakrate, 0, sizeof(opt.peakrate));
403 opt.mtu = q->mtu;
404 opt.buffer = q->buffer;
405 RTA_PUT(skb, TCA_TBF_PARMS, sizeof(opt), &opt);
406 rta->rta_len = skb->tail - b;
406 rta->rta_len = skb_tail_pointer(skb) - b;
407
408 return skb->len;
409
410rtattr_failure:
411 skb_trim(skb, b - skb->data);
412 return -1;
413}
414

--- 116 unchanged lines hidden ---
407
408 return skb->len;
409
410rtattr_failure:
411 skb_trim(skb, b - skb->data);
412 return -1;
413}
414

--- 116 unchanged lines hidden ---