Module Name:    src
Committed By:   pooka
Date:           Tue May 26 23:43:40 UTC 2009

Modified Files:
        src/sys/rump/librump/rumpnet: netisr.c
        src/sys/rump/librump/rumpnet/opt: opt_inet.h
        src/sys/rump/net/lib/libnetinet: Makefile.inc
Added Files:
        src/sys/rump/librump/rumpnet/opt: opt_inet6.h

Log Message:
Support IPv6 in rump.  I'd have liked to introduce a netinet6
component, but due to ifdef happiness permeating the sources, it's
a compile decision for now, so netinet pulls in both inet and inet6.

One issue, one single issue: the loopback interface still needs to
be created for IPv6 to work.  I have patches to take care of it
automatically if the appropriate component (net) is present, but
they require a bit more testing before commit.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/rump/librump/rumpnet/netisr.c
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/librump/rumpnet/opt/opt_inet.h
cvs rdiff -u -r0 -r1.1 src/sys/rump/librump/rumpnet/opt/opt_inet6.h
cvs rdiff -u -r1.3 -r1.4 src/sys/rump/net/lib/libnetinet/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/rump/librump/rumpnet/netisr.c
diff -u src/sys/rump/librump/rumpnet/netisr.c:1.3 src/sys/rump/librump/rumpnet/netisr.c:1.4
--- src/sys/rump/librump/rumpnet/netisr.c:1.3	Wed Mar 18 10:22:45 2009
+++ src/sys/rump/librump/rumpnet/netisr.c	Tue May 26 23:43:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: netisr.c,v 1.3 2009/03/18 10:22:45 cegger Exp $	*/
+/*	$NetBSD: netisr.c,v 1.4 2009/05/26 23:43:39 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netisr.c,v 1.3 2009/03/18 10:22:45 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netisr.c,v 1.4 2009/05/26 23:43:39 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/intr.h>
@@ -34,6 +34,8 @@
 #include <netinet/in.h>
 #include <netinet/ip_var.h>
 #include <netinet/if_inarp.h>
+#include <netinet/ip6.h>
+#include <netinet6/ip6_var.h>
 #include <net/netisr.h>
 
 #include "rump_net_private.h"
@@ -68,6 +70,15 @@
 }
 __weak_alias(arpintr,__arpintr_stub);
 
+void __ip6intr_stub(void);
+void
+__ip6intr_stub(void)
+{
+
+	panic("ip6intr called but networking stack missing");
+}
+__weak_alias(ip6intr,__ip6intr_stub);
+
 void
 rump_netisr_init(void)
 {
@@ -76,4 +87,6 @@
 	    (void (*)(void *))ipintr, NULL);
 	netisrs[NETISR_ARP] = softint_establish(SOFTINT_NET | SOFTINT_MPSAFE,
 	    (void (*)(void *))arpintr, NULL);
+	netisrs[NETISR_IPV6] = softint_establish(SOFTINT_NET | SOFTINT_MPSAFE,
+	    (void (*)(void *))ip6intr, NULL);
 }

Index: src/sys/rump/librump/rumpnet/opt/opt_inet.h
diff -u src/sys/rump/librump/rumpnet/opt/opt_inet.h:1.1 src/sys/rump/librump/rumpnet/opt/opt_inet.h:1.2
--- src/sys/rump/librump/rumpnet/opt/opt_inet.h:1.1	Wed Oct 15 13:00:40 2008
+++ src/sys/rump/librump/rumpnet/opt/opt_inet.h	Tue May 26 23:43:39 2009
@@ -1,3 +1,4 @@
-/*	$NetBSD: opt_inet.h,v 1.1 2008/10/15 13:00:40 pooka Exp $	*/
+/*	$NetBSD: opt_inet.h,v 1.2 2009/05/26 23:43:39 pooka Exp $	*/
 
-#define INET
+#define INET  1
+#define INET6 1

Index: src/sys/rump/net/lib/libnetinet/Makefile.inc
diff -u src/sys/rump/net/lib/libnetinet/Makefile.inc:1.3 src/sys/rump/net/lib/libnetinet/Makefile.inc:1.4
--- src/sys/rump/net/lib/libnetinet/Makefile.inc:1.3	Tue Feb  3 00:33:48 2009
+++ src/sys/rump/net/lib/libnetinet/Makefile.inc	Tue May 26 23:43:39 2009
@@ -1,13 +1,20 @@
-#	$NetBSD: Makefile.inc,v 1.3 2009/02/03 00:33:48 pooka Exp $
+#	$NetBSD: Makefile.inc,v 1.4 2009/05/26 23:43:39 pooka Exp $
 #
 
-.PATH:	${.CURDIR}/../../../../netinet
+.PATH:	${.CURDIR}/../../../../netinet ${.CURDIR}/../../../../netinet6
 
-# IP
+# INET
 SRCS+=	in_proto.c igmp.c in.c in_offload.c in_pcb.c ip_icmp.c		\
 	ip_flow.c ip_id.c ip_input.c ip_output.c raw_ip.c in_cksum.c	\
 	cpu_in_cksum.c in4_cksum.c ip_encap.c
 
+# INET6
+SRCS+=	dest6.c frag6.c icmp6.c in6.c in6_cksum.c in6_ifattach.c	\
+	in6_offload.c in6_pcb.c in6_proto.c in6_src.c ip6_flow.c	\
+	ip6_forward.c ip6_id.c ip6_input.c ip6_mroute.c ip6_output.c	\
+	mld6.c nd6.c nd6_nbr.c nd6_rtr.c raw_ip6.c route6.c scope6.c	\
+	udp6_output.c udp6_usrreq.c
+
 # ARP
 SRCS+=	if_arp.c
 

Added files:

Index: src/sys/rump/librump/rumpnet/opt/opt_inet6.h
diff -u /dev/null src/sys/rump/librump/rumpnet/opt/opt_inet6.h:1.1
--- /dev/null	Tue May 26 23:43:40 2009
+++ src/sys/rump/librump/rumpnet/opt/opt_inet6.h	Tue May 26 23:43:39 2009
@@ -0,0 +1 @@
+/*	$NetBSD: opt_inet6.h,v 1.1 2009/05/26 23:43:39 pooka Exp $	*/

Reply via email to