Lines Matching defs:jif

152 	struct jobs_if *jif;
154 jif = malloc(sizeof(struct jobs_if), M_DEVBUF, M_WAITOK|M_ZERO);
155 if (jif == NULL)
158 jif->jif_bandwidth = bandwidth;
159 jif->jif_qlimit = qlimit;
160 jif->jif_separate = separate;
166 jif->jif_maxpri = -1;
167 jif->jif_ifq = ifq;
169 jif->wc_cycles_enqueue = 0;
170 jif->avg_cycles_enqueue = 0;
171 jif->avg_cycles2_enqueue = 0;
172 jif->bc_cycles_enqueue = ALTQ_INFINITY;
173 jif->wc_cycles_dequeue = 0;
174 jif->avg_cycles_dequeue = 0;
175 jif->avg_cycles2_dequeue = 0;
176 jif->bc_cycles_dequeue = ALTQ_INFINITY;
177 jif->total_enqueued = 0;
178 jif->total_dequeued = 0;
181 jif->jif_next = jif_list;
182 jif_list = jif;
184 return jif;
188 jobs_detach(struct jobs_if *jif)
190 (void)jobs_clear_interface(jif);
192 /* remove this interface from the jif list */
193 if (jif_list == jif)
194 jif_list = jif->jif_next;
199 if (p->jif_next == jif) {
200 p->jif_next = jif->jif_next;
205 free(jif, M_DEVBUF);
213 jobs_clear_interface(struct jobs_if *jif)
219 acc_discard_filters(&jif->jif_classifier, NULL, 1);
222 for (pri = 0; pri <= jif->jif_maxpri; pri++)
223 if ((cl = jif->jif_classes[pri]) != NULL)
232 struct jobs_if *jif = (struct jobs_if *)ifq->altq_disc;
236 jobs_purge(jif);
244 jobs_purge(struct jobs_if *jif)
249 for (pri = 0; pri <= jif->jif_maxpri; pri++) {
250 if ((cl = jif->jif_classes[pri]) != NULL && !qempty(cl->cl_q))
253 if (ALTQ_IS_ENABLED(jif->jif_ifq))
254 jif->jif_ifq->ifq_len = 0;
258 jobs_class_create(struct jobs_if *jif, int pri, int64_t adc, int64_t rdc,
268 if ((cl = jif->jif_classes[pri]) != NULL) {
290 jif->jif_classes[pri] = cl;
293 jif->jif_default = cl;
365 if (pri > jif->jif_maxpri)
366 jif->jif_maxpri = pri;
367 cl->cl_jif = jif;
376 for (i = 0; i <= jif->jif_maxpri; i++) {
377 scan1 = jif->jif_classes[i];
382 scan2 = jif->jif_classes[j];
392 for (i = 0; i <= jif->jif_maxpri; i++) {
393 scan1 = jif->jif_classes[i];
397 for (j = 0; j <= jif->jif_maxpri; j++) {
398 scan2 = jif->jif_classes[j];
409 for (i = 0; i <= jif->jif_maxpri; i++) {
410 scan1 = jif->jif_classes[i];
415 scan2 = jif->jif_classes[j];
425 for (i = 0; i <= jif->jif_maxpri; i++) {
426 scan1 = jif->jif_classes[i];
430 for (j = 0; j <= jif->jif_maxpri; j++) {
431 scan2 = jif->jif_classes[j];
458 struct jobs_if *jif;
469 jif = cl->cl_jif;
470 jif->jif_classes[cl->cl_pri] = NULL;
471 if (jif->jif_maxpri == cl->cl_pri) {
473 if (jif->jif_classes[pri] != NULL) {
474 jif->jif_maxpri = pri;
478 jif->jif_maxpri = -1;
495 struct jobs_if *jif = (struct jobs_if *)ifq->altq_disc;
505 jif->total_enqueued++;
514 for (pri=0; pri <= jif->jif_maxpri; pri++) {
515 scan = jif->jif_classes[pri];
537 cl = jif->jif_default;
548 for (pri=0; pri <= jif->jif_maxpri; pri++) {
549 scan = jif->jif_classes[pri];
579 for (pri=0; pri <= jif->jif_maxpri; pri++) {
580 scan = jif->jif_classes[pri];
601 if (jobs_addq(cl, m, jif) != 0)
608 enforce_wc(jif);
610 if (!min_rates_adc(jif)) {
611 delta_rate = assign_rate_drops_adc(jif);
613 for (pri = 0; pri <= jif->jif_maxpri; pri++)
614 if ((cl = jif->jif_classes[pri]) != NULL &&
621 delta_rate = adjust_rates_rdc(jif);
624 for (pri = 0; pri <= jif->jif_maxpri; pri++)
625 if ((cl = jif->jif_classes[pri]) != NULL &&
633 if (cycles > jif->wc_cycles_enqueue)
634 jif->wc_cycles_enqueue=cycles;
635 if (cycles < jif->bc_cycles_enqueue)
636 jif->bc_cycles_enqueue=cycles;
638 jif->avg_cycles_enqueue += cycles;
639 jif->avg_cycles2_enqueue += cycles * cycles;
657 struct jobs_if *jif = (struct jobs_if *)ifq->altq_disc;
667 jif->total_dequeued++;
674 for (pri=0; pri <= jif->jif_maxpri; pri++) {
675 cl = jif->jif_classes[pri];
682 if (cycles > jif->wc_cycles_dequeue)
683 jif->wc_cycles_dequeue = cycles;
684 if (cycles < jif->bc_cycles_dequeue)
685 jif->bc_cycles_dequeue = cycles;
687 jif->avg_cycles_dequeue += cycles;
688 jif->avg_cycles2_dequeue += cycles * cycles;
701 for (pri=0; pri <= jif->jif_maxpri; pri++) {
702 if (((cl = jif->jif_classes[pri]) != NULL)
717 cl = jif->jif_classes[svc_class];
724 if (cycles > jif->wc_cycles_dequeue)
725 jif->wc_cycles_dequeue = cycles;
726 if (cycles < jif->bc_cycles_dequeue)
727 jif->bc_cycles_dequeue = cycles;
729 jif->avg_cycles_dequeue += cycles;
730 jif->avg_cycles2_dequeue += cycles * cycles;
760 if (cycles > jif->wc_cycles_dequeue)
761 jif->wc_cycles_dequeue = cycles;
762 if (cycles < jif->bc_cycles_dequeue)
763 jif->bc_cycles_dequeue = cycles;
765 jif->avg_cycles_dequeue += cycles;
766 jif->avg_cycles2_dequeue += cycles * cycles;
772 jobs_addq(struct jobs_class *cl, struct mbuf *m, struct jobs_if *jif)
785 if (jif->jif_separate && qlen(cl->cl_q) >= jif->jif_qlimit) {
801 } else if (!jif->jif_separate
802 && jif->jif_ifq->ifq_len >= jif->jif_qlimit) {
841 victim = pick_dropped_rlc(jif);
853 victim_class = jif->jif_classes[victim];
882 victim = pick_dropped_rlc(jif);
891 victim_class = jif->jif_classes[victim];
1022 enforce_wc(struct jobs_if *jif)
1033 for (pri = 0; pri <= jif->jif_maxpri; pri++) {
1034 cl = jif->jif_classes[pri];
1047 for (pri = 0; pri <= jif->jif_maxpri; pri++) {
1048 cl = jif->jif_classes[pri];
1055 cl->service_rate = (int64_t)(bps_to_internal((u_int64_t)jif->jif_bandwidth)/active_classes);
1074 adjust_rates_rdc(struct jobs_if *jif)
1098 upper_bound = (int64_t)jif->jif_bandwidth;
1100 for (i = 0; i <= jif->jif_maxpri; i++) {
1101 cl = jif->jif_classes[i];
1114 result = malloc((jif->jif_maxpri+1)*sizeof(int64_t),
1120 for (i = 0; i <= jif->jif_maxpri; i++)
1131 for (i = 0; i <= jif->jif_maxpri; i++) {
1132 cl = jif->jif_classes[i];
1142 for (i = 0; i <= jif->jif_maxpri; i++) {
1143 cl = jif->jif_classes[i];
1158 error = update_error(jif);
1168 for (i = 0; i <= jif->jif_maxpri; i++) {
1169 cl = jif->jif_classes[i];
1182 for (i = 0; i <= jif->jif_maxpri; i++) {
1183 cl = jif->jif_classes[i];
1195 for (i = 0; i <= jif->jif_maxpri; i++) {
1196 cl = jif->jif_classes[i];
1202 for (j = 0; j <= jif->jif_maxpri; j++) {
1203 cl = jif->jif_classes[j];
1222 cl = jif->jif_classes[i];
1236 for (i = jif->jif_maxpri; (i >= 0 && credit < 0); i--) {
1237 cl = jif->jif_classes[i];
1267 assign_rate_drops_adc(struct jobs_if *jif)
1287 result = malloc((jif->jif_maxpri+1)*sizeof(int64_t), M_DEVBUF, M_WAITOK);
1290 c = malloc((jif->jif_maxpri+1)*sizeof(u_int64_t), M_DEVBUF, M_WAITOK);
1293 n = malloc((jif->jif_maxpri+1)*sizeof(u_int64_t), M_DEVBUF, M_WAITOK);
1296 k = malloc((jif->jif_maxpri+1)*sizeof(u_int64_t), M_DEVBUF, M_WAITOK);
1299 available = malloc((jif->jif_maxpri+1)*sizeof(int64_t), M_DEVBUF, M_WAITOK);
1303 for (i = 0; i <= jif->jif_maxpri; i++)
1308 for (i = 0; i <= jif->jif_maxpri; i++) {
1309 cl = jif->jif_classes[i];
1345 available[i] = -((int64_t)bps_to_internal((u_int64_t)jif->jif_bandwidth));
1386 lowest = jif->jif_maxpri;
1388 while (highest < jif->jif_maxpri+1 && available[highest] >= 0)
1393 while (highest != jif->jif_maxpri+1 && lowest != -1) {
1405 while (highest < jif->jif_maxpri+1
1416 while (highest < jif->jif_maxpri+1
1437 for (i = 0; i <= jif->jif_maxpri; i++) {
1438 cl = jif->jif_classes[i];
1453 if (highest != jif->jif_maxpri+1) {
1455 for (i = 0; i <= jif->jif_maxpri; i++) {
1456 cl = jif->jif_classes[i];
1503 for (i = 0; i <= jif->jif_maxpri; i++) {
1504 cl = jif->jif_classes[i];
1515 cl->min_rate_adc = (int64_t)bps_to_internal((u_int64_t)jif->jif_bandwidth);
1547 update_error(struct jobs_if *jif)
1557 error = malloc(sizeof(int64_t)*(jif->jif_maxpri+1), M_DEVBUF,
1566 for (i = 0; i <= jif->jif_maxpri; i++) {
1567 cl = jif->jif_classes[i];
1573 delays[i] = proj_delay(jif, i);
1585 for (i = 0; i <= jif->jif_maxpri; i++) {
1586 cl = jif->jif_classes[i];
1611 min_rates_adc(struct jobs_if *jif)
1620 for (i = 0; i <= jif->jif_maxpri; i++) {
1621 cl = jif->jif_classes[i];
1625 remaining_time = cl->cl_adc - proj_delay(jif, i);
1636 cl->min_rate_adc = (int64_t)bps_to_internal((u_int64_t)jif->jif_bandwidth);
1660 proj_delay(struct jobs_if *jif, int i)
1667 cl = jif->jif_classes[i];
1682 pick_dropped_rlc(struct jobs_if *jif)
1695 loss_error = malloc(sizeof(int64_t)*(jif->jif_maxpri+1),
1706 for (i = 0; i <= jif->jif_maxpri; i++) {
1707 cl = jif->jif_classes[i];
1729 for (i = 0; i <= jif->jif_maxpri; i++) {
1730 cl = jif->jif_classes[i];
1742 for (i = 0; i <= jif->jif_maxpri; i++) {
1743 cl = jif->jif_classes[i];
1763 cl = jif->jif_classes[class_dropped];
1788 for (i = jif->jif_maxpri; i >= 0; i--) {
1789 cl = jif->jif_classes[i];
1834 struct jobs_if *jif;
1836 while ((jif = jif_list) != NULL) {
1838 if (ALTQ_IS_ENABLED(jif->jif_ifq))
1839 altq_disable(jif->jif_ifq);
1841 int error = altq_detach(jif->jif_ifq);
1849 jobs_detach(jif);
1859 struct jobs_if *jif;
1889 if ((jif = altq_lookup(ifacep->jobs_ifname,
1897 if (jif->jif_default == NULL) {
1904 error = altq_enable(jif->jif_ifq);
1908 error = altq_disable(jif->jif_ifq);
1912 jobs_clear_interface(jif);
1951 struct jobs_if *jif;
1957 if ((jif = jobs_attach(&ifp->if_snd, ap->bandwidth, ap->qlimit, ap->separate)) == NULL)
1963 if ((error = altq_attach(&ifp->if_snd, ALTQT_JOBS, jif,
1965 &jif->jif_classifier, acc_classify)) != 0)
1966 jobs_detach(jif);
1974 struct jobs_if *jif;
1977 if ((jif = altq_lookup(ap->jobs_ifname, ALTQT_JOBS)) == NULL)
1980 if (ALTQ_IS_ENABLED(jif->jif_ifq))
1981 altq_disable(jif->jif_ifq);
1983 if ((error = altq_detach(jif->jif_ifq)))
1986 jobs_detach(jif);
1993 struct jobs_if *jif;
1996 if ((jif = altq_lookup(ap->iface.jobs_ifname, ALTQT_JOBS)) == NULL)
2002 if ((cl = jobs_class_create(jif, ap->pri,
2016 struct jobs_if *jif;
2019 if ((jif = altq_lookup(ap->iface.jobs_ifname, ALTQT_JOBS)) == NULL)
2022 if ((cl = clh_to_clp(jif, ap->class_handle)) == NULL)
2031 struct jobs_if *jif;
2034 if ((jif = altq_lookup(ap->iface.jobs_ifname, ALTQT_JOBS)) == NULL)
2040 if ((cl = clh_to_clp(jif, ap->class_handle)) == NULL)
2046 if (jif->jif_classes[ap->pri] != cl) {
2047 if (jif->jif_classes[ap->pri] != NULL)
2049 jif->jif_classes[cl->cl_pri] = NULL;
2050 jif->jif_classes[ap->pri] = cl;
2055 if ((cl = jobs_class_create(jif, ap->pri,
2066 struct jobs_if *jif;
2069 if ((jif = altq_lookup(ap->iface.jobs_ifname, ALTQT_JOBS)) == NULL)
2072 if ((cl = clh_to_clp(jif, ap->class_handle)) == NULL)
2075 return acc_add_filter(&jif->jif_classifier, &ap->filter,
2082 struct jobs_if *jif;
2084 if ((jif = altq_lookup(ap->iface.jobs_ifname, ALTQT_JOBS)) == NULL)
2087 return acc_delete_filter(&jif->jif_classifier, ap->filter_handle);
2093 struct jobs_if *jif;
2098 if ((jif = altq_lookup(ap->iface.jobs_ifname, ALTQT_JOBS)) == NULL)
2101 ap->maxpri = jif->jif_maxpri;
2105 for (pri = 0; pri <= jif->jif_maxpri; pri++) {
2106 cl = jif->jif_classes[pri];
2160 clh_to_clp(struct jobs_if *jif, u_long chandle)
2172 if (cl == NULL || cl->cl_handle != chandle || cl->cl_jif != jif)