Lines Matching defs:rtab
395 static __u8 __detect_linklayer(struct tc_ratespec *r, __u32 *rtab)
402 /* rtab is too inaccurate at rates > 100Mbit/s */
403 if ((r->rate > (100000000/8)) || (rtab[0] == 0)) {
409 && (rtab[cell_low] == rtab[cell_high])) {
411 cell_low, cell_high, rtab[cell_high]);
423 struct qdisc_rate_table *rtab;
432 for (rtab = qdisc_rtab_list; rtab; rtab = rtab->next) {
433 if (!memcmp(&rtab->rate, r, sizeof(struct tc_ratespec)) &&
434 !memcmp(&rtab->data, nla_data(tab), TC_RTAB_SIZE)) {
435 rtab->refcnt++;
436 return rtab;
440 rtab = kmalloc(sizeof(*rtab), GFP_KERNEL);
441 if (rtab) {
442 rtab->rate = *r;
443 rtab->refcnt = 1;
444 memcpy(rtab->data, nla_data(tab), TC_RTAB_SIZE);
446 r->linklayer = __detect_linklayer(r, rtab->data);
447 rtab->next = qdisc_rtab_list;
448 qdisc_rtab_list = rtab;
452 return rtab;
458 struct qdisc_rate_table *rtab, **rtabp;
464 (rtab = *rtabp) != NULL;
465 rtabp = &rtab->next) {
466 if (rtab == tab) {
467 *rtabp = rtab->next;
468 kfree(rtab);