aboutsummaryrefslogtreecommitdiff
path: root/sys/net/pfkeyv2.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/net/pfkeyv2.h')
-rw-r--r--sys/net/pfkeyv2.h544
1 files changed, 253 insertions, 291 deletions
diff --git a/sys/net/pfkeyv2.h b/sys/net/pfkeyv2.h
index e8831f70df7f..4c41c8072b68 100644
--- a/sys/net/pfkeyv2.h
+++ b/sys/net/pfkeyv2.h
@@ -1,3 +1,6 @@
+/* $FreeBSD$ */
+/* $KAME: pfkeyv2.h,v 1.17 2000/06/22 08:38:33 sakane Exp $ */
+
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
* All rights reserved.
@@ -25,12 +28,8 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
- *
- * $FreeBSD$
*/
-/* $Id: keyv2.h,v 1.1.6.1.6.4 1999/06/08 05:33:39 itojun Exp $ */
-
/*
* This file has been derived rfc 2367,
* And added some flags of SADB_KEY_FLAGS_ as SADB_X_EXT_.
@@ -38,7 +37,7 @@
*/
#ifndef _NET_PFKEYV2_H_
-#define _NET_PFKEYV2_H_
+#define _NET_PFKEYV2_H_
/*
This file defines structures and symbols for the PF_KEY Version 2
@@ -47,177 +46,187 @@ Laboratory. This file is in the public domain. The authors ask that
you leave this credit intact on any copies of this file.
*/
#ifndef __PFKEY_V2_H
-#define __PFKEY_V2_H 1
-
-#define PF_KEY_V2 2
-#define PFKEYV2_REVISION 199806L
-
-#define SADB_RESERVED 0
-#define SADB_GETSPI 1
-#define SADB_UPDATE 2
-#define SADB_ADD 3
-#define SADB_DELETE 4
-#define SADB_GET 5
-#define SADB_ACQUIRE 6
-#define SADB_REGISTER 7
-#define SADB_EXPIRE 8
-#define SADB_FLUSH 9
-#define SADB_DUMP 10
-#define SADB_X_PROMISC 11
-#define SADB_X_PCHANGE 12
-
-#define SADB_X_SPDUPDATE 13 /* not yet */
-#define SADB_X_SPDADD 14
-#define SADB_X_SPDDELETE 15
-#define SADB_X_SPDGET 16 /* not yet */
-#define SADB_X_SPDACQUIRE 17 /* not yet */
-#define SADB_X_SPDDUMP 18
-#define SADB_X_SPDFLUSH 19
-#define SADB_MAX 19
+#define __PFKEY_V2_H 1
+
+#define PF_KEY_V2 2
+#define PFKEYV2_REVISION 199806L
+
+#define SADB_RESERVED 0
+#define SADB_GETSPI 1
+#define SADB_UPDATE 2
+#define SADB_ADD 3
+#define SADB_DELETE 4
+#define SADB_GET 5
+#define SADB_ACQUIRE 6
+#define SADB_REGISTER 7
+#define SADB_EXPIRE 8
+#define SADB_FLUSH 9
+#define SADB_DUMP 10
+#define SADB_X_PROMISC 11
+#define SADB_X_PCHANGE 12
+
+#define SADB_X_SPDUPDATE 13
+#define SADB_X_SPDADD 14
+#define SADB_X_SPDDELETE 15 /* by policy index */
+#define SADB_X_SPDGET 16
+#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 /* not yet */
+#define SADB_X_SPDDELETE2 22 /* by policy id */
+#define SADB_MAX 22
struct sadb_msg {
- u_int8_t sadb_msg_version;
- u_int8_t sadb_msg_type;
- u_int8_t sadb_msg_errno;
- u_int8_t sadb_msg_satype;
- u_int16_t sadb_msg_len;
- u_int8_t sadb_msg_mode; /* XXX */
- u_int8_t sadb_msg_reserved;
- u_int32_t sadb_msg_seq;
- u_int32_t sadb_msg_pid;
+ u_int8_t sadb_msg_version;
+ u_int8_t sadb_msg_type;
+ u_int8_t sadb_msg_errno;
+ u_int8_t sadb_msg_satype;
+ u_int16_t sadb_msg_len;
+ u_int16_t sadb_msg_reserved;
+ u_int32_t sadb_msg_seq;
+ u_int32_t sadb_msg_pid;
};
struct sadb_ext {
- u_int16_t sadb_ext_len;
- u_int16_t sadb_ext_type;
+ u_int16_t sadb_ext_len;
+ u_int16_t sadb_ext_type;
};
struct sadb_sa {
- u_int16_t sadb_sa_len;
- u_int16_t sadb_sa_exttype;
- u_int32_t sadb_sa_spi;
- u_int8_t sadb_sa_replay;
- u_int8_t sadb_sa_state;
- u_int8_t sadb_sa_auth;
- u_int8_t sadb_sa_encrypt;
- u_int32_t sadb_sa_flags;
+ u_int16_t sadb_sa_len;
+ u_int16_t sadb_sa_exttype;
+ u_int32_t sadb_sa_spi;
+ u_int8_t sadb_sa_replay;
+ u_int8_t sadb_sa_state;
+ u_int8_t sadb_sa_auth;
+ u_int8_t sadb_sa_encrypt;
+ u_int32_t sadb_sa_flags;
};
struct sadb_lifetime {
- u_int16_t sadb_lifetime_len;
- u_int16_t sadb_lifetime_exttype;
- u_int32_t sadb_lifetime_allocations;
- u_int64_t sadb_lifetime_bytes;
- u_int64_t sadb_lifetime_addtime;
- u_int64_t sadb_lifetime_usetime;
+ u_int16_t sadb_lifetime_len;
+ u_int16_t sadb_lifetime_exttype;
+ u_int32_t sadb_lifetime_allocations;
+ u_int64_t sadb_lifetime_bytes;
+ u_int64_t sadb_lifetime_addtime;
+ u_int64_t sadb_lifetime_usetime;
};
struct sadb_address {
- u_int16_t sadb_address_len;
- u_int16_t sadb_address_exttype;
- u_int8_t sadb_address_proto;
- u_int8_t sadb_address_prefixlen;
- u_int16_t sadb_address_reserved;
+ u_int16_t sadb_address_len;
+ u_int16_t sadb_address_exttype;
+ u_int8_t sadb_address_proto;
+ u_int8_t sadb_address_prefixlen;
+ u_int16_t sadb_address_reserved;
};
struct sadb_key {
- u_int16_t sadb_key_len;
- u_int16_t sadb_key_exttype;
- u_int16_t sadb_key_bits;
- u_int16_t sadb_key_reserved;
+ u_int16_t sadb_key_len;
+ u_int16_t sadb_key_exttype;
+ u_int16_t sadb_key_bits;
+ u_int16_t sadb_key_reserved;
};
struct sadb_ident {
- u_int16_t sadb_ident_len;
- u_int16_t sadb_ident_exttype;
- u_int16_t sadb_ident_type;
- u_int16_t sadb_ident_reserved;
- u_int64_t sadb_ident_id;
-};
-/* in order to use to divide sadb_ident.sadb_ident_id */
-union sadb_x_ident_id {
- u_int64_t sadb_x_ident_id;
- struct _sadb_x_ident_id_addr {
- u_int16_t prefix;
- u_int16_t ul_proto;
- u_int32_t reserved;
- } sadb_x_ident_id_addr;
+ u_int16_t sadb_ident_len;
+ u_int16_t sadb_ident_exttype;
+ u_int16_t sadb_ident_type;
+ u_int16_t sadb_ident_reserved;
+ u_int64_t sadb_ident_id;
};
struct sadb_sens {
- u_int16_t sadb_sens_len;
- u_int16_t sadb_sens_exttype;
- u_int32_t sadb_sens_dpd;
- u_int8_t sadb_sens_sens_level;
- u_int8_t sadb_sens_sens_len;
- u_int8_t sadb_sens_integ_level;
- u_int8_t sadb_sens_integ_len;
- u_int32_t sadb_sens_reserved;
+ u_int16_t sadb_sens_len;
+ u_int16_t sadb_sens_exttype;
+ u_int32_t sadb_sens_dpd;
+ u_int8_t sadb_sens_sens_level;
+ u_int8_t sadb_sens_sens_len;
+ u_int8_t sadb_sens_integ_level;
+ u_int8_t sadb_sens_integ_len;
+ u_int32_t sadb_sens_reserved;
};
struct sadb_prop {
- u_int16_t sadb_prop_len;
- u_int16_t sadb_prop_exttype;
- u_int8_t sadb_prop_replay;
- u_int8_t sadb_prop_reserved[3];
+ u_int16_t sadb_prop_len;
+ u_int16_t sadb_prop_exttype;
+ u_int8_t sadb_prop_replay;
+ u_int8_t sadb_prop_reserved[3];
};
struct sadb_comb {
- u_int8_t sadb_comb_auth;
- u_int8_t sadb_comb_encrypt;
- u_int16_t sadb_comb_flags;
- u_int16_t sadb_comb_auth_minbits;
- u_int16_t sadb_comb_auth_maxbits;
- u_int16_t sadb_comb_encrypt_minbits;
- u_int16_t sadb_comb_encrypt_maxbits;
- u_int32_t sadb_comb_reserved;
- u_int32_t sadb_comb_soft_allocations;
- u_int32_t sadb_comb_hard_allocations;
- u_int64_t sadb_comb_soft_bytes;
- u_int64_t sadb_comb_hard_bytes;
- u_int64_t sadb_comb_soft_addtime;
- u_int64_t sadb_comb_hard_addtime;
- u_int64_t sadb_comb_soft_usetime;
- u_int64_t sadb_comb_hard_usetime;
+ u_int8_t sadb_comb_auth;
+ u_int8_t sadb_comb_encrypt;
+ u_int16_t sadb_comb_flags;
+ u_int16_t sadb_comb_auth_minbits;
+ u_int16_t sadb_comb_auth_maxbits;
+ u_int16_t sadb_comb_encrypt_minbits;
+ u_int16_t sadb_comb_encrypt_maxbits;
+ u_int32_t sadb_comb_reserved;
+ u_int32_t sadb_comb_soft_allocations;
+ u_int32_t sadb_comb_hard_allocations;
+ u_int64_t sadb_comb_soft_bytes;
+ u_int64_t sadb_comb_hard_bytes;
+ u_int64_t sadb_comb_soft_addtime;
+ u_int64_t sadb_comb_hard_addtime;
+ u_int64_t sadb_comb_soft_usetime;
+ u_int64_t sadb_comb_hard_usetime;
};
struct sadb_supported {
- u_int16_t sadb_supported_len;
- u_int16_t sadb_supported_exttype;
- u_int32_t sadb_supported_reserved;
+ u_int16_t sadb_supported_len;
+ u_int16_t sadb_supported_exttype;
+ u_int32_t sadb_supported_reserved;
};
struct sadb_alg {
- u_int8_t sadb_alg_id;
- u_int8_t sadb_alg_ivlen;
- u_int16_t sadb_alg_minbits;
- u_int16_t sadb_alg_maxbits;
- u_int16_t sadb_alg_reserved;
+ u_int8_t sadb_alg_id;
+ u_int8_t sadb_alg_ivlen;
+ u_int16_t sadb_alg_minbits;
+ u_int16_t sadb_alg_maxbits;
+ u_int16_t sadb_alg_reserved;
};
struct sadb_spirange {
- u_int16_t sadb_spirange_len;
- u_int16_t sadb_spirange_exttype;
- u_int32_t sadb_spirange_min;
- u_int32_t sadb_spirange_max;
- u_int32_t sadb_spirange_reserved;
+ u_int16_t sadb_spirange_len;
+ u_int16_t sadb_spirange_exttype;
+ u_int32_t sadb_spirange_min;
+ u_int32_t sadb_spirange_max;
+ u_int32_t sadb_spirange_reserved;
};
struct sadb_x_kmprivate {
- u_int16_t sadb_x_kmprivate_len;
- u_int16_t sadb_x_kmprivate_exttype;
- u_int32_t sadb_x_kmprivate_reserved;
+ u_int16_t sadb_x_kmprivate_len;
+ u_int16_t sadb_x_kmprivate_exttype;
+ u_int32_t sadb_x_kmprivate_reserved;
+};
+
+/*
+ * 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.
+ */
+struct sadb_x_sa2 {
+ u_int16_t sadb_x_sa2_len;
+ u_int16_t sadb_x_sa2_exttype;
+ u_int8_t sadb_x_sa2_mode;
+ u_int8_t sadb_x_sa2_reserved1;
+ u_int16_t sadb_x_sa2_reserved2;
+ u_int32_t sadb_x_sa2_reserved3;
+ u_int32_t sadb_x_sa2_reqid;
};
/* XXX Policy Extension */
-/* sizeof(struct sadb_x_policy) == 8 */
+/* sizeof(struct sadb_x_policy) == 16 */
struct sadb_x_policy {
- u_int16_t sadb_x_policy_len;
- u_int16_t sadb_x_policy_exttype;
- /* See policy type of ipsec.h */
- u_int16_t sadb_x_policy_type;
- u_int8_t sadb_x_policy_dir; /* direction, see ipsec.h */
- u_int8_t sadb_x_policy_reserved;
+ u_int16_t sadb_x_policy_len;
+ u_int16_t sadb_x_policy_exttype;
+ u_int16_t sadb_x_policy_type; /* See policy type of ipsec.h */
+ u_int8_t sadb_x_policy_dir; /* direction, see ipsec.h */
+ u_int8_t sadb_x_policy_reserved;
+ u_int32_t sadb_x_policy_id;
+ u_int32_t sadb_x_policy_reserved2;
};
/*
* When policy_type == IPSEC, it is followed by some of
@@ -231,190 +240,143 @@ struct sadb_x_policy {
* This structure is aligned 8 bytes.
*/
struct sadb_x_ipsecrequest {
- 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 */
- /* See ipsec.h. Not SADB_SATYPE_XX */
- u_int16_t sadb_x_ipsecrequest_mode;
- u_int16_t sadb_x_ipsecrequest_level; /* See ipsec.h */
-
- /*
- * followed by source IP address of SA, and immediately followed by
- * destination IP address of SA. These encoded into two of sockaddr
- * structure without any padding. Must set each sa_len exactly.
- * Each of length of the sockaddr structure are not aligned to 64bits,
- * but sum of x_request and addresses is aligned to 64bits.
- */
+ 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 */
+
+ /*
+ * followed by source IP address of SA, and immediately followed by
+ * destination IP address of SA. These encoded into two of sockaddr
+ * structure without any padding. Must set each sa_len exactly.
+ * Each of length of the sockaddr structure are not aligned to 64bits,
+ * but sum of x_request and addresses is aligned to 64bits.
+ */
};
-#define SADB_EXT_RESERVED 0
-#define SADB_EXT_SA 1
-#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_EXT_MAX 18
-
-#define SADB_SATYPE_UNSPEC 0
-#define SADB_SATYPE_AH 2
-#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_SATYPE_MAX 9
-
-#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
-
-#define SADB_AALG_NONE 0
-#define SADB_AALG_MD5HMAC 1 /* 2 */
-#define SADB_AALG_SHA1HMAC 2 /* 3 */
-#define SADB_AALG_MD5 3 /* Keyed MD5 */
-#define SADB_AALG_SHA 4 /* Keyed SHA */
-#define SADB_AALG_NULL 5 /* null authentication */
-#define SADB_AALG_MAX 6
-
-#define SADB_EALG_NONE 0
-#define SADB_EALG_DESCBC 1 /* 2 */
-#define SADB_EALG_3DESCBC 2 /* 3 */
-#define SADB_EALG_NULL 3 /* 11 */
-#define SADB_EALG_BLOWFISHCBC 4
-#define SADB_EALG_CAST128CBC 5
-#define SADB_EALG_RC5CBC 6
-#define SADB_EALG_MAX 7
-
-/*nonstandard */
-#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_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
+#define SADB_EXT_RESERVED 0
+#define SADB_EXT_SA 1
+#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_MAX 19
+
+#define SADB_SATYPE_UNSPEC 0
+#define SADB_SATYPE_AH 2
+#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
+
+#define SADB_AALG_NONE 0
+#define SADB_AALG_MD5HMAC 1 /* 2 */
+#define SADB_AALG_SHA1HMAC 2 /* 3 */
+#define SADB_AALG_MD5 3 /* Keyed MD5 */
+#define SADB_AALG_SHA 4 /* Keyed SHA */
+#define SADB_AALG_NULL 5 /* null authentication */
+#define SADB_AALG_MAX 6
+
+#define SADB_EALG_NONE 0
+#define SADB_EALG_DESCBC 1 /* 2 */
+#define SADB_EALG_3DESCBC 2 /* 3 */
+#define SADB_EALG_NULL 3 /* 11 */
+#define SADB_EALG_BLOWFISHCBC 4
+#define SADB_EALG_CAST128CBC 5
+#define SADB_EALG_RC5CBC 6
+#define SADB_EALG_MAX 7
+
+#if 1 /*nonstandard */
+#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
+#endif
+
+#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_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. */
+#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_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_RAWCPI 0x0080 /* use well known CPI (IPComp) */
+#if 1
+#define SADB_X_EXT_RAWCPI 0x0080 /* use well known CPI (IPComp) */
+#endif
-#define SADB_KEY_FLAGS_MAX 0x0fff
+#define SADB_KEY_FLAGS_MAX 0x0fff
/* SPI size for PF_KEYv2 */
-#define PFKEY_SPI_SIZE sizeof(u_int32_t)
+#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
+#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
+#define PFKEY_SOFT_LIFETIME_RATE 80
/* Utilities */
-#define PFKEY_ALIGN8(a) (1 + (((a) - 1) | (8 - 1)))
+#define PFKEY_ALIGN8(a) (1 + (((a) - 1) | (8 - 1)))
#define PFKEY_EXTLEN(msg) \
PFKEY_UNUNIT64(((struct sadb_ext *)(msg))->sadb_ext_len)
-#define PFKEY_ADDR_PREFIX(ext) \
+#define PFKEY_ADDR_PREFIX(ext) \
(((struct sadb_address *)(ext))->sadb_address_prefixlen)
-#define PFKEY_ADDR_PROTO(ext) \
+#define PFKEY_ADDR_PROTO(ext) \
(((struct sadb_address *)(ext))->sadb_address_proto)
-#define PFKEY_ADDR_SADDR(ext) \
+#define PFKEY_ADDR_SADDR(ext) \
((struct sockaddr *)((caddr_t)(ext) + sizeof(struct sadb_address)))
/* in 64bits */
#define PFKEY_UNUNIT64(a) ((a) << 3)
#define PFKEY_UNIT64(a) ((a) >> 3)
-#ifndef _KERNEL
-struct sockaddr;
-
-int ipsec_check_keylen __P((u_int supported, u_int alg_id, u_int keylen));
-int pfkey_align __P((struct sadb_msg *msg, caddr_t *mhp));
-int pfkey_check __P((caddr_t *mhp));
-void pfkey_close __P((int so));
-u_int pfkey_get_softrate __P((u_int type));
-u_int pfkey_set_softrate __P((u_int type, u_int rate));
-int pfkey_open __P((void));
-struct sadb_msg *pfkey_recv __P((int so));
-int pfkey_recv_register __P((int so));
-int pfkey_send_register __P((int so, u_int satype));
-void pfkey_sadump __P((struct sadb_msg *m));
-void pfkey_spdump __P((struct sadb_msg *m));
-int pfkey_send __P((int so, struct sadb_msg *msg, int len));
-int pfkey_send_add __P((int so, u_int satype, u_int mode,
- struct sockaddr *src, struct sockaddr *dst,
- u_int32_t spi, u_int wsize, caddr_t keymat,
- u_int e_type, u_int e_keylen, u_int a_type,
- u_int a_keylen, u_int flags, u_int32_t l_alloc,
- u_int64_t l_bytes, u_int64_t l_addtime,
- u_int64_t l_usetime, u_int32_t seq));
-int pfkey_send_delete __P((int so, u_int satype, u_int mode,
- struct sockaddr *src, struct sockaddr *dst,
- u_int32_t spi));
-int pfkey_send_dump __P((int so, u_int satype));
-int pfkey_send_flush __P((int so, u_int satype));
-int pfkey_send_get __P((int so, u_int satype, u_int mode,
- struct sockaddr *src, struct sockaddr *dst,
- u_int32_t spi));
-int pfkey_send_getspi __P((int so, u_int satype, u_int mode,
- struct sockaddr *src, struct sockaddr *dst,
- u_int32_t min, u_int32_t max, u_int32_t seq));
-int pfkey_send_promisc_toggle __P((int so, int flag));
-int pfkey_send_spdadd __P((int so, struct sockaddr *src, u_int prefs,
- struct sockaddr *dst, u_int prefd, u_int proto,
- caddr_t policy, int policylen, u_int32_t seq));
-int pfkey_send_spddelete __P((int so, struct sockaddr *src, u_int prefs,
- struct sockaddr *dst, u_int prefd,
- u_int proto, u_int32_t seq));
-int pfkey_send_spddump __P((int so));
-int pfkey_send_spdflush __P((int so));
-int pfkey_send_update __P((int so, u_int satype, u_int mode,
- struct sockaddr *src, struct sockaddr *dst,
- u_int32_t spi, u_int wsize, caddr_t keymat,
- u_int e_type, u_int e_keylen, u_int a_type,
- u_int a_keylen, u_int flags, u_int32_t l_alloc,
- u_int64_t l_bytes, u_int64_t l_addtime,
- u_int64_t l_usetime, u_int32_t seq));
-
-#endif /*!_KERNEL*/
-
-#endif /* !__PFKEY_V2_H */
-
-#endif /* !_NET_PFKEYV2_H_ */
+#endif /* __PFKEY_V2_H */
+
+#endif /* _NET_PFKEYV2_H_ */