Commit Graph

56 Commits

Author SHA1 Message Date
pooka
f731c31fa4 Use a bunch of weak symbols to determine which network components
are present.  This works in userspace as opposed relying in link
sets, which fail miserably.  Later, when the networking stack
becomes modularized, we can move to a dynamic scheme like with file
systems.

Also, this change allows us to do proper autoconfig, namely attach
the loopback interface iff it is present.
2009-05-28 00:02:16 +00:00
pooka
9523c2be23 Add a dummyif, which doesn't actually traffic any cargo, but since
it has no backend it can always be attached and is therefore
convenient for testing ifconfig.
2009-05-27 23:41:20 +00:00
pooka
7d6e9ec774 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.
2009-05-26 23:43:39 +00:00
pooka
9c2d055f86 Filter out ENETRESET from ether_ioctl() since we aren't interested
in multicast hugging.
2009-05-26 19:03:05 +00:00
pooka
eafbd6f42b let drivers define DPRINTF 2009-04-06 20:41:29 +00:00
pooka
06dceb4d08 * make interface creation open /dev/tapn for interface n
* create "unique" enaddr
* do send in async context
2009-03-27 13:46:34 +00:00
pooka
f09f82998f * allow to specify PROT_READ/PROT_WRITE when mmapping a file
* add msync
2009-03-18 15:32:27 +00:00
cegger
df7f595ecd Ansify function definitions w/o arguments. Generated with sed. 2009-03-18 10:22:21 +00:00
pooka
d8327efb56 Create receive thread only in if_start() to make sure it happens
after the we have been attached to the ethernet framework.
XXX: if_stop is still unimplemented
2009-03-01 20:50:04 +00:00
martin
bcd8301033 add missing atomic.h include 2009-03-01 07:10:41 +00:00
pooka
e4b2f37a4b don't require the ifnum return pointer. 2009-02-28 16:15:19 +00:00
pooka
a4aff0cbb8 Add a virtual ethernet interface which uses shared memory as the
bus instead of relying on the host kernel's tap and bridge.  This
is much lighterweight approach which does not consume non-pageable
kernel resources.
2009-02-28 15:28:45 +00:00
pooka
cc8bfe6c12 Fix a silly mistake: indubitably the struct ifnet pointer given to
ether_ifattach() should point to a struct ethercom.
2009-02-28 12:29:27 +00:00
pooka
51e345d0a5 decouple from host struct iovec 2009-02-26 00:59:31 +00:00
pooka
3f8c1c0f17 Add a PF_LOCAL rump kernel component. 2009-02-08 16:28:35 +00:00
pooka
ead3fc22d6 Better define GATEWAY in opt_gateway.h instead of the Makefile so
UPDATE builds don't go all coocoo.
2009-02-03 00:33:48 +00:00
pooka
7e7d6e9069 -fno-strict-aliasing is now set globally for rump 2009-02-03 00:33:26 +00:00
pooka
0b60e66a6d enable GATEWAY 2009-02-01 17:05:26 +00:00
pooka
bcf80a6fa3 .. but we still need to check if nam is passed to PRU_SEND for
non-connected sockets.
2009-01-30 22:06:04 +00:00
pooka
17e9ee6db1 Call soisconnected() in PRU_CONNECT for udp sockets too. 2009-01-30 21:13:20 +00:00
pooka
8b70996e1b * read TCP sockets in cluster-sized chunks instead of IP_MAXPACKET.
(it might be a better to chain a few clusters into the iov
   instead of just one since we are making the syscall anyway)
* don't overwrite the useful error value
2009-01-27 13:40:16 +00:00
pooka
afe25e2049 Hold softnet_lock only when we need it. 2009-01-27 11:37:42 +00:00
pooka
d1543896fb * support PRU_SOCK/PEERADDR
* soisdisconnected() TCP sockets if read returns a non-transient error or 0
2009-01-26 13:44:51 +00:00
pooka
39cb5b514d Convert compile-time SOCKIN_NOTHREADS into runtime rump_threads check. 2009-01-26 10:43:21 +00:00
pooka
d9c038d4fe Adjust for explicit errno parameter removal from rump syscalls 2009-01-23 19:36:01 +00:00
pooka
2a4d5485f0 Now that SO_RCVTIMEO is versioned, we don't need the timeval hack
here anymore.
2009-01-23 19:07:17 +00:00
pooka
026ac4657f rump_sys___socket30 -> rump_sys_socket 2009-01-13 22:35:57 +00:00
pooka
c6f986a4ea WARNS=4 2009-01-13 18:51:41 +00:00
pooka
ee5fe9ff45 fix inet library name 2009-01-13 02:07:30 +00:00
mjf
89df864a44 Add missing dollar sign ($) for $NetBSD$ tag. 2009-01-06 15:52:27 +00:00
pooka
3945d47397 Purge multiple kernel opt files. 2009-01-01 19:43:57 +00:00
pooka
a768afd60b __KERNEL_RCSID 2008-12-18 00:24:12 +00:00
pooka
eaff187ca4 Add dummy pr_ctloutput. I'm sure I had one at some point, since
it's required for rump_nfs to work, but I guess I lost it somewhere.
(yes, it should actually be implemented also)
2008-11-26 07:19:48 +00:00
pooka
d6457e83e1 Make sockin radix-capable. 2008-11-25 20:42:01 +00:00
pooka
eebcd28057 Support PRU_BIND / PRU_LISTEN / PRU_ACCEPT in sockin. 2008-11-25 20:39:57 +00:00
pooka
922d39c2b2 Heave-ho radix.c from librumpnet_net to librumpnet. 2008-11-25 18:36:08 +00:00
pooka
e6f5280c8d Add comments on how to do tap and bridging required for sensible
full networking stack operation.
2008-11-14 14:24:00 +00:00
pooka
1941578e57 slap some sort of copyright here 2008-11-14 14:17:53 +00:00
minskim
13a938dd6c Remove trailing whitespace. 2008-10-26 18:39:01 +00:00
pooka
6d68e64d68 Add an example of how to configure the virtual interface address
and the default gateway.

(this will probably go into some library eventually, but now it'll
just sit here as an example)
2008-10-16 19:28:26 +00:00
pooka
a208c2294a Deal with the ld.so/linkset brokenness and compile all of libnet
and libnetinet into a big bunch for now.  If they were separate
libraries, the DOMAIN_DEFINE() in the latter on the linkline would
not get noticed at "boot" time because of the abovementioned
brokenness.  One of these days I'll add code to dlopen() the
libraries and resplit them, but this will allow things to work
until then.
2008-10-16 19:14:51 +00:00
pooka
8447026c71 appease 64bit gcc 2008-10-16 13:36:06 +00:00
pooka
ce2bb4bac6 Add a prototype to allow this to build (will be moved to a better
place later).
2008-10-16 09:25:30 +00:00
pooka
e66325797b kill default DBG=-g 2008-10-16 09:24:51 +00:00
pooka
edfec78484 add -lrumpnet 2008-10-15 13:11:45 +00:00
pooka
ba12d8328e Call rump_sys_setsockopt(SO_RCVTIMEO) for el-cheapo "async" socket i/o. 2008-10-15 11:45:35 +00:00
pooka
7dd6651a0a Mostly support TCP, mostly meaning "client-side TCP", since listen,
accept etc. is not supported yet.  Disconnect is not really supported
either, but doesn't matter in most cases.
2008-10-15 11:43:38 +00:00
pooka
8a7a4b8184 Add a simple example of how to use rump networking facilities.
This just contacts www.NetBSD.org, does GET / and displays the
result.

It either uses the host kernel socket provided PF_INET or the kernel
TCP/IP stack running in userspace (via if_virt and /dev/tap),
depending on the libraries it's linked with.

(not built yet, as I need to commit some more bits from my local
tree for it work)
2008-10-14 00:56:24 +00:00
pooka
65f822a3e5 Make the "something random" ethernet address ETHER_IS_LOCAL
(address assignment probably needs some more work if we want to
support multiple interfaces).

hat tip to Quentin Garnier
2008-10-14 00:50:44 +00:00
pooka
5ca4322cea Add tcp debugging as a build option. 2008-10-13 22:24:06 +00:00