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 --- |