1/*	$NetBSD: pfkeyv2.h,v 1.4 2006/09/09 16:22:08 manu Exp $	*/
2
3#ifndef __NET_PFKEYV2_H_
4#define __NET_PFKEYV2_H_ 1
5
6#include <stdint.h>
7#include <linux/pfkeyv2.h>
8
9/* Private allocations for authentication algorithms */
10#define SADB_AALG_SHA2_256		SADB_X_AALG_SHA2_256HMAC
11#define SADB_X_AALG_SHA2_256		SADB_X_AALG_SHA2_256HMAC
12#define SADB_AALG_SHA2_384		SADB_X_AALG_SHA2_384HMAC
13#define SADB_X_AALG_SHA2_384		SADB_X_AALG_SHA2_384HMAC
14#define SADB_AALG_SHA2_512		SADB_X_AALG_SHA2_512HMAC
15#define SADB_X_AALG_SHA2_512		SADB_X_AALG_SHA2_512HMAC
16#define SADB_AALG_RIPEMD160HMAC		SADB_X_AALG_RIPEMD160HMAC
17#define SADB_X_AALG_MD5              249
18#define SADB_X_AALG_SHA              250
19
20/* private allocations - based on RFC2407/IANA assignment */
21#define SADB_X_EALG_CAST128CBC	5	/* SADB_X_EALG_CASTCBC? == 6 */
22#define SADB_X_EALG_RIJNDAELCBC		SADB_X_EALG_AESCBC
23#define SADB_X_EALG_AES			SADB_X_EALG_AESCBC
24
25
26#define SADB_X_CALG_NONE	0
27#define SADB_X_CALG_OUI		1
28#define SADB_X_CALG_DEFLATE	2
29#define SADB_X_CALG_LZS		3
30#define SADB_X_CALG_MAX		4
31
32
33#define SADB_X_EXT_NONE		0x0000	/* i.e. new format. */
34#define SADB_X_EXT_OLD		0x0001	/* old format. */
35
36#define SADB_X_EXT_IV4B		0x0010	/* IV length of 4 bytes in use */
37#define SADB_X_EXT_DERIV	0x0020	/* DES derived */
38#define SADB_X_EXT_CYCSEQ	0x0040	/* allowing to cyclic sequence. */
39
40	/* three of followings are exclusive flags each them */
41#define SADB_X_EXT_PSEQ		0x0000	/* sequencial padding for ESP */
42#define SADB_X_EXT_PRAND	0x0100	/* random padding for ESP */
43#define SADB_X_EXT_PZERO	0x0200	/* zero padding for ESP */
44#define SADB_X_EXT_PMASK	0x0300	/* mask for padding flag */
45
46#define SADB_X_EXT_RAWCPI	0x0080	/* use well known CPI (IPComp) */
47
48
49#define PFKEY_SOFT_LIFETIME_RATE	80
50
51#define SADB_X_LIFETIME_ALLOCATIONS	0
52#define SADB_X_LIFETIME_BYTES		1
53#define SADB_X_LIFETIME_ADDTIME		2
54#define SADB_X_LIFETIME_USETIME		3
55
56
57#define PFKEY_ALIGN8(a) (1 + (((a) - 1) | (8 - 1)))
58#define	PFKEY_EXTLEN(msg) \
59	PFKEY_UNUNIT64(((struct sadb_ext *)(msg))->sadb_ext_len)
60#define PFKEY_ADDR_PREFIX(ext) \
61	(((struct sadb_address *)(ext))->sadb_address_prefixlen)
62#define PFKEY_ADDR_PROTO(ext) \
63	(((struct sadb_address *)(ext))->sadb_address_proto)
64#define PFKEY_ADDR_SADDR(ext) \
65	((struct sockaddr *)((caddr_t)(ext) + sizeof(struct sadb_address)))
66
67/* in 64bits */
68#define	PFKEY_UNUNIT64(a)	((a) << 3)
69#define	PFKEY_UNIT64(a)		((a) >> 3)
70
71#endif
72