Lines Matching refs:pipe

423 transmit_event(struct dn_pipe *pipe)  in transmit_event()  argument
427 while ((pkt = TAILQ_FIRST(&pipe->p_queue)) && in transmit_event()
429 TAILQ_REMOVE(&pipe->p_queue, pkt, dn_next); in transmit_event()
436 if ((pkt = TAILQ_FIRST(&pipe->p_queue)) != NULL) { in transmit_event()
441 heap_insert(&extract_heap, pkt->output_time, pipe); in transmit_event()
482 struct dn_pipe *p = q->fs->pipe; in ready_event()
661 dn_expire_pipe_cb(struct dn_pipe *pipe, void *dummy __unused) in dn_expire_pipe_cb() argument
663 if (pipe->idle_heap.elements > 0 && in dn_expire_pipe_cb()
664 DN_KEY_LT(pipe->idle_heap.p[0].key, pipe->V)) { in dn_expire_pipe_cb()
665 struct dn_flow_queue *q = pipe->idle_heap.p[0].object; in dn_expire_pipe_cb()
667 heap_extract(&pipe->idle_heap, NULL); in dn_expire_pipe_cb()
669 pipe->sum -= q->fs->weight; in dn_expire_pipe_cb()
971 struct dn_pipe *pipe, *pipe_next; in dn_iterate_pipe() local
973 LIST_FOREACH_MUTABLE(pipe, pipe_hdr, p_link, pipe_next) in dn_iterate_pipe()
974 func(pipe, arg); in dn_iterate_pipe()
1057 struct dn_pipe *pipe; in dummynet_io() local
1075 pipe = fs->pipe; in dummynet_io()
1076 if (pipe == NULL) { /* Must be a queue, try find a matching pipe */ in dummynet_io()
1077 pipe = dn_find_pipe(fs->parent_nr); in dummynet_io()
1078 if (pipe != NULL) { in dummynet_io()
1079 fs->pipe = pipe; in dummynet_io()
1129 if (pipe->bandwidth) in dummynet_io()
1130 t = SET_TICKS(pkt, q, pipe); in dummynet_io()
1149 q->S = pipe->V; in dummynet_io()
1150 pipe->sum += fs->weight; /* Add weight of new queue */ in dummynet_io()
1152 heap_extract(&pipe->idle_heap, q); in dummynet_io()
1153 q->S = MAX64(q->F, pipe->V); in dummynet_io()
1157 if (pipe->not_eligible_heap.elements == 0 && in dummynet_io()
1158 pipe->scheduler_heap.elements == 0) in dummynet_io()
1159 pipe->V = MAX64(q->S, pipe->V); in dummynet_io()
1176 if (DN_KEY_GT(q->S, pipe->V)) { /* Not eligible */ in dummynet_io()
1177 if (pipe->scheduler_heap.elements == 0) in dummynet_io()
1179 heap_insert(&pipe->not_eligible_heap, q->S, q); in dummynet_io()
1181 heap_insert(&pipe->scheduler_heap, q->F, q); in dummynet_io()
1182 if (pipe->numbytes >= 0) { /* Pipe is idle */ in dummynet_io()
1183 if (pipe->scheduler_heap.elements != 1) in dummynet_io()
1186 pipe->pipe_nr, (int)(q->F >> MY_M)); in dummynet_io()
1187 pipe->sched_time = curr_time; in dummynet_io()
1188 ready_event_wfq(pipe); in dummynet_io()
1255 if (fs->pipe == NULL || (fs->pipe && fs != &fs->pipe->fs)) in purge_flow_set()
1266 purge_pipe(struct dn_pipe *pipe) in purge_pipe() argument
1270 purge_flow_set(&pipe->fs, 1); in purge_pipe()
1272 while ((pkt = TAILQ_FIRST(&pipe->p_queue)) != NULL) { in purge_pipe()
1273 TAILQ_REMOVE(&pipe->p_queue, pkt, dn_next); in purge_pipe()
1277 heap_free(&pipe->scheduler_heap); in purge_pipe()
1278 heap_free(&pipe->not_eligible_heap); in purge_pipe()
1279 heap_free(&pipe->idle_heap); in purge_pipe()
1497 x->fs.pipe = x; in config_pipe()
1621 struct dn_pipe *pipe = pipe0; in dn_unref_pipe_cb() local
1623 if (fs->pipe == pipe) { in dn_unref_pipe_cb()
1625 pipe->pipe_nr, fs->fs_nr); in dn_unref_pipe_cb()
1626 fs->pipe = NULL; in dn_unref_pipe_cb()
1679 if ((p = fs->pipe) != NULL) { in delete_pipe()
1780 dn_calc_pipe_size_cb(struct dn_pipe *pipe, void *sz) in dn_calc_pipe_size_cb() argument
1785 pipe->fs.rq_elements * sizeof(struct dn_ioc_flowqueue); in dn_calc_pipe_size_cb()
1798 dn_copyout_pipe_cb(struct dn_pipe *pipe, void *bp0) in dn_copyout_pipe_cb() argument
1806 dn_copy_flowset(&pipe->fs, &ioc_pipe->fs, DN_IS_PIPE); in dn_copyout_pipe_cb()
1811 ioc_pipe->bandwidth = pipe->bandwidth; in dn_copyout_pipe_cb()
1812 ioc_pipe->pipe_nr = pipe->pipe_nr; in dn_copyout_pipe_cb()
1813 ioc_pipe->V = pipe->V; in dn_copyout_pipe_cb()
1815 ioc_pipe->delay = (pipe->delay * 1000) / dn_hz; in dn_copyout_pipe_cb()
1821 *bp = dn_copy_flowqueues(&pipe->fs, *bp); in dn_copyout_pipe_cb()