pf: expose syncookie active/inactive status

When syncookies are in adaptive mode they may be active or inactive.
Expose this status to users.

Suggested by:	Guido van Rooij
Sponsored by:	Rubicon Communications, LLC ("Netgate")
This commit is contained in:
Kristof Provost 2022-09-24 14:47:17 +02:00
parent 728ca8506d
commit 444a77ca85
4 changed files with 6 additions and 0 deletions

View file

@ -224,6 +224,7 @@ pfctl_get_status(int dev)
status->hostid = ntohl(nvlist_get_number(nvl, "hostid"));
status->states = nvlist_get_number(nvl, "states");
status->src_nodes = nvlist_get_number(nvl, "src_nodes");
status->syncookies_active = nvlist_get_bool(nvl, "syncookies_active");
strlcpy(status->ifname, nvlist_get_string(nvl, "ifname"),
IFNAMSIZ);

View file

@ -57,6 +57,7 @@ struct pfctl_status {
uint64_t src_nodes;
char ifname[IFNAMSIZ];
uint8_t pf_chksum[PF_MD5_DIGEST_LENGTH];
bool syncookies_active;
struct pfctl_status_counters counters;
struct pfctl_status_counters lcounters;

View file

@ -622,6 +622,8 @@ print_status(struct pfctl_status *s, struct pfctl_syncookies *cookies, int opts)
assert(cookies->mode <= PFCTL_SYNCOOKIES_ADAPTIVE);
printf(" %-25s %s\n", "mode",
PFCTL_SYNCOOKIES_MODE_NAMES[cookies->mode]);
printf(" %-25s %s\n", "active",
s->syncookies_active ? "active" : "inactive");
}
}

View file

@ -5816,6 +5816,8 @@ pf_getstatus(struct pfioc_nv *nv)
nvlist_add_number(nvl, "hostid", V_pf_status.hostid);
nvlist_add_number(nvl, "states", V_pf_status.states);
nvlist_add_number(nvl, "src_nodes", V_pf_status.src_nodes);
nvlist_add_bool(nvl, "syncookies_active",
V_pf_status.syncookies_active);
/* counters */
error = pf_add_status_counters(nvl, "counters", V_pf_status.counters,