• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/netpfil/pf/

Lines Matching refs:nvl

44 	pf_nv ## fnname ## _opt(const nvlist_t *nvl, const char *name,		\
48 if (! nvlist_exists_number(nvl, name)) { \
52 raw = nvlist_get_number(nvl, name); \
59 pf_nv ## fnname(const nvlist_t *nvl, const char *name, type *val) \
62 if (! nvlist_exists_number(nvl, name)) \
64 raw = nvlist_get_number(nvl, name); \
71 pf_nv ## fnname ## _array(const nvlist_t *nvl, const char *name, \
77 if (! nvlist_exists_number_array(nvl, name)) \
79 n = nvlist_get_number_array(nvl, name, &nitems); \
92 pf_ ## fnname ## _array_nv(nvlist_t *nvl, const char *name, \
98 nvlist_append_number_array(nvl, name, tmp); \
103 pf_nvbinary(const nvlist_t *nvl, const char *name, void *data,
111 if (! nvlist_exists_binary(nvl, name))
114 nvdata = (const uint8_t *)nvlist_get_binary(nvl, name, &len);
129 pf_nvint(const nvlist_t *nvl, const char *name, int *val)
133 if (! nvlist_exists_number(nvl, name))
136 raw = nvlist_get_number(nvl, name);
146 pf_nvstring(const nvlist_t *nvl, const char *name, char *str, size_t maxlen)
150 if (! nvlist_exists_string(nvl, name))
153 ret = strlcpy(str, nvlist_get_string(nvl, name), maxlen);
161 pf_nvaddr_to_addr(const nvlist_t *nvl, struct pf_addr *paddr)
163 return (pf_nvbinary(nvl, "addr", paddr, sizeof(*paddr)));
169 nvlist_t *nvl;
171 nvl = nvlist_create(0);
172 if (nvl == NULL)
175 nvlist_add_binary(nvl, "addr", paddr, sizeof(*paddr));
177 return (nvl);
181 pf_nvmape_to_mape(const nvlist_t *nvl, struct pf_mape_portset *mape)
186 PFNV_CHK(pf_nvuint8(nvl, "offset", &mape->offset));
187 PFNV_CHK(pf_nvuint8(nvl, "psidlen", &mape->psidlen));
188 PFNV_CHK(pf_nvuint16(nvl, "psid", &mape->psid));
197 nvlist_t *nvl;
199 nvl = nvlist_create(0);
200 if (nvl == NULL)
203 nvlist_add_number(nvl, "offset", mape->offset);
204 nvlist_add_number(nvl, "psidlen", mape->psidlen);
205 nvlist_add_number(nvl, "psid", mape->psid);
207 return (nvl);
211 pf_nvpool_to_pool(const nvlist_t *nvl, struct pf_kpool *kpool)
217 PFNV_CHK(pf_nvbinary(nvl, "key", &kpool->key, sizeof(kpool->key)));
219 if (nvlist_exists_nvlist(nvl, "counter")) {
220 PFNV_CHK(pf_nvaddr_to_addr(nvlist_get_nvlist(nvl, "counter"),
224 PFNV_CHK(pf_nvint(nvl, "tblidx", &kpool->tblidx));
225 PFNV_CHK(pf_nvuint16_array(nvl, "proxy_port", kpool->proxy_port, 2,
227 PFNV_CHK(pf_nvuint8(nvl, "opts", &kpool->opts));
229 if (nvlist_exists_nvlist(nvl, "mape")) {
230 PFNV_CHK(pf_nvmape_to_mape(nvlist_get_nvlist(nvl, "mape"),
241 nvlist_t *nvl;
244 nvl = nvlist_create(0);
245 if (nvl == NULL)
248 nvlist_add_binary(nvl, "key", &pool->key, sizeof(pool->key));
252 nvlist_add_nvlist(nvl, "counter", tmp);
255 nvlist_add_number(nvl, "tblidx", pool->tblidx);
256 pf_uint16_array_nv(nvl, "proxy_port", pool->proxy_port, 2);
257 nvlist_add_number(nvl, "opts", pool->opts);
262 nvlist_add_nvlist(nvl, "mape", tmp);
265 return (nvl);
268 nvlist_destroy(nvl);
273 pf_nvaddr_wrap_to_addr_wrap(const nvlist_t *nvl, struct pf_addr_wrap *addr)
279 PFNV_CHK(pf_nvuint8(nvl, "type", &addr->type));
280 PFNV_CHK(pf_nvuint8(nvl, "iflags", &addr->iflags));
282 PFNV_CHK(pf_nvstring(nvl, "ifname", addr->v.ifname,
285 PFNV_CHK(pf_nvstring(nvl, "tblname", addr->v.tblname,
288 if (! nvlist_exists_nvlist(nvl, "addr"))
290 PFNV_CHK(pf_nvaddr_to_addr(nvlist_get_nvlist(nvl, "addr"),
293 if (! nvlist_exists_nvlist(nvl, "mask"))
295 PFNV_CHK(pf_nvaddr_to_addr(nvlist_get_nvlist(nvl, "mask"),
317 nvlist_t *nvl;
320 nvl = nvlist_create(0);
321 if (nvl == NULL)
324 nvlist_add_number(nvl, "type", addr->type);
325 nvlist_add_number(nvl, "iflags", addr->iflags);
327 nvlist_add_string(nvl, "ifname", addr->v.ifname);
329 nvlist_add_string(nvl, "tblname", addr->v.tblname);
334 nvlist_add_nvlist(nvl, "addr", tmp);
339 nvlist_add_nvlist(nvl, "mask", tmp);
342 return (nvl);
345 nvlist_destroy(nvl);
372 pf_nvrule_addr_to_rule_addr(const nvlist_t *nvl, struct pf_rule_addr *addr)
376 if (! nvlist_exists_nvlist(nvl, "addr"))
379 PFNV_CHK(pf_nvaddr_wrap_to_addr_wrap(nvlist_get_nvlist(nvl, "addr"),
381 PFNV_CHK(pf_nvuint16_array(nvl, "port", addr->port, 2, NULL));
382 PFNV_CHK(pf_nvuint8(nvl, "neg", &addr->neg));
383 PFNV_CHK(pf_nvuint8(nvl, "port_op", &addr->port_op));
394 nvlist_t *nvl;
397 nvl = nvlist_create(0);
398 if (nvl == NULL)
404 nvlist_add_nvlist(nvl, "addr", tmp);
406 pf_uint16_array_nv(nvl, "port", addr->port, 2);
407 nvlist_add_number(nvl, "neg", addr->neg);
408 nvlist_add_number(nvl, "port_op", addr->port_op);
410 return (nvl);
413 nvlist_destroy(nvl);
418 pf_nvrule_uid_to_rule_uid(const nvlist_t *nvl, struct pf_rule_uid *uid)
424 PFNV_CHK(pf_nvuint32_array(nvl, "uid", uid->uid, 2, NULL));
425 PFNV_CHK(pf_nvuint8(nvl, "op", &uid->op));
436 nvlist_t *nvl;
438 nvl = nvlist_create(0);
439 if (nvl == NULL)
442 pf_uint32_array_nv(nvl, "uid", uid->uid, 2);
443 nvlist_add_number(nvl, "op", uid->op);
445 return (nvl);
449 pf_nvrule_gid_to_rule_gid(const nvlist_t *nvl, struct pf_rule_gid *gid)
453 return (pf_nvrule_uid_to_rule_uid(nvl, (struct pf_rule_uid *)gid));
481 pf_nvrule_to_krule(const nvlist_t *nvl, struct pf_krule *rule)
487 PFNV_CHK(pf_nvuint32(nvl, "nr", &rule->nr));
489 if (! nvlist_exists_nvlist(nvl, "src"))
492 error = pf_nvrule_addr_to_rule_addr(nvlist_get_nvlist(nvl, "src"),
497 if (! nvlist_exists_nvlist(nvl, "dst"))
500 PFNV_CHK(pf_nvrule_addr_to_rule_addr(nvlist_get_nvlist(nvl, "dst"),
503 if (nvlist_exists_string(nvl, "label")) {
504 PFNV_CHK(pf_nvstring(nvl, "label", rule->label[0],
506 } else if (nvlist_exists_string_array(nvl, "labels")) {
511 strs = nvlist_get_string_array(nvl, "labels", &items);
523 PFNV_CHK(pf_nvstring(nvl, "ifname", rule->ifname,
525 PFNV_CHK(pf_nvstring(nvl, "qname", rule->qname, sizeof(rule->qname)));
526 PFNV_CHK(pf_nvstring(nvl, "pqname", rule->pqname,
528 PFNV_CHK(pf_nvstring(nvl, "tagname", rule->tagname,
530 PFNV_CHK(pf_nvstring(nvl, "match_tagname", rule->match_tagname,
532 PFNV_CHK(pf_nvstring(nvl, "overload_tblname", rule->overload_tblname,
535 if (! nvlist_exists_nvlist(nvl, "rpool"))
537 PFNV_CHK(pf_nvpool_to_pool(nvlist_get_nvlist(nvl, "rpool"),
540 PFNV_CHK(pf_nvuint32(nvl, "os_fingerprint", &rule->os_fingerprint));
542 PFNV_CHK(pf_nvint(nvl, "rtableid", &rule->rtableid));
543 PFNV_CHK(pf_nvuint32_array(nvl, "timeout", rule->timeout, PFTM_MAX, NULL));
544 PFNV_CHK(pf_nvuint32(nvl, "max_states", &rule->max_states));
545 PFNV_CHK(pf_nvuint32(nvl, "max_src_nodes", &rule->max_src_nodes));
546 PFNV_CHK(pf_nvuint32(nvl, "max_src_states", &rule->max_src_states));
547 PFNV_CHK(pf_nvuint32(nvl, "max_src_conn", &rule->max_src_conn));
548 PFNV_CHK(pf_nvuint32(nvl, "max_src_conn_rate.limit",
550 PFNV_CHK(pf_nvuint32(nvl, "max_src_conn_rate.seconds",
552 PFNV_CHK(pf_nvuint32(nvl, "prob", &rule->prob));
553 PFNV_CHK(pf_nvuint32(nvl, "cuid", &rule->cuid));
554 PFNV_CHK(pf_nvuint32(nvl, "cpid", &rule->cpid));
556 PFNV_CHK(pf_nvuint16(nvl, "return_icmp", &rule->return_icmp));
557 PFNV_CHK(pf_nvuint16(nvl, "return_icmp6", &rule->return_icmp6));
559 PFNV_CHK(pf_nvuint16(nvl, "max_mss", &rule->max_mss));
560 PFNV_CHK(pf_nvuint16(nvl, "scrub_flags", &rule->scrub_flags));
562 if (! nvlist_exists_nvlist(nvl, "uid"))
564 PFNV_CHK(pf_nvrule_uid_to_rule_uid(nvlist_get_nvlist(nvl, "uid"),
567 if (! nvlist_exists_nvlist(nvl, "gid"))
569 PFNV_CHK(pf_nvrule_gid_to_rule_gid(nvlist_get_nvlist(nvl, "gid"),
572 PFNV_CHK(pf_nvuint32(nvl, "rule_flag", &rule->rule_flag));
573 PFNV_CHK(pf_nvuint8(nvl, "action", &rule->action));
574 PFNV_CHK(pf_nvuint8(nvl, "direction", &rule->direction));
575 PFNV_CHK(pf_nvuint8(nvl, "log", &rule->log));
576 PFNV_CHK(pf_nvuint8(nvl, "logif", &rule->logif));
577 PFNV_CHK(pf_nvuint8(nvl, "quick", &rule->quick));
578 PFNV_CHK(pf_nvuint8(nvl, "ifnot", &rule->ifnot));
579 PFNV_CHK(pf_nvuint8(nvl, "match_tag_not", &rule->match_tag_not));
580 PFNV_CHK(pf_nvuint8(nvl, "natpass", &rule->natpass));
582 PFNV_CHK(pf_nvuint8(nvl, "keep_state", &rule->keep_state));
583 PFNV_CHK(pf_nvuint8(nvl, "af", &rule->af));
584 PFNV_CHK(pf_nvuint8(nvl, "proto", &rule->proto));
585 PFNV_CHK(pf_nvuint8(nvl, "type", &rule->type));
586 PFNV_CHK(pf_nvuint8(nvl, "code", &rule->code));
587 PFNV_CHK(pf_nvuint8(nvl, "flags", &rule->flags));
588 PFNV_CHK(pf_nvuint8(nvl, "flagset", &rule->flagset));
589 PFNV_CHK(pf_nvuint8(nvl, "min_ttl", &rule->min_ttl));
590 PFNV_CHK(pf_nvuint8(nvl, "allow_opts", &rule->allow_opts));
591 PFNV_CHK(pf_nvuint8(nvl, "rt", &rule->rt));
592 PFNV_CHK(pf_nvuint8(nvl, "return_ttl", &rule->return_ttl));
593 PFNV_CHK(pf_nvuint8(nvl, "tos", &rule->tos));
594 PFNV_CHK(pf_nvuint8(nvl, "set_tos", &rule->set_tos));
595 PFNV_CHK(pf_nvuint8(nvl, "anchor_relative", &rule->anchor_relative));
596 PFNV_CHK(pf_nvuint8(nvl, "anchor_wildcard", &rule->anchor_wildcard));
598 PFNV_CHK(pf_nvuint8(nvl, "flush", &rule->flush));
599 PFNV_CHK(pf_nvuint8(nvl, "prio", &rule->prio));
601 PFNV_CHK(pf_nvuint8_array(nvl, "set_prio", &rule->prio, 2, NULL));
603 if (nvlist_exists_nvlist(nvl, "divert")) {
604 const nvlist_t *nvldivert = nvlist_get_nvlist(nvl, "divert");
636 nvlist_t *nvl;
639 nvl = nvlist_create(0);
640 if (nvl == NULL)
646 nvlist_add_nvlist(nvl, "addr", tmp);
648 nvlist_add_number(nvl, "port", rule->divert.port);
650 return (nvl);
653 nvlist_destroy(nvl);
660 nvlist_t *nvl, *tmp;
662 nvl = nvlist_create(0);
663 if (nvl == NULL)
664 return (nvl);
666 nvlist_add_number(nvl, "nr", rule->nr);
670 nvlist_add_nvlist(nvl, "src", tmp);
675 nvlist_add_nvlist(nvl, "dst", tmp);
679 nvlist_append_number_array(nvl, "skip",
684 nvlist_append_string_array(nvl, "labels", rule->label[i]);
686 nvlist_add_string(nvl, "label", rule->label[0]);
687 nvlist_add_string(nvl, "ifname", rule->ifname);
688 nvlist_add_string(nvl, "qname", rule->qname);
689 nvlist_add_string(nvl, "pqname", rule->pqname);
690 nvlist_add_string(nvl, "tagname", rule->tagname);
691 nvlist_add_string(nvl, "match_tagname", rule->match_tagname);
692 nvlist_add_string(nvl, "overload_tblname", rule->overload_tblname);
697 nvlist_add_nvlist(nvl, "rpool", tmp);
700 nvlist_add_number(nvl, "evaluations",
703 nvlist_append_number_array(nvl, "packets",
705 nvlist_append_number_array(nvl, "bytes",
709 nvlist_add_number(nvl, "os_fingerprint", rule->os_fingerprint);
711 nvlist_add_number(nvl, "rtableid", rule->rtableid);
712 pf_uint32_array_nv(nvl, "timeout", rule->timeout, PFTM_MAX);
713 nvlist_add_number(nvl, "max_states", rule->max_states);
714 nvlist_add_number(nvl, "max_src_nodes", rule->max_src_nodes);
715 nvlist_add_number(nvl, "max_src_states", rule->max_src_states);
716 nvlist_add_number(nvl, "max_src_conn", rule->max_src_conn);
717 nvlist_add_number(nvl, "max_src_conn_rate.limit",
719 nvlist_add_number(nvl, "max_src_conn_rate.seconds",
721 nvlist_add_number(nvl, "qid", rule->qid);
722 nvlist_add_number(nvl, "pqid", rule->pqid);
723 nvlist_add_number(nvl, "prob", rule->prob);
724 nvlist_add_number(nvl, "cuid", rule->cuid);
725 nvlist_add_number(nvl, "cpid", rule->cpid);
727 nvlist_add_number(nvl, "states_cur",
729 nvlist_add_number(nvl, "states_tot",
731 nvlist_add_number(nvl, "src_nodes",
734 nvlist_add_number(nvl, "return_icmp", rule->return_icmp);
735 nvlist_add_number(nvl, "return_icmp6", rule->return_icmp6);
737 nvlist_add_number(nvl, "max_mss", rule->max_mss);
738 nvlist_add_number(nvl, "scrub_flags", rule->scrub_flags);
743 nvlist_add_nvlist(nvl, "uid", tmp);
748 nvlist_add_nvlist(nvl, "gid", tmp);
751 nvlist_add_number(nvl, "rule_flag", rule->rule_flag);
752 nvlist_add_number(nvl, "action", rule->action);
753 nvlist_add_number(nvl, "direction", rule->direction);
754 nvlist_add_number(nvl, "log", rule->log);
755 nvlist_add_number(nvl, "logif", rule->logif);
756 nvlist_add_number(nvl, "quick", rule->quick);
757 nvlist_add_number(nvl, "ifnot", rule->ifnot);
758 nvlist_add_number(nvl, "match_tag_not", rule->match_tag_not);
759 nvlist_add_number(nvl, "natpass", rule->natpass);
761 nvlist_add_number(nvl, "keep_state", rule->keep_state);
762 nvlist_add_number(nvl, "af", rule->af);
763 nvlist_add_number(nvl, "proto", rule->proto);
764 nvlist_add_number(nvl, "type", rule->type);
765 nvlist_add_number(nvl, "code", rule->code);
766 nvlist_add_number(nvl, "flags", rule->flags);
767 nvlist_add_number(nvl, "flagset", rule->flagset);
768 nvlist_add_number(nvl, "min_ttl", rule->min_ttl);
769 nvlist_add_number(nvl, "allow_opts", rule->allow_opts);
770 nvlist_add_number(nvl, "rt", rule->rt);
771 nvlist_add_number(nvl, "return_ttl", rule->return_ttl);
772 nvlist_add_number(nvl, "tos", rule->tos);
773 nvlist_add_number(nvl, "set_tos", rule->set_tos);
774 nvlist_add_number(nvl, "anchor_relative", rule->anchor_relative);
775 nvlist_add_number(nvl, "anchor_wildcard", rule->anchor_wildcard);
777 nvlist_add_number(nvl, "flush", rule->flush);
778 nvlist_add_number(nvl, "prio", rule->prio);
780 pf_uint8_array_nv(nvl, "set_prio", &rule->prio, 2);
785 nvlist_add_nvlist(nvl, "divert", tmp);
788 return (nvl);
791 nvlist_destroy(nvl);
796 pf_nvstate_cmp_to_state_cmp(const nvlist_t *nvl, struct pf_state_cmp *cmp)
802 PFNV_CHK(pf_nvuint64(nvl, "id", &cmp->id));
803 PFNV_CHK(pf_nvuint32(nvl, "creatorid", &cmp->creatorid));
804 PFNV_CHK(pf_nvuint8(nvl, "direction", &cmp->direction));
811 pf_nvstate_kill_to_kstate_kill(const nvlist_t *nvl,
818 if (! nvlist_exists_nvlist(nvl, "cmp"))
821 PFNV_CHK(pf_nvstate_cmp_to_state_cmp(nvlist_get_nvlist(nvl, "cmp"),
823 PFNV_CHK(pf_nvuint8(nvl, "af", &kill->psk_af));
824 PFNV_CHK(pf_nvint(nvl, "proto", &kill->psk_proto));
826 if (! nvlist_exists_nvlist(nvl, "src"))
828 PFNV_CHK(pf_nvrule_addr_to_rule_addr(nvlist_get_nvlist(nvl, "src"),
830 if (! nvlist_exists_nvlist(nvl, "dst"))
832 PFNV_CHK(pf_nvrule_addr_to_rule_addr(nvlist_get_nvlist(nvl, "dst"),
834 if (nvlist_exists_nvlist(nvl, "rt_addr")) {
836 nvlist_get_nvlist(nvl, "rt_addr"), &kill->psk_rt_addr));
839 PFNV_CHK(pf_nvstring(nvl, "ifname", kill->psk_ifname,
841 PFNV_CHK(pf_nvstring(nvl, "label", kill->psk_label,
843 if (nvlist_exists_bool(nvl, "kill_match"))
844 kill->psk_kill_match = nvlist_get_bool(nvl, "kill_match");
853 nvlist_t *nvl, *tmp;
855 nvl = nvlist_create(0);
856 if (nvl == NULL)
863 nvlist_append_nvlist_array(nvl, "addr", tmp);
865 nvlist_append_number_array(nvl, "port", key->port[i]);
867 nvlist_add_number(nvl, "af", key->af);
868 nvlist_add_number(nvl, "proto", key->proto);
870 return (nvl);
873 nvlist_destroy(nvl);
880 nvlist_t *nvl;
882 nvl = nvlist_create(0);
883 if (nvl == NULL)
886 nvlist_add_bool(nvl, "timestamp", scrub->pfss_flags & PFSS_TIMESTAMP);
887 nvlist_add_number(nvl, "ttl", scrub->pfss_ttl);
888 nvlist_add_number(nvl, "ts_mod", scrub->pfss_ts_mod);
890 return (nvl);
896 nvlist_t *nvl, *tmp;
898 nvl = nvlist_create(0);
899 if (nvl == NULL)
906 nvlist_add_nvlist(nvl, "scrub", tmp);
910 nvlist_add_number(nvl, "seqlo", peer->seqlo);
911 nvlist_add_number(nvl, "seqhi", peer->seqhi);
912 nvlist_add_number(nvl, "seqdiff", peer->seqdiff);
913 nvlist_add_number(nvl, "max_win", peer->max_win);
914 nvlist_add_number(nvl, "mss", peer->mss);
915 nvlist_add_number(nvl, "state", peer->state);
916 nvlist_add_number(nvl, "wscale", peer->wscale);
918 return (nvl);
921 nvlist_destroy(nvl);
928 nvlist_t *nvl, *tmp;
931 nvl = nvlist_create(0);
932 if (nvl == NULL)
935 nvlist_add_number(nvl, "id", s->id);
936 nvlist_add_string(nvl, "ifname", s->kif->pfik_name);
937 nvlist_add_string(nvl, "orig_ifname", s->orig_kif->pfik_name);
942 nvlist_add_nvlist(nvl, "stack_key", tmp);
948 nvlist_add_nvlist(nvl, "wire_key", tmp);
954 nvlist_add_nvlist(nvl, "src", tmp);
960 nvlist_add_nvlist(nvl, "dst", tmp);
966 nvlist_add_nvlist(nvl, "rt_addr", tmp);
969 nvlist_add_number(nvl, "rule", s->rule.ptr ? s->rule.ptr->nr : -1);
970 nvlist_add_number(nvl, "anchor",
972 nvlist_add_number(nvl, "nat_rule",
974 nvlist_add_number(nvl, "creation", s->creation);
981 nvlist_add_number(nvl, "expire", expire);
984 nvlist_append_number_array(nvl, "packets",
986 nvlist_append_number_array(nvl, "bytes",
990 nvlist_add_number(nvl, "creatorid", s->creatorid);
991 nvlist_add_number(nvl, "direction", s->direction);
992 nvlist_add_number(nvl, "log", s->log);
993 nvlist_add_number(nvl, "state_flags", s->state_flags);
994 nvlist_add_number(nvl, "timeout", s->timeout);
999 nvlist_add_number(nvl, "sync_flags", flags);
1001 return (nvl);
1004 nvlist_destroy(nvl);