CVS commit: src/sys/rump/net/rumptest

2011-03-21 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Mon Mar 21 15:51:34 UTC 2011

Removed Files:
src/sys/rump/net/rumptest: Makefile rumptest_net.c

Log Message:
remove historic test


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r0 src/sys/rump/net/rumptest/Makefile
cvs rdiff -u -r1.23 -r0 src/sys/rump/net/rumptest/rumptest_net.c

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



CVS commit: src/sys/rump/net/rumptest

2010-05-31 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Mon May 31 23:13:18 UTC 2010

Modified Files:
src/sys/rump/net/rumptest: rumptest_net.c

Log Message:
Dump rump kernel bootstrap time.


To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 src/sys/rump/net/rumptest/rumptest_net.c

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/net/rumptest/rumptest_net.c
diff -u src/sys/rump/net/rumptest/rumptest_net.c:1.20 src/sys/rump/net/rumptest/rumptest_net.c:1.21
--- src/sys/rump/net/rumptest/rumptest_net.c:1.20	Fri Apr 30 21:05:52 2010
+++ src/sys/rump/net/rumptest/rumptest_net.c	Mon May 31 23:13:17 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumptest_net.c,v 1.20 2010/04/30 21:05:52 pooka Exp $	*/
+/*	$NetBSD: rumptest_net.c,v 1.21 2010/05/31 23:13:17 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -366,8 +366,14 @@
 	size_t off;
 	int s;
 
+	struct timeval tv1, tv2, tvr;
+
+	gettimeofday(&tv1, NULL);
 	if (rump_init())
 		errx(1, "rump_init failed");
+	gettimeofday(&tv2, NULL);
+	timersub(&tv2, &tv1, &tvr);
+	printf("init took: %d/%d (s/us)\n", (int)tvr.tv_sec, (int)tvr.tv_usec);
 
 #ifdef FULL_NETWORK_STACK
 	configure_interface();



CVS commit: src/sys/rump/net/rumptest

2010-04-30 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Fri Apr 30 21:05:52 UTC 2010

Modified Files:
src/sys/rump/net/rumptest: rumptest_net.c

Log Message:
Remove bpf modload code.  With the current state of affairs, the
kernel module either be autoloaded from the host or the kernel
module ABI is not supported on the given arch.


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/rump/net/rumptest/rumptest_net.c

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/net/rumptest/rumptest_net.c
diff -u src/sys/rump/net/rumptest/rumptest_net.c:1.19 src/sys/rump/net/rumptest/rumptest_net.c:1.20
--- src/sys/rump/net/rumptest/rumptest_net.c:1.19	Fri Jan 29 12:34:17 2010
+++ src/sys/rump/net/rumptest/rumptest_net.c	Fri Apr 30 21:05:52 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumptest_net.c,v 1.19 2010/01/29 12:34:17 pooka Exp $	*/
+/*	$NetBSD: rumptest_net.c,v 1.20 2010/04/30 21:05:52 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -265,38 +265,13 @@
 	struct bpf_hdr *bhdr;
 	void *buf;
 	struct ifreq ifr;
-	int bpfd, modfd;
+	int bpfd;
 	u_int bpflen, x, dlt;
 	ssize_t n;
 
 	bpfd = rump_sys_open("/dev/bpf", O_RDWR);
-
-	/* fail?  try to load kernel module */
-	if (bpfd == -1) {
-		modctl_load_t ml;
-
-		/* XXX: struct stat size */
-		modfd = open("./bpf.kmod", O_RDONLY);
-		if (modfd == -1)
-			err(1, "no bpf, no bpf kmod");
-		close(modfd);
-
-		rump_pub_etfs_register("/bpf.kmod",
-		"./bpf.kmod", RUMP_ETFS_REG);
-		ml.ml_filename = "/bpf.kmod";
-		ml.ml_flags = 0;
-		ml.ml_props = NULL;
-		ml.ml_propslen = 0;
-
-		if (rump_sys_modctl(MODCTL_LOAD, &ml) == -1)
-			err(1, "load bpf module");
-		/* XXX: I "know" it's 256 XXX */
-		rump_sys_mknod("/dev/bpf", 0777 | S_IFCHR, makedev(256,0));
-
-		bpfd = rump_sys_open("/dev/bpf", O_RDWR);
-		if (bpfd == -1)
-			err(1, "open bpf");
-	}
+	if (bpfd == -1)
+		err(1, "open bpf");
 
 	if (rump_sys_ioctl(bpfd, BIOCGBLEN, &bpflen) == -1)
 		err(1, "BIOCGBLEN");



CVS commit: src/sys/rump/net/rumptest

2010-01-29 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Fri Jan 29 12:34:17 UTC 2010

Modified Files:
src/sys/rump/net/rumptest: rumptest_net.c

Log Message:
* add comment explaining why we randomize the last source ip octet
* fix bug in randomization (well, at least with the current configuration ..)


