#include <net/pfkeyv2.h>
net/pfkeyv2.h $KAME: pfkeyv2.h,v 1.10 2000/03/22 07:04:20 sakane Exp $
136 macros · 20 structs
#define PFKEYV2_REVISION 199806L #define SADB_X_PROMISC 11 #define SADB_X_PCHANGE 12 #define SADB_X_SPDUPDATE 13 #define SADB_X_SPDDELETE 15 by policy index
#define SADB_X_SPDACQUIRE 17 #define SADB_X_SPDDUMP 18 #define SADB_X_SPDFLUSH 19 #define SADB_X_SPDSETIDX 20 #define SADB_X_SPDEXPIRE 21 #define SADB_X_SPDDELETE2 22 by policy id
#define SADB_GETSASTAT 23 #define SADB_X_SPDENABLE 24 by policy id
#define SADB_X_SPDDISABLE 25 by policy id
XXX Additional SA Extension.
mode: tunnel or transport
reqid: to make SA unique nevertheless the address pair of SA are same.
Mainly it's for VPN.
size 16, align 4
XXX Policy Extension
sizeof(struct sadb_x_policy) == 16
size 16, align 4
When policy_type == IPSEC, it is followed by some of
the ipsec policy request.
[total length of ipsec policy requests]
= (sadb_x_policy_len * sizeof(uint64_t) - sizeof(struct
sadb_x_policy ))
XXX IPsec Policy Request Extension
This structure is aligned 8 bytes.
size 8, align 2
u_int16_t sadb_x_ipsecrequest_len structure length aligned to 8 bytes.
This value is true length of bytes.
Not in units of 64 bits. u_int16_t sadb_x_ipsecrequest_proto See ipsec.h u_int8_t sadb_x_ipsecrequest_mode See IPSEC_MODE_XX in ipsec.h. u_int8_t sadb_x_ipsecrequest_level See IPSEC_LEVEL_XX in ipsec.h u_int16_t sadb_x_ipsecrequest_reqid See ipsec.h
size 24, align 8
u_int16_t sadb_session_id_len u_int16_t sadb_session_id_exttype u_int64_t [2]sadb_session_id_v [0] is an arbitrary handle that means something only for requester
[1] is a global session id for lookups in the kernel and racoon.
size 40, align 8
no need to align
#define SADB_EXT_RESERVED 0 #define SADB_EXT_LIFETIME_CURRENT 2 #define SADB_EXT_LIFETIME_HARD 3 #define SADB_EXT_LIFETIME_SOFT 4 #define SADB_EXT_ADDRESS_SRC 5 #define SADB_EXT_ADDRESS_DST 6 #define SADB_EXT_ADDRESS_PROXY 7 #define SADB_EXT_KEY_AUTH 8 #define SADB_EXT_KEY_ENCRYPT 9 #define SADB_EXT_IDENTITY_SRC 10 #define SADB_EXT_IDENTITY_DST 11 #define SADB_EXT_SENSITIVITY 12 #define SADB_EXT_PROPOSAL 13 #define SADB_EXT_SUPPORTED_AUTH 14 #define SADB_EXT_SUPPORTED_ENCRYPT 15 #define SADB_EXT_SPIRANGE 16 #define SADB_X_EXT_KMPRIVATE 17 #define SADB_X_EXT_POLICY 18 #define SADB_X_EXT_SA2 19 #define SADB_EXT_SESSION_ID 20 #define SADB_EXT_SASTAT 21 #define SADB_X_EXT_IPSECIF 22 #define SADB_X_EXT_ADDR_RANGE_SRC_START 23 #define SADB_X_EXT_ADDR_RANGE_SRC_END 24 #define SADB_X_EXT_ADDR_RANGE_DST_START 25 #define SADB_X_EXT_ADDR_RANGE_DST_END 26 #define SADB_EXT_MIGRATE_ADDRESS_SRC 27 #define SADB_EXT_MIGRATE_ADDRESS_DST 28 #define SADB_X_EXT_MIGRATE_IPSECIF 29 #define SADB_SATYPE_UNSPEC 0 #define SADB_SATYPE_ESP 3 #define SADB_SATYPE_RSVP 5 #define SADB_SATYPE_OSPFV2 6 #define SADB_SATYPE_RIPV2 7 #define SADB_SATYPE_MIP 8 #define SADB_X_SATYPE_IPCOMP 9 #define SADB_X_SATYPE_POLICY 10 #define SADB_SATYPE_MAX 11 #define SADB_SASTATE_LARVAL 0 #define SADB_SASTATE_MATURE 1 #define SADB_SASTATE_DYING 2 #define SADB_SASTATE_DEAD 3 #define SADB_SASTATE_MAX 3 #define SADB_SAFLAGS_PFS 1 RFC2367 numbers - meets RFC2407
#define SADB_AALG_NONE 0 #define SADB_AALG_MD5HMAC 1 2
#define SADB_AALG_SHA1HMAC 2 3
private allocations - based on RFC2407/IANA assignment
#define SADB_X_AALG_SHA2_256 6 5
#define SADB_X_AALG_SHA2_384 7 6
#define SADB_X_AALG_SHA2_512 8 7
private allocations should use 249-255 (RFC2407)
#define SADB_X_AALG_MD5 3 249
#define SADB_X_AALG_SHA 4 250
#define SADB_X_AALG_NULL 5 251
RFC2367 numbers - meets RFC2407
#define SADB_EALG_NONE 0 #define SADB_EALG_DESCBC 1 2
#define SADB_EALG_3DESCBC 2 3
#define SADB_EALG_NULL 3 11
private allocations - based on RFC2407/IANA assignment
#define SADB_X_EALG_CAST128CBC 5 6
#define SADB_X_EALG_BLOWFISHCBC 4 7
#define SADB_X_EALG_RIJNDAELCBC 12 #define SADB_X_EALG_AESCBC 12 #define SADB_X_EALG_AES 12 #define SADB_X_EALG_AES_GCM 13 #define SADB_X_EALG_CHACHA20POLY1305 14 #define SADB_X_EALG_AES_GMAC 15 #define SADB_X_CALG_NONE 0 #define SADB_X_CALG_OUI 1 #define SADB_X_CALG_DEFLATE 2 #define SADB_X_CALG_LZS 3 #define SADB_X_CALG_MAX 4 #define SADB_IDENTTYPE_RESERVED 0 #define SADB_IDENTTYPE_PREFIX 1 #define SADB_IDENTTYPE_FQDN 2 #define SADB_IDENTTYPE_USERFQDN 3 #define SADB_X_IDENTTYPE_ADDR 4 #define SADB_IDENTTYPE_MAX 4 `flags' in
sadb_sa structure holds followings
#define SADB_X_EXT_NONE 0x0000 i.e. new format.
#define SADB_X_EXT_OLD 0x0001 old format.
#define SADB_X_EXT_IV4B 0x0010 IV length of 4 bytes in use
#define SADB_X_EXT_DERIV 0x0020 DES derived
#define SADB_X_EXT_CYCSEQ 0x0040 allowing to cyclic sequence.
three of followings are exclusive flags each them
#define SADB_X_EXT_PSEQ 0x0000 sequencial padding for ESP
#define SADB_X_EXT_PRAND 0x0100 random padding for ESP
#define SADB_X_EXT_PZERO 0x0200 zero padding for ESP
#define SADB_X_EXT_PMASK 0x0300 mask for padding flag
#define SADB_X_EXT_IIV 0x0400 Implicit IV
#define SADB_X_EXT_RAWCPI 0x0080 use well known CPI (IPComp)
#define SADB_KEY_FLAGS_MAX 0x7fff SPI size for PF_KEYv2
#define PFKEY_SPI_SIZE sizeof(u_int32_t ) Identifier for menber of lifetime structure
#define SADB_X_LIFETIME_ALLOCATIONS 0 #define SADB_X_LIFETIME_BYTES 1 #define SADB_X_LIFETIME_ADDTIME 2 #define SADB_X_LIFETIME_USETIME 3 The rate for SOFT lifetime against HARD one.
#define PFKEY_SOFT_LIFETIME_RATE 80 Utilities
#define PFKEY_ALIGN8(a) (1 + (((a) - 1) | (8 - 1))) #define PFKEY_ADDR_PREFIX(ext) (((struct sadb_address *)(ext))->sadb_address_prefixlen) #define PFKEY_ADDR_PROTO(ext) (((struct sadb_address *)(ext))->sadb_address_proto) in 64bits
#define PFKEY_UNUNIT64(a) ((a) << 3) #define PFKEY_UNIT64(a) ((a) >> 3) Generated 2026-09-08 from the headers of one specific machine (macOS 26.4.1, SDK 26.4, arm64) — not official documentation. About & caveats