diff options
author | sam <sam@FreeBSD.org> | 2002-11-08 23:37:50 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2002-11-08 23:37:50 +0000 |
commit | ef62292833a3cf488115f6193b9eca7c9dc7a500 (patch) | |
tree | f26b37b0a6bbf393c2051b9b900e5b7d5333f0ba /sys | |
parent | 6019e3c767dbfe1e63eea350246a2312d6745abe (diff) | |
download | FreeBSD-src-ef62292833a3cf488115f6193b9eca7c9dc7a500.zip FreeBSD-src-ef62292833a3cf488115f6193b9eca7c9dc7a500.tar.gz |
FAST_IPSEC fixups:
o fix #ifdef typo
o must use "bounce functions" when dispatched from the protosw table
don't know how this stuff was missed in my testing; must've committed
the wrong bits
Pointy hat: sam
Submitted by: "Doug Ambrisko" <ambrisko@verniernetworks.com>
Diffstat (limited to 'sys')
-rw-r--r-- | sys/netinet/in_proto.c | 26 | ||||
-rw-r--r-- | sys/netipsec/ipsec.h | 3 | ||||
-rw-r--r-- | sys/netipsec/ipsec_input.c | 18 |
3 files changed, 42 insertions, 5 deletions
diff --git a/sys/netinet/in_proto.c b/sys/netinet/in_proto.c index 5ecbe65..863b048 100644 --- a/sys/netinet/in_proto.c +++ b/sys/netinet/in_proto.c @@ -76,12 +76,8 @@ #include <netinet6/ipcomp.h> #endif /* IPSEC */ -#ifdef FAST_IPESC +#ifdef FAST_IPSEC #include <netipsec/ipsec.h> -#define ah4_input ipsec4_common_input -#define esp4_input ipsec4_common_input -#define ipcomp4_input ipsec4_common_input -#define IPSEC #endif /* FAST_IPSEC */ #ifdef IPXIP @@ -162,6 +158,26 @@ struct protosw inetsw[] = { &nousrreqs }, #endif /* IPSEC */ +#ifdef FAST_IPSEC +{ SOCK_RAW, &inetdomain, IPPROTO_AH, PR_ATOMIC|PR_ADDR, + ah4_input, 0, 0, 0, + 0, + 0, 0, 0, 0, + &nousrreqs +}, +{ SOCK_RAW, &inetdomain, IPPROTO_ESP, PR_ATOMIC|PR_ADDR, + esp4_input, 0, 0, 0, + 0, + 0, 0, 0, 0, + &nousrreqs +}, +{ SOCK_RAW, &inetdomain, IPPROTO_IPCOMP, PR_ATOMIC|PR_ADDR, + ipcomp4_input, 0, 0, 0, + 0, + 0, 0, 0, 0, + &nousrreqs +}, +#endif /* FAST_IPSEC */ { SOCK_RAW, &inetdomain, IPPROTO_IPV4, PR_ATOMIC|PR_ADDR|PR_LASTHDR, encap4_input, 0, 0, rip_ctloutput, 0, diff --git a/sys/netipsec/ipsec.h b/sys/netipsec/ipsec.h index 93b1e23..7f0a021 100644 --- a/sys/netipsec/ipsec.h +++ b/sys/netipsec/ipsec.h @@ -361,6 +361,9 @@ extern const char *ipsec_logsastr __P((struct secasvar *)); extern void ipsec_dumpmbuf __P((struct mbuf *)); struct m_tag; +extern void ah4_input(struct mbuf *m, int off); +extern void esp4_input(struct mbuf *m, int off); +extern void ipcomp4_input(struct mbuf *m, int off); extern int ipsec4_common_input(struct mbuf *m, ...); extern int ipsec4_common_input_cb(struct mbuf *m, struct secasvar *sav, int skip, int protoff, struct m_tag *mt); diff --git a/sys/netipsec/ipsec_input.c b/sys/netipsec/ipsec_input.c index 1d5a3c9..9ebb518 100644 --- a/sys/netipsec/ipsec_input.c +++ b/sys/netipsec/ipsec_input.c @@ -201,6 +201,24 @@ ipsec4_common_input(struct mbuf *m, ...) AF_INET, nxt); } +void +ah4_input(struct mbuf *m, int off) +{ + ipsec4_common_input(m, off, IPPROTO_AH); +} + +void +esp4_input(struct mbuf *m, int off) +{ + ipsec4_common_input(m, off, IPPROTO_ESP); +} + +void +ipcomp4_input(struct mbuf *m, int off) +{ + ipsec4_common_input(m, off, IPPROTO_IPCOMP); +} + /* * IPsec input callback for INET protocols. * This routine is called as the transform callback. |