To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 src/sys/rump/net/rumptest/rumptest_net.c

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/net/rumptest/rumptest_net.c
diff -u src/sys/rump/net/rumptest/rumptest_net.c:1.18 src/sys/rump/net/rumptest/rumptest_net.c:1.19
--- src/sys/rump/net/rumptest/rumptest_net.c:1.18	Wed Jan 27 13:30:45 2010
+++ src/sys/rump/net/rumptest/rumptest_net.c	Fri Jan 29 12:34:17 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumptest_net.c,v 1.18 2010/01/27 13:30:45 martti Exp $	*/
+/*	$NetBSD: rumptest_net.c,v 1.19 2010/01/29 12:34:17 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -114,9 +114,14 @@
 	if (s == -1)
 		err(1, "configuration socket");
 
+	/*
+	 * Randomize last octet of source address.  This ~prevents
+	 * source/dest 4-tuple re-use if this program is run a few
+	 * times consecutively.
+	 */
 	srandom(time(NULL));
 	myaddr = inet_addr(MYADDR);
-	myaddr = htonl(ntohl(myaddr) + (random() % 126 + 1));
+	myaddr = htonl(ntohl(myaddr) + (random() % 126 + 2));
 
 	/* fill out struct ifaliasreq */
 	memset(&ia, 0, sizeof(ia));



CVS commit: src/sys/rump/net/rumptest

2010-01-27 Thread Martti Kuparinen
Module Name:src
Committed By:   martti
Date:   Wed Jan 27 13:30:45 UTC 2010

Modified Files:
src/sys/rump/net/rumptest: rumptest_net.c

Log Message:
Use tabs instead of 8 spaces.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/rump/net/rumptest/rumptest_net.c

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/net/rumptest/rumptest_net.c
diff -u src/sys/rump/net/rumptest/rumptest_net.c:1.17 src/sys/rump/net/rumptest/rumptest_net.c:1.18
--- src/sys/rump/net/rumptest/rumptest_net.c:1.17	Tue Jan 26 17:52:21 2010
+++ src/sys/rump/net/rumptest/rumptest_net.c	Wed Jan 27 13:30:45 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumptest_net.c,v 1.17 2010/01/26 17:52:21 pooka Exp $	*/
+/*	$NetBSD: rumptest_net.c,v 1.18 2010/01/27 13:30:45 martti Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -92,7 +92,7 @@
 static void
 configure_interface(void)
 {
-struct sockaddr_in *sin;
+	struct sockaddr_in *sin;
 	struct sockaddr_in sinstore;
 	struct ifaliasreq ia;
 	ssize_t len;
@@ -149,37 +149,37 @@
 		err(1, "routing socket");
 
 	/* create routing message */
-memset(&m_rtmsg, 0, sizeof(m_rtmsg));
-rtm.rtm_type = RTM_ADD;
-rtm.rtm_flags = RTF_UP | RTF_GATEWAY | RTF_STATIC;
-rtm.rtm_version = RTM_VERSION;
-rtm.rtm_seq = 2;
-rtm.rtm_addrs = RTA_DST | RTA_GATEWAY | RTA_NETMASK;
+	memset(&m_rtmsg, 0, sizeof(m_rtmsg));
+	rtm.rtm_type = RTM_ADD;
+	rtm.rtm_flags = RTF_UP | RTF_GATEWAY | RTF_STATIC;
+	rtm.rtm_version = RTM_VERSION;
+	rtm.rtm_seq = 2;
+	rtm.rtm_addrs = RTA_DST | RTA_GATEWAY | RTA_NETMASK;
 
 	/* dst */
-memset(&sinstore, 0, sizeof(sinstore));
-sinstore.sin_family = AF_INET;
-sinstore.sin_len = sizeof(sinstore);
-memcpy(bp, &sinstore, sizeof(sinstore));
-bp += sizeof(sinstore);
+	memset(&sinstore, 0, sizeof(sinstore));
+	sinstore.sin_family = AF_INET;
+	sinstore.sin_len = sizeof(sinstore);
+	memcpy(bp, &sinstore, sizeof(sinstore));
+	bp += sizeof(sinstore);
 
 	/* gw */
-memset(&sinstore, 0, sizeof(sinstore));
-sinstore.sin_family = AF_INET;
-sinstore.sin_len = sizeof(sinstore);
-sinstore.sin_addr.s_addr = inet_addr(MYGW);
-memcpy(bp, &sinstore, sizeof(sinstore));
-bp += sizeof(sinstore);
+	memset(&sinstore, 0, sizeof(sinstore));
+	sinstore.sin_family = AF_INET;
+	sinstore.sin_len = sizeof(sinstore);
+	sinstore.sin_addr.s_addr = inet_addr(MYGW);
+	memcpy(bp, &sinstore, sizeof(sinstore));
+	bp += sizeof(sinstore);
 
 	/* netmask */
-memset(&sinstore, 0, sizeof(sinstore));
-sinstore.sin_family = AF_INET;
-sinstore.sin_len = sizeof(sinstore);
-memcpy(bp, &sinstore, sizeof(sinstore));
-bp += sizeof(sinstore);
+	memset(&sinstore, 0, sizeof(sinstore));
+	sinstore.sin_family = AF_INET;
+	sinstore.sin_len = sizeof(sinstore);
+	memcpy(bp, &sinstore, sizeof(sinstore));
+	bp += sizeof(sinstore);
 
