Lines Matching refs:flow

290 	flow_t *flow;  in flowacct_flow_present()  local
293 flow = (flow_t *)hdr->objp; in flowacct_flow_present()
294 if ((flow != NULL) && in flowacct_flow_present()
295 (IN6_ARE_ADDR_EQUAL(&flow->saddr, &header->saddr)) && in flowacct_flow_present()
296 (IN6_ARE_ADDR_EQUAL(&flow->daddr, &header->daddr)) && in flowacct_flow_present()
297 (flow->proto == header->proto) && in flowacct_flow_present()
298 (flow->sport == header->sport) && in flowacct_flow_present()
299 (flow->dport == header->dport)) { in flowacct_flow_present()
300 return (flow); in flowacct_flow_present()
405 flowacct_item_present(flow_t *flow, uint8_t dsfield, pid_t proj_id, uint_t uid) in flowacct_item_present() argument
410 itemhdr = flow->items.head; in flowacct_item_present()
441 flow_t *flow; in flowacct_update_flows_tbl() local
450 flow = flowacct_flow_present(header, index, flowacct_data); in flowacct_update_flows_tbl()
451 if (flow == NULL) { in flowacct_update_flows_tbl()
452 flow = (flow_t *)kmem_zalloc(FLOWACCT_FLOW_SZ, KM_NOSLEEP); in flowacct_update_flows_tbl()
453 if (flow == NULL) { in flowacct_update_flows_tbl()
459 flow->hdr = flowacct_add_obj(fhead, fhead->tail, (void *)flow); in flowacct_update_flows_tbl()
460 if (flow->hdr == NULL) { in flowacct_update_flows_tbl()
462 kmem_free(flow, FLOWACCT_FLOW_SZ); in flowacct_update_flows_tbl()
468 flow->type = FLOWACCT_FLOW; in flowacct_update_flows_tbl()
469 flow->isv4 = header->isv4; in flowacct_update_flows_tbl()
470 bcopy(header->saddr.s6_addr32, flow->saddr.s6_addr32, in flowacct_update_flows_tbl()
472 bcopy(header->daddr.s6_addr32, flow->daddr.s6_addr32, in flowacct_update_flows_tbl()
474 flow->proto = header->proto; in flowacct_update_flows_tbl()
475 flow->sport = header->sport; in flowacct_update_flows_tbl()
476 flow->dport = header->dport; in flowacct_update_flows_tbl()
477 flow->back_ptr = fhead; in flowacct_update_flows_tbl()
485 flow->inuse = B_TRUE; in flowacct_update_flows_tbl()
488 ihead = &flow->items; in flowacct_update_flows_tbl()
489 item = flowacct_item_present(flow, header->dsfield, header->projid, in flowacct_update_flows_tbl()
518 flow->inuse = B_FALSE; in flowacct_update_flows_tbl()
521 flowacct_del_obj(fhead, flow->hdr, in flowacct_update_flows_tbl()
532 flow->inuse = B_FALSE; in flowacct_update_flows_tbl()
535 flowacct_del_obj(fhead, flow->hdr, in flowacct_update_flows_tbl()
546 flow->inuse = B_FALSE; in flowacct_update_flows_tbl()
549 flowacct_del_obj(fhead, flow->hdr, in flowacct_update_flows_tbl()
578 flow->hdr->last_seen = item->hdr->last_seen = now; in flowacct_update_flows_tbl()
591 thead->head = flow->hdr; in flowacct_update_flows_tbl()
592 thead->tail = flow->hdr; in flowacct_update_flows_tbl()
594 thead->tail->timeout_next = flow->hdr; in flowacct_update_flows_tbl()
595 flow->hdr->timeout_prev = thead->tail; in flowacct_update_flows_tbl()
596 thead->tail = flow->hdr; in flowacct_update_flows_tbl()
608 } else if ((flow->hdr->timeout_next != NULL) || in flowacct_update_flows_tbl()
609 (flow->hdr->timeout_prev != NULL)) { in flowacct_update_flows_tbl()
610 if (flow->hdr != thead->tail) { in flowacct_update_flows_tbl()
611 if (flow->hdr == thead->head) { in flowacct_update_flows_tbl()
614 flow->hdr->timeout_next = NULL; in flowacct_update_flows_tbl()
615 thead->tail->timeout_next = flow->hdr; in flowacct_update_flows_tbl()
616 flow->hdr->timeout_prev = thead->tail; in flowacct_update_flows_tbl()
617 thead->tail = flow->hdr; in flowacct_update_flows_tbl()
619 flow->hdr->timeout_prev->timeout_next = in flowacct_update_flows_tbl()
620 flow->hdr->timeout_next; in flowacct_update_flows_tbl()
621 flow->hdr->timeout_next->timeout_prev = in flowacct_update_flows_tbl()
622 flow->hdr->timeout_prev; in flowacct_update_flows_tbl()
623 flow->hdr->timeout_next = NULL; in flowacct_update_flows_tbl()
624 thead->tail->timeout_next = flow->hdr; in flowacct_update_flows_tbl()
625 flow->hdr->timeout_prev = thead->tail; in flowacct_update_flows_tbl()
626 thead->tail = flow->hdr; in flowacct_update_flows_tbl()
635 flow->inuse = B_FALSE; in flowacct_update_flows_tbl()
655 flowacct_timeout_item(flow_t **flow, list_hdr_t **item_hdr) in flowacct_timeout_item() argument
660 flowacct_del_obj(&(*flow)->items, *item_hdr, FLOWACCT_DEL_OBJ); in flowacct_timeout_item()
666 flowacct_create_record(flow_t *flow, list_hdr_t *ithdr) in flowacct_create_record() argument
688 htonl(flow->saddr.s6_addr32[count]); in flowacct_create_record()
690 htonl(flow->daddr.s6_addr32[count]); in flowacct_create_record()
697 tmp_frec->fl_use->fu_sport = htons(flow->sport); in flowacct_create_record()
698 tmp_frec->fl_use->fu_dport = htons(flow->dport); in flowacct_create_record()
699 tmp_frec->fl_use->fu_protocol = flow->proto; in flowacct_create_record()
700 tmp_frec->fl_use->fu_isv4 = flow->isv4; in flowacct_create_record()
732 flow_t *flow; in flowacct_timer() local
763 flow = (flow_t *)fl_hdr->objp; in flowacct_timer()
764 head = flow->back_ptr; in flowacct_timer()
781 ithdr = flow->items.head; in flowacct_timer()
788 tmp_frec = flowacct_create_record(flow, ithdr); in flowacct_timer()
823 flowacct_timeout_item(&flow, &ithdr); in flowacct_timer()
827 ASSERT(flow->items.nbr_items == 0); in flowacct_timer()
834 if (!flow->inuse) { in flowacct_timer()