#
66d6c637 |
| 08-Jul-2004 |
Jeffrey Hsu <hsu@dragonflybsd.org> |
Add the standard DragonFly copyright notice to go along with mine.
Approved by: Matt
|
#
d2e9e54c |
| 07-Jun-2004 |
Matthew Dillon <dillon@dragonflybsd.org> |
Add in_pcbinfo_init() to encapsulate basic structural setup (right now just the LIST_INIT). Rename inpcbinfo->listhead to inpcbinfo->pcblisthead due to changes in the API (addition of markers).
Add
Add in_pcbinfo_init() to encapsulate basic structural setup (right now just the LIST_INIT). Rename inpcbinfo->listhead to inpcbinfo->pcblisthead due to changes in the API (addition of markers).
Add support for markers in the inpcbinfo->pcblisthead lists of INPCB structures. Use markers in sysctl output code to iterate through these lists without losing its place or having to worry about structures being ripped out from under it. Scrap the original two-pass code.
Redo the sysctl INPCB output code for tcp, udp, and other protocols so we always output the correct number of structures (as specified in xig_count).
Generate output for all cpus (for TCP). This is accomplished by using lwkt_setcpu_self() to migrate the kernel thread to each cpu, which allows us to iterate the list(s) managed by that cpu without having to deal with mutexes or other forms of locks. Iterations always wind up on the same cpu they began on.
Redo netstat to properly iterate across as many cpu chunks as the inpcb sysctl's return, rather then just the first one.
Work-by: Hiten Pandya and Matthew Dillon
show more ...
|
#
a00138cb |
| 03-Jun-2004 |
Joerg Sonnenberger <joerg@dragonflybsd.org> |
Make pr_input use variadic arguments for anything but the first mbuf.
Add a warning for NSIP, it is likely to be broken.
|
#
74f1caca |
| 02-Jun-2004 |
Eirik Nygaard <eirikn@dragonflybsd.org> |
Change mbug allocation flags from M_ to MB_ to avoid confusion with malloc flags.
Requested by: Jeffrey Hsu
|
#
4c1e6a35 |
| 31-May-2004 |
Jeffrey Hsu <hsu@dragonflybsd.org> |
Panic in udp_output() if a socket is found in an inconsistent state.
|
#
cdebf5c9 |
| 04-Apr-2004 |
Matthew Dillon <dillon@dragonflybsd.org> |
Fix a missing wildcard binding in the recent wildcard binding hash table work. This prevented YP from working properly.
Reported-by: Richard Nyberg <rnyberg@it.su.se> Patch-Supplied-by: Jeffrey Hsu
Fix a missing wildcard binding in the recent wildcard binding hash table work. This prevented YP from working properly.
Reported-by: Richard Nyberg <rnyberg@it.su.se> Patch-Supplied-by: Jeffrey Hsu <hsu@freebsd.org>
show more ...
|
#
f772087c |
| 31-Mar-2004 |
Jeffrey Hsu <hsu@dragonflybsd.org> |
Only enter into wildcard hash table if bind succeeds.
|
#
2322f6ca |
| 31-Mar-2004 |
Jeffrey Hsu <hsu@dragonflybsd.org> |
Only enter wildcard sockets into the wildcard hash table.
|
#
6ea1e9b9 |
| 27-Mar-2004 |
Jeffrey Hsu <hsu@dragonflybsd.org> |
Give UDP its own sosend() function.
|
#
55d829f8 |
| 22-Mar-2004 |
Jeffrey Hsu <hsu@dragonflybsd.org> |
Consolidate length checks in ip_demux().
|
#
b5f1acc2 |
| 17-Mar-2004 |
Matthew Dillon <dillon@dragonflybsd.org> |
Fix a bug in the recent connectionless commit. When sending a UDP packet over a connected socket but with a source address of INADDR_ANY, udp_output() was calling in_pcbladdr() with a NULL sockaddr
Fix a bug in the recent connectionless commit. When sending a UDP packet over a connected socket but with a source address of INADDR_ANY, udp_output() was calling in_pcbladdr() with a NULL sockaddr pointer, causing a null pointer panic.
Construct a temporary sockaddr_in to pass to in_pcbladdr() with the foreign address instead. in_pcbladdr() takes an address and returns the interface source IP address that best characterizes the interface the packet will be sent out of.
show more ...
|
#
7e41e800 |
| 07-Mar-2004 |
Jeffrey Hsu <hsu@dragonflybsd.org> |
Send UDP packets out without a temporary connect.
|
#
bddf0751 |
| 06-Mar-2004 |
Jeffrey Hsu <hsu@dragonflybsd.org> |
Remove unused second argument to ip_stripoptions().
|
#
a00f5de5 |
| 06-Mar-2004 |
Jeffrey Hsu <hsu@dragonflybsd.org> |
Change the "struct inpcbhead *listhead" field in "struct inpcbinfo" to "struct inpcbhead listhead" so we can have a separate list per "struct inpcbinfo" when it becomes per-cpu.
|
#
e4700d00 |
| 05-Mar-2004 |
Jeffrey Hsu <hsu@dragonflybsd.org> |
Once we distribute socket protocol processing requests to different processors, we no longer have a process context to refer to, so eliminate the use of curproc in soreserve() by passing the sockbuf
Once we distribute socket protocol processing requests to different processors, we no longer have a process context to refer to, so eliminate the use of curproc in soreserve() by passing the sockbuf resource limit all the down from the system call code to sbreserve().
Eliminate the use of curproc in unp_attach() by passing down the fields it needs from the proc structure. Define a pru_attach_info structure to hold the information the attach usrreq function requires.
The thread argument to in_pcballoc() is unused, so we don't need to pass a thread structure down to in_pcballoc().
show more ...
|
#
688bf2e6 |
| 04-Mar-2004 |
Jeffrey Hsu <hsu@dragonflybsd.org> |
A UDP socket is still bound after it is disconnected, so we need to reinsert it into the bind hash table.
Bug reported by: David Rhodus, Matt Dillon
|
#
13d8907a |
| 04-Mar-2004 |
Jeffrey Hsu <hsu@dragonflybsd.org> |
Split out wildcarded sockets from the connection hash table.
|
#
3f9db7f8 |
| 14-Feb-2004 |
Matthew Dillon <dillon@dragonflybsd.org> |
Move <machine/in_cksum.h> to <sys/in_cksum.h>. This file is now platform independant. If we want to add extreme machine specialization later on then sys/in_cksum.h will #include machine/in_cksum.h.
Move <machine/in_cksum.h> to <sys/in_cksum.h>. This file is now platform independant. If we want to add extreme machine specialization later on then sys/in_cksum.h will #include machine/in_cksum.h.
Move i386/i386/in_cksum.c to netinet/in_cksum.c. Note that netinet/in_cksum.c already existed but was not used by the build system at all. The move overwrites it. The new in_cksum.c is a portable, complete rewrite which references core assembly (procedure call) to do 32-bit-aligned work. See also i386/i386/in_cksum2.s.
show more ...
|
#
bf82f9b7 |
| 08-Nov-2003 |
Matthew Dillon <dillon@dragonflybsd.org> |
Network threading stage 1/3: netisrs are already software interrupts, which means they alraedy run in their own thread. This commit creates multiple supporting threads for netisrs rather then just o
Network threading stage 1/3: netisrs are already software interrupts, which means they alraedy run in their own thread. This commit creates multiple supporting threads for netisrs rather then just one and code has been added to begin routing packets to particular threads based on their content. Eventually this will lead to us being able to isolate and serialize PCBs in particular threads. The tail end of the ip_input path's protocol dispatch, the UIPC (user entry) code, and listen socket have not been covered yet and still need to be serialized.
A new debugging sysctl, net.inet.ip.mthread_enable, has been added. It defaults to 1. If you set this sysctl 0 netisr processing will revert to the prior single-threaded behavior.
Submitted-by: Jeffrey Hsu <hsu@FreeBSD.org> Additional-work-by: dillon
show more ...
|
#
56ae102f |
| 28-Oct-2003 |
Matthew Dillon <dillon@dragonflybsd.org> |
Deal with multicast packets in a manner similar to Solaris, RFC 3376, and draft-ietf-magma-msf-api-05.txt. Multicast packets are not sent to multicast-unaware sockets or to sockets not bound to the
Deal with multicast packets in a manner similar to Solaris, RFC 3376, and draft-ietf-magma-msf-api-05.txt. Multicast packets are not sent to multicast-unaware sockets or to sockets not bound to the interface the packet came in on.
The sysctl net.inet.udp.strict_mcast_mship enables the new requirements by default. Original operation may be recovered by setting the sysctl to 0.
There is a relatively minor scaling issue with the per-PCB membership array scan, which is linear. It is not a show stopper though.
Submitted by: "William A. Carrel" <william.a@carrel.org> Reviewed by: Jeffrey Hsu <hsu@FreeBSD.org>, dillon
show more ...
|
#
42a7fc75 |
| 23-Aug-2003 |
Robert Garrett <rob@dragonflybsd.org> |
if ipv6 doesnt need oldstyle prototypes maybe its time we took them out of ipv4's code
|
#
2256ba69 |
| 26-Jul-2003 |
Robert Garrett <rob@dragonflybsd.org> |
Register keyword removal
Approved by: Matt Dillon
|
#
dadab5e9 |
| 25-Jun-2003 |
Matthew Dillon <dillon@dragonflybsd.org> |
proc->thread stage 4: rework the VFS and DEVICE subsystems to take thread pointers instead of process pointers as arguments, similar to what FreeBSD-5 did. Note however that ultimately both APIs are
proc->thread stage 4: rework the VFS and DEVICE subsystems to take thread pointers instead of process pointers as arguments, similar to what FreeBSD-5 did. Note however that ultimately both APIs are going to be message-passing which means the current thread context will not be useable for creds and descriptor access.
show more ...
|
#
41c20dac |
| 23-Jun-2003 |
Matthew Dillon <dillon@dragonflybsd.org> |
proc->thread stage 2: MAJOR revamping of system calls, ucred, jail API, and some work on the low level device interface (proc arg -> thread arg). As -current did, I have removed p_cred and incorporat
proc->thread stage 2: MAJOR revamping of system calls, ucred, jail API, and some work on the low level device interface (proc arg -> thread arg). As -current did, I have removed p_cred and incorporated its functions into p_ucred. p_prison has also been moved into p_ucred and adjusted accordingly. The jail interface tests now uses ucreds rather then processes.
The syscall(p,uap) interface has been changed to just (uap). This is inclusive of the emulation code. It makes little sense to pass a proc pointer around which confuses the MP readability of the code, because most system call code will only work with the current process anyway. Note that eventually *ALL* syscall emulation code will be moved to a kernel-protected userland layer because it really makes no sense whatsoever to implement these emulations in the kernel.
suser() now takes no arguments and only operates with the current process. The process argument has been removed from suser_xxx() so it now just takes a ucred and flags.
The sysctl interface was adjusted somewhat.
show more ...
|
#
1de703da |
| 17-Jun-2003 |
Matthew Dillon <dillon@dragonflybsd.org> |
Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids. Most ids have been removed from !lint sections and moved into comment sections.
|