Hi David and folks,
In include/linux/pfkeyv2.h, is the type 'u_int32_t' for
sadb_x_kmprivate_reserved intentional or just an error while bringing in
the PF_KEY IPsec extensions from KAME?
struct sadb_x_kmprivate {
uint16_t sadb_x_kmprivate_len;
uint16_t sadb_x_kmprivate_exttype;
u_int32_t sadb_x_kmprivate_reserved; <====
} __attribute__((packed));
This is causing erroneous ipsec-tools builds. How does the
__BIT_TYPES_DEFINED define work? Seems like u_int32_t does not get
defined in include/linux/types.h when building a userland program such
as ipsec-tools.
An easy fix is to change the type to uint32_t. Patch attached.
Thanks.
- Tushar
Source: MontaVista Software, Inc.
MR: 19039
Type: Defect Fix
Disposition: needs submitting to kernel.org
Signed-off-by: Tushar Gohad <[EMAIL PROTECTED]>
Description:
When bringing over the PF_KEY extensions for IPsec from the
KAME stack, folks probably forgot to change this only variable
to be of type uint32_t. Or otherwise. This is the easiest and
harmless fix.
Index: linux-p4/include/linux/pfkeyv2.h
===================================================================
--- linux-p4.orig/include/linux/pfkeyv2.h
+++ linux-p4/include/linux/pfkeyv2.h
@@ -159,7 +159,7 @@ struct sadb_spirange {
struct sadb_x_kmprivate {
uint16_t sadb_x_kmprivate_len;
uint16_t sadb_x_kmprivate_exttype;
- u_int32_t sadb_x_kmprivate_reserved;
+ uint32_t sadb_x_kmprivate_reserved;
} __attribute__((packed));
/* sizeof(struct sadb_x_kmprivate) == 8 */