-len = bp - (uint8_t *)&m_rtmsg;
-rtm.rtm_msglen = len;
+	len = bp - (uint8_t *)&m_rtmsg;
+	rtm.rtm_msglen = len;
 
 	/* stuff that to the routing socket and wait for happy days */
 	if (rump_sys_write(s, &m_rtmsg, len) != len)



CVS commit: src/sys/rump/net/rumptest

2010-01-26 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Tue Jan 26 17:52:21 UTC 2010

Modified Files:
src/sys/rump/net/rumptest: Makefile rumptest_net.c

Log Message:
support bpf from sockin too (i.e. DLT_NULL/AF_UNSPEC)


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/rump/net/rumptest/Makefile
cvs rdiff -u -r1.16 -r1.17 src/sys/rump/net/rumptest/rumptest_net.c

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/net/rumptest/Makefile
diff -u src/sys/rump/net/rumptest/Makefile:1.9 src/sys/rump/net/rumptest/Makefile:1.10
--- src/sys/rump/net/rumptest/Makefile:1.9	Mon Jan 25 22:26:19 2010
+++ src/sys/rump/net/rumptest/Makefile	Tue Jan 26 17:52:21 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.9 2010/01/25 22:26:19 pooka Exp $
+#	$NetBSD: Makefile,v 1.10 2010/01/26 17:52:21 pooka Exp $
 #
 
 PROG=	rumptest_net
@@ -9,13 +9,14 @@
 LDADD=	-lrump -lrumpnet -lrumpnet_net -lrumpnet_netinet -lrumpnet_virtif \
 	-lrumpuser -lpthread
 CPPFLAGS+=	-DFULL_NETWORK_STACK
+
+# use protocol families provided by host kernel sockets
+#LDADD=	-lrump -lrumpnet -lrumpnet_sockin -lrumpuser -lpthread
+
 # for loading bpf module
 LDADD+=	-lrumpvfs
 
-# uncomment for bpf support
+# uncomment for bpf support (there's kmod support too, though)
 #LDADD+= 	-lrumpdev_bpf -lrumpdev -lrumpvfs
 
-# use protocol families provided by host kernel sockets
-#LDADD=	-lrump -lrumpnet -lrumpnet_sockin -lrumpuser -lpthread
-
 .include 

Index: src/sys/rump/net/rumptest/rumptest_net.c
diff -u src/sys/rump/net/rumptest/rumptest_net.c:1.16 src/sys/rump/net/rumptest/rumptest_net.c:1.17
--- src/sys/rump/net/rumptest/rumptest_net.c:1.16	Mon Jan 25 22:25:38 2010
+++ src/sys/rump/net/rumptest/rumptest_net.c	Tue Jan 26 17:52:21 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumptest_net.c,v 1.16 2010/01/25 22:25:38 pooka Exp $	*/
+/*	$NetBSD: rumptest_net.c,v 1.17 2010/01/26 17:52:21 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -55,11 +55,19 @@
 #include 
 #include 
 #include 
+#include 
 
 #define DEST_ADDR "204.152.190.12"	/* www.NetBSD.org */
 #define DEST_PORT 80			/* take a wild guess */
 
 static in_addr_t youraddr;
+static in_addr_t myaddr;
+
+#ifdef FULL_NETWORK_STACK
+#define IFNAME "virt0" /* XXX: hardcoded */
+#else
+#define IFNAME "sockin0"
+#endif
 
 #ifdef FULL_NETWORK_STACK
 /*
@@ -80,9 +88,6 @@
 #define MYBCAST "10.181.181.255"
 #define MYMASK "255.255.255.0"
 #define MYGW "10.181.181.1"
-#define IFNAME "virt0" /* XXX: hardcoded */
-
-static in_addr_t myaddr;
 
 static void
 configure_interface(void)
@@ -181,6 +186,71 @@
 		err(1, "routing incomplete");
 	rump_sys_close(s);
 }
