#include <net/pfkeyv2.h>

net/pfkeyv2.h

$KAME: pfkeyv2.h,v 1.10 2000/03/22 07:04:20 sakane Exp $
includes: sys/appleapiopts.h, net/if.h
136 macros · 20 structs

macroPF_KEY_V2

#define PF_KEY_V2 2

macroPFKEYV2_REVISION

#define PFKEYV2_REVISION 199806L

macroSADB_RESERVED

#define SADB_RESERVED 0

macroSADB_GETSPI

#define SADB_GETSPI 1

macroSADB_UPDATE

#define SADB_UPDATE 2

macroSADB_ADD

#define SADB_ADD 3

macroSADB_DELETE

#define SADB_DELETE 4

macroSADB_GET

#define SADB_GET 5

macroSADB_ACQUIRE

#define SADB_ACQUIRE 6

macroSADB_REGISTER

#define SADB_REGISTER 7

macroSADB_EXPIRE

#define SADB_EXPIRE 8

macroSADB_FLUSH

#define SADB_FLUSH 9

macroSADB_DUMP

#define SADB_DUMP 10

macroSADB_X_PROMISC

#define SADB_X_PROMISC 11

macroSADB_X_PCHANGE

#define SADB_X_PCHANGE 12

macroSADB_X_SPDUPDATE

#define SADB_X_SPDUPDATE 13

macroSADB_X_SPDADD

#define SADB_X_SPDADD 14

macroSADB_X_SPDDELETE

#define SADB_X_SPDDELETE 15
by policy index

macroSADB_X_SPDGET

#define SADB_X_SPDGET 16

macroSADB_X_SPDACQUIRE

#define SADB_X_SPDACQUIRE 17

macroSADB_X_SPDDUMP

#define SADB_X_SPDDUMP 18

macroSADB_X_SPDFLUSH

#define SADB_X_SPDFLUSH 19

macroSADB_X_SPDSETIDX

#define SADB_X_SPDSETIDX 20

macroSADB_X_SPDEXPIRE

#define SADB_X_SPDEXPIRE 21

macroSADB_X_SPDDELETE2

#define SADB_X_SPDDELETE2 22
by policy id

macroSADB_GETSASTAT

#define SADB_GETSASTAT 23

macroSADB_X_SPDENABLE

#define SADB_X_SPDENABLE 24
by policy id

macroSADB_X_SPDDISABLE

#define SADB_X_SPDDISABLE 25
by policy id

macroSADB_MIGRATE

#define SADB_MIGRATE 26

macroSADB_MAX

#define SADB_MAX 26

structsadb_msg

size 16, align 4
u_int8_tsadb_msg_version
u_int8_tsadb_msg_type
u_int8_tsadb_msg_errno
u_int8_tsadb_msg_satype
u_int16_tsadb_msg_len
u_int16_tsadb_msg_reserved
u_int32_tsadb_msg_seq
u_int32_tsadb_msg_pid

structsadb_ext

size 4, align 2
u_int16_tsadb_ext_len
u_int16_tsadb_ext_type

structsadb_sa

size 16, align 4
u_int16_tsadb_sa_len
u_int16_tsadb_sa_exttype
u_int32_tsadb_sa_spi
u_int8_tsadb_sa_replay
u_int8_tsadb_sa_state
u_int8_tsadb_sa_auth
u_int8_tsadb_sa_encrypt
u_int32_tsadb_sa_flags

structsadb_lifetime

size 32, align 8
u_int16_tsadb_lifetime_len
u_int16_tsadb_lifetime_exttype
u_int32_tsadb_lifetime_allocations
u_int64_tsadb_lifetime_bytes
u_int64_tsadb_lifetime_addtime
u_int64_tsadb_lifetime_usetime

structsadb_address

size 8, align 2
u_int16_tsadb_address_len
u_int16_tsadb_address_exttype
u_int8_tsadb_address_proto
u_int8_tsadb_address_prefixlen
u_int16_tsadb_address_reserved

structsadb_key

size 8, align 2
u_int16_tsadb_key_len
u_int16_tsadb_key_exttype
u_int16_tsadb_key_bits
u_int16_tsadb_key_reserved

