Changeset View
Changeset View
Standalone View
Standalone View
sys/netpfil/pf/pf_nv.c
Show First 20 Lines • Show All 1,075 Lines • ▼ Show 20 Lines | pf_keth_rule_to_nveth_rule(const struct pf_keth_rule *krule) | ||||
nvlist_add_number(nvl, "bytes-in", | nvlist_add_number(nvl, "bytes-in", | ||||
counter_u64_fetch(krule->bytes[0])); | counter_u64_fetch(krule->bytes[0])); | ||||
nvlist_add_number(nvl, "bytes-out", | nvlist_add_number(nvl, "bytes-out", | ||||
counter_u64_fetch(krule->bytes[1])); | counter_u64_fetch(krule->bytes[1])); | ||||
nvlist_add_string(nvl, "qname", krule->qname); | nvlist_add_string(nvl, "qname", krule->qname); | ||||
nvlist_add_string(nvl, "tagname", krule->tagname); | nvlist_add_string(nvl, "tagname", krule->tagname); | ||||
nvlist_add_number(nvl, "dnpipe", krule->dnpipe); | |||||
nvlist_add_number(nvl, "dnflags", krule->dnflags); | |||||
nvlist_add_number(nvl, "action", krule->action); | nvlist_add_number(nvl, "action", krule->action); | ||||
return (nvl); | return (nvl); | ||||
} | } | ||||
int | int | ||||
pf_nveth_rule_to_keth_rule(const nvlist_t *nvl, | pf_nveth_rule_to_keth_rule(const nvlist_t *nvl, | ||||
struct pf_keth_rule *krule) | struct pf_keth_rule *krule) | ||||
{ | { | ||||
int error; | int error = 0; | ||||
bzero(krule, sizeof(*krule)); | bzero(krule, sizeof(*krule)); | ||||
PFNV_CHK(pf_nvuint32(nvl, "nr", &krule->nr)); | PFNV_CHK(pf_nvuint32(nvl, "nr", &krule->nr)); | ||||
PFNV_CHK(pf_nvbool(nvl, "quick", &krule->quick)); | PFNV_CHK(pf_nvbool(nvl, "quick", &krule->quick)); | ||||
PFNV_CHK(pf_nvstring(nvl, "ifname", krule->ifname, | PFNV_CHK(pf_nvstring(nvl, "ifname", krule->ifname, | ||||
sizeof(krule->ifname))); | sizeof(krule->ifname))); | ||||
PFNV_CHK(pf_nvbool(nvl, "ifnot", &krule->ifnot)); | PFNV_CHK(pf_nvbool(nvl, "ifnot", &krule->ifnot)); | ||||
Show All 11 Lines | error = pf_nveth_rule_addr_to_keth_rule_addr( | ||||
nvlist_get_nvlist(nvl, "dst"), &krule->dst); | nvlist_get_nvlist(nvl, "dst"), &krule->dst); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
} | } | ||||
PFNV_CHK(pf_nvstring(nvl, "qname", krule->qname, sizeof(krule->qname))); | PFNV_CHK(pf_nvstring(nvl, "qname", krule->qname, sizeof(krule->qname))); | ||||
PFNV_CHK(pf_nvstring(nvl, "tagname", krule->tagname, | PFNV_CHK(pf_nvstring(nvl, "tagname", krule->tagname, | ||||
sizeof(krule->tagname))); | sizeof(krule->tagname))); | ||||
PFNV_CHK(pf_nvuint16_opt(nvl, "dnpipe", &krule->dnpipe, 0)); | |||||
PFNV_CHK(pf_nvuint32_opt(nvl, "dnflags", &krule->dnflags, 0)); | |||||
PFNV_CHK(pf_nvuint8(nvl, "action", &krule->action)); | PFNV_CHK(pf_nvuint8(nvl, "action", &krule->action)); | ||||
if (krule->action != PF_PASS && krule->action != PF_DROP) | if (krule->action != PF_PASS && krule->action != PF_DROP) | ||||
return (EBADMSG); | return (EBADMSG); | ||||
errout: | errout: | ||||
return (error); | return (error); | ||||
} | } |