History log of /dflybsd-src/sys/netinet/udp_usrreq.c (Results 126 – 150 of 173)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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.


1234567