structsadb_ident

size 16, align 8
u_int16_tsadb_ident_len
u_int16_tsadb_ident_exttype
u_int16_tsadb_ident_type
u_int16_tsadb_ident_reserved
u_int64_tsadb_ident_id

structsadb_sens

size 16, align 4
u_int16_tsadb_sens_len
u_int16_tsadb_sens_exttype
u_int32_tsadb_sens_dpd
u_int8_tsadb_sens_sens_level
u_int8_tsadb_sens_sens_len
u_int8_tsadb_sens_integ_level
u_int8_tsadb_sens_integ_len
u_int32_tsadb_sens_reserved

structsadb_prop

size 8, align 2
u_int16_tsadb_prop_len
u_int16_tsadb_prop_exttype
u_int8_tsadb_prop_replay
u_int8_t[3]sadb_prop_reserved

structsadb_comb

size 72, align 8
u_int8_tsadb_comb_auth
u_int8_tsadb_comb_encrypt
u_int16_tsadb_comb_flags
u_int16_tsadb_comb_auth_minbits
u_int16_tsadb_comb_auth_maxbits
u_int16_tsadb_comb_encrypt_minbits
u_int16_tsadb_comb_encrypt_maxbits
u_int32_tsadb_comb_reserved
u_int32_tsadb_comb_soft_allocations
u_int32_tsadb_comb_hard_allocations
u_int64_tsadb_comb_soft_bytes
u_int64_tsadb_comb_hard_bytes
u_int64_tsadb_comb_soft_addtime
u_int64_tsadb_comb_hard_addtime
u_int64_tsadb_comb_soft_usetime
u_int64_tsadb_comb_hard_usetime

structsadb_supported

size 8, align 4
u_int16_tsadb_supported_len
u_int16_tsadb_supported_exttype
u_int32_tsadb_supported_reserved

structsadb_alg

size 8, align 2
u_int8_tsadb_alg_id
u_int8_tsadb_alg_ivlen
u_int16_tsadb_alg_minbits
u_int16_tsadb_alg_maxbits
u_int16_tsadb_alg_reserved

structsadb_spirange

size 16, align 4
u_int16_tsadb_spirange_len
u_int16_tsadb_spirange_exttype
u_int32_tsadb_spirange_min
u_int32_tsadb_spirange_max
u_int32_tsadb_spirange_reserved

structsadb_x_kmprivate

size 8, align 4
u_int16_tsadb_x_kmprivate_len
u_int16_tsadb_x_kmprivate_exttype
u_int32_tsadb_x_kmprivate_reserved

structsadb_x_sa2

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
u_int16_tsadb_x_sa2_len
u_int16_tsadb_x_sa2_exttype
u_int8_tsadb_x_sa2_mode
u_int32_tsadb_x_sa2_sequence
u_int32_tsadb_x_sa2_reqid

structsadb_x_policy

XXX Policy Extension sizeof(struct sadb_x_policy) == 16
size 16, align 4
u_int16_tsadb_x_policy_len
u_int16_tsadb_x_policy_exttype
u_int16_tsadb_x_policy_typeSee policy type of ipsec.h
u_int8_tsadb_x_policy_dirdirection, see ipsec.h
u_int8_tsadb_x_policy_reserved
u_int32_tsadb_x_policy_id
u_int32_tsadb_x_policy_reserved2

structsadb_x_ipsecrequest

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_tsadb_x_ipsecrequest_lenstructure length aligned to 8 bytes. This value is true length of bytes. Not in units of 64 bits.
u_int16_tsadb_x_ipsecrequest_protoSee ipsec.h
u_int8_tsadb_x_ipsecrequest_modeSee IPSEC_MODE_XX in ipsec.h.
u_int8_tsadb_x_ipsecrequest_levelSee IPSEC_LEVEL_XX in ipsec.h
u_int16_tsadb_x_ipsecrequest_reqidSee ipsec.h

structsadb_session_id

size 24, align 8
u_int16_tsadb_session_id_len
u_int16_tsadb_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.

structsastat

size 40, align 8
u_int32_tspiSPI Value, network byte order
u_int32_tcreatedfor lifetime
struct sadb_lifetimelft_cCURRENT lifetime.
no need to align

structsadb_sastat

size 16, align 8
u_int16_tsadb_sastat_len
u_int16_tsadb_sastat_exttype
u_int32_tsadb_sastat_dir
u_int32_tsadb_sastat_reserved
u_int32_tsadb_sastat_list_len

macroSADB_EXT_RESERVED

#define SADB_EXT_RESERVED 0

macroSADB_EXT_SA

#define SADB_EXT_SA 1

macroSADB_EXT_LIFETIME_CURRENT

#define SADB_EXT_LIFETIME_CURRENT 2

macroSADB_EXT_LIFETIME_HARD

#define SADB_EXT_LIFETIME_HARD 3

macroSADB_EXT_LIFETIME_SOFT

#define SADB_EXT_LIFETIME_SOFT 4

macroSADB_EXT_ADDRESS_SRC

#define SADB_EXT_ADDRESS_SRC 5

macroSADB_EXT_ADDRESS_DST

#define SADB_EXT_ADDRESS_DST 6

macroSADB_EXT_ADDRESS_PROXY

#define SADB_EXT_ADDRESS_PROXY 7

macroSADB_EXT_KEY_AUTH

#define SADB_EXT_KEY_AUTH 8

macroSADB_EXT_KEY_ENCRYPT

#define SADB_EXT_KEY_ENCRYPT 9

macroSADB_EXT_IDENTITY_SRC

#define SADB_EXT_IDENTITY_SRC 10

macroSADB_EXT_IDENTITY_DST

#define SADB_EXT_IDENTITY_DST 11

macroSADB_EXT_SENSITIVITY

#define SADB_EXT_SENSITIVITY 12

macroSADB_EXT_PROPOSAL

#define SADB_EXT_PROPOSAL 13

macroSADB_EXT_SUPPORTED_AUTH

#define SADB_EXT_SUPPORTED_AUTH 14

macroSADB_EXT_SUPPORTED_ENCRYPT

#define SADB_EXT_SUPPORTED_ENCRYPT 15

macroSADB_EXT_SPIRANGE

#define SADB_EXT_SPIRANGE 16

macroSADB_X_EXT_KMPRIVATE

#define SADB_X_EXT_KMPRIVATE 17

macroSADB_X_EXT_POLICY

#define SADB_X_EXT_POLICY 18

macroSADB_X_EXT_SA2

#define SADB_X_EXT_SA2 19

macroSADB_EXT_SESSION_ID

#define SADB_EXT_SESSION_ID 20

macroSADB_EXT_SASTAT

#define SADB_EXT_SASTAT 21

macroSADB_X_EXT_IPSECIF

#define SADB_X_EXT_IPSECIF 22

macroSADB_X_EXT_ADDR_RANGE_SRC_START

#define SADB_X_EXT_ADDR_RANGE_SRC_START 23

macroSADB_X_EXT_ADDR_RANGE_SRC_END

#define SADB_X_EXT_ADDR_RANGE_SRC_END 24

macroSADB_X_EXT_ADDR_RANGE_DST_START

#define SADB_X_EXT_ADDR_RANGE_DST_START 25

macroSADB_X_EXT_ADDR_RANGE_DST_END

#define SADB_X_EXT_ADDR_RANGE_DST_END 26

macroSADB_EXT_MIGRATE_ADDRESS_SRC

#define SADB_EXT_MIGRATE_ADDRESS_SRC 27

macroSADB_EXT_MIGRATE_ADDRESS_DST

#define SADB_EXT_MIGRATE_ADDRESS_DST 28

macroSADB_X_EXT_MIGRATE_IPSECIF

#define SADB_X_EXT_MIGRATE_IPSECIF 29

macroSADB_EXT_MAX

#define SADB_EXT_MAX 29

macroSADB_SATYPE_UNSPEC

#define SADB_SATYPE_UNSPEC 0

macroSADB_SATYPE_AH

#define SADB_SATYPE_AH 2

macroSADB_SATYPE_ESP

#define SADB_SATYPE_ESP 3

macroSADB_SATYPE_RSVP

#define SADB_SATYPE_RSVP 5

macroSADB_SATYPE_OSPFV2

#define SADB_SATYPE_OSPFV2 6

macroSADB_SATYPE_RIPV2

#define SADB_SATYPE_RIPV2 7

macroSADB_SATYPE_MIP

#define SADB_SATYPE_MIP 8

macroSADB_X_SATYPE_IPCOMP

#define SADB_X_SATYPE_IPCOMP 9

macroSADB_X_SATYPE_POLICY

#define SADB_X_SATYPE_POLICY 10

macroSADB_SATYPE_MAX

#define SADB_SATYPE_MAX 11

macroSADB_SASTATE_LARVAL

#define SADB_SASTATE_LARVAL 0

macroSADB_SASTATE_MATURE

#define SADB_SASTATE_MATURE 1

macroSADB_SASTATE_DYING

#define SADB_SASTATE_DYING 2

macroSADB_SASTATE_DEAD

#define SADB_SASTATE_DEAD 3

macroSADB_SASTATE_MAX

#define SADB_SASTATE_MAX 3

macroSADB_SAFLAGS_PFS

#define SADB_SAFLAGS_PFS 1

macroSADB_AALG_NONE

RFC2367 numbers - meets RFC2407
#define SADB_AALG_NONE 0

macroSADB_AALG_MD5HMAC

#define SADB_AALG_MD5HMAC 1
2

macroSADB_AALG_SHA1HMAC

#define SADB_AALG_SHA1HMAC 2
3

macroSADB_AALG_MAX

#define SADB_AALG_MAX 8

macroSADB_X_AALG_SHA2_256

private allocations - based on RFC2407/IANA assignment
#define SADB_X_AALG_SHA2_256 6
5

macroSADB_X_AALG_SHA2_384

#define SADB_X_AALG_SHA2_384 7
6

macroSADB_X_AALG_SHA2_512

#define SADB_X_AALG_SHA2_512 8
7

macroSADB_X_AALG_MD5

private allocations should use 249-255 (RFC2407)
#define SADB_X_AALG_MD5 3
249

macroSADB_X_AALG_SHA

#define SADB_X_AALG_SHA 4
250

macroSADB_X_AALG_NULL

#define SADB_X_AALG_NULL 5
251

macroSADB_EALG_NONE

RFC2367 numbers - meets RFC2407
#define SADB_EALG_NONE 0

macroSADB_EALG_DESCBC

#define SADB_EALG_DESCBC 1
2

macroSADB_EALG_3DESCBC

#define SADB_EALG_3DESCBC 2
3

macroSADB_EALG_NULL

#define SADB_EALG_NULL 3
11

macroSADB_EALG_MAX

#define SADB_EALG_MAX 12

macroSADB_X_EALG_CAST128CBC

private allocations - based on RFC2407/IANA assignment
#define SADB_X_EALG_CAST128CBC 5
6

macroSADB_X_EALG_BLOWFISHCBC

#define SADB_X_EALG_BLOWFISHCBC 4
7

macroSADB_X_EALG_RIJNDAELCBC

#define SADB_X_EALG_RIJNDAELCBC 12

macroSADB_X_EALG_AESCBC

#define SADB_X_EALG_AESCBC 12

macroSADB_X_EALG_AES

#define SADB_X_EALG_AES 12

macroSADB_X_EALG_AES_GCM

#define SADB_X_EALG_AES_GCM 13

macroSADB_X_EALG_CHACHA20POLY1305

#define SADB_X_EALG_CHACHA20POLY1305 14

macroSADB_X_EALG_AES_GMAC

#define SADB_X_EALG_AES_GMAC 15

macroSADB_X_CALG_NONE

#define SADB_X_CALG_NONE 0

macroSADB_X_CALG_OUI

#define SADB_X_CALG_OUI 1

macroSADB_X_CALG_DEFLATE

#define SADB_X_CALG_DEFLATE 2

macroSADB_X_CALG_LZS

#define SADB_X_CALG_LZS 3

macroSADB_X_CALG_MAX

#define SADB_X_CALG_MAX 4

macroSADB_IDENTTYPE_RESERVED

#define SADB_IDENTTYPE_RESERVED 0

macroSADB_IDENTTYPE_PREFIX

#define SADB_IDENTTYPE_PREFIX 1

macroSADB_IDENTTYPE_FQDN

#define SADB_IDENTTYPE_FQDN 2

macroSADB_IDENTTYPE_USERFQDN

#define SADB_IDENTTYPE_USERFQDN 3

macroSADB_X_IDENTTYPE_ADDR

#define SADB_X_IDENTTYPE_ADDR 4

macroSADB_IDENTTYPE_MAX

#define SADB_IDENTTYPE_MAX 4

macroSADB_X_EXT_NONE

`flags' in sadb_sa structure holds followings
#define SADB_X_EXT_NONE 0x0000
i.e. new format.

macroSADB_X_EXT_OLD

#define SADB_X_EXT_OLD 0x0001
old format.

macroSADB_X_EXT_IV4B

#define SADB_X_EXT_IV4B 0x0010
IV length of 4 bytes in use

macroSADB_X_EXT_DERIV

#define SADB_X_EXT_DERIV 0x0020
DES derived

macroSADB_X_EXT_CYCSEQ

#define SADB_X_EXT_CYCSEQ 0x0040
allowing to cyclic sequence.

macroSADB_X_EXT_PSEQ

three of followings are exclusive flags each them
#define SADB_X_EXT_PSEQ 0x0000
sequencial padding for ESP

macroSADB_X_EXT_PRAND

#define SADB_X_EXT_PRAND 0x0100
random padding for ESP

macroSADB_X_EXT_PZERO

#define SADB_X_EXT_PZERO 0x0200
zero padding for ESP

macroSADB_X_EXT_PMASK

#define SADB_X_EXT_PMASK 0x0300
mask for padding flag

macroSADB_X_EXT_IIV

#define SADB_X_EXT_IIV 0x0400
Implicit IV

macroSADB_X_EXT_RAWCPI

#define SADB_X_EXT_RAWCPI 0x0080
use well known CPI (IPComp)

macroSADB_KEY_FLAGS_MAX

#define SADB_KEY_FLAGS_MAX 0x7fff

macroPFKEY_SPI_SIZE

SPI size for PF_KEYv2
#define PFKEY_SPI_SIZE sizeof(u_int32_t)

macroSADB_X_LIFETIME_ALLOCATIONS

Identifier for menber of lifetime structure
#define SADB_X_LIFETIME_ALLOCATIONS 0

macroSADB_X_LIFETIME_BYTES

#define SADB_X_LIFETIME_BYTES 1

macroSADB_X_LIFETIME_ADDTIME

#define SADB_X_LIFETIME_ADDTIME 2

macroSADB_X_LIFETIME_USETIME

#define SADB_X_LIFETIME_USETIME 3

macroPFKEY_SOFT_LIFETIME_RATE

The rate for SOFT lifetime against HARD one.
#define PFKEY_SOFT_LIFETIME_RATE 80

macroPFKEY_ALIGN8

Utilities
#define PFKEY_ALIGN8(a) (1 + (((a) - 1) | (8 - 1)))

macroPFKEY_EXTLEN

#define PFKEY_EXTLEN(msg) PFKEY_UNUNIT64(((struct sadb_ext *)(msg))->sadb_ext_len)

macroPFKEY_ADDR_PREFIX

#define PFKEY_ADDR_PREFIX(ext) (((struct sadb_address *)(ext))->sadb_address_prefixlen)

macroPFKEY_ADDR_PROTO

#define PFKEY_ADDR_PROTO(ext) (((struct sadb_address *)(ext))->sadb_address_proto)

macroPFKEY_ADDR_SADDR

#define PFKEY_ADDR_SADDR(ext) ((struct sockaddr *)((caddr_t)(ext) + sizeof(struct sadb_address)))

macroPFKEY_UNUNIT64

in 64bits
#define PFKEY_UNUNIT64(a) ((a) << 3)

macroPFKEY_UNIT64

#define PFKEY_UNIT64(a) ((a) >> 3)