Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netpfil/pf/pf.c
Show First 20 Lines • Show All 107 Lines • ▼ Show 20 Lines | |||||
#define DPFPRINTF(n, x) if (V_pf_status.debug >= (n)) printf x | #define DPFPRINTF(n, x) if (V_pf_status.debug >= (n)) printf x | ||||
/* | /* | ||||
* Global variables | * Global variables | ||||
*/ | */ | ||||
/* state tables */ | /* state tables */ | ||||
VNET_DEFINE(struct pf_altqqueue, pf_altqs[2]); | VNET_DEFINE(struct pf_altqqueue, pf_altqs[4]); | ||||
VNET_DEFINE(struct pf_palist, pf_pabuf); | VNET_DEFINE(struct pf_palist, pf_pabuf); | ||||
VNET_DEFINE(struct pf_altqqueue *, pf_altqs_active); | VNET_DEFINE(struct pf_altqqueue *, pf_altqs_active); | ||||
VNET_DEFINE(struct pf_altqqueue *, pf_altq_ifs_active); | |||||
VNET_DEFINE(struct pf_altqqueue *, pf_altqs_inactive); | VNET_DEFINE(struct pf_altqqueue *, pf_altqs_inactive); | ||||
VNET_DEFINE(struct pf_altqqueue *, pf_altq_ifs_inactive); | |||||
VNET_DEFINE(struct pf_kstatus, pf_status); | VNET_DEFINE(struct pf_kstatus, pf_status); | ||||
VNET_DEFINE(u_int32_t, ticket_altqs_active); | VNET_DEFINE(u_int32_t, ticket_altqs_active); | ||||
VNET_DEFINE(u_int32_t, ticket_altqs_inactive); | VNET_DEFINE(u_int32_t, ticket_altqs_inactive); | ||||
VNET_DEFINE(int, altqs_inactive_open); | VNET_DEFINE(int, altqs_inactive_open); | ||||
VNET_DEFINE(u_int32_t, ticket_pabuf); | VNET_DEFINE(u_int32_t, ticket_pabuf); | ||||
VNET_DEFINE(MD5_CTX, pf_tcp_secret_ctx); | VNET_DEFINE(MD5_CTX, pf_tcp_secret_ctx); | ||||
▲ Show 20 Lines • Show All 225 Lines • ▼ Show 20 Lines | #define STATE_DEC_COUNTERS(s) \ | ||||
do { \ | do { \ | ||||
if (s->nat_rule.ptr != NULL) \ | if (s->nat_rule.ptr != NULL) \ | ||||
counter_u64_add(s->nat_rule.ptr->states_cur, -1);\ | counter_u64_add(s->nat_rule.ptr->states_cur, -1);\ | ||||
if (s->anchor.ptr != NULL) \ | if (s->anchor.ptr != NULL) \ | ||||
counter_u64_add(s->anchor.ptr->states_cur, -1); \ | counter_u64_add(s->anchor.ptr->states_cur, -1); \ | ||||
counter_u64_add(s->rule.ptr->states_cur, -1); \ | counter_u64_add(s->rule.ptr->states_cur, -1); \ | ||||
} while (0) | } while (0) | ||||
static MALLOC_DEFINE(M_PFHASH, "pf_hash", "pf(4) hash header structures"); | MALLOC_DEFINE(M_PFHASH, "pf_hash", "pf(4) hash header structures"); | ||||
VNET_DEFINE(struct pf_keyhash *, pf_keyhash); | VNET_DEFINE(struct pf_keyhash *, pf_keyhash); | ||||
VNET_DEFINE(struct pf_idhash *, pf_idhash); | VNET_DEFINE(struct pf_idhash *, pf_idhash); | ||||
VNET_DEFINE(struct pf_srchash *, pf_srchash); | VNET_DEFINE(struct pf_srchash *, pf_srchash); | ||||
SYSCTL_NODE(_net, OID_AUTO, pf, CTLFLAG_RW, 0, "pf(4)"); | SYSCTL_NODE(_net, OID_AUTO, pf, CTLFLAG_RW, 0, "pf(4)"); | ||||
u_long pf_hashmask; | u_long pf_hashmask; | ||||
u_long pf_srchashmask; | u_long pf_srchashmask; | ||||
▲ Show 20 Lines • Show All 485 Lines • ▼ Show 20 Lines | pf_initialize() | ||||
pf_srchashmask = pf_srchashsize - 1; | pf_srchashmask = pf_srchashsize - 1; | ||||
for (i = 0, sh = V_pf_srchash; i <= pf_srchashmask; i++, sh++) | for (i = 0, sh = V_pf_srchash; i <= pf_srchashmask; i++, sh++) | ||||
mtx_init(&sh->lock, "pf_srchash", NULL, MTX_DEF); | mtx_init(&sh->lock, "pf_srchash", NULL, MTX_DEF); | ||||
/* ALTQ */ | /* ALTQ */ | ||||
TAILQ_INIT(&V_pf_altqs[0]); | TAILQ_INIT(&V_pf_altqs[0]); | ||||
TAILQ_INIT(&V_pf_altqs[1]); | TAILQ_INIT(&V_pf_altqs[1]); | ||||
TAILQ_INIT(&V_pf_altqs[2]); | |||||
TAILQ_INIT(&V_pf_altqs[3]); | |||||
TAILQ_INIT(&V_pf_pabuf); | TAILQ_INIT(&V_pf_pabuf); | ||||
V_pf_altqs_active = &V_pf_altqs[0]; | V_pf_altqs_active = &V_pf_altqs[0]; | ||||
V_pf_altqs_inactive = &V_pf_altqs[1]; | V_pf_altq_ifs_active = &V_pf_altqs[1]; | ||||
V_pf_altqs_inactive = &V_pf_altqs[2]; | |||||
V_pf_altq_ifs_inactive = &V_pf_altqs[3]; | |||||
/* Send & overload+flush queues. */ | /* Send & overload+flush queues. */ | ||||
STAILQ_INIT(&V_pf_sendqueue); | STAILQ_INIT(&V_pf_sendqueue); | ||||
SLIST_INIT(&V_pf_overloadqueue); | SLIST_INIT(&V_pf_overloadqueue); | ||||
TASK_INIT(&V_pf_overloadtask, 0, pf_overload_task, curvnet); | TASK_INIT(&V_pf_overloadtask, 0, pf_overload_task, curvnet); | ||||
/* Unlinked, but may be referenced rules. */ | /* Unlinked, but may be referenced rules. */ | ||||
TAILQ_INIT(&V_pf_unlinked_rules); | TAILQ_INIT(&V_pf_unlinked_rules); | ||||
▲ Show 20 Lines • Show All 5,809 Lines • Show Last 20 Lines |