Activating both options IPSEC and SCTP in kernel fails

Oliver Roll mail at oliroll.de
Thu Nov 8 12:06:33 PST 2007


Hello all,

I want to enable both IPSEC and SCTP on my FreeBSD 6.2 machines. I
applied the newest kernel patch from sctp.org (of september 2007) and
activated options SCTP. This works well, SCTP works well.
It is also possible to activate options IPSEC and compile a kernel but
unfortunately _not_ in combination with options SCTP.
Those are the errors occurring when trying to make buildkernel with both
options activated:

In file included from /usr/src/sys/netipsec/ipsec.h:46,
                 from /usr/src/sys/netinet/sctp_os_bsd.h:78,
                 from /usr/src/sys/netinet/sctp_os.h:59,
                 from /usr/src/sys/netinet/sctp_pcb.h:39,
                 from /usr/src/sys/netinet/in_proto.c:92:
/usr/src/sys/netipsec/keydb.h:54: error: redefinition of `struct secasindex'
/usr/src/sys/netipsec/keydb.h:64: error: redefinition of `struct secashead'
/usr/src/sys/netipsec/keydb.h:74: error: redefinition of `struct _satree'
/usr/src/sys/netipsec/keydb.h:78: error: syntax error before '.' token
/usr/src/sys/netipsec/keydb.h:87: error: redefinition of `struct secasvar'
/usr/src/sys/netipsec/keydb.h:139: error: redefinition of `struct secreplay'
/usr/src/sys/netipsec/keydb.h:149: error: redefinition of `struct secreg'
/usr/src/sys/netipsec/keydb.h:156: error: redefinition of `struct secacq'
[...snipped some warnings...]
In file included from /usr/src/sys/netinet/sctp_os_bsd.h:78,
                 from /usr/src/sys/netinet/sctp_os.h:59,
                 from /usr/src/sys/netinet/sctp_pcb.h:39,
                 from /usr/src/sys/netinet/in_proto.c:92:
/usr/src/sys/netipsec/ipsec.h:57: error: redefinition of `struct
secpolicyindex'
/usr/src/sys/netipsec/ipsec.h:73: error: redefinition of `struct secpolicy'
/usr/src/sys/netipsec/ipsec.h:110: error: redefinition of `struct
ipsecrequest'
/usr/src/sys/netipsec/ipsec.h:136: error: redefinition of `struct
inpcbpolicy'
/usr/src/sys/netipsec/ipsec.h:143: error: redefinition of `struct secspacq'
/usr/src/sys/netipsec/ipsec.h:209: error: redefinition of `struct ipsecstat'
/usr/src/sys/netipsec/ipsec.h:321: error: redefinition of `struct
ipsec_output_state'
/usr/src/sys/netipsec/ipsec.h:327: error: redefinition of `struct
ipsec_history'
/usr/src/sys/netipsec/ipsec.h:332: warning: redundant redeclaration of
'ipsec_debug'
/usr/src/sys/netinet6/ipsec.h:314: warning: previous declaration of
'ipsec_debug' was here
/usr/src/sys/netipsec/ipsec.h:335: error: conflicting types for
'ip4_def_policy'
/usr/src/sys/netinet6/ipsec.h:318: error: previous declaration of
'ip4_def_policy' was here
/usr/src/sys/netipsec/ipsec.h:335: error: conflicting types for
'ip4_def_policy'
/usr/src/sys/netinet6/ipsec.h:318: error: previous declaration of
'ip4_def_policy' was here
[...snipped some warnings...]
In file included from /usr/src/sys/netinet/sctp_os_bsd.h:78,
                 from /usr/src/sys/netinet/sctp_os.h:59,
                 from /usr/src/sys/netinet/sctp_pcb.h:39,
                 from /usr/src/sys/netinet/in_proto.c:92:
/usr/src/sys/netipsec/ipsec.h:347:1: "ipseclog" redefined
In file included from /usr/src/sys/netinet/in_proto.c:74:
/usr/src/sys/netinet6/ipsec.h:330:1: this is the location of the
previous definition
/usr/src/sys/netipsec/ipsec.h:372: error: conflicting types for
'ipsec_get_reqlevel'
/usr/src/sys/netinet6/ipsec.h:345: error: previous declaration of
'ipsec_get_reqlevel' was here
/usr/src/sys/netipsec/ipsec.h:372: error: conflicting types for
'ipsec_get_reqlevel'
/usr/src/sys/netinet6/ipsec.h:345: error: previous declaration of
'ipsec_get_reqlevel' was here

*** Error code 1

Stop in /usr/obj/usr/src/sys/SCTP.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.

(The whole log of make buildkernel can be found at
http://oliver-roll.com/make_buildkernel.log (~800 KB), only the error
messages at http://oliver-roll.com/errors.txt and my kernel
configuration file at http://oliver-roll.com/SCTP.txt).

I think there is a conflict between /usr/src/sys/netpisec/keydb.h and
/usr/src/sys/keydb.h which are both included somewhere in the code.
Can anybody give me a hint about how to solve this conflict?

Thanks & regards,

Oliver



More information about the freebsd-net mailing list