Lines Matching refs:nvl

61 pfctl_do_ioctl(int dev, uint cmd, size_t size, nvlist_t **nvl)  in pfctl_do_ioctl()  argument
68 data = nvlist_pack(*nvl, &nvlen); in pfctl_do_ioctl()
91 nvlist_destroy(*nvl); in pfctl_do_ioctl()
92 *nvl = NULL; in pfctl_do_ioctl()
95 *nvl = nvlist_unpack(nv.data, nv.len, 0); in pfctl_do_ioctl()
96 if (*nvl == NULL) { in pfctl_do_ioctl()
112 pf_nvuint_8_array(const nvlist_t *nvl, const char *name, size_t maxelems, in pf_nvuint_8_array() argument
118 tmp = nvlist_get_number_array(nvl, name, &elems); in pf_nvuint_8_array()
129 pf_nvuint_16_array(const nvlist_t *nvl, const char *name, size_t maxelems, in pf_nvuint_16_array() argument
135 tmp = nvlist_get_number_array(nvl, name, &elems); in pf_nvuint_16_array()
146 pf_nvuint_32_array(const nvlist_t *nvl, const char *name, size_t maxelems, in pf_nvuint_32_array() argument
152 tmp = nvlist_get_number_array(nvl, name, &elems); in pf_nvuint_32_array()
162 pf_nvuint_64_array(const nvlist_t *nvl, const char *name, size_t maxelems, in pf_nvuint_64_array() argument
168 tmp = nvlist_get_number_array(nvl, name, &elems); in pf_nvuint_64_array()
179 _pfctl_get_status_counters(const nvlist_t *nvl, in _pfctl_get_status_counters() argument
186 ids = nvlist_get_number_array(nvl, "ids", &id_len); in _pfctl_get_status_counters()
187 counts = nvlist_get_number_array(nvl, "counters", &counter_len); in _pfctl_get_status_counters()
188 names = nvlist_get_string_array(nvl, "names", &names_len); in _pfctl_get_status_counters()
213 nvlist_t *nvl; in pfctl_get_status() local
221 nvl = nvlist_create(0); in pfctl_get_status()
223 if (pfctl_do_ioctl(dev, DIOCGETSTATUSNV, 4096, &nvl)) { in pfctl_get_status()
224 nvlist_destroy(nvl); in pfctl_get_status()
229 status->running = nvlist_get_bool(nvl, "running"); in pfctl_get_status()
230 status->since = nvlist_get_number(nvl, "since"); in pfctl_get_status()
231 status->debug = nvlist_get_number(nvl, "debug"); in pfctl_get_status()
232 status->hostid = ntohl(nvlist_get_number(nvl, "hostid")); in pfctl_get_status()
233 status->states = nvlist_get_number(nvl, "states"); in pfctl_get_status()
234 status->src_nodes = nvlist_get_number(nvl, "src_nodes"); in pfctl_get_status()
235 status->syncookies_active = nvlist_get_bool(nvl, "syncookies_active"); in pfctl_get_status()
236 status->reass = nvlist_get_number(nvl, "reass"); in pfctl_get_status()
238 strlcpy(status->ifname, nvlist_get_string(nvl, "ifname"), in pfctl_get_status()
240 chksum = nvlist_get_binary(nvl, "chksum", &len); in pfctl_get_status()
244 _pfctl_get_status_counters(nvlist_get_nvlist(nvl, "counters"), in pfctl_get_status()
246 _pfctl_get_status_counters(nvlist_get_nvlist(nvl, "lcounters"), in pfctl_get_status()
248 _pfctl_get_status_counters(nvlist_get_nvlist(nvl, "fcounters"), in pfctl_get_status()
250 _pfctl_get_status_counters(nvlist_get_nvlist(nvl, "scounters"), in pfctl_get_status()
253 pf_nvuint_64_array(nvl, "pcounters", 2 * 2 * 2, in pfctl_get_status()
255 pf_nvuint_64_array(nvl, "bcounters", 2 * 2, in pfctl_get_status()
258 nvlist_destroy(nvl); in pfctl_get_status()
332 nvlist_t *nvl = nvlist_create(0); in pfctl_nv_add_addr() local
334 nvlist_add_binary(nvl, "addr", addr, sizeof(*addr)); in pfctl_nv_add_addr()
336 nvlist_add_nvlist(nvparent, name, nvl); in pfctl_nv_add_addr()
337 nvlist_destroy(nvl); in pfctl_nv_add_addr()
341 pf_nvaddr_to_addr(const nvlist_t *nvl, struct pf_addr *addr) in pf_nvaddr_to_addr() argument
346 data = nvlist_get_binary(nvl, "addr", &len); in pf_nvaddr_to_addr()
355 nvlist_t *nvl = nvlist_create(0); in pfctl_nv_add_addr_wrap() local
357 nvlist_add_number(nvl, "type", addr->type); in pfctl_nv_add_addr_wrap()
358 nvlist_add_number(nvl, "iflags", addr->iflags); in pfctl_nv_add_addr_wrap()
360 nvlist_add_string(nvl, "ifname", addr->v.ifname); in pfctl_nv_add_addr_wrap()
362 nvlist_add_string(nvl, "tblname", addr->v.tblname); in pfctl_nv_add_addr_wrap()
363 pfctl_nv_add_addr(nvl, "addr", &addr->v.a.addr); in pfctl_nv_add_addr_wrap()
364 pfctl_nv_add_addr(nvl, "mask", &addr->v.a.mask); in pfctl_nv_add_addr_wrap()
366 nvlist_add_nvlist(nvparent, name, nvl); in pfctl_nv_add_addr_wrap()
367 nvlist_destroy(nvl); in pfctl_nv_add_addr_wrap()
371 pf_nvaddr_wrap_to_addr_wrap(const nvlist_t *nvl, struct pf_addr_wrap *addr) in pf_nvaddr_wrap_to_addr_wrap() argument
375 addr->type = nvlist_get_number(nvl, "type"); in pf_nvaddr_wrap_to_addr_wrap()
376 addr->iflags = nvlist_get_number(nvl, "iflags"); in pf_nvaddr_wrap_to_addr_wrap()
378 strlcpy(addr->v.ifname, nvlist_get_string(nvl, "ifname"), in pf_nvaddr_wrap_to_addr_wrap()
380 addr->p.dyncnt = nvlist_get_number(nvl, "dyncnt"); in pf_nvaddr_wrap_to_addr_wrap()
383 strlcpy(addr->v.tblname, nvlist_get_string(nvl, "tblname"), in pf_nvaddr_wrap_to_addr_wrap()
385 addr->p.tblcnt = nvlist_get_number(nvl, "tblcnt"); in pf_nvaddr_wrap_to_addr_wrap()
388 pf_nvaddr_to_addr(nvlist_get_nvlist(nvl, "addr"), &addr->v.a.addr); in pf_nvaddr_wrap_to_addr_wrap()
389 pf_nvaddr_to_addr(nvlist_get_nvlist(nvl, "mask"), &addr->v.a.mask); in pf_nvaddr_wrap_to_addr_wrap()
397 nvlist_t *nvl = nvlist_create(0); in pfctl_nv_add_rule_addr() local
399 pfctl_nv_add_addr_wrap(nvl, "addr", &addr->addr); in pfctl_nv_add_rule_addr()
402 nvlist_add_number_array(nvl, "port", ports, 2); in pfctl_nv_add_rule_addr()
403 nvlist_add_number(nvl, "neg", addr->neg); in pfctl_nv_add_rule_addr()
404 nvlist_add_number(nvl, "port_op", addr->port_op); in pfctl_nv_add_rule_addr()
406 nvlist_add_nvlist(nvparent, name, nvl); in pfctl_nv_add_rule_addr()
407 nvlist_destroy(nvl); in pfctl_nv_add_rule_addr()
411 pf_nvrule_addr_to_rule_addr(const nvlist_t *nvl, struct pf_rule_addr *addr) in pf_nvrule_addr_to_rule_addr() argument
413 pf_nvaddr_wrap_to_addr_wrap(nvlist_get_nvlist(nvl, "addr"), &addr->addr); in pf_nvrule_addr_to_rule_addr()
415 pf_nvuint_16_array(nvl, "port", 2, addr->port, NULL); in pf_nvrule_addr_to_rule_addr()
416 addr->neg = nvlist_get_number(nvl, "neg"); in pf_nvrule_addr_to_rule_addr()
417 addr->port_op = nvlist_get_number(nvl, "port_op"); in pf_nvrule_addr_to_rule_addr()
424 nvlist_t *nvl = nvlist_create(0); in pfctl_nv_add_mape() local
426 nvlist_add_number(nvl, "offset", mape->offset); in pfctl_nv_add_mape()
427 nvlist_add_number(nvl, "psidlen", mape->psidlen); in pfctl_nv_add_mape()
428 nvlist_add_number(nvl, "psid", mape->psid); in pfctl_nv_add_mape()
429 nvlist_add_nvlist(nvparent, name, nvl); in pfctl_nv_add_mape()
430 nvlist_destroy(nvl); in pfctl_nv_add_mape()
438 nvlist_t *nvl = nvlist_create(0); in pfctl_nv_add_pool() local
440 nvlist_add_binary(nvl, "key", &pool->key, sizeof(pool->key)); in pfctl_nv_add_pool()
441 pfctl_nv_add_addr(nvl, "counter", &pool->counter); in pfctl_nv_add_pool()
442 nvlist_add_number(nvl, "tblidx", pool->tblidx); in pfctl_nv_add_pool()
446 nvlist_add_number_array(nvl, "proxy_port", ports, 2); in pfctl_nv_add_pool()
447 nvlist_add_number(nvl, "opts", pool->opts); in pfctl_nv_add_pool()
448 pfctl_nv_add_mape(nvl, "mape", &pool->mape); in pfctl_nv_add_pool()
450 nvlist_add_nvlist(nvparent, name, nvl); in pfctl_nv_add_pool()
451 nvlist_destroy(nvl); in pfctl_nv_add_pool()
455 pf_nvmape_to_mape(const nvlist_t *nvl, struct pf_mape_portset *mape) in pf_nvmape_to_mape() argument
457 mape->offset = nvlist_get_number(nvl, "offset"); in pf_nvmape_to_mape()
458 mape->psidlen = nvlist_get_number(nvl, "psidlen"); in pf_nvmape_to_mape()
459 mape->psid = nvlist_get_number(nvl, "psid"); in pf_nvmape_to_mape()
463 pf_nvpool_to_pool(const nvlist_t *nvl, struct pfctl_pool *pool) in pf_nvpool_to_pool() argument
468 data = nvlist_get_binary(nvl, "key", &len); in pf_nvpool_to_pool()
472 pf_nvaddr_to_addr(nvlist_get_nvlist(nvl, "counter"), &pool->counter); in pf_nvpool_to_pool()
474 pool->tblidx = nvlist_get_number(nvl, "tblidx"); in pf_nvpool_to_pool()
475 pf_nvuint_16_array(nvl, "proxy_port", 2, pool->proxy_port, NULL); in pf_nvpool_to_pool()
476 pool->opts = nvlist_get_number(nvl, "opts"); in pf_nvpool_to_pool()
478 if (nvlist_exists_nvlist(nvl, "mape")) in pf_nvpool_to_pool()
479 pf_nvmape_to_mape(nvlist_get_nvlist(nvl, "mape"), &pool->mape); in pf_nvpool_to_pool()
487 nvlist_t *nvl = nvlist_create(0); in pfctl_nv_add_uid() local
491 nvlist_add_number_array(nvl, "uid", uids, 2); in pfctl_nv_add_uid()
492 nvlist_add_number(nvl, "op", uid->op); in pfctl_nv_add_uid()
494 nvlist_add_nvlist(nvparent, name, nvl); in pfctl_nv_add_uid()
495 nvlist_destroy(nvl); in pfctl_nv_add_uid()
499 pf_nvrule_uid_to_rule_uid(const nvlist_t *nvl, struct pf_rule_uid *uid) in pf_nvrule_uid_to_rule_uid() argument
501 pf_nvuint_32_array(nvl, "uid", 2, uid->uid, NULL); in pf_nvrule_uid_to_rule_uid()
502 uid->op = nvlist_get_number(nvl, "op"); in pf_nvrule_uid_to_rule_uid()
509 nvlist_t *nvl = nvlist_create(0); in pfctl_nv_add_divert() local
511 pfctl_nv_add_addr(nvl, "addr", &r->divert.addr); in pfctl_nv_add_divert()
512 nvlist_add_number(nvl, "port", r->divert.port); in pfctl_nv_add_divert()
514 nvlist_add_nvlist(nvparent, name, nvl); in pfctl_nv_add_divert()
515 nvlist_destroy(nvl); in pfctl_nv_add_divert()
519 pf_nvdivert_to_divert(const nvlist_t *nvl, struct pfctl_rule *rule) in pf_nvdivert_to_divert() argument
521 pf_nvaddr_to_addr(nvlist_get_nvlist(nvl, "addr"), &rule->divert.addr); in pf_nvdivert_to_divert()
522 rule->divert.port = nvlist_get_number(nvl, "port"); in pf_nvdivert_to_divert()
526 pf_nvrule_to_rule(const nvlist_t *nvl, struct pfctl_rule *rule) in pf_nvrule_to_rule() argument
532 rule->nr = nvlist_get_number(nvl, "nr"); in pf_nvrule_to_rule()
534 pf_nvrule_addr_to_rule_addr(nvlist_get_nvlist(nvl, "src"), &rule->src); in pf_nvrule_to_rule()
535 pf_nvrule_addr_to_rule_addr(nvlist_get_nvlist(nvl, "dst"), &rule->dst); in pf_nvrule_to_rule()
537 skip = nvlist_get_number_array(nvl, "skip", &skipcount); in pf_nvrule_to_rule()
543 labels = nvlist_get_string_array(nvl, "labels", &labelcount); in pf_nvrule_to_rule()
547 rule->ridentifier = nvlist_get_number(nvl, "ridentifier"); in pf_nvrule_to_rule()
548 strlcpy(rule->ifname, nvlist_get_string(nvl, "ifname"), IFNAMSIZ); in pf_nvrule_to_rule()
549 strlcpy(rule->qname, nvlist_get_string(nvl, "qname"), PF_QNAME_SIZE); in pf_nvrule_to_rule()
550 strlcpy(rule->pqname, nvlist_get_string(nvl, "pqname"), PF_QNAME_SIZE); in pf_nvrule_to_rule()
551 strlcpy(rule->tagname, nvlist_get_string(nvl, "tagname"), in pf_nvrule_to_rule()
553 strlcpy(rule->match_tagname, nvlist_get_string(nvl, "match_tagname"), in pf_nvrule_to_rule()
556 strlcpy(rule->overload_tblname, nvlist_get_string(nvl, "overload_tblname"), in pf_nvrule_to_rule()
559 pf_nvpool_to_pool(nvlist_get_nvlist(nvl, "rpool"), &rule->rpool); in pf_nvrule_to_rule()
561 rule->evaluations = nvlist_get_number(nvl, "evaluations"); in pf_nvrule_to_rule()
562 pf_nvuint_64_array(nvl, "packets", 2, rule->packets, NULL); in pf_nvrule_to_rule()
563 pf_nvuint_64_array(nvl, "bytes", 2, rule->bytes, NULL); in pf_nvrule_to_rule()
565 if (nvlist_exists_number(nvl, "timestamp")) { in pf_nvrule_to_rule()
566 rule->last_active_timestamp = nvlist_get_number(nvl, "timestamp"); in pf_nvrule_to_rule()
569 rule->os_fingerprint = nvlist_get_number(nvl, "os_fingerprint"); in pf_nvrule_to_rule()
571 rule->rtableid = nvlist_get_number(nvl, "rtableid"); in pf_nvrule_to_rule()
572 pf_nvuint_32_array(nvl, "timeout", PFTM_MAX, rule->timeout, NULL); in pf_nvrule_to_rule()
573 rule->max_states = nvlist_get_number(nvl, "max_states"); in pf_nvrule_to_rule()
574 rule->max_src_nodes = nvlist_get_number(nvl, "max_src_nodes"); in pf_nvrule_to_rule()
575 rule->max_src_states = nvlist_get_number(nvl, "max_src_states"); in pf_nvrule_to_rule()
576 rule->max_src_conn = nvlist_get_number(nvl, "max_src_conn"); in pf_nvrule_to_rule()
578 nvlist_get_number(nvl, "max_src_conn_rate.limit"); in pf_nvrule_to_rule()
580 nvlist_get_number(nvl, "max_src_conn_rate.seconds"); in pf_nvrule_to_rule()
581 rule->qid = nvlist_get_number(nvl, "qid"); in pf_nvrule_to_rule()
582 rule->pqid = nvlist_get_number(nvl, "pqid"); in pf_nvrule_to_rule()
583 rule->dnpipe = nvlist_get_number(nvl, "dnpipe"); in pf_nvrule_to_rule()
584 rule->dnrpipe = nvlist_get_number(nvl, "dnrpipe"); in pf_nvrule_to_rule()
585 rule->free_flags = nvlist_get_number(nvl, "dnflags"); in pf_nvrule_to_rule()
586 rule->prob = nvlist_get_number(nvl, "prob"); in pf_nvrule_to_rule()
587 rule->cuid = nvlist_get_number(nvl, "cuid"); in pf_nvrule_to_rule()
588 rule->cpid = nvlist_get_number(nvl, "cpid"); in pf_nvrule_to_rule()
590 rule->return_icmp = nvlist_get_number(nvl, "return_icmp"); in pf_nvrule_to_rule()
591 rule->return_icmp6 = nvlist_get_number(nvl, "return_icmp6"); in pf_nvrule_to_rule()
592 rule->max_mss = nvlist_get_number(nvl, "max_mss"); in pf_nvrule_to_rule()
593 rule->scrub_flags = nvlist_get_number(nvl, "scrub_flags"); in pf_nvrule_to_rule()
595 pf_nvrule_uid_to_rule_uid(nvlist_get_nvlist(nvl, "uid"), &rule->uid); in pf_nvrule_to_rule()
596 pf_nvrule_uid_to_rule_uid(nvlist_get_nvlist(nvl, "gid"), in pf_nvrule_to_rule()
599 rule->rule_flag = nvlist_get_number(nvl, "rule_flag"); in pf_nvrule_to_rule()
600 rule->action = nvlist_get_number(nvl, "action"); in pf_nvrule_to_rule()
601 rule->direction = nvlist_get_number(nvl, "direction"); in pf_nvrule_to_rule()
602 rule->log = nvlist_get_number(nvl, "log"); in pf_nvrule_to_rule()
603 rule->logif = nvlist_get_number(nvl, "logif"); in pf_nvrule_to_rule()
604 rule->quick = nvlist_get_number(nvl, "quick"); in pf_nvrule_to_rule()
605 rule->ifnot = nvlist_get_number(nvl, "ifnot"); in pf_nvrule_to_rule()
606 rule->match_tag_not = nvlist_get_number(nvl, "match_tag_not"); in pf_nvrule_to_rule()
607 rule->natpass = nvlist_get_number(nvl, "natpass"); in pf_nvrule_to_rule()
609 rule->keep_state = nvlist_get_number(nvl, "keep_state"); in pf_nvrule_to_rule()
610 rule->af = nvlist_get_number(nvl, "af"); in pf_nvrule_to_rule()
611 rule->proto = nvlist_get_number(nvl, "proto"); in pf_nvrule_to_rule()
612 rule->type = nvlist_get_number(nvl, "type"); in pf_nvrule_to_rule()
613 rule->code = nvlist_get_number(nvl, "code"); in pf_nvrule_to_rule()
614 rule->flags = nvlist_get_number(nvl, "flags"); in pf_nvrule_to_rule()
615 rule->flagset = nvlist_get_number(nvl, "flagset"); in pf_nvrule_to_rule()
616 rule->min_ttl = nvlist_get_number(nvl, "min_ttl"); in pf_nvrule_to_rule()
617 rule->allow_opts = nvlist_get_number(nvl, "allow_opts"); in pf_nvrule_to_rule()
618 rule->rt = nvlist_get_number(nvl, "rt"); in pf_nvrule_to_rule()
619 rule->return_ttl = nvlist_get_number(nvl, "return_ttl"); in pf_nvrule_to_rule()
620 rule->tos = nvlist_get_number(nvl, "tos"); in pf_nvrule_to_rule()
621 rule->set_tos = nvlist_get_number(nvl, "set_tos"); in pf_nvrule_to_rule()
622 rule->anchor_relative = nvlist_get_number(nvl, "anchor_relative"); in pf_nvrule_to_rule()
623 rule->anchor_wildcard = nvlist_get_number(nvl, "anchor_wildcard"); in pf_nvrule_to_rule()
625 rule->flush = nvlist_get_number(nvl, "flush"); in pf_nvrule_to_rule()
626 rule->prio = nvlist_get_number(nvl, "prio"); in pf_nvrule_to_rule()
627 pf_nvuint_8_array(nvl, "set_prio", 2, rule->set_prio, NULL); in pf_nvrule_to_rule()
629 pf_nvdivert_to_divert(nvlist_get_nvlist(nvl, "divert"), rule); in pf_nvrule_to_rule()
631 rule->states_cur = nvlist_get_number(nvl, "states_cur"); in pf_nvrule_to_rule()
632 rule->states_tot = nvlist_get_number(nvl, "states_tot"); in pf_nvrule_to_rule()
633 rule->src_nodes = nvlist_get_number(nvl, "src_nodes"); in pf_nvrule_to_rule()
637 pfctl_nveth_addr_to_eth_addr(const nvlist_t *nvl, struct pfctl_eth_addr *addr) in pfctl_nveth_addr_to_eth_addr() argument
643 data = nvlist_get_binary(nvl, "addr", &len); in pfctl_nveth_addr_to_eth_addr()
647 data = nvlist_get_binary(nvl, "mask", &len); in pfctl_nveth_addr_to_eth_addr()
651 addr->neg = nvlist_get_bool(nvl, "neg"); in pfctl_nveth_addr_to_eth_addr()
660 nvlist_t *nvl; in pfctl_eth_addr_to_nveth_addr() local
662 nvl = nvlist_create(0); in pfctl_eth_addr_to_nveth_addr()
663 if (nvl == NULL) in pfctl_eth_addr_to_nveth_addr()
666 nvlist_add_bool(nvl, "neg", addr->neg); in pfctl_eth_addr_to_nveth_addr()
667 nvlist_add_binary(nvl, "addr", &addr->addr, ETHER_ADDR_LEN); in pfctl_eth_addr_to_nveth_addr()
668 nvlist_add_binary(nvl, "mask", &addr->mask, ETHER_ADDR_LEN); in pfctl_eth_addr_to_nveth_addr()
670 return (nvl); in pfctl_eth_addr_to_nveth_addr()
674 pfctl_nveth_rule_to_eth_rule(const nvlist_t *nvl, struct pfctl_eth_rule *rule) in pfctl_nveth_rule_to_eth_rule() argument
679 rule->nr = nvlist_get_number(nvl, "nr"); in pfctl_nveth_rule_to_eth_rule()
680 rule->quick = nvlist_get_bool(nvl, "quick"); in pfctl_nveth_rule_to_eth_rule()
681 strlcpy(rule->ifname, nvlist_get_string(nvl, "ifname"), IFNAMSIZ); in pfctl_nveth_rule_to_eth_rule()
682 rule->ifnot = nvlist_get_bool(nvl, "ifnot"); in pfctl_nveth_rule_to_eth_rule()
683 rule->direction = nvlist_get_number(nvl, "direction"); in pfctl_nveth_rule_to_eth_rule()
684 rule->proto = nvlist_get_number(nvl, "proto"); in pfctl_nveth_rule_to_eth_rule()
685 strlcpy(rule->match_tagname, nvlist_get_string(nvl, "match_tagname"), in pfctl_nveth_rule_to_eth_rule()
687 rule->match_tag = nvlist_get_number(nvl, "match_tag"); in pfctl_nveth_rule_to_eth_rule()
688 rule->match_tag_not = nvlist_get_bool(nvl, "match_tag_not"); in pfctl_nveth_rule_to_eth_rule()
690 labels = nvlist_get_string_array(nvl, "labels", &labelcount); in pfctl_nveth_rule_to_eth_rule()
694 rule->ridentifier = nvlist_get_number(nvl, "ridentifier"); in pfctl_nveth_rule_to_eth_rule()
696 pfctl_nveth_addr_to_eth_addr(nvlist_get_nvlist(nvl, "src"), in pfctl_nveth_rule_to_eth_rule()
698 pfctl_nveth_addr_to_eth_addr(nvlist_get_nvlist(nvl, "dst"), in pfctl_nveth_rule_to_eth_rule()
701 pf_nvrule_addr_to_rule_addr(nvlist_get_nvlist(nvl, "ipsrc"), in pfctl_nveth_rule_to_eth_rule()
703 pf_nvrule_addr_to_rule_addr(nvlist_get_nvlist(nvl, "ipdst"), in pfctl_nveth_rule_to_eth_rule()
706 rule->evaluations = nvlist_get_number(nvl, "evaluations"); in pfctl_nveth_rule_to_eth_rule()
707 rule->packets[0] = nvlist_get_number(nvl, "packets-in"); in pfctl_nveth_rule_to_eth_rule()
708 rule->packets[1] = nvlist_get_number(nvl, "packets-out"); in pfctl_nveth_rule_to_eth_rule()
709 rule->bytes[0] = nvlist_get_number(nvl, "bytes-in"); in pfctl_nveth_rule_to_eth_rule()
710 rule->bytes[1] = nvlist_get_number(nvl, "bytes-out"); in pfctl_nveth_rule_to_eth_rule()
712 if (nvlist_exists_number(nvl, "timestamp")) { in pfctl_nveth_rule_to_eth_rule()
713 rule->last_active_timestamp = nvlist_get_number(nvl, "timestamp"); in pfctl_nveth_rule_to_eth_rule()
716 strlcpy(rule->qname, nvlist_get_string(nvl, "qname"), PF_QNAME_SIZE); in pfctl_nveth_rule_to_eth_rule()
717 strlcpy(rule->tagname, nvlist_get_string(nvl, "tagname"), in pfctl_nveth_rule_to_eth_rule()
720 rule->dnpipe = nvlist_get_number(nvl, "dnpipe"); in pfctl_nveth_rule_to_eth_rule()
721 rule->dnflags = nvlist_get_number(nvl, "dnflags"); in pfctl_nveth_rule_to_eth_rule()
723 rule->anchor_relative = nvlist_get_number(nvl, "anchor_relative"); in pfctl_nveth_rule_to_eth_rule()
724 rule->anchor_wildcard = nvlist_get_number(nvl, "anchor_wildcard"); in pfctl_nveth_rule_to_eth_rule()
726 strlcpy(rule->bridge_to, nvlist_get_string(nvl, "bridge_to"), in pfctl_nveth_rule_to_eth_rule()
729 rule->action = nvlist_get_number(nvl, "action"); in pfctl_nveth_rule_to_eth_rule()
736 nvlist_t *nvl; in pfctl_get_eth_rulesets_info() local
741 nvl = nvlist_create(0); in pfctl_get_eth_rulesets_info()
742 nvlist_add_string(nvl, "path", path); in pfctl_get_eth_rulesets_info()
744 if ((ret = pfctl_do_ioctl(dev, DIOCGETETHRULESETS, 256, &nvl)) != 0) in pfctl_get_eth_rulesets_info()
747 ri->nr = nvlist_get_number(nvl, "nr"); in pfctl_get_eth_rulesets_info()
750 nvlist_destroy(nvl); in pfctl_get_eth_rulesets_info()
758 nvlist_t *nvl; in pfctl_get_eth_ruleset() local
763 nvl = nvlist_create(0); in pfctl_get_eth_ruleset()
764 nvlist_add_string(nvl, "path", path); in pfctl_get_eth_ruleset()
765 nvlist_add_number(nvl, "nr", nr); in pfctl_get_eth_ruleset()
767 if ((ret = pfctl_do_ioctl(dev, DIOCGETETHRULESET, 1024, &nvl)) != 0) in pfctl_get_eth_ruleset()
770 ri->nr = nvlist_get_number(nvl, "nr"); in pfctl_get_eth_ruleset()
771 strlcpy(ri->path, nvlist_get_string(nvl, "path"), MAXPATHLEN); in pfctl_get_eth_ruleset()
772 strlcpy(ri->name, nvlist_get_string(nvl, "name"), in pfctl_get_eth_ruleset()
776 nvlist_destroy(nvl); in pfctl_get_eth_ruleset()
784 nvlist_t *nvl; in pfctl_get_eth_rules_info() local
789 nvl = nvlist_create(0); in pfctl_get_eth_rules_info()
790 nvlist_add_string(nvl, "anchor", path); in pfctl_get_eth_rules_info()
792 if ((ret = pfctl_do_ioctl(dev, DIOCGETETHRULES, 1024, &nvl)) != 0) in pfctl_get_eth_rules_info()
795 rules->nr = nvlist_get_number(nvl, "nr"); in pfctl_get_eth_rules_info()
796 rules->ticket = nvlist_get_number(nvl, "ticket"); in pfctl_get_eth_rules_info()
799 nvlist_destroy(nvl); in pfctl_get_eth_rules_info()
808 nvlist_t *nvl; in pfctl_get_eth_rule() local
811 nvl = nvlist_create(0); in pfctl_get_eth_rule()
813 nvlist_add_string(nvl, "anchor", path); in pfctl_get_eth_rule()
814 nvlist_add_number(nvl, "ticket", ticket); in pfctl_get_eth_rule()
815 nvlist_add_number(nvl, "nr", nr); in pfctl_get_eth_rule()
816 nvlist_add_bool(nvl, "clear", clear); in pfctl_get_eth_rule()
818 if ((ret = pfctl_do_ioctl(dev, DIOCGETETHRULE, 4096, &nvl)) != 0) in pfctl_get_eth_rule()
821 pfctl_nveth_rule_to_eth_rule(nvl, rule); in pfctl_get_eth_rule()
824 strlcpy(anchor_call, nvlist_get_string(nvl, "anchor_call"), in pfctl_get_eth_rule()
828 nvlist_destroy(nvl); in pfctl_get_eth_rule()
837 nvlist_t *nvl, *addr; in pfctl_add_eth_rule() local
842 nvl = nvlist_create(0); in pfctl_add_eth_rule()
844 nvlist_add_number(nvl, "ticket", ticket); in pfctl_add_eth_rule()
845 nvlist_add_string(nvl, "anchor", anchor); in pfctl_add_eth_rule()
846 nvlist_add_string(nvl, "anchor_call", anchor_call); in pfctl_add_eth_rule()
848 nvlist_add_number(nvl, "nr", r->nr); in pfctl_add_eth_rule()
849 nvlist_add_bool(nvl, "quick", r->quick); in pfctl_add_eth_rule()
850 nvlist_add_string(nvl, "ifname", r->ifname); in pfctl_add_eth_rule()
851 nvlist_add_bool(nvl, "ifnot", r->ifnot); in pfctl_add_eth_rule()
852 nvlist_add_number(nvl, "direction", r->direction); in pfctl_add_eth_rule()
853 nvlist_add_number(nvl, "proto", r->proto); in pfctl_add_eth_rule()
854 nvlist_add_string(nvl, "match_tagname", r->match_tagname); in pfctl_add_eth_rule()
855 nvlist_add_bool(nvl, "match_tag_not", r->match_tag_not); in pfctl_add_eth_rule()
859 nvlist_destroy(nvl); in pfctl_add_eth_rule()
862 nvlist_add_nvlist(nvl, "src", addr); in pfctl_add_eth_rule()
867 nvlist_destroy(nvl); in pfctl_add_eth_rule()
870 nvlist_add_nvlist(nvl, "dst", addr); in pfctl_add_eth_rule()
873 pfctl_nv_add_rule_addr(nvl, "ipsrc", &r->ipsrc); in pfctl_add_eth_rule()
874 pfctl_nv_add_rule_addr(nvl, "ipdst", &r->ipdst); in pfctl_add_eth_rule()
879 nvlist_append_string_array(nvl, "labels", in pfctl_add_eth_rule()
883 nvlist_add_number(nvl, "ridentifier", r->ridentifier); in pfctl_add_eth_rule()
885 nvlist_add_string(nvl, "qname", r->qname); in pfctl_add_eth_rule()
886 nvlist_add_string(nvl, "tagname", r->tagname); in pfctl_add_eth_rule()
887 nvlist_add_number(nvl, "dnpipe", r->dnpipe); in pfctl_add_eth_rule()
888 nvlist_add_number(nvl, "dnflags", r->dnflags); in pfctl_add_eth_rule()
890 nvlist_add_string(nvl, "bridge_to", r->bridge_to); in pfctl_add_eth_rule()
892 nvlist_add_number(nvl, "action", r->action); in pfctl_add_eth_rule()
894 packed = nvlist_pack(nvl, &size); in pfctl_add_eth_rule()
896 nvlist_destroy(nvl); in pfctl_add_eth_rule()
908 nvlist_destroy(nvl); in pfctl_add_eth_rule()
920 nvlist_t *nvl, *nvlr; in pfctl_add_rule() local
924 nvl = nvlist_create(0); in pfctl_add_rule()
927 nvlist_add_number(nvl, "ticket", ticket); in pfctl_add_rule()
928 nvlist_add_number(nvl, "pool_ticket", pool_ticket); in pfctl_add_rule()
929 nvlist_add_string(nvl, "anchor", anchor); in pfctl_add_rule()
930 nvlist_add_string(nvl, "anchor_call", anchor_call); in pfctl_add_rule()
1019 nvlist_add_nvlist(nvl, "rule", nvlr); in pfctl_add_rule()
1023 nv.data = nvlist_pack(nvl, &nv.len); in pfctl_add_rule()
1031 nvlist_destroy(nvl); in pfctl_add_rule()
1070 nvlist_t *nvl; in pfctl_get_clear_rule() local
1073 nvl = nvlist_create(0); in pfctl_get_clear_rule()
1074 if (nvl == 0) in pfctl_get_clear_rule()
1077 nvlist_add_number(nvl, "nr", nr); in pfctl_get_clear_rule()
1078 nvlist_add_number(nvl, "ticket", ticket); in pfctl_get_clear_rule()
1079 nvlist_add_string(nvl, "anchor", anchor); in pfctl_get_clear_rule()
1080 nvlist_add_number(nvl, "ruleset", ruleset); in pfctl_get_clear_rule()
1083 nvlist_add_bool(nvl, "clear_counter", true); in pfctl_get_clear_rule()
1085 if ((ret = pfctl_do_ioctl(dev, DIOCGETRULENV, 8192, &nvl)) != 0) in pfctl_get_clear_rule()
1088 pf_nvrule_to_rule(nvlist_get_nvlist(nvl, "rule"), rule); in pfctl_get_clear_rule()
1091 strlcpy(anchor_call, nvlist_get_string(nvl, "anchor_call"), in pfctl_get_clear_rule()
1095 nvlist_destroy(nvl); in pfctl_get_clear_rule()
1103 nvlist_t *nvl; in pfctl_set_keepcounters() local
1106 nvl = nvlist_create(0); in pfctl_set_keepcounters()
1108 nvlist_add_bool(nvl, "keep_counters", keep); in pfctl_set_keepcounters()
1110 nv.data = nvlist_pack(nvl, &nv.len); in pfctl_set_keepcounters()
1113 nvlist_destroy(nvl); in pfctl_set_keepcounters()
1122 pfctl_nv_add_state_cmp(nvlist_t *nvl, const char *name, in pfctl_nv_add_state_cmp() argument
1133 nvlist_add_nvlist(nvl, name, nv); in pfctl_nv_add_state_cmp()
1275 nvlist_t *nvl; in _pfctl_clear_states() local
1278 nvl = nvlist_create(0); in _pfctl_clear_states()
1280 pfctl_nv_add_state_cmp(nvl, "cmp", &kill->cmp); in _pfctl_clear_states()
1281 nvlist_add_number(nvl, "af", kill->af); in _pfctl_clear_states()
1282 nvlist_add_number(nvl, "proto", kill->proto); in _pfctl_clear_states()
1283 pfctl_nv_add_rule_addr(nvl, "src", &kill->src); in _pfctl_clear_states()
1284 pfctl_nv_add_rule_addr(nvl, "dst", &kill->dst); in _pfctl_clear_states()
1285 pfctl_nv_add_rule_addr(nvl, "rt_addr", &kill->rt_addr); in _pfctl_clear_states()
1286 nvlist_add_string(nvl, "ifname", kill->ifname); in _pfctl_clear_states()
1287 nvlist_add_string(nvl, "label", kill->label); in _pfctl_clear_states()
1288 nvlist_add_bool(nvl, "kill_match", kill->kill_match); in _pfctl_clear_states()
1290 if ((ret = pfctl_do_ioctl(dev, ioctlval, 1024, &nvl)) != 0) in _pfctl_clear_states()
1294 *killed = nvlist_get_number(nvl, "killed"); in _pfctl_clear_states()
1297 nvlist_destroy(nvl); in _pfctl_clear_states()
1436 nvlist_t *nvl; in pfctl_set_syncookies() local
1452 nvl = nvlist_create(0); in pfctl_set_syncookies()
1454 nvlist_add_bool(nvl, "enabled", s->mode != PFCTL_SYNCOOKIES_NEVER); in pfctl_set_syncookies()
1455 nvlist_add_bool(nvl, "adaptive", s->mode == PFCTL_SYNCOOKIES_ADAPTIVE); in pfctl_set_syncookies()
1456 nvlist_add_number(nvl, "highwater", hi); in pfctl_set_syncookies()
1457 nvlist_add_number(nvl, "lowwater", lo); in pfctl_set_syncookies()
1459 nv.data = nvlist_pack(nvl, &nv.len); in pfctl_set_syncookies()
1461 nvlist_destroy(nvl); in pfctl_set_syncookies()
1462 nvl = NULL; in pfctl_set_syncookies()
1476 nvlist_t *nvl; in pfctl_get_syncookies() local
1487 nvl = nvlist_create(0); in pfctl_get_syncookies()
1489 if ((ret = pfctl_do_ioctl(dev, DIOCGETSYNCOOKIES, 256, &nvl)) != 0) { in pfctl_get_syncookies()
1494 enabled = nvlist_get_bool(nvl, "enabled"); in pfctl_get_syncookies()
1495 adaptive = nvlist_get_bool(nvl, "adaptive"); in pfctl_get_syncookies()
1506 s->highwater = nvlist_get_number(nvl, "highwater") * 100 / state_limit; in pfctl_get_syncookies()
1507 s->lowwater = nvlist_get_number(nvl, "lowwater") * 100 / state_limit; in pfctl_get_syncookies()
1508 s->halfopen_states = nvlist_get_number(nvl, "halfopen_states"); in pfctl_get_syncookies()
1511 nvlist_destroy(nvl); in pfctl_get_syncookies()