2 * RFC2367 PF_KEYv2 Key management API message parser
3 * Copyright (C) 1999, 2000, 2001 Richard Guy Briggs.
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 * RCSID $Id: pfkey_v2_ext_bits.c,v 1.13 2002/01/29 22:25:36 rgb Exp $
19 * Template from klips/net/ipsec/ipsec/ipsec_parse.c.
22 char pfkey_v2_ext_bits_c_version[] = "$Id: pfkey_v2_ext_bits.c,v 1.13 2002/01/29 22:25:36 rgb Exp $";
25 * Some ugly stuff to allow consistent debugging code for use in the
26 * kernel and in user space
31 # include <linux/kernel.h> /* for printk */
33 # include "ipsec_kversion.h" /* for malloc switch */
35 # include <linux/slab.h> /* kmalloc() */
36 # else /* MALLOC_SLAB */
37 # include <linux/malloc.h> /* kmalloc() */
38 # endif /* MALLOC_SLAB */
39 # include <linux/errno.h> /* error codes */
40 # include <linux/types.h> /* size_t */
41 # include <linux/interrupt.h> /* mark_bh */
43 # include <linux/netdevice.h> /* struct device, and other headers */
44 # include <linux/etherdevice.h> /* eth_type_trans */
45 # include <linux/ip.h> /* struct iphdr */
46 # if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
47 # include <linux/ipv6.h>
48 # endif /* defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) */
50 #else /* __KERNEL__ */
52 # include <sys/types.h>
53 # include <linux/types.h>
54 # include <linux/errno.h>
61 unsigned int extensions_bitmaps[2/*in/out*/][2/*perm/req*/][SADB_MAX + 1/*ext*/] = {
63 /* INBOUND EXTENSIONS */
73 | 1<<SADB_EXT_ADDRESS_SRC
74 | 1<<SADB_EXT_ADDRESS_DST
75 | 1<<SADB_EXT_ADDRESS_PROXY
76 | 1<<SADB_EXT_SPIRANGE
81 | 1<<SADB_EXT_LIFETIME_CURRENT
82 | 1<<SADB_EXT_LIFETIME_HARD
83 | 1<<SADB_EXT_LIFETIME_SOFT
84 | 1<<SADB_EXT_ADDRESS_SRC
85 | 1<<SADB_EXT_ADDRESS_DST
86 | 1<<SADB_EXT_ADDRESS_PROXY
87 | 1<<SADB_EXT_KEY_AUTH
88 | 1<<SADB_EXT_KEY_ENCRYPT
89 | 1<<SADB_EXT_IDENTITY_SRC
90 | 1<<SADB_EXT_IDENTITY_DST
91 | 1<<SADB_EXT_SENSITIVITY
93 | 1<<SADB_X_EXT_NAT_T_SPORT
94 | 1<<SADB_X_EXT_NAT_T_DPORT
100 | 1<<SADB_EXT_LIFETIME_HARD
101 | 1<<SADB_EXT_LIFETIME_SOFT
102 | 1<<SADB_EXT_ADDRESS_SRC
103 | 1<<SADB_EXT_ADDRESS_DST
104 | 1<<SADB_EXT_ADDRESS_PROXY
105 | 1<<SADB_EXT_KEY_AUTH
106 | 1<<SADB_EXT_KEY_ENCRYPT
107 | 1<<SADB_EXT_IDENTITY_SRC
108 | 1<<SADB_EXT_IDENTITY_DST
109 | 1<<SADB_EXT_SENSITIVITY
111 | 1<<SADB_X_EXT_NAT_T_TYPE
112 | 1<<SADB_X_EXT_NAT_T_SPORT
113 | 1<<SADB_X_EXT_NAT_T_DPORT
114 | 1<<SADB_X_EXT_NAT_T_OA
120 | 1<<SADB_EXT_ADDRESS_SRC
121 | 1<<SADB_EXT_ADDRESS_DST
126 | 1<<SADB_EXT_ADDRESS_SRC
127 | 1<<SADB_EXT_ADDRESS_DST
131 | 1<<SADB_EXT_ADDRESS_SRC
132 | 1<<SADB_EXT_ADDRESS_DST
133 | 1<<SADB_EXT_ADDRESS_PROXY
134 | 1<<SADB_EXT_IDENTITY_SRC
135 | 1<<SADB_EXT_IDENTITY_DST
136 | 1<<SADB_EXT_SENSITIVITY
137 | 1<<SADB_EXT_PROPOSAL
154 | 1<<SADB_EXT_LIFETIME_CURRENT
155 | 1<<SADB_EXT_LIFETIME_HARD
156 | 1<<SADB_EXT_LIFETIME_SOFT
157 | 1<<SADB_EXT_ADDRESS_SRC
158 | 1<<SADB_EXT_ADDRESS_DST
159 | 1<<SADB_EXT_ADDRESS_PROXY
160 | 1<<SADB_EXT_KEY_AUTH
161 | 1<<SADB_EXT_KEY_ENCRYPT
162 | 1<<SADB_EXT_IDENTITY_SRC
163 | 1<<SADB_EXT_IDENTITY_DST
164 | 1<<SADB_EXT_SENSITIVITY
165 | 1<<SADB_EXT_PROPOSAL
166 | 1<<SADB_EXT_SUPPORTED_AUTH
167 | 1<<SADB_EXT_SUPPORTED_ENCRYPT
168 | 1<<SADB_EXT_SPIRANGE
169 | 1<<SADB_X_EXT_KMPRIVATE
170 | 1<<SADB_X_EXT_SATYPE2
172 | 1<<SADB_X_EXT_ADDRESS_DST2
177 | 1<<SADB_EXT_LIFETIME_CURRENT
178 | 1<<SADB_EXT_LIFETIME_HARD
179 | 1<<SADB_EXT_LIFETIME_SOFT
180 | 1<<SADB_EXT_ADDRESS_SRC
181 | 1<<SADB_EXT_ADDRESS_DST
182 | 1<<SADB_EXT_ADDRESS_PROXY
183 | 1<<SADB_EXT_KEY_AUTH
184 | 1<<SADB_EXT_KEY_ENCRYPT
185 | 1<<SADB_EXT_IDENTITY_SRC
186 | 1<<SADB_EXT_IDENTITY_DST
187 | 1<<SADB_EXT_SENSITIVITY
188 | 1<<SADB_EXT_PROPOSAL
189 | 1<<SADB_EXT_SUPPORTED_AUTH
190 | 1<<SADB_EXT_SUPPORTED_ENCRYPT
191 | 1<<SADB_EXT_SPIRANGE
192 | 1<<SADB_X_EXT_KMPRIVATE
193 | 1<<SADB_X_EXT_SATYPE2
195 | 1<<SADB_X_EXT_ADDRESS_DST2
200 | 1<<SADB_EXT_ADDRESS_DST
201 | 1<<SADB_X_EXT_SATYPE2
203 | 1<<SADB_X_EXT_ADDRESS_DST2
208 | 1<<SADB_EXT_ADDRESS_SRC
209 | 1<<SADB_EXT_ADDRESS_DST
210 | 1<<SADB_X_EXT_ADDRESS_SRC_FLOW
211 | 1<<SADB_X_EXT_ADDRESS_DST_FLOW
212 | 1<<SADB_X_EXT_ADDRESS_SRC_MASK
213 | 1<<SADB_X_EXT_ADDRESS_DST_MASK
214 | 1<<SADB_EXT_IDENTITY_SRC
215 | 1<<SADB_EXT_IDENTITY_DST
220 | 1<<SADB_X_EXT_ADDRESS_SRC_FLOW
221 | 1<<SADB_X_EXT_ADDRESS_DST_FLOW
222 | 1<<SADB_X_EXT_ADDRESS_SRC_MASK
223 | 1<<SADB_X_EXT_ADDRESS_DST_MASK
224 | 1<<SADB_EXT_IDENTITY_SRC
225 | 1<<SADB_EXT_IDENTITY_DST
229 | 1<<SADB_X_EXT_DEBUG
232 /* SADB_X_NAT_T_NEW_MAPPING */
235 | 1<<SADB_EXT_ADDRESS_SRC
236 | 1<<SADB_EXT_ADDRESS_DST
237 | 1<<SADB_X_EXT_NAT_T_SPORT
238 | 1<<SADB_X_EXT_NAT_T_DPORT
249 | 1<<SADB_EXT_ADDRESS_SRC
250 | 1<<SADB_EXT_ADDRESS_DST
251 | 1<<SADB_EXT_SPIRANGE
256 | 1<<SADB_EXT_ADDRESS_SRC
257 | 1<<SADB_EXT_ADDRESS_DST
258 /*| 1<<SADB_EXT_KEY_AUTH*/
259 /*| 1<<SADB_EXT_KEY_ENCRYPT*/
264 | 1<<SADB_EXT_ADDRESS_SRC
265 | 1<<SADB_EXT_ADDRESS_DST
266 /*| 1<<SADB_EXT_KEY_AUTH*/
267 /*| 1<<SADB_EXT_KEY_ENCRYPT*/
272 | 1<<SADB_EXT_ADDRESS_SRC
273 | 1<<SADB_EXT_ADDRESS_DST
278 | 1<<SADB_EXT_ADDRESS_SRC
279 | 1<<SADB_EXT_ADDRESS_DST
283 | 1<<SADB_EXT_ADDRESS_SRC
284 | 1<<SADB_EXT_ADDRESS_DST
285 | 1<<SADB_EXT_PROPOSAL
302 | 1<<SADB_EXT_LIFETIME_CURRENT
303 | 1<<SADB_EXT_LIFETIME_HARD
304 | 1<<SADB_EXT_LIFETIME_SOFT
305 | 1<<SADB_EXT_ADDRESS_SRC
306 | 1<<SADB_EXT_ADDRESS_DST
307 | 1<<SADB_EXT_ADDRESS_PROXY
308 | 1<<SADB_EXT_KEY_AUTH
309 | 1<<SADB_EXT_KEY_ENCRYPT
310 | 1<<SADB_EXT_IDENTITY_SRC
311 | 1<<SADB_EXT_IDENTITY_DST
312 | 1<<SADB_EXT_SENSITIVITY
313 | 1<<SADB_EXT_PROPOSAL
314 | 1<<SADB_EXT_SUPPORTED_AUTH
315 | 1<<SADB_EXT_SUPPORTED_ENCRYPT
316 | 1<<SADB_EXT_SPIRANGE
317 | 1<<SADB_X_EXT_KMPRIVATE
318 | 1<<SADB_X_EXT_SATYPE2
320 | 1<<SADB_X_EXT_ADDRESS_DST2
325 | 1<<SADB_EXT_LIFETIME_CURRENT
326 | 1<<SADB_EXT_LIFETIME_HARD
327 | 1<<SADB_EXT_LIFETIME_SOFT
328 | 1<<SADB_EXT_ADDRESS_SRC
329 | 1<<SADB_EXT_ADDRESS_DST
330 | 1<<SADB_EXT_ADDRESS_PROXY
331 | 1<<SADB_EXT_KEY_AUTH
332 | 1<<SADB_EXT_KEY_ENCRYPT
333 | 1<<SADB_EXT_IDENTITY_SRC
334 | 1<<SADB_EXT_IDENTITY_DST
335 | 1<<SADB_EXT_SENSITIVITY
336 | 1<<SADB_EXT_PROPOSAL
337 | 1<<SADB_EXT_SUPPORTED_AUTH
338 | 1<<SADB_EXT_SUPPORTED_ENCRYPT
339 | 1<<SADB_EXT_SPIRANGE
340 | 1<<SADB_X_EXT_KMPRIVATE
341 | 1<<SADB_X_EXT_SATYPE2
343 | 1<<SADB_X_EXT_ADDRESS_DST2
348 | 1<<SADB_EXT_ADDRESS_DST
349 /*| 1<<SADB_X_EXT_SATYPE2*/
350 /*| 1<<SADB_X_EXT_SA2*/
351 /*| 1<<SADB_X_EXT_ADDRESS_DST2*/
356 | 1<<SADB_EXT_ADDRESS_DST
357 | 1<<SADB_X_EXT_ADDRESS_SRC_FLOW
358 | 1<<SADB_X_EXT_ADDRESS_DST_FLOW
359 | 1<<SADB_X_EXT_ADDRESS_SRC_MASK
360 | 1<<SADB_X_EXT_ADDRESS_DST_MASK
365 #if 0 /* SADB_X_CLREROUTE doesn't need all these... */
366 | 1<<SADB_X_EXT_ADDRESS_SRC_FLOW
367 | 1<<SADB_X_EXT_ADDRESS_DST_FLOW
368 | 1<<SADB_X_EXT_ADDRESS_SRC_MASK
369 | 1<<SADB_X_EXT_ADDRESS_DST_MASK
374 | 1<<SADB_X_EXT_DEBUG
377 /* SADB_X_NAT_T_NEW_MAPPING */
380 | 1<<SADB_EXT_ADDRESS_SRC
381 | 1<<SADB_EXT_ADDRESS_DST
382 | 1<<SADB_X_EXT_NAT_T_SPORT
383 | 1<<SADB_X_EXT_NAT_T_DPORT
389 /* OUTBOUND EXTENSIONS */
400 | 1<<SADB_EXT_ADDRESS_SRC
401 | 1<<SADB_EXT_ADDRESS_DST
406 | 1<<SADB_EXT_LIFETIME_CURRENT
407 | 1<<SADB_EXT_LIFETIME_HARD
408 | 1<<SADB_EXT_LIFETIME_SOFT
409 | 1<<SADB_EXT_ADDRESS_SRC
410 | 1<<SADB_EXT_ADDRESS_DST
411 | 1<<SADB_EXT_ADDRESS_PROXY
412 | 1<<SADB_EXT_IDENTITY_SRC
413 | 1<<SADB_EXT_IDENTITY_DST
414 | 1<<SADB_EXT_SENSITIVITY
419 | 1<<SADB_EXT_LIFETIME_HARD
420 | 1<<SADB_EXT_LIFETIME_SOFT
421 | 1<<SADB_EXT_ADDRESS_SRC
422 | 1<<SADB_EXT_ADDRESS_DST
423 | 1<<SADB_EXT_IDENTITY_SRC
424 | 1<<SADB_EXT_IDENTITY_DST
425 | 1<<SADB_EXT_SENSITIVITY
427 | 1<<SADB_X_EXT_NAT_T_TYPE
428 | 1<<SADB_X_EXT_NAT_T_SPORT
429 | 1<<SADB_X_EXT_NAT_T_DPORT
430 | 1<<SADB_X_EXT_NAT_T_OA
436 | 1<<SADB_EXT_ADDRESS_SRC
437 | 1<<SADB_EXT_ADDRESS_DST
442 | 1<<SADB_EXT_LIFETIME_CURRENT
443 | 1<<SADB_EXT_LIFETIME_HARD
444 | 1<<SADB_EXT_LIFETIME_SOFT
445 | 1<<SADB_EXT_ADDRESS_SRC
446 | 1<<SADB_EXT_ADDRESS_DST
447 | 1<<SADB_EXT_ADDRESS_PROXY
448 | 1<<SADB_EXT_KEY_AUTH
449 | 1<<SADB_EXT_KEY_ENCRYPT
450 | 1<<SADB_EXT_IDENTITY_SRC
451 | 1<<SADB_EXT_IDENTITY_DST
452 | 1<<SADB_EXT_SENSITIVITY
456 | 1<<SADB_EXT_ADDRESS_SRC
457 | 1<<SADB_EXT_ADDRESS_DST
458 | 1<<SADB_EXT_ADDRESS_PROXY
459 | 1<<SADB_EXT_IDENTITY_SRC
460 | 1<<SADB_EXT_IDENTITY_DST
461 | 1<<SADB_EXT_SENSITIVITY
462 | 1<<SADB_EXT_PROPOSAL
466 | 1<<SADB_EXT_SUPPORTED_AUTH
467 | 1<<SADB_EXT_SUPPORTED_ENCRYPT
472 | 1<<SADB_EXT_LIFETIME_CURRENT
473 | 1<<SADB_EXT_LIFETIME_HARD
474 | 1<<SADB_EXT_LIFETIME_SOFT
475 | 1<<SADB_EXT_ADDRESS_SRC
476 | 1<<SADB_EXT_ADDRESS_DST
484 | 1<<SADB_EXT_LIFETIME_CURRENT
485 | 1<<SADB_EXT_LIFETIME_HARD
486 | 1<<SADB_EXT_LIFETIME_SOFT
487 | 1<<SADB_EXT_ADDRESS_SRC
488 | 1<<SADB_EXT_ADDRESS_DST
489 | 1<<SADB_EXT_ADDRESS_PROXY
490 | 1<<SADB_EXT_KEY_AUTH
491 | 1<<SADB_EXT_KEY_ENCRYPT
492 | 1<<SADB_EXT_IDENTITY_SRC
493 | 1<<SADB_EXT_IDENTITY_DST
494 | 1<<SADB_EXT_SENSITIVITY
499 | 1<<SADB_EXT_LIFETIME_CURRENT
500 | 1<<SADB_EXT_LIFETIME_HARD
501 | 1<<SADB_EXT_LIFETIME_SOFT
502 | 1<<SADB_EXT_ADDRESS_SRC
503 | 1<<SADB_EXT_ADDRESS_DST
504 | 1<<SADB_EXT_ADDRESS_PROXY
505 | 1<<SADB_EXT_KEY_AUTH
506 | 1<<SADB_EXT_KEY_ENCRYPT
507 | 1<<SADB_EXT_IDENTITY_SRC
508 | 1<<SADB_EXT_IDENTITY_DST
509 | 1<<SADB_EXT_SENSITIVITY
510 | 1<<SADB_EXT_PROPOSAL
511 | 1<<SADB_EXT_SUPPORTED_AUTH
512 | 1<<SADB_EXT_SUPPORTED_ENCRYPT
513 | 1<<SADB_EXT_SPIRANGE
514 | 1<<SADB_X_EXT_KMPRIVATE
515 | 1<<SADB_X_EXT_SATYPE2
517 | 1<<SADB_X_EXT_ADDRESS_DST2
522 | 1<<SADB_EXT_LIFETIME_CURRENT
523 | 1<<SADB_EXT_LIFETIME_HARD
524 | 1<<SADB_EXT_LIFETIME_SOFT
525 | 1<<SADB_EXT_ADDRESS_SRC
526 | 1<<SADB_EXT_ADDRESS_DST
527 | 1<<SADB_EXT_ADDRESS_PROXY
528 | 1<<SADB_EXT_KEY_AUTH
529 | 1<<SADB_EXT_KEY_ENCRYPT
530 | 1<<SADB_EXT_IDENTITY_SRC
531 | 1<<SADB_EXT_IDENTITY_DST
532 | 1<<SADB_EXT_SENSITIVITY
533 | 1<<SADB_EXT_PROPOSAL
534 | 1<<SADB_EXT_SUPPORTED_AUTH
535 | 1<<SADB_EXT_SUPPORTED_ENCRYPT
536 | 1<<SADB_EXT_SPIRANGE
537 | 1<<SADB_X_EXT_KMPRIVATE
538 | 1<<SADB_X_EXT_SATYPE2
540 | 1<<SADB_X_EXT_ADDRESS_DST2
545 | 1<<SADB_EXT_ADDRESS_DST
546 | 1<<SADB_X_EXT_SATYPE2
548 | 1<<SADB_X_EXT_ADDRESS_DST2
553 | 1<<SADB_EXT_ADDRESS_SRC
554 | 1<<SADB_EXT_ADDRESS_DST
555 | 1<<SADB_X_EXT_ADDRESS_SRC_FLOW
556 | 1<<SADB_X_EXT_ADDRESS_DST_FLOW
557 | 1<<SADB_X_EXT_ADDRESS_SRC_MASK
558 | 1<<SADB_X_EXT_ADDRESS_DST_MASK
563 | 1<<SADB_X_EXT_ADDRESS_SRC_FLOW
564 | 1<<SADB_X_EXT_ADDRESS_DST_FLOW
565 | 1<<SADB_X_EXT_ADDRESS_SRC_MASK
566 | 1<<SADB_X_EXT_ADDRESS_DST_MASK
570 | 1<<SADB_X_EXT_DEBUG
573 /* SADB_X_NAT_T_NEW_MAPPING */
576 | 1<<SADB_EXT_ADDRESS_SRC
577 | 1<<SADB_EXT_ADDRESS_DST
578 | 1<<SADB_X_EXT_NAT_T_SPORT
579 | 1<<SADB_X_EXT_NAT_T_DPORT
591 | 1<<SADB_EXT_ADDRESS_SRC
592 | 1<<SADB_EXT_ADDRESS_DST
597 | 1<<SADB_EXT_ADDRESS_SRC
598 | 1<<SADB_EXT_ADDRESS_DST
603 | 1<<SADB_EXT_ADDRESS_SRC
604 | 1<<SADB_EXT_ADDRESS_DST
609 | 1<<SADB_EXT_ADDRESS_SRC
610 | 1<<SADB_EXT_ADDRESS_DST
615 | 1<<SADB_EXT_ADDRESS_SRC
616 | 1<<SADB_EXT_ADDRESS_DST
617 /* | 1<<SADB_EXT_KEY_AUTH */
618 /* | 1<<SADB_EXT_KEY_ENCRYPT */
622 | 1<<SADB_EXT_ADDRESS_SRC
623 | 1<<SADB_EXT_ADDRESS_DST
624 | 1<<SADB_EXT_PROPOSAL
628 /* | 1<<SADB_EXT_SUPPORTED_AUTH
629 | 1<<SADB_EXT_SUPPORTED_ENCRYPT */
634 | 1<<SADB_EXT_LIFETIME_CURRENT
635 /* | 1<<SADB_EXT_LIFETIME_HARD
636 | 1<<SADB_EXT_LIFETIME_SOFT */
637 | 1<<SADB_EXT_ADDRESS_SRC
638 | 1<<SADB_EXT_ADDRESS_DST
646 | 1<<SADB_EXT_ADDRESS_SRC
647 | 1<<SADB_EXT_ADDRESS_DST
648 | 1<<SADB_EXT_KEY_AUTH
649 | 1<<SADB_EXT_KEY_ENCRYPT
654 | 1<<SADB_EXT_LIFETIME_CURRENT
655 | 1<<SADB_EXT_LIFETIME_HARD
656 | 1<<SADB_EXT_LIFETIME_SOFT
657 | 1<<SADB_EXT_ADDRESS_SRC
658 | 1<<SADB_EXT_ADDRESS_DST
659 | 1<<SADB_EXT_ADDRESS_PROXY
660 | 1<<SADB_EXT_KEY_AUTH
661 | 1<<SADB_EXT_KEY_ENCRYPT
662 | 1<<SADB_EXT_IDENTITY_SRC
663 | 1<<SADB_EXT_IDENTITY_DST
664 | 1<<SADB_EXT_SENSITIVITY
665 | 1<<SADB_EXT_PROPOSAL
666 | 1<<SADB_EXT_SUPPORTED_AUTH
667 | 1<<SADB_EXT_SUPPORTED_ENCRYPT
668 | 1<<SADB_EXT_SPIRANGE
669 | 1<<SADB_X_EXT_KMPRIVATE
670 | 1<<SADB_X_EXT_SATYPE2
672 | 1<<SADB_X_EXT_ADDRESS_DST2
677 | 1<<SADB_EXT_LIFETIME_CURRENT
678 | 1<<SADB_EXT_LIFETIME_HARD
679 | 1<<SADB_EXT_LIFETIME_SOFT
680 | 1<<SADB_EXT_ADDRESS_SRC
681 | 1<<SADB_EXT_ADDRESS_DST
682 | 1<<SADB_EXT_ADDRESS_PROXY
683 | 1<<SADB_EXT_KEY_AUTH
684 | 1<<SADB_EXT_KEY_ENCRYPT
685 | 1<<SADB_EXT_IDENTITY_SRC
686 | 1<<SADB_EXT_IDENTITY_DST
687 | 1<<SADB_EXT_SENSITIVITY
688 | 1<<SADB_EXT_PROPOSAL
689 | 1<<SADB_EXT_SUPPORTED_AUTH
690 | 1<<SADB_EXT_SUPPORTED_ENCRYPT
691 | 1<<SADB_EXT_SPIRANGE
692 | 1<<SADB_X_EXT_KMPRIVATE
693 | 1<<SADB_X_EXT_SATYPE2
695 | 1<<SADB_X_EXT_ADDRESS_DST2
700 | 1<<SADB_EXT_ADDRESS_DST
705 | 1<<SADB_EXT_ADDRESS_DST
706 | 1<<SADB_X_EXT_ADDRESS_SRC_FLOW
707 | 1<<SADB_X_EXT_ADDRESS_DST_FLOW
708 | 1<<SADB_X_EXT_ADDRESS_SRC_MASK
709 | 1<<SADB_X_EXT_ADDRESS_DST_MASK
714 | 1<<SADB_X_EXT_ADDRESS_SRC_FLOW
715 | 1<<SADB_X_EXT_ADDRESS_DST_FLOW
716 | 1<<SADB_X_EXT_ADDRESS_SRC_MASK
717 | 1<<SADB_X_EXT_ADDRESS_DST_MASK
721 | 1<<SADB_X_EXT_DEBUG
724 /* SADB_X_NAT_T_NEW_MAPPING */
727 | 1<<SADB_EXT_ADDRESS_SRC
728 | 1<<SADB_EXT_ADDRESS_DST
729 | 1<<SADB_X_EXT_NAT_T_SPORT
730 | 1<<SADB_X_EXT_NAT_T_DPORT
737 * $Log: pfkey_v2_ext_bits.c,v $
738 * Revision 1.13 2002/01/29 22:25:36 rgb
739 * Re-add ipsec_kversion.h to keep MALLOC happy.
741 * Revision 1.12 2002/01/29 01:59:10 mcr
742 * removal of kversions.h - sources that needed it now use ipsec_param.h.
743 * updating of IPv6 structures to match latest in6.h version.
744 * removed dead code from freeswan.h that also duplicated kversions.h
747 * Revision 1.11 2001/10/18 04:45:24 rgb
748 * 2.4.9 kernel deprecates linux/malloc.h in favour of linux/slab.h,
749 * lib/freeswan.h version macros moved to lib/kversions.h.
750 * Other compiler directive cleanups.
752 * Revision 1.10 2001/09/08 21:13:35 rgb
753 * Added pfkey ident extension support for ISAKMPd. (NetCelo)
755 * Revision 1.9 2001/06/14 19:35:16 rgb
756 * Update copyright date.
758 * Revision 1.8 2001/03/26 23:07:36 rgb
759 * Remove requirement for auth and enc key from UPDATE.
761 * Revision 1.7 2000/09/12 22:35:37 rgb
762 * Restructured to remove unused extensions from CLEARFLOW messages.
764 * Revision 1.6 2000/09/09 06:39:01 rgb
765 * Added comments for clarity.
767 * Revision 1.5 2000/06/02 22:54:14 rgb
768 * Added Gerhard Gessler's struct sockaddr_storage mods for IPv6 support.
770 * Revision 1.4 2000/01/21 06:27:56 rgb
771 * Added address cases for eroute flows.
772 * Added comments for each message type.
773 * Added klipsdebug switching capability.
774 * Fixed GRPSA bitfields.
776 * Revision 1.3 1999/12/01 22:20:27 rgb
777 * Remove requirement for a proxy address in an incoming getspi message.
779 * Revision 1.2 1999/11/27 11:57:06 rgb
780 * Consolidated the 4 1-d extension bitmap arrays into one 4-d array.
781 * Add CVS log entry to bottom of file.
782 * Cleaned out unused bits.