+#endif /* FULL_NETWORK_STACK */
+
+static void
+dump_ether(uint8_t *data, size_t caplen)
+{
+	char fmt[64];
+	struct ether_header *ehdr;
+	struct ip *ip;
+	struct tcphdr *tcph;
+
+	ehdr = (void *)data;
+	switch (ntohs(ehdr->ether_type)) {
+	case ETHERTYPE_ARP:
+		printf("ARP\n");
+		break;
+	case ETHERTYPE_IP:
+		printf("IP, ");
+		ip = (void *)((uint8_t *)ehdr + sizeof(*ehdr));
+		printf("version %d, proto ", ip->ip_v);
+		if (ip->ip_p == IPPROTO_TCP)
+			printf("TCP");
+		else if (ip->ip_p == IPPROTO_UDP)
+			printf("UDP");
+		else
+			printf("unknown");
+		printf("\n");
+
+		/*
+		 * if it's the droids we're looking for,
+		 * print segment contents.
+		 */
+		if (ip->ip_src.s_addr != youraddr ||
+		ip->ip_dst.s_addr != myaddr ||
+		ip->ip_p != IPPROTO_TCP)
+			break;
+		tcph = (void *)((uint8_t *)ip + (ip->ip_hl<<2));
+		if (ntohs(tcph->th_sport) != 80)
+			break;
+
+		printf("requested data:\n");
+		sprintf(fmt, "%%%ds\n",
+		ntohs(ip->ip_len) - (ip->ip_hl<<2));
+		printf(fmt, (char *)tcph + (tcph->th_off<<2));
+
+		break;
+	case ETHERTYPE_IPV6:
+		printf("IPv6\n");
+		break;
+	default:
+		printf("unknown type 0x%04x\n",
+		ntohs(ehdr->ether_type));
+		break;
+	}
+}
+
+/* in luck we trust (i.e. true story on how an os works) */
+static void
+dump_nodlt(uint8_t *data, size_t caplen)
+{
+	char buf[32768];
+
+	/* +4 = skip AF */
+	strvisx(buf, (const char *)data+4, caplen-4, 0);
+	printf("%s\n", buf);
+}
 
 static void
 dobpfread(void)
@@ -191,7 +261,8 @@
 	void *buf;
 	struct ifreq ifr;
 	int bpfd, modfd;
-	u_int bpflen, x;
+	u_int bpflen, x, dlt;
+	ssize_t n;
 
 	bpfd = rump_sys_open("/dev/bpf", O_RDWR);
 
@@ -249,13 +320,10 @@
 	if (rump_sys_ioctl(bpfd, BIOCIMMEDIATE, &x) == -1)
 		err(1, "BIOCIMMEDIATE");
 
-
+	if (rump_sys_ioctl(bpfd, BIOCGDLT, &dlt) == -1)
+		err(1, "BIOCGDLT");
+	
 	for (;;) {
-		char fmt[64];
-		struct ether_header *ehdr;
-		struct ip *ip;
-		struct tcphdr *tcph;
-		ssize_t n;
 
 		memset(buf, 0, bpflen);
 		n = rump_sys_read(bpfd, buf, bpflen);
@@ -268,57 +336,21 @@
 
 		bhdr = buf;
 		while (bhdr->bh_caplen) {
+			uint8_t *data;
+
 			printf("got packet, caplen %d\n", bhdr->bh_caplen);
-			ehdr = (void *)((uint8_t *)bhdr + bhdr->bh_hdrlen);
-			switch (ntohs(ehdr->ether_type

CVS commit: src/sys/rump/net/rumptest

2010-01-25 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Mon Jan 25 22:26:19 UTC 2010

Modified Files:
src/sys/rump/net/rumptest: Makefile

Log Message:
need rumpvfs for etfs_register() and sys_mknod()


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sys/rump/net/rumptest/Makefile

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/net/rumptest/Makefile
diff -u src/sys/rump/net/rumptest/Makefile:1.8 src/sys/rump/net/rumptest/Makefile:1.9
--- src/sys/rump/net/rumptest/Makefile:1.8	Tue Jan 19 22:47:46 2010
+++ src/sys/rump/net/rumptest/Makefile	Mon Jan 25 22:26:19 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.8 2010/01/19 22:47:46 pooka Exp $
+#	$NetBSD: Makefile,v 1.9 2010/01/25 22:26:19 pooka Exp $
 #
 
 PROG=	rumptest_net
@@ -9,6 +9,8 @@
 LDADD=	-lrump -lrumpnet -lrumpnet_net -lrumpnet_netinet -lrumpnet_virtif \
 	-lrumpuser -lpthread
 CPPFLAGS+=	-DFULL_NETWORK_STACK
+# for loading bpf module
+LDADD+=	-lrumpvfs
 
 # uncomment for bpf support
 #LDADD+= 	-lrumpdev_bpf -lrumpdev -lrumpvfs



CVS commit: src/sys/rump/net/rumptest

2010-01-25 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Mon Jan 25 22:25:38 UTC 2010

Modified Files:
src/sys/rump/net/rumptest: rumptest_net.c

Log Message:
In case opening /dev/bpf fails, try to load bpf kmod and try again.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sys/rump/net/rumptest/rumptest_net.c

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/net/rumptest/rumptest_net.c
diff -u src/sys/rump/net/rumptest/rumptest_net.c:1.15 src/sys/rump/net/rumptest/rumptest_net.c:1.16
--- src/sys/rump/net/rumptest/rumptest_net.c:1.15	Tue Jan 19 17:51:03 2010
+++ src/sys/rump/net/rumptest/rumptest_net.c	Mon Jan 25 22:25:38 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumptest_net.c,v 1.15 2010/01/19 17:51:03 pooka Exp $	*/
+/*	$NetBSD: rumptest_net.c,v 1.16 2010/01/25 22:25:38 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -29,6 +29,7 @@
  */
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -189,12 +190,37 @@
 	struct bpf_hdr *bhdr;
 	void *buf;
 	struct ifreq ifr;
-	int bpfd;
+	int bpfd, modfd;
 	u_int bpflen, x;
 
 	bpfd = rump_sys_open("/dev/bpf", O_RDWR);
-	if (bpfd == -1)
-		err(1, "bpf open");
+
+	/* fail?  try to load kernel module */
+	if (bpfd == -1) {
+		modctl_load_t ml;
+
+		/* XXX: struct stat size */
+		modfd = open("./bpf.kmod", O_RDONLY);
+		if (modfd == -1)
+			err(1, "no bpf, no bpf kmod");
+		close(modfd);
+
+		rump_pub_etfs_register("/bpf.kmod",
+		"./bpf.kmod", RUMP_ETFS_REG);
+		ml.ml_filename = "/bpf.kmod";
+		ml.ml_flags = 0;
+		ml.ml_props = NULL;
+		ml.ml_propslen = 0;
+
+		if (rump_sys_modctl(MODCTL_LOAD, &ml) == -1)
+			err(1, "load bpf module");
+		/* XXX: I "know" it's 256 XXX */
+		rump_sys_mknod("/dev/bpf", 0777 | S_IFCHR, makedev(256,0));
+
+		bpfd = rump_sys_open("/dev/bpf", O_RDWR);
+		if (bpfd == -1)
+			err(1, "open bpf");
+	}
 
 	if (rump_sys_ioctl(bpfd, BIOCGBLEN, &bpflen) == -1)
 		err(1, "BIOCGBLEN");



CVS commit: src/sys/rump/net/rumptest

2010-01-19 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Tue Jan 19 22:47:46 UTC 2010

Modified Files:
src/sys/rump/net/rumptest: Makefile

Log Message:
Add components necessary for bpf support (commented out just for
the sheer heck of it).


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/rump/net/rumptest/Makefile

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/net/rumptest/Makefile
diff -u src/sys/rump/net/rumptest/Makefile:1.7 src/sys/rump/net/rumptest/Makefile:1.8
--- src/sys/rump/net/rumptest/Makefile:1.7	Wed Oct 14 17:34:08 2009
+++ src/sys/rump/net/rumptest/Makefile	Tue Jan 19 22:47:46 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.7 2009/10/14 17:34:08 pooka Exp $
+#	$NetBSD: Makefile,v 1.8 2010/01/19 22:47:46 pooka Exp $
 #
 
 PROG=	rumptest_net
@@ -10,6 +10,9 @@
 	-lrumpuser -lpthread
 CPPFLAGS+=	-DFULL_NETWORK_STACK
 
+# uncomment for bpf support
+#LDADD+= 	-lrumpdev_bpf -lrumpdev -lrumpvfs
+
 # use protocol families provided by host kernel sockets
 #LDADD=	-lrump -lrumpnet -lrumpnet_sockin -lrumpuser -lpthread
 



CVS commit: src/sys/rump/net/rumptest

2010-01-19 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Tue Jan 19 17:51:03 UTC 2010

Modified Files:
src/sys/rump/net/rumptest: rumptest_net.c

Log Message:
Make build with PF_INET-is-the-"NIC" support again.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/rump/net/rumptest/rumptest_net.c

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/net/rumptest/rumptest_net.c
diff -u src/sys/rump/net/rumptest/rumptest_net.c:1.14 src/sys/rump/net/rumptest/rumptest_net.c:1.15
--- src/sys/rump/net/rumptest/rumptest_net.c:1.14	Sat Jan 16 20:47:01 2010
+++ src/sys/rump/net/rumptest/rumptest_net.c	Tue Jan 19 17:51:03 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumptest_net.c,v 1.14 2010/01/16 20:47:01 pooka Exp $	*/
+/*	$NetBSD: rumptest_net.c,v 1.15 2010/01/19 17:51:03 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -58,6 +58,8 @@
 #define DEST_ADDR "204.152.190.12"	/* www.NetBSD.org */
 #define DEST_PORT 80			/* take a wild guess */
 
+static in_addr_t youraddr;
+
 #ifdef FULL_NETWORK_STACK
 /*
  * If we are running with the full networking stack, configure
@@ -79,7 +81,7 @@
 #define MYGW "10.181.181.1"
 #define IFNAME "virt0" /* XXX: hardcoded */
 
-static in_addr_t myaddr, youraddr;
+static in_addr_t myaddr;
 
 static void
 configure_interface(void)
@@ -178,31 +180,6 @@
 		err(1, "routing incomplete");
 	rump_sys_close(s);
 }
-#endif /* FULL_NETWORK_STACK */
-
-static void
-printstats(void)
-{
-	struct mbstat mbstat;
-	int ctl[] = { CTL_KERN, KERN_MBUF, MBUF_STATS };
-	int totalmbuf = 0;
-	size_t mbslen = sizeof(struct mbstat);
-	unsigned i;
-
-	if (rump_sys___sysctl(ctl, __arraycount(ctl), &mbstat, &mbslen,
-	NULL, 0) == -1)
-		return;
-
-	printf("  mbuf count:\n");
-	for (i = 0; i < __arraycount(mbstat.m_mtypes); i++) {
-		if (mbstat.m_mtypes[i] == 0)
-			continue;
-		printf("%s (%d) mbuf count %d\n",
-		i == MT_DATA ? "data" : "unknown", i, mbstat.m_mtypes[i]);
-		totalmbuf += mbstat.m_mtypes[i];
-	}
-	printf("total mbufs: %d\n", totalmbuf);
-}
 
 static void
 dobpfread(void)
@@ -315,6 +292,31 @@
 		}
 	}
 }
+#endif /* FULL_NETWORK_STACK */
+
+static void
+printstats(void)
+{
+	struct mbstat mbstat;
+	int ctl[] = { CTL_KERN, KERN_MBUF, MBUF_STATS };
+	int totalmbuf = 0;
+	size_t mbslen = sizeof(struct mbstat);
+	unsigned i;
+
+	if (rump_sys___sysctl(ctl, __arraycount(ctl), &mbstat, &mbslen,
+	NULL, 0) == -1)
+		return;
+
+	printf("  mbuf count:\n");
+	for (i = 0; i < __arraycount(mbstat.m_mtypes); i++) {
+		if (mbstat.m_mtypes[i] == 0)
+			continue;
+		printf("%s (%d) mbuf count %d\n",
+		i == MT_DATA ? "data" : "unknown", i, mbstat.m_mtypes[i]);
+		totalmbuf += mbstat.m_mtypes[i];
+	}
+	printf("total mbufs: %d\n", totalmbuf);
+}
 
 int
 main(int argc, char *argv[])



CVS commit: src/sys/rump/net/rumptest

2010-01-16 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Sat Jan 16 20:47:01 UTC 2010

Modified Files:
src/sys/rump/net/rumptest: rumptest_net.c

Log Message:
* add option to use bpf to dump response
* randomize local address to avoid poor confused peers due to us
  "rebooting" quite rapidly when testing.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/sys/rump/net/rumptest/rumptest_net.c

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/net/rumptest/rumptest_net.c
diff -u src/sys/rump/net/rumptest/rumptest_net.c:1.13 src/sys/rump/net/rumptest/rumptest_net.c:1.14
--- src/sys/rump/net/rumptest/rumptest_net.c:1.13	Fri Jan 15 18:38:16 2010
+++ src/sys/rump/net/rumptest/rumptest_net.c	Sat Jan 16 20:47:01 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumptest_net.c,v 1.13 2010/01/15 18:38:16 pooka Exp $	*/
+/*	$NetBSD: rumptest_net.c,v 1.14 2010/01/16 20:47:01 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -35,14 +35,21 @@
 #include 
 
 #include 
+#include 
+#include 
 #include 
+#include 
 #include 
+#include 
 #include 
+#include 
+#include 
 
 #include 
 #include 
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -66,12 +73,14 @@
  *
  * The usability is likely to be improved later.
  */
-#define MYADDR "10.181.181.11"
+#define MYADDR "10.181.181.0"
 #define MYBCAST "10.181.181.255"
 #define MYMASK "255.255.255.0"
 #define MYGW "10.181.181.1"
 #define IFNAME "virt0" /* XXX: hardcoded */
 
+static in_addr_t myaddr, youraddr;
+
 static void
 configure_interface(void)
 {
@@ -97,13 +106,18 @@
 	if (s == -1)
 		err(1, "configuration socket");
 
+	srandom(time(NULL));
+	myaddr = inet_addr(MYADDR);
+	myaddr = htonl(ntohl(myaddr) + (random() % 126 + 1));
+
 	/* fill out struct ifaliasreq */
 	memset(&ia, 0, sizeof(ia));
 	strcpy(ia.ifra_name, IFNAME);
 	sin = (struct sockaddr_in *)&ia.ifra_addr;
 	sin->sin_family = AF_INET;
 	sin->sin_len = sizeof(struct sockaddr_in);
-	sin->sin_addr.s_addr = inet_addr(MYADDR);
+	sin->sin_addr.s_addr = myaddr;
+	printf("using address %s\n", inet_ntoa(sin->sin_addr));
 
 	sin = (struct sockaddr_in *)&ia.ifra_broadaddr;
 	sin->sin_family = AF_INET;
@@ -190,6 +204,118 @@
 	printf("total mbufs: %d\n", totalmbuf);
 }
 
+static void
+dobpfread(void)
+{
+	struct bpf_program bpf_prog;
+	struct bpf_insn bpf_ins;
+	struct bpf_hdr *bhdr;
+	void *buf;
+	struct ifreq ifr;
+	int bpfd;
+	u_int bpflen, x;
+
+	bpfd = rump_sys_open("/dev/bpf", O_RDWR);
+	if (bpfd == -1)
+		err(1, "bpf open");
+
+	if (rump_sys_ioctl(bpfd, BIOCGBLEN, &bpflen) == -1)
+		err(1, "BIOCGBLEN");
+
+	buf = malloc(bpflen);
+	if (buf == NULL)
+		err(1, "malloc bpfbuf");
+
+	memset(&ifr, 0, sizeof(ifr));
+	strcpy(ifr.ifr_name, IFNAME);
+
+	if (rump_sys_ioctl(bpfd, BIOCSETIF, &ifr) == -1)
+		err(1, "BIOCSETIF");
+
+	/* accept all packets up to 9000 bytes */
+	memset(&bpf_ins, 0, sizeof(bpf_ins));
+	bpf_ins.code = BPF_RET + BPF_K;
+	bpf_ins.k = 9000;
+	bpf_prog.bf_len = 1;
+	bpf_prog.bf_insns = &bpf_ins;
+	if (rump_sys_ioctl(bpfd, BIOCSETF, &bpf_prog) == -1)
+		err(1, "BIOCSETF");
+
+	/* we want all packets delivered immediately */
+	x = 1;
+	if (rump_sys_ioctl(bpfd, BIOCIMMEDIATE, &x) == -1)
+		err(1, "BIOCIMMEDIATE");
+
+
+	for (;;) {
+		char fmt[64];
+		struct ether_header *ehdr;
+		struct ip *ip;
+		struct tcphdr *tcph;
+		ssize_t n;
+
+		memset(buf, 0, bpflen);
+		n = rump_sys_read(bpfd, buf, bpflen);
+		if (n == 0) {
+			printf("EOF\n");
+			exit(0);
+		} else if (n == -1) {
+			err(1, "read");
+		}
+
+		bhdr = buf;
+		while (bhdr->bh_caplen) {
+			printf("got packet, caplen %d\n", bhdr->bh_caplen);
+			ehdr = (void *)((uint8_t *)bhdr + bhdr->bh_hdrlen);
+			switch (ntohs(ehdr->ether_type)) {
+			case ETHERTYPE_ARP:
+printf("ARP\n");
+break;
+			case ETHERTYPE_IP:
+printf("IP, ");
+ip = (void *)((uint8_t *)ehdr + sizeof(*ehdr));
+printf("version %d, proto ", ip->ip_v);
+if (ip->ip_p == IPPROTO_TCP)
+	printf("TCP");
+else if (ip->ip_p == IPPROTO_UDP)
+	printf("UDP");
+else
+	printf("unknown");
+printf("\n");
+
+/*
+ * if it's the droids we're looking for,
+ * print segment contents.
+ */
+if (ip->ip_src.s_addr != youraddr ||
+ip->ip_dst.s_addr != myaddr ||
+ip->ip_p != IPPROTO_TCP)
+	break;
+tcph = (void *)((uint8_t *)ip + (ip->ip_hl<<2));
+if (ntohs(tcph->th_sport) != 80)
+	break;
+
+printf("requested data:\n");
+sprintf(fmt, "%%%ds\n",
+ntohs(ip->ip_len) - (ip->ip_hl<<2));
+printf(fmt, (char *)tcph + (tcph->th_off<<2));
+
+break;
+			case ETHERTYPE_IPV6:
+printf("IPv6\n");
+break;
+			default:
+printf("unknown type 0x%04x\n",
+ntohs(ehdr->ether_type));
+break;
+			}
+
+			bhdr = (void *)((uint8_t *)bhdr +
+			BPF_WORDALIGN(bhdr->bh_hdrlen + bhdr->bh_caplen));
+		}
+	}
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -

CVS commit: src/sys/rump/net/rumptest

2010-01-15 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Fri Jan 15 18:38:16 UTC 2010

Modified Files:
src/sys/rump/net/rumptest: rumptest_net.c

Log Message:
print mbuf statistics a few times.  incidentally, can be used to
test percpu.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/sys/rump/net/rumptest/rumptest_net.c

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/net/rumptest/rumptest_net.c
diff -u src/sys/rump/net/rumptest/rumptest_net.c:1.12 src/sys/rump/net/rumptest/rumptest_net.c:1.13
--- src/sys/rump/net/rumptest/rumptest_net.c:1.12	Tue Oct 20 00:25:26 2009
+++ src/sys/rump/net/rumptest/rumptest_net.c	Fri Jan 15 18:38:16 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumptest_net.c,v 1.12 2009/10/20 00:25:26 pooka Exp $	*/
+/*	$NetBSD: rumptest_net.c,v 1.13 2010/01/15 18:38:16 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -28,9 +28,11 @@
  * SUCH DAMAGE.
  */
 
-#include 
+#include 
+#include 
 #include 
 #include 
+#include 
 
 #include 
 #include 
@@ -44,6 +46,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #define DEST_ADDR "204.152.190.12"	/* www.NetBSD.org */
 #define DEST_PORT 80			/* take a wild guess */
@@ -163,6 +166,30 @@
 }
 #endif /* FULL_NETWORK_STACK */
 
+static void
+printstats(void)
+{
+	struct mbstat mbstat;
+	int ctl[] = { CTL_KERN, KERN_MBUF, MBUF_STATS };
+	int totalmbuf = 0;
+	size_t mbslen = sizeof(struct mbstat);
+	unsigned i;
+
+	if (rump_sys___sysctl(ctl, __arraycount(ctl), &mbstat, &mbslen,
+	NULL, 0) == -1)
+		return;
+
+	printf("  mbuf count:\n");
+	for (i = 0; i < __arraycount(mbstat.m_mtypes); i++) {
+		if (mbstat.m_mtypes[i] == 0)
+			continue;
+		printf("%s (%d) mbuf count %d\n",
+		i == MT_DATA ? "data" : "unknown", i, mbstat.m_mtypes[i]);
+		totalmbuf += mbstat.m_mtypes[i];
+	}
+	printf("total mbufs: %d\n", totalmbuf);
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -199,6 +226,8 @@
 		err(1, "connect failed");
 	}
 
+	printstats();
+
 	printf("connected\n");
 
 	strcpy(buf, "GET / HTTP/1.0\n\n");
@@ -206,6 +235,11 @@
 	if (n != (ssize_t)strlen(buf))
 		err(1, "wrote only %zd vs. %zu\n",
 		n, strlen(buf));
+
+	/* wait for mbufs to accumulate.  hacky, but serves purpose.  */
+	sleep(1);
+	printstats();
+	sleep(1);
 	
 	memset(buf, 0, sizeof(buf));
 	for (off = 0; off < sizeof(buf) && n > 0;) {



CVS commit: src/sys/rump/net/rumptest

2009-10-19 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Tue Oct 20 00:25:26 UTC 2009

Modified Files:
src/sys/rump/net/rumptest: rumptest_net.c

Log Message:
fix sign-compare warnings


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/rump/net/rumptest/rumptest_net.c

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/net/rumptest/rumptest_net.c
diff -u src/sys/rump/net/rumptest/rumptest_net.c:1.11 src/sys/rump/net/rumptest/rumptest_net.c:1.12
--- src/sys/rump/net/rumptest/rumptest_net.c:1.11	Wed Oct 14 19:14:39 2009
+++ src/sys/rump/net/rumptest/rumptest_net.c	Tue Oct 20 00:25:26 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumptest_net.c,v 1.11 2009/10/14 19:14:39 pooka Exp $	*/
+/*	$NetBSD: rumptest_net.c,v 1.12 2009/10/20 00:25:26 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -75,7 +75,7 @@
 struct sockaddr_in *sin;
 	struct sockaddr_in sinstore;
 	struct ifaliasreq ia;
-	size_t len;
+	ssize_t len;
 	struct {
 		struct rt_msghdr m_rtm;
 		uint8_t m_space;
@@ -203,7 +203,7 @@
 
 	strcpy(buf, "GET / HTTP/1.0\n\n");
 	n = rump_sys_write(s, buf, strlen(buf));
-	if (n != strlen(buf))
+	if (n != (ssize_t)strlen(buf))
 		err(1, "wrote only %zd vs. %zu\n",
 		n, strlen(buf));
 	



CVS commit: src/sys/rump/net/rumptest

2009-10-14 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed Oct 14 19:14:39 UTC 2009

Modified Files:
src/sys/rump/net/rumptest: rumptest_net.c

Log Message:
use rump_pub


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/sys/rump/net/rumptest/rumptest_net.c

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/net/rumptest/rumptest_net.c
diff -u src/sys/rump/net/rumptest/rumptest_net.c:1.10 src/sys/rump/net/rumptest/rumptest_net.c:1.11
--- src/sys/rump/net/rumptest/rumptest_net.c:1.10	Fri Mar 27 13:46:34 2009
+++ src/sys/rump/net/rumptest/rumptest_net.c	Wed Oct 14 19:14:39 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumptest_net.c,v 1.10 2009/03/27 13:46:34 pooka Exp $	*/
+/*	$NetBSD: rumptest_net.c,v 1.11 2009/10/14 19:14:39 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -84,7 +84,7 @@
 	uint8_t *bp = &m_rtmsg.m_space;
 	int s, rv;
 
-	if ((rv = rump_virtif_create(0)) != 0) {
+	if ((rv = rump_pub_virtif_create(0)) != 0) {
 		printf("could not configure interface %d\n", rv);
 		exit(1);
 	}



CVS commit: src/sys/rump/net/rumptest

2009-10-14 Thread Antti Kantee
Module Name:src
Committed By:   pooka
Date:   Wed Oct 14 17:34:08 UTC 2009

Modified Files:
src/sys/rump/net/rumptest: Makefile

Log Message:
This wasn't supposed to go in -- the tree is under temporary
component boundary breakage.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/rump/net/rumptest/Makefile

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/net/rumptest/Makefile
diff -u src/sys/rump/net/rumptest/Makefile:1.6 src/sys/rump/net/rumptest/Makefile:1.7
--- src/sys/rump/net/rumptest/Makefile:1.6	Wed Oct 14 17:29:20 2009
+++ src/sys/rump/net/rumptest/Makefile	Wed Oct 14 17:34:08 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.6 2009/10/14 17:29:20 pooka Exp $
+#	$NetBSD: Makefile,v 1.7 2009/10/14 17:34:08 pooka Exp $
 #
 
 PROG=	rumptest_net
@@ -13,6 +13,4 @@
 # use protocol families provided by host kernel sockets
 #LDADD=	-lrump -lrumpnet -lrumpnet_sockin -lrumpuser -lpthread
 
-LDADD+= -lrumpvfs
-
 .include