Module Name: src Committed By: ozaki-r Date: Fri Apr 14 02:43:28 UTC 2017
Modified Files: src/distrib/sets/lists/base: shl.mi src/distrib/sets/lists/comp: mi shl.mi src/distrib/sets/lists/debug: mi shl.mi src/sys/netinet: in_proto.c src/sys/netinet6: in6_proto.c src/sys/rump/librump/rumpnet: Makefile.rumpnet net_stub.c src/sys/rump/net: Makefile.rumpnetcomp src/sys/rump/net/lib/libnetinet: Makefile.inc src/sys/rump/net/lib/libnetinet6: Makefile.inc Added Files: src/sys/rump/net/lib/libnetipsec: Makefile Makefile.inc netipsec_component.c Log Message: Rumpify netipsec Note that we should modularize netipsec and reduce reverse symbol references (referencing symbols of netipsec from net, netinet and netinet6) though, the task needs lots of code changes. Prior to doing so, rumpifying it and having ATF tests should be useful. To generate a diff of this commit: cvs rdiff -u -r1.806 -r1.807 src/distrib/sets/lists/base/shl.mi cvs rdiff -u -r1.2119 -r1.2120 src/distrib/sets/lists/comp/mi cvs rdiff -u -r1.301 -r1.302 src/distrib/sets/lists/comp/shl.mi cvs rdiff -u -r1.204 -r1.205 src/distrib/sets/lists/debug/mi cvs rdiff -u -r1.164 -r1.165 src/distrib/sets/lists/debug/shl.mi cvs rdiff -u -r1.122 -r1.123 src/sys/netinet/in_proto.c cvs rdiff -u -r1.116 -r1.117 src/sys/netinet6/in6_proto.c cvs rdiff -u -r1.21 -r1.22 src/sys/rump/librump/rumpnet/Makefile.rumpnet cvs rdiff -u -r1.25 -r1.26 src/sys/rump/librump/rumpnet/net_stub.c cvs rdiff -u -r1.17 -r1.18 src/sys/rump/net/Makefile.rumpnetcomp cvs rdiff -u -r1.13 -r1.14 src/sys/rump/net/lib/libnetinet/Makefile.inc cvs rdiff -u -r1.3 -r1.4 src/sys/rump/net/lib/libnetinet6/Makefile.inc cvs rdiff -u -r0 -r1.1 src/sys/rump/net/lib/libnetipsec/Makefile \ src/sys/rump/net/lib/libnetipsec/Makefile.inc \ src/sys/rump/net/lib/libnetipsec/netipsec_component.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/sets/lists/base/shl.mi diff -u src/distrib/sets/lists/base/shl.mi:1.806 src/distrib/sets/lists/base/shl.mi:1.807 --- src/distrib/sets/lists/base/shl.mi:1.806 Fri Mar 24 11:46:52 2017 +++ src/distrib/sets/lists/base/shl.mi Fri Apr 14 02:43:27 2017 @@ -1,4 +1,4 @@ -# $NetBSD: shl.mi,v 1.806 2017/03/24 11:46:52 nat Exp $ +# $NetBSD: shl.mi,v 1.807 2017/04/14 02:43:27 ozaki-r Exp $ # # Note: Don't delete entries from here - mark them as "obsolete" instead, # unless otherwise stated below. @@ -721,6 +721,9 @@ ./usr/lib/librumpnet_netinet6.so base-rump-shlib rump ./usr/lib/librumpnet_netinet6.so.0 base-rump-shlib rump ./usr/lib/librumpnet_netinet6.so.0.0 base-rump-shlib rump +./usr/lib/librumpnet_netipsec.so base-rump-shlib rump +./usr/lib/librumpnet_netipsec.so.0 base-rump-shlib rump +./usr/lib/librumpnet_netipsec.so.0.0 base-rump-shlib rump ./usr/lib/librumpnet_netmpls.so base-rump-shlib rump ./usr/lib/librumpnet_netmpls.so.0 base-rump-shlib rump ./usr/lib/librumpnet_netmpls.so.0.0 base-rump-shlib rump Index: src/distrib/sets/lists/comp/mi diff -u src/distrib/sets/lists/comp/mi:1.2119 src/distrib/sets/lists/comp/mi:1.2120 --- src/distrib/sets/lists/comp/mi:1.2119 Thu Apr 6 10:46:52 2017 +++ src/distrib/sets/lists/comp/mi Fri Apr 14 02:43:27 2017 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.2119 2017/04/06 10:46:52 abhinav Exp $ +# $NetBSD: mi,v 1.2120 2017/04/14 02:43:27 ozaki-r Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. ./etc/mtree/set.comp comp-sys-root @@ -3566,6 +3566,8 @@ ./usr/lib/librumpnet_netinet6.a comp-c-lib rump ./usr/lib/librumpnet_netinet6_p.a comp-c-proflib rump,profile ./usr/lib/librumpnet_netinet_p.a comp-c-proflib rump,profile +./usr/lib/librumpnet_netipsec.a comp-c-lib rump +./usr/lib/librumpnet_netipsec_p.a comp-c-proflib rump,profile ./usr/lib/librumpnet_netmpls.a comp-c-lib rump ./usr/lib/librumpnet_netmpls_p.a comp-c-proflib rump,profile ./usr/lib/librumpnet_npf.a comp-c-lib rump Index: src/distrib/sets/lists/comp/shl.mi diff -u src/distrib/sets/lists/comp/shl.mi:1.301 src/distrib/sets/lists/comp/shl.mi:1.302 --- src/distrib/sets/lists/comp/shl.mi:1.301 Thu Feb 16 08:39:10 2017 +++ src/distrib/sets/lists/comp/shl.mi Fri Apr 14 02:43:27 2017 @@ -1,4 +1,4 @@ -# $NetBSD: shl.mi,v 1.301 2017/02/16 08:39:10 knakahara Exp $ +# $NetBSD: shl.mi,v 1.302 2017/04/14 02:43:27 ozaki-r Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -225,6 +225,7 @@ ./usr/lib/librumpnet_netbt_pic.a comp-c-piclib picinstall,rump ./usr/lib/librumpnet_netinet6_pic.a comp-c-piclib picinstall,rump ./usr/lib/librumpnet_netinet_pic.a comp-c-piclib picinstall,rump +./usr/lib/librumpnet_netipsec_pic.a comp-c-piclib picinstall,rump ./usr/lib/librumpnet_netmpls_pic.a comp-c-piclib picinstall,rump ./usr/lib/librumpnet_npf_pic.a comp-c-piclib picinstall,rump ./usr/lib/librumpnet_pic.a comp-c-piclib compatfile,picinstall,rump Index: src/distrib/sets/lists/debug/mi diff -u src/distrib/sets/lists/debug/mi:1.204 src/distrib/sets/lists/debug/mi:1.205 --- src/distrib/sets/lists/debug/mi:1.204 Mon Apr 3 05:06:28 2017 +++ src/distrib/sets/lists/debug/mi Fri Apr 14 02:43:27 2017 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.204 2017/04/03 05:06:28 kamil Exp $ +# $NetBSD: mi,v 1.205 2017/04/14 02:43:27 ozaki-r Exp $ ./etc/mtree/set.debug comp-sys-root ./usr/lib comp-sys-usr compatdir ./usr/lib/i18n/libBIG5_g.a comp-c-debuglib debuglib,compatfile @@ -217,6 +217,7 @@ ./usr/lib/librumpnet_netbt_g.a comp-c-debuglib debuglib,rump ./usr/lib/librumpnet_netinet6_g.a comp-c-debuglib debuglib,rump ./usr/lib/librumpnet_netinet_g.a comp-c-debuglib debuglib,rump +./usr/lib/librumpnet_netipsec_g.a comp-c-debuglib debuglib,rump ./usr/lib/librumpnet_netmpls_g.a comp-c-debuglib debuglib,rump ./usr/lib/librumpnet_npf_g.a comp-c-debuglib debuglib,rump ./usr/lib/librumpnet_pppoe_g.a comp-c-debuglib debuglib,rump Index: src/distrib/sets/lists/debug/shl.mi diff -u src/distrib/sets/lists/debug/shl.mi:1.164 src/distrib/sets/lists/debug/shl.mi:1.165 --- src/distrib/sets/lists/debug/shl.mi:1.164 Sat Mar 11 16:36:01 2017 +++ src/distrib/sets/lists/debug/shl.mi Fri Apr 14 02:43:27 2017 @@ -1,4 +1,4 @@ -# $NetBSD: shl.mi,v 1.164 2017/03/11 16:36:01 christos Exp $ +# $NetBSD: shl.mi,v 1.165 2017/04/14 02:43:27 ozaki-r Exp $ ./usr/lib/libbfd_g.a comp-c-debuglib debuglib,compatfile,binutils ./usr/libdata/debug/lib base-sys-usr debug,dynamicroot,compatdir ./usr/libdata/debug/lib/libblacklist.so.0.0.debug comp-sys-debug debug,dynamicroot @@ -247,6 +247,7 @@ ./usr/libdata/debug/usr/lib/librumpnet_netbt.so.0.0.debug comp-rump-debug debug,rump ./usr/libdata/debug/usr/lib/librumpnet_netinet.so.0.0.debug comp-rump-debug debug,rump ./usr/libdata/debug/usr/lib/librumpnet_netinet6.so.0.0.debug comp-rump-debug debug,rump +./usr/libdata/debug/usr/lib/librumpnet_netipsec.so.0.0.debug comp-rump-debug debug,rump ./usr/libdata/debug/usr/lib/librumpnet_netmpls.so.0.0.debug comp-rump-debug debug,rump ./usr/libdata/debug/usr/lib/librumpnet_npf.so.0.0.debug comp-rump-debug debug,npf,rump ./usr/libdata/debug/usr/lib/librumpnet_pppoe.so.0.0.debug comp-rump-debug debug,rump Index: src/sys/netinet/in_proto.c diff -u src/sys/netinet/in_proto.c:1.122 src/sys/netinet/in_proto.c:1.123 --- src/sys/netinet/in_proto.c:1.122 Thu Feb 16 08:12:44 2017 +++ src/sys/netinet/in_proto.c Fri Apr 14 02:43:27 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: in_proto.c,v 1.122 2017/02/16 08:12:44 knakahara Exp $ */ +/* $NetBSD: in_proto.c,v 1.123 2017/04/14 02:43:27 ozaki-r Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: in_proto.c,v 1.122 2017/02/16 08:12:44 knakahara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: in_proto.c,v 1.123 2017/04/14 02:43:27 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_mrouting.h" @@ -186,13 +186,59 @@ PR_WRAP_CTLOUTPUT(sctp_ctloutput) #endif #if defined(IPSEC) -PR_WRAP_CTLINPUT(ah4_ctlinput) -#define ah4_ctlinput ah4_ctlinput_wrapper +#ifdef IPSEC_RUMPKERNEL +/* + * .pr_input = ipsec4_common_input won't be resolved on loading + * the ipsec shared library. We need a wrapper anyway. + */ +static void +ipsec4_common_input_wrapper(struct mbuf *m, ...) +{ + + if (ipsec_enabled) { + int off, nxt; + va_list args; + /* XXX just passing args to ipsec4_common_input doesn't work */ + va_start(args, m); + off = va_arg(args, int); + nxt = va_arg(args, int); + va_end(args); + ipsec4_common_input(m, off, nxt); + } else { + m_freem(m); + } +} +#define ipsec4_common_input ipsec4_common_input_wrapper + +/* The ctlinput functions may not be loaded */ +#define IPSEC_WRAP_CTLINPUT(name) \ +static void * \ +name##_wrapper(int a, const struct sockaddr *b, void *c)\ +{ \ + void *rv; \ + KERNEL_LOCK(1, NULL); \ + if (ipsec_enabled) \ + rv = name(a, b, c); \ + else \ + rv = NULL; \ + KERNEL_UNLOCK_ONE(NULL); \ + return rv; \ +} +IPSEC_WRAP_CTLINPUT(ah4_ctlinput) +IPSEC_WRAP_CTLINPUT(esp4_ctlinput) + +#else /* !IPSEC_RUMPKERNEL */ + +PR_WRAP_CTLINPUT(ah4_ctlinput) PR_WRAP_CTLINPUT(esp4_ctlinput) +#endif /* !IPSEC_RUMPKERNEL */ + +#define ah4_ctlinput ah4_ctlinput_wrapper #define esp4_ctlinput esp4_ctlinput_wrapper -#endif + +#endif /* IPSEC */ const struct protosw inetsw[] = { { .pr_domain = &inetdomain, Index: src/sys/netinet6/in6_proto.c diff -u src/sys/netinet6/in6_proto.c:1.116 src/sys/netinet6/in6_proto.c:1.117 --- src/sys/netinet6/in6_proto.c:1.116 Thu Feb 16 08:12:44 2017 +++ src/sys/netinet6/in6_proto.c Fri Apr 14 02:43:28 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: in6_proto.c,v 1.116 2017/02/16 08:12:44 knakahara Exp $ */ +/* $NetBSD: in6_proto.c,v 1.117 2017/04/14 02:43:28 ozaki-r Exp $ */ /* $KAME: in6_proto.c,v 1.66 2000/10/10 15:35:47 itojun Exp $ */ /* @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: in6_proto.c,v 1.116 2017/02/16 08:12:44 knakahara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: in6_proto.c,v 1.117 2017/04/14 02:43:28 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_gateway.h" @@ -185,16 +185,53 @@ PR_WRAP_CTLOUTPUT(sctp_ctloutput) #endif #if defined(IPSEC) -PR_WRAP_CTLINPUT(ah6_ctlinput) -#define ah6_ctlinput ah6_ctlinput_wrapper -#endif +#ifdef IPSEC_RUMPKERNEL +/* + * .pr_input = ipsec6_common_input won't be resolved on loading + * the ipsec shared library. We need a wrapper anyway. + */ +static int +ipsec6_common_input_wrapper(struct mbuf **mp, int *offp, int proto) +{ -#if defined(IPSEC) + if (ipsec_enabled) { + return ipsec6_common_input(mp, offp, proto); + } else { + m_freem(*mp); + return IPPROTO_DONE; + } +} +#define ipsec6_common_input ipsec6_common_input_wrapper + +/* The ctlinput functions may not be loaded */ +#define IPSEC_WRAP_CTLINPUT(name) \ +static void * \ +name##_wrapper(int a, const struct sockaddr *b, void *c)\ +{ \ + void *rv; \ + KERNEL_LOCK(1, NULL); \ + if (ipsec_enabled) \ + rv = name(a, b, c); \ + else \ + rv = NULL; \ + KERNEL_UNLOCK_ONE(NULL); \ + return rv; \ +} +IPSEC_WRAP_CTLINPUT(ah6_ctlinput) +IPSEC_WRAP_CTLINPUT(esp6_ctlinput) + +#else /* !IPSEC_RUMPKERNEL */ + +PR_WRAP_CTLINPUT(ah6_ctlinput) PR_WRAP_CTLINPUT(esp6_ctlinput) +#endif /* !IPSEC_RUMPKERNEL */ + +#define ah6_ctlinput ah6_ctlinput_wrapper #define esp6_ctlinput esp6_ctlinput_wrapper -#endif + +#endif /* IPSEC */ static void tcp6_init(void) Index: src/sys/rump/librump/rumpnet/Makefile.rumpnet diff -u src/sys/rump/librump/rumpnet/Makefile.rumpnet:1.21 src/sys/rump/librump/rumpnet/Makefile.rumpnet:1.22 --- src/sys/rump/librump/rumpnet/Makefile.rumpnet:1.21 Thu Feb 2 02:52:10 2017 +++ src/sys/rump/librump/rumpnet/Makefile.rumpnet Fri Apr 14 02:43:28 2017 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.rumpnet,v 1.21 2017/02/02 02:52:10 ozaki-r Exp $ +# $NetBSD: Makefile.rumpnet,v 1.22 2017/04/14 02:43:28 ozaki-r Exp $ # LIB= rumpnet @@ -10,6 +10,7 @@ COMMENT= Rump kernel networking faction ${RUMPTOP}/../netatalk \ ${RUMPTOP}/../netinet \ ${RUMPTOP}/../netinet6 \ + ${RUMPTOP}/../netipsec \ ${RUMPTOP}/../compat/common SRCS= net_stub.c netisr.c rump_net.c Index: src/sys/rump/librump/rumpnet/net_stub.c diff -u src/sys/rump/librump/rumpnet/net_stub.c:1.25 src/sys/rump/librump/rumpnet/net_stub.c:1.26 --- src/sys/rump/librump/rumpnet/net_stub.c:1.25 Tue Mar 14 09:03:09 2017 +++ src/sys/rump/librump/rumpnet/net_stub.c Fri Apr 14 02:43:28 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: net_stub.c,v 1.25 2017/03/14 09:03:09 ozaki-r Exp $ */ +/* $NetBSD: net_stub.c,v 1.26 2017/04/14 02:43:28 ozaki-r Exp $ */ /* * Copyright (c) 2008 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: net_stub.c,v 1.25 2017/03/14 09:03:09 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: net_stub.c,v 1.26 2017/04/14 02:43:28 ozaki-r Exp $"); #include <sys/mutex.h> #include <sys/param.h> @@ -38,6 +38,10 @@ __KERNEL_RCSID(0, "$NetBSD: net_stub.c,v #include <net/if.h> #include <net/route.h> +#include <netipsec/ipsec.h> +#include <netipsec/ipsec6.h> +#include <netipsec/key.h> + #include <compat/sys/socket.h> #include <compat/sys/sockio.h> @@ -71,6 +75,41 @@ __weak_alias(pppoedisc_input,rumpnet_stu __weak_alias(vlan_input,rumpnet_stub); __weak_alias(vlan_ifdetach,rumpnet_stub); +/* ipsec */ +/* FIXME: should modularize netipsec and reduce reverse symbol references */ +int ipsec_debug; +int ipsec_enabled; +int ipsec_used; +percpu_t *ipsecstat_percpu; +u_int ipsec_spdgen; + +__weak_alias(ah4_ctlinput,rumpnet_stub); +__weak_alias(ah6_ctlinput,rumpnet_stub); +__weak_alias(esp4_ctlinput,rumpnet_stub); +__weak_alias(esp6_ctlinput,rumpnet_stub); +__weak_alias(ipsec4_output,rumpnet_stub); +__weak_alias(ipsec4_common_input,rumpnet_stub); +__weak_alias(ipsec4_delete_pcbpolicy,rumpnet_stub); +__weak_alias(ipsec4_forward,rumpnet_stub); +__weak_alias(ipsec4_hdrsiz,rumpnet_stub); +__weak_alias(ipsec4_input,rumpnet_stub); +__weak_alias(ipsec4_in_reject,rumpnet_stub); +__weak_alias(ipsec4_set_policy,rumpnet_stub); +__weak_alias(ipsec6_common_input,rumpnet_stub); +__weak_alias(ipsec6_input,rumpnet_stub); +__weak_alias(ipsec6_check_policy,rumpnet_stub); +__weak_alias(ipsec6_delete_pcbpolicy,rumpnet_stub); +__weak_alias(ipsec6_get_policy,rumpnet_stub); +__weak_alias(ipsec6_in_reject,rumpnet_stub); +__weak_alias(ipsec6_hdrsiz,rumpnet_stub); +__weak_alias(ipsec6_process_packet,rumpnet_stub); +__weak_alias(ipsec6_set_policy,rumpnet_stub); +__weak_alias(ipsec_init_policy,rumpnet_stub); +__weak_alias(ipsec_pcbconn,rumpnet_stub); +__weak_alias(ipsec_pcbdisconn,rumpnet_stub); +__weak_alias(key_sa_routechange,rumpnet_stub); +__weak_alias(_key_freesp,rumpnet_stub); + struct ifnet_head ifnet_list; struct pslist_head ifnet_pslist; kmutex_t ifnet_mtx; Index: src/sys/rump/net/Makefile.rumpnetcomp diff -u src/sys/rump/net/Makefile.rumpnetcomp:1.17 src/sys/rump/net/Makefile.rumpnetcomp:1.18 --- src/sys/rump/net/Makefile.rumpnetcomp:1.17 Thu Feb 16 08:39:10 2017 +++ src/sys/rump/net/Makefile.rumpnetcomp Fri Apr 14 02:43:28 2017 @@ -1,9 +1,9 @@ -# $NetBSD: Makefile.rumpnetcomp,v 1.17 2017/02/16 08:39:10 knakahara Exp $ +# $NetBSD: Makefile.rumpnetcomp,v 1.18 2017/04/14 02:43:28 ozaki-r Exp $ # .include <bsd.own.mk> -RUMPNETCOMP= agr bridge net net80211 netbt netinet netinet6 +RUMPNETCOMP= agr bridge net net80211 netbt netinet netinet6 netipsec RUMPNETCOMP+= gif netmpls npf l2tp local pppoe shmif tap tun vlan .if ${MKSLJIT} != "no" || make(rumpdescribe) Index: src/sys/rump/net/lib/libnetinet/Makefile.inc diff -u src/sys/rump/net/lib/libnetinet/Makefile.inc:1.13 src/sys/rump/net/lib/libnetinet/Makefile.inc:1.14 --- src/sys/rump/net/lib/libnetinet/Makefile.inc:1.13 Mon Aug 24 23:04:43 2015 +++ src/sys/rump/net/lib/libnetinet/Makefile.inc Fri Apr 14 02:43:28 2017 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.13 2015/08/24 23:04:43 pooka Exp $ +# $NetBSD: Makefile.inc,v 1.14 2017/04/14 02:43:28 ozaki-r Exp $ # .PATH: ${.CURDIR}/../../../../netinet @@ -25,3 +25,9 @@ CPPFLAGS+= -DPORTALGO_INET4_DEFAULT=PORT # TCP debugging #SRCS+= tcp_debug.c #CPPFLAGS+= -DTCP_DEBUG + +# IPSEC +SRCS+= ip_ecn.c +CPPFLAGS+= -DIPSEC +# To write rump-specific wrappers +CPPFLAGS.in_proto.c+= -DIPSEC_RUMPKERNEL Index: src/sys/rump/net/lib/libnetinet6/Makefile.inc diff -u src/sys/rump/net/lib/libnetinet6/Makefile.inc:1.3 src/sys/rump/net/lib/libnetinet6/Makefile.inc:1.4 --- src/sys/rump/net/lib/libnetinet6/Makefile.inc:1.3 Tue Aug 25 00:08:56 2015 +++ src/sys/rump/net/lib/libnetinet6/Makefile.inc Fri Apr 14 02:43:28 2017 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.3 2015/08/25 00:08:56 pooka Exp $ +# $NetBSD: Makefile.inc,v 1.4 2017/04/14 02:43:28 ozaki-r Exp $ # .PATH: ${.CURDIR}/../../../../netinet6 @@ -13,3 +13,8 @@ SRCS+= dest6.c frag6.c icmp6.c in6.c in6 udp6_output.c udp6_usrreq.c CPPFLAGS+= -DPORTALGO_INET6_DEFAULT=PORTALGO_RANDOM_START + +# IPSEC +CPPFLAGS+= -DIPSEC +# To write rump-specific wrappers +CPPFLAGS.in6_proto.c+= -DIPSEC_RUMPKERNEL Added files: Index: src/sys/rump/net/lib/libnetipsec/Makefile diff -u /dev/null src/sys/rump/net/lib/libnetipsec/Makefile:1.1 --- /dev/null Fri Apr 14 02:43:28 2017 +++ src/sys/rump/net/lib/libnetipsec/Makefile Fri Apr 14 02:43:28 2017 @@ -0,0 +1,11 @@ +# $NetBSD: Makefile,v 1.1 2017/04/14 02:43:28 ozaki-r Exp $ +# + +LIB= rumpnet_netipsec + +SRCS= netipsec_component.c + +.include "Makefile.inc" + +.include <bsd.lib.mk> +.include <bsd.klinks.mk> Index: src/sys/rump/net/lib/libnetipsec/Makefile.inc diff -u /dev/null src/sys/rump/net/lib/libnetipsec/Makefile.inc:1.1 --- /dev/null Fri Apr 14 02:43:28 2017 +++ src/sys/rump/net/lib/libnetipsec/Makefile.inc Fri Apr 14 02:43:28 2017 @@ -0,0 +1,17 @@ +# $NetBSD: Makefile.inc,v 1.1 2017/04/14 02:43:28 ozaki-r Exp $ +# + +.PATH: ${.CURDIR}/../../../../netipsec + +CPPFLAGS+= -DIPSEC -DINET -DINET6 + +SRCS+= ipsec.c ipsec_netbsd.c key_debug.c xform_esp.c \ + ipsec_input.c ipsec_output.c keysock.c xform_ipcomp.c \ + ipsec_mbuf.c key.c xform_ah.c xform_ipip.c +# Add it once TCP_SIGNATURE is enabled +#SRCS+= xform_tcp.c + +# IPsec debugging +.ifdef RUMP_DEBUG +CPPFLAGS+= -DIPSEC_DEBUG +.endif Index: src/sys/rump/net/lib/libnetipsec/netipsec_component.c diff -u /dev/null src/sys/rump/net/lib/libnetipsec/netipsec_component.c:1.1 --- /dev/null Fri Apr 14 02:43:28 2017 +++ src/sys/rump/net/lib/libnetipsec/netipsec_component.c Fri Apr 14 02:43:28 2017 @@ -0,0 +1,51 @@ +/* $NetBSD: netipsec_component.c,v 1.1 2017/04/14 02:43:28 ozaki-r Exp $ */ + +/* + * Copyright (c) 2017 Internet Initiative Japan Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * 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. + */ + +#include <sys/cdefs.h> +__KERNEL_RCSID(0, "$NetBSD: netipsec_component.c,v 1.1 2017/04/14 02:43:28 ozaki-r Exp $"); + +#include <sys/domain.h> +#include <sys/protosw.h> +#include <sys/sysctl.h> + +#include <netipsec/ipsec.h> + +#include <rump-sys/kern.h> +#include <rump-sys/net.h> + +RUMP_COMPONENT(RUMP_COMPONENT_NET) +{ + extern struct domain keydomain; + + ipsec_attach(); + domain_attach(&keydomain); + ipsec_enabled = 1; +#ifdef IPSEC_DEBUG + ipsec_debug = 1; +#endif +}