PERFORCE change 122852 for review
Marko Zec
zec at FreeBSD.org
Wed Jul 4 12:49:41 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=122852
Change 122852 by zec at zec_tpx32 on 2007/07/04 12:49:00
Allow the kernel to be compiled if both VIMAGE and FAST_IPSEC
options are enabled.
Submitted by: Ana Kukec <anchie at fer.hr>
Affected files ...
.. //depot/projects/vimage/src/sys/netinet/ip_ipsec.c#4 edit
.. //depot/projects/vimage/src/sys/netinet6/ip6_ipsec.c#2 edit
.. //depot/projects/vimage/src/sys/netinet6/vinet6.h#6 edit
.. //depot/projects/vimage/src/sys/netipsec/ipsec_input.c#4 edit
.. //depot/projects/vimage/src/sys/netipsec/ipsec_output.c#4 edit
.. //depot/projects/vimage/src/sys/netipsec/key.c#4 edit
.. //depot/projects/vimage/src/sys/netipsec/keysock.c#3 edit
.. //depot/projects/vimage/src/sys/netipsec/xform_ipip.c#2 edit
Differences ...
==== //depot/projects/vimage/src/sys/netinet/ip_ipsec.c#4 (text+ko) ====
@@ -30,6 +30,7 @@
*/
#include "opt_ipsec.h"
+#include "opt_vimage.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -40,10 +41,12 @@
#include <sys/socket.h>
#include <sys/socketvar.h>
#include <sys/sysctl.h>
+#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
+#include <netinet/vinet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/in_var.h>
@@ -91,6 +94,7 @@
ip_ipsec_fwd(struct mbuf *m)
{
#ifdef FAST_IPSEC
+ INIT_VNET_INET(curvnet);
struct m_tag *mtag;
struct tdb_ident *tdbi;
struct secpolicy *sp;
@@ -119,7 +123,7 @@
KEY_FREESP(&sp);
splx(s);
if (error) {
- ipstat.ips_cantforward++;
+ V_ipstat.ips_cantforward++;
return 1;
}
#endif /* FAST_IPSEC */
==== //depot/projects/vimage/src/sys/netinet6/ip6_ipsec.c#2 (text+ko) ====
@@ -30,6 +30,7 @@
*/
#include "opt_ipsec.h"
+#include "opt_vimage.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -41,6 +42,7 @@
#include <sys/socket.h>
#include <sys/socketvar.h>
#include <sys/sysctl.h>
+#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
@@ -67,6 +69,7 @@
#endif
#endif /*FAST_IPSEC*/
+#include <netinet6/vinet6.h>
#include <netinet6/ip6_ipsec.h>
extern struct protosw inet6sw[];
@@ -99,6 +102,7 @@
ip6_ipsec_fwd(struct mbuf *m)
{
#ifdef FAST_IPSEC
+ INIT_VNET_INET6(curvnet);
struct m_tag *mtag;
struct tdb_ident *tdbi;
struct secpolicy *sp;
@@ -126,7 +130,7 @@
KEY_FREESP(&sp);
splx(s);
if (error) {
- ipstat.ips_cantforward++;
+ V_ip6stat.ip6s_cantforward++;
return 1;
}
#endif /* FAST_IPSEC */
==== //depot/projects/vimage/src/sys/netinet6/vinet6.h#6 (text+ko) ====
@@ -34,12 +34,16 @@
#define _NETINET6_VINET6_H_
#include <netinet/ip6.h>
-#include <netinet/icmp6.h>
+#include <netinet/ip6.h>
+#include <netinet6/in6_var.h>
#include <netinet6/ip6_var.h>
-#include <netinet6/in6_var.h>
#include <netinet6/raw_ip6.h>
+#include <netinet/in_pcb.h>
+#include <netinet/icmp6.h>
+#include <netinet6/scope6_var.h>
+#include <netinet6/in6_ifattach.h>
#include <netinet6/nd6.h>
-#include <netinet6/scope6_var.h>
+
#define INIT_VNET_INET6(vnet) \
INIT_FROM_VNET(vnet, VNET_MOD_INET6, \
==== //depot/projects/vimage/src/sys/netipsec/ipsec_input.c#4 (text+ko) ====
@@ -44,6 +44,7 @@
#include "opt_inet6.h"
#include "opt_ipsec.h"
#include "opt_enc.h"
+#include "opt_vimage.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -54,6 +55,7 @@
#include <sys/socket.h>
#include <sys/errno.h>
#include <sys/syslog.h>
+#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
@@ -67,6 +69,7 @@
#include <netinet/ip6.h>
#ifdef INET6
+#include <netinet6/vinet6.h>
#include <netinet6/ip6_var.h>
#endif
#include <netinet/in_pcb.h>
@@ -543,6 +546,7 @@
ipsec6_common_input_cb(struct mbuf *m, struct secasvar *sav, int skip, int protoff,
struct m_tag *mt)
{
+ INIT_VNET_INET6(curvnet);
int prot, af, sproto;
struct ip6_hdr *ip6;
struct m_tag *mtag;
@@ -723,7 +727,7 @@
nxt = nxt8;
while (nxt != IPPROTO_DONE) {
if (ip6_hdrnestlimit && (++nest > ip6_hdrnestlimit)) {
- ip6stat.ip6s_toomanyhdr++;
+ V_ip6stat.ip6s_toomanyhdr++;
error = EINVAL;
goto bad;
}
@@ -733,7 +737,7 @@
* more sanity checks in header chain processing.
*/
if (m->m_pkthdr.len < skip) {
- ip6stat.ip6s_tooshort++;
+ V_ip6stat.ip6s_tooshort++;
in6_ifstat_inc(m->m_pkthdr.rcvif, ifs6_in_truncated);
error = EINVAL;
goto bad;
==== //depot/projects/vimage/src/sys/netipsec/ipsec_output.c#4 (text+ko) ====
@@ -33,6 +33,7 @@
#include "opt_inet6.h"
#include "opt_ipsec.h"
#include "opt_enc.h"
+#include "opt_vimage.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -42,6 +43,7 @@
#include <sys/socket.h>
#include <sys/errno.h>
#include <sys/syslog.h>
+#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
@@ -53,6 +55,7 @@
#include <netinet/in_var.h>
#include <netinet/ip_ecn.h>
#ifdef INET6
+#include <netinet6/vinet6.h>
#include <netinet6/ip6_ecn.h>
#endif
@@ -679,6 +682,7 @@
int
ipsec6_output_tunnel(struct ipsec_output_state *state, struct secpolicy *sp, int flags)
{
+ INIT_VNET_INET6(curvnet);
struct ip6_hdr *ip6;
struct ipsecrequest *isr;
struct secasindex saidx;
@@ -757,7 +761,7 @@
rtalloc(state->ro);
}
if (state->ro->ro_rt == 0) {
- ip6stat.ip6s_noroute++;
+ V_ip6stat.ip6s_noroute++;
ipsec6stat.ips_out_noroute++;
error = EHOSTUNREACH;
goto bad;
==== //depot/projects/vimage/src/sys/netipsec/key.c#4 (text+ko) ====
@@ -37,6 +37,7 @@
#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_ipsec.h"
+#include "opt_vimage.h"
#include <sys/types.h>
#include <sys/param.h>
@@ -56,17 +57,20 @@
#include <sys/queue.h>
#include <sys/refcount.h>
#include <sys/syslog.h>
+#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
#include <net/raw_cb.h>
+#include <netinet/vinet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
#include <netinet/in_var.h>
#ifdef INET6
+#include <netinet6/vinet6.h>
#include <netinet/ip6.h>
#include <netinet6/in6_var.h>
#include <netinet6/ip6_var.h>
@@ -3689,6 +3693,7 @@
struct sockaddr *sa;
{
#ifdef INET
+ INIT_VNET_INET(curvnet);
struct sockaddr_in *sin;
struct in_ifaddr *ia;
#endif
@@ -3699,7 +3704,7 @@
#ifdef INET
case AF_INET:
sin = (struct sockaddr_in *)sa;
- for (ia = in_ifaddrhead.tqh_first; ia;
+ for (ia = V_in_ifaddrhead.tqh_first; ia;
ia = ia->ia_link.tqe_next)
{
if (sin->sin_family == ia->ia_addr.sin_family &&
@@ -3733,10 +3738,11 @@
key_ismyaddr6(sin6)
struct sockaddr_in6 *sin6;
{
+ INIT_VNET_INET6(curvnet);
struct in6_ifaddr *ia;
struct in6_multi *in6m;
- for (ia = in6_ifaddr; ia; ia = ia->ia_next) {
+ for (ia = V_in6_ifaddr; ia; ia = ia->ia_next) {
if (key_sockaddrcmp((struct sockaddr *)&sin6,
(struct sockaddr *)&ia->ia_addr, 0) == 0)
return 1;
==== //depot/projects/vimage/src/sys/netipsec/keysock.c#3 (text+ko) ====
@@ -31,6 +31,7 @@
*/
#include "opt_ipsec.h"
+#include "opt_vimage.h"
/* This code has derived from sys/net/rtsock.c on FreeBSD2.2.5 */
@@ -49,9 +50,11 @@
#include <sys/socketvar.h>
#include <sys/sysctl.h>
#include <sys/systm.h>
+#include <sys/vimage.h>
#include <net/raw_cb.h>
#include <net/route.h>
+#include <net/vnet.h>
#include <net/pfkeyv2.h>
#include <netipsec/key.h>
@@ -264,6 +267,7 @@
struct mbuf *m;
int target;
{
+ INIT_VNET_NET(curvnet);
struct mbuf *n;
struct keycb *kp;
int sendup;
@@ -290,7 +294,7 @@
pfkeystat.in_msgtype[msg->sadb_msg_type]++;
}
mtx_lock(&rawcb_mtx);
- LIST_FOREACH(rp, &rawcb_list, list)
+ LIST_FOREACH(rp, &V_rawcb_list, list)
{
if (rp->rcb_proto.sp_family != PF_KEY)
continue;
==== //depot/projects/vimage/src/sys/netipsec/xform_ipip.c#2 (text+ko) ====
@@ -42,6 +42,7 @@
#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_enc.h"
+#include "opt_vimage.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -50,10 +51,12 @@
#include <sys/kernel.h>
#include <sys/protosw.h>
#include <sys/sysctl.h>
+#include <sys/vimage.h>
#include <net/if.h>
#include <net/route.h>
#include <net/netisr.h>
+#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
@@ -62,6 +65,7 @@
#include <netinet/ip_ecn.h>
#include <netinet/ip_var.h>
#include <netinet/ip_encap.h>
+#include <netinet/vinet.h>
#include <netipsec/ipsec.h>
#include <netipsec/xform.h>
@@ -154,6 +158,7 @@
static void
_ipip_input(struct mbuf *m, int iphlen, struct ifnet *gifp)
{
+ INIT_VNET_NET(curvnet);
register struct sockaddr_in *sin;
register struct ifnet *ifp;
register struct ifaddr *ifa;
@@ -301,7 +306,7 @@
!(m->m_pkthdr.rcvif->if_flags & IFF_LOOPBACK)) &&
ipip_allow != 2) {
IFNET_RLOCK();
- TAILQ_FOREACH(ifp, &ifnet, if_link) {
+ TAILQ_FOREACH(ifp, &V_ifnet, if_link) {
TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
#ifdef INET
if (ipo) {
@@ -391,6 +396,9 @@
int protoff
)
{
+#ifdef INET
+ INIT_VNET_INET(curvnet);
+#endif /* INET */
struct secasvar *sav;
u_int8_t tp, otos;
struct secasindex *saidx;
@@ -443,7 +451,7 @@
ipo->ip_v = IPVERSION;
ipo->ip_hl = 5;
ipo->ip_len = htons(m->m_pkthdr.len);
- ipo->ip_ttl = ip_defttl;
+ ipo->ip_ttl = V_ip_defttl;
ipo->ip_sum = 0;
ipo->ip_src = saidx->src.sin.sin_addr;
ipo->ip_dst = saidx->dst.sin.sin_addr;
@@ -528,7 +536,7 @@
ip6o->ip6_vfc &= ~IPV6_VERSION_MASK;
ip6o->ip6_vfc |= IPV6_VERSION;
ip6o->ip6_plen = htons(m->m_pkthdr.len);
- ip6o->ip6_hlim = ip_defttl;
+ ip6o->ip6_hlim = V_ip_defttl;
ip6o->ip6_dst = saidx->dst.sin6.sin6_addr;
ip6o->ip6_src = saidx->src.sin6.sin6_addr;
More information about the p4-projects
mailing list