- pfk_hooks: PRE→PF_IN, LOCAL_OUT/POST→PF_OUT v4+v6; replacement/buffer handling with NF_STOLEN + re-injection (documented divergence: re-entry) - pfk_mod: pf_status_init/pfattach + pfi attach via pfk_if event callback - pfk_kern: NET_LOCK holder reentrancy (fix deadlock when notifier fires under the write lock — observed as full-VM network hang) - tools: static pfctl link for musl VMs
33 lines
1.5 KiB
C
33 lines
1.5 KiB
C
/* PFLINUX: <netinet/tcp_fsm.h> — OpenBSD 8.0 TCP state machine header
|
|
* (glibc has no equivalent). Values copied from
|
|
* _vendor/openbsd/obbsd/sys/netinet/tcp_fsm.h. Kernel-only bodies
|
|
* (TCPOUTFLAGS/TCPSTATES arrays) dropped; tcpstates[] is declared extern
|
|
* and defined in tools/compat-user/bsd.c for pf_print_state.c. */
|
|
#ifndef _PFLINUX_NETINET_TCP_FSM_H
|
|
#define _PFLINUX_NETINET_TCP_FSM_H
|
|
|
|
#define TCP_NSTATES 11
|
|
|
|
#define TCPS_CLOSED 0 /* closed */
|
|
#define TCPS_LISTEN 1 /* listening for connection */
|
|
#define TCPS_SYN_SENT 2 /* active, have sent syn */
|
|
#define TCPS_SYN_RECEIVED 3 /* have sent and received syn */
|
|
/* states < TCPS_ESTABLISHED are those where connections not established */
|
|
#define TCPS_ESTABLISHED 4 /* established */
|
|
#define TCPS_CLOSE_WAIT 5 /* rcvd fin, waiting for close */
|
|
/* states > TCPS_CLOSE_WAIT are those where user has closed */
|
|
#define TCPS_FIN_WAIT_1 6 /* have closed, sent fin */
|
|
#define TCPS_CLOSING 7 /* closed xchd FIN; await FIN ACK */
|
|
#define TCPS_LAST_ACK 8 /* had fin and close; await FIN ACK */
|
|
/* states > TCPS_CLOSE_WAIT && < TCPS_FIN_WAIT_2 await ACK of FIN */
|
|
#define TCPS_FIN_WAIT_2 9 /* have closed, fin is acked */
|
|
#define TCPS_TIME_WAIT 10 /* in 2*msl quiet wait after close */
|
|
|
|
#define TCPS_HAVERCVDSYN(s) ((s) >= TCPS_SYN_RECEIVED)
|
|
#define TCPS_HAVEESTABLISHED(s) ((s) >= TCPS_ESTABLISHED)
|
|
#define TCPS_HAVERCVDFIN(s) ((s) >= TCPS_TIME_WAIT)
|
|
|
|
extern const char *const tcpstates[];
|
|
|
|
#endif /* _PFLINUX_NETINET_TCP_FSM_H */
|