summaryrefslogtreecommitdiff
path: root/sys/net/pfvar.h
diff options
context:
space:
mode:
authorJoel Sing <jsing@cvs.openbsd.org>2010-10-17 12:14:29 +0000
committerJoel Sing <jsing@cvs.openbsd.org>2010-10-17 12:14:29 +0000
commit337bb5882fccf6bbf5a88a8036b5d93f772f73e4 (patch)
tree5582b16f5fef61bc2129aaee7cdd0526ffe821df /sys/net/pfvar.h
parentb5b9e5143e75a188c4164b69c4d89a93cf07373e (diff)
Add quirks support to operating system fingerprinting. tcpdump part
by mcbride@. ok mcbride@ henning@
Diffstat (limited to 'sys/net/pfvar.h')
-rw-r--r--sys/net/pfvar.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h
index 4c812506839..d90fa3faa71 100644
--- a/sys/net/pfvar.h
+++ b/sys/net/pfvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: pfvar.h,v 1.315 2010/09/22 05:58:29 henning Exp $ */
+/* $OpenBSD: pfvar.h,v 1.316 2010/10/17 12:14:28 jsing Exp $ */
/*
* Copyright (c) 2001 Daniel Hartmeier
@@ -487,6 +487,19 @@ struct pf_os_fingerprint {
#define PF_OSFP_DF 0x1000 /* IPv4 don't fragment bit */
#define PF_OSFP_TS0 0x2000 /* Zero timestamp */
#define PF_OSFP_INET6 0x4000 /* IPv6 */
+ u_int16_t fp_quirks;
+#define PF_OSFP_QUIRK_DATA 0x0001 /* SYN contains payload. */
+#define PF_OSFP_QUIRK_SEQEQ 0x0002 /* SEQ no equals ACK no. */
+#define PF_OSFP_QUIRK_SEQZERO 0x0004 /* SEQ no is zero. */
+#define PF_OSFP_QUIRK_PAST 0x0008 /* Options past EOL. */
+#define PF_OSFP_QUIRK_ZEROID 0x0010 /* IPv4 ID is zero. */
+#define PF_OSFP_QUIRK_IPOPT 0x0020 /* IPv4 options specified. */
+#define PF_OSFP_QUIRK_URG 0x0040 /* URG pointer non-zero. */
+#define PF_OSFP_QUIRK_X2 0x0080 /* Used x2 field non-zero. */
+#define PF_OSFP_QUIRK_ACKNO 0x0100 /* ACK no is non-zero. */
+#define PF_OSFP_QUIRK_TS2 0x0200 /* Second non-zero timestamp. */
+#define PF_OSFP_QUIRK_FLAGS 0x0400 /* Unusual flags set. */
+#define PF_OSFP_QUIRK_BROKEN 0x0800 /* Broken options segment. */
u_int8_t fp_optcnt; /* TCP option count */
u_int8_t fp_wscale; /* TCP window scaling */
u_int8_t fp_ttl; /* IPv4 TTL */
@@ -512,6 +525,7 @@ struct pf_osfp_ioctl {
u_int16_t fp_psize; /* ip->ip_len */
u_int16_t fp_mss; /* TCP MSS */
u_int16_t fp_flags;
+ u_int16_t fp_quirks;
u_int8_t fp_optcnt; /* TCP option count */
u_int8_t fp_wscale; /* TCP window scaling */
u_int8_t fp_ttl; /* IPv4 TTL */