Lines Matching defs:flowacct_data

105 	flowacct_data_t *flowacct_data = (flowacct_data_t *)arg;
107 ASSERT((fl_stat != NULL) && (flowacct_data != 0));
109 (void) ipp_stat_named_op(&fl_stat->nbytes, &flowacct_data->nbytes, rw);
110 (void) ipp_stat_named_op(&fl_stat->tbytes, &flowacct_data->tbytes, rw);
111 (void) ipp_stat_named_op(&fl_stat->nflows, &flowacct_data->nflows, rw);
112 (void) ipp_stat_named_op(&fl_stat->usedmem, &flowacct_data->usedmem,
114 (void) ipp_stat_named_op(&fl_stat->npackets, &flowacct_data->npackets,
116 (void) ipp_stat_named_op(&fl_stat->epackets, &flowacct_data->epackets,
123 global_statinit(ipp_action_id_t aid, flowacct_data_t *flowacct_data)
129 FLOWACCT_STATS_COUNT, update_flowacct_kstats, flowacct_data,
130 &flowacct_data->stats)) != 0) {
135 flacct_stat = (flowacct_stat_t *)(flowacct_data->stats)->ipps_data;
138 if ((err = ipp_stat_named_init(flowacct_data->stats, "bytes_in_tbl",
144 if ((err = ipp_stat_named_init(flowacct_data->stats, "nbytes",
150 if ((err = ipp_stat_named_init(flowacct_data->stats, "npackets",
156 if ((err = ipp_stat_named_init(flowacct_data->stats, "usedmem",
162 if ((err = ipp_stat_named_init(flowacct_data->stats, "flows_in_tbl",
168 if ((err = ipp_stat_named_init(flowacct_data->stats, "epackets",
174 ipp_stat_install(flowacct_data->stats);
183 flowacct_data_t *flowacct_data;
194 if ((flowacct_data = kmem_zalloc(FLOWACCT_DATA_SZ, KM_NOSLEEP))
204 kmem_free(flowacct_data, FLOWACCT_DATA_SZ);
209 if ((flowacct_data->next_action = ipp_action_lookup(next_action))
213 kmem_free(flowacct_data, FLOWACCT_DATA_SZ);
217 if ((rc = ipp_action_name(aid, &flowacct_data->act_name)) != 0) {
220 kmem_free(flowacct_data, FLOWACCT_DATA_SZ);
228 flowacct_data->timeout = (uint64_t)timeout * FLOWACCT_MSEC_TO_NSEC;
234 flowacct_data->timer = (uint64_t)timer * FLOWACCT_MSEC_TO_USEC;
237 &flowacct_data->max_limit)) != 0) {
241 kmem_free(flowacct_data, FLOWACCT_DATA_SZ);
247 flowacct_data->global_stats = B_FALSE;
249 flowacct_data->global_stats = (boolean_t)bstats;
250 if (flowacct_data->global_stats) {
251 if ((rc = global_statinit(aid, flowacct_data)) != 0) {
252 kmem_free(flowacct_data, FLOWACCT_DATA_SZ);
261 if ((rc = ipp_action_ref(aid, flowacct_data->next_action,
265 if (flowacct_data->stats != NULL) {
266 ipp_stat_destroy(flowacct_data->stats);
268 kmem_free(flowacct_data, FLOWACCT_DATA_SZ);
273 for (flow_count = 0, head = flowacct_data->flows_tbl;
278 ipp_action_set_ptr(aid, (void *)flowacct_data);
291 flowacct_data_t *flowacct_data;
311 flowacct_data = (flowacct_data_t *)ipp_action_get_ptr(aid);
340 rc = ipp_action_unref(aid, flowacct_data->next_action, flags);
342 flowacct_data->next_action = next_action;
343 kmem_free(flowacct_data->act_name,
344 (strlen(flowacct_data->act_name) + 1));
345 flowacct_data->act_name = act_name;
351 flowacct_data->timeout = (uint64_t)timeout *
357 flowacct_data->timer = (uint64_t)timer * FLOWACCT_MSEC_TO_USEC;
363 flowacct_data->max_limit = max_limit;
372 if (new_val && !flowacct_data->global_stats) {
373 rc = global_statinit(aid, flowacct_data);
375 flowacct_data->global_stats = new_val;
380 } else if (!new_val && flowacct_data->global_stats) {
381 flowacct_data->global_stats = new_val;
382 ipp_stat_destroy(flowacct_data->stats);
391 flowacct_data_t *flowacct_data;
395 flowacct_data = (flowacct_data_t *)ipp_action_get_ptr(aid);
396 ASSERT(flowacct_data != NULL);
398 while (flowacct_data->flow_tid != 0) {
399 timeout_id_t tid = flowacct_data->flow_tid;
400 flowacct_data->flow_tid = 0;
404 if (flowacct_data->stats != NULL) {
405 ipp_stat_destroy(flowacct_data->stats);
409 flowacct_timer(FLOWACCT_PURGE_FLOW, flowacct_data);
411 kmem_free(flowacct_data->act_name, (strlen(flowacct_data->act_name)
415 for (flow_count = 0, head = flowacct_data->flows_tbl;
420 rc = ipp_action_unref(aid, flowacct_data->next_action, flags);
424 kmem_free(flowacct_data, FLOWACCT_DATA_SZ);
431 flowacct_data_t *flowacct_data;
437 flowacct_data = (flowacct_data_t *)ipp_action_get_ptr(aid);
438 ASSERT(flowacct_data != NULL);
441 if ((rc = flowacct_process(&mp, flowacct_data)) != 0) {
445 return (ipp_packet_next(packet, flowacct_data->next_action));
455 flowacct_data_t *flowacct_data;
460 flowacct_data = (flowacct_data_t *)ipp_action_get_ptr(aid);
461 ASSERT(flowacct_data != NULL);
471 if ((rc = ipp_action_name(flowacct_data->next_action,
498 param = flowacct_data->timer / FLOWACCT_MSEC_TO_USEC;
507 flowacct_data->max_limit)) != 0) {
514 param = flowacct_data->timeout / FLOWACCT_MSEC_TO_NSEC;
524 (uint32_t)flowacct_data->global_stats)) != 0) {