#
1.109 |
|
30-Mar-2023 |
riastradh |
sockaddr_alloc(9): Avoid uninitialized buffer in sockaddr_checklen.
Manifests only under DIAGNOSTIC because the DIAGNOSTIC check itself uses an uninitialized buffer.
Reported-by: syzbot+54b120643dfd6edc2318@syzkaller.appspotmail.com https://syzkaller.appspot.com/bug?id=afb5b6e5da6e806aeb7fddcf1d03c3262f6fc765
|
Revision tags: netbsd-10-base bouyer-sunxi-drm-base thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.108 |
|
06-Nov-2020 |
christos |
PR/55777: Ruslan Nikolaev: Move the unp_sysctl_create to uipc_usrreq.c to facilitate splitting rump modules and does not require a dummy function.
|
#
1.107 |
|
17-Oct-2020 |
mlelstv |
branches: 1.107.2; validate unix socker buffer size and truncate path to prevent overflow.
|
Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.106 |
|
27-Dec-2018 |
maxv |
Fix apparent race.
We're doing a LIST_FOREACH, but unlock filelist_lock in the middle of the loop and drop the reference to fp. We then read fp->...le_next, but it may have been freed by another thread.
This is difficult to trigger and observe, probably only KASAN can see problems of this kind.
Switch to LIST_FOREACH_SAFE, and re-fetch np after re-locking.
May fix PR/53674.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.105 |
|
24-Nov-2018 |
maxv |
Fix kernel pointer leaks in sysctl_unpcblist.
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
|
#
1.104 |
|
03-Sep-2018 |
riastradh |
Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
|
#
1.103 |
|
05-May-2018 |
christos |
branches: 1.103.2; bump PIPSIZ from 4 to 8K like FreeBSD and provide the same sysctls
|
Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.102 |
|
28-Feb-2018 |
mrg |
branches: 1.102.2; in sockaddr_getsize_by_family() print the p_comm, pid and lid for unknown address family. helps location where missing af settings are.
|
#
1.101 |
|
10-Jan-2018 |
ozaki-r |
Don't start callouts for domains before attaching domains on rump kernels
On rump kernels, the callouts for domains, pffasttimo and pfslowtimo, started before domains were attached. Normally the callouts were dispatched after domain attaches (initializations) finished, however, under load the callouts could be executed prior to the attaches, resulting in that the callouts accessed unallocated or uninitialized resources.
|
Revision tags: tls-maxphys-base-20171202
|
#
1.100 |
|
09-Sep-2017 |
joerg |
Fix a race between sysctl_unpcblist and closef.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.99 |
|
05-Jul-2017 |
christos |
don't print diagnostic for AF_LINK
|
#
1.98 |
|
02-Jul-2017 |
christos |
don't warn about AF_LINK sockets with sa_len less than the size of the sockaddr
|
#
1.97 |
|
01-Jul-2017 |
christos |
put the code that returns the sizeof the socket by family in one place.
|
Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
|
#
1.96 |
|
02-Dec-2014 |
christos |
branches: 1.96.10; - add diagnostic check for sa_len - use new socket pretty printers to format sockaddr's
|
Revision tags: nick-nhusb-base
|
#
1.95 |
|
05-Sep-2014 |
matt |
branches: 1.95.2; Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get a correctly typed pointer.
|
#
1.94 |
|
22-Aug-2014 |
pooka |
Change the meaning of the boolean parameter to domaininit(). was: attach route domain if found from domains link set now: attach any domain which is found from domains link set
No functional change to monolithic kernel. In a rump kernel, which attaches networking domains "modularly", prevents domains from accidentally leaking in via the link set in static linked scenarios.
Problem reported by cube, Tom Bousso, and the voices in my head.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
#
1.93 |
|
23-Apr-2014 |
pooka |
domains are attached by module(-like) constructors, so no need to play link_set games with them.
|
#
1.92 |
|
17-Apr-2014 |
christos |
CID/1203196: Don't confuse coverity with out of bounds access
|
#
1.91 |
|
02-Apr-2014 |
seanb |
branches: 1.91.2; len argument to strlcpy() was incorrect when copying out AF_LOCAL sockets in sysctl helper. The entire buffer wasn't available since sun_path member is not at offset 0 in struct sockaddr_un.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
|
#
1.90 |
|
25-Feb-2014 |
pooka |
Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
#
1.89 |
|
15-Sep-2013 |
martin |
Remove unused variables
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.88 |
|
31-Jan-2013 |
joerg |
branches: 1.88.2; Add sockaddr_format to ease debugging code dealing with socket addresses.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.87 |
|
27-Oct-2011 |
seanb |
branches: 1.87.2; 1.87.12; Use PR_SLOWHZ, PR_FASTHZ defines in a couple spots.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.86 |
|
29-May-2011 |
manu |
Add SOCK_SEQPACKET to PL_LOCAL sockets. Based on patch from Jesse Off, submitted 8 years ago: http://mail-index.netbsd.org/tech-kern/2003/04/14/0006.html
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.85 |
|
03-Oct-2009 |
elad |
branches: 1.85.4; 1.85.6; KAUTH_GENERIC_CANSEE -> KAUTH_REQ_NETWORK_SOCKET_CANSEE.
Not quite the same semantics but it's okay. Once our sockets have credentials (and they will) it's all the same.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.84 |
|
11-Sep-2009 |
dyoung |
Make ifconfig(8) set and display preference numbers for IPv6 addresses. Make the kernel support SIOC[SG]IFADDRPREF for IPv6 interface addresses.
In in6ifa_ifpforlinklocal(), consult preference numbers before making an otherwise arbitrary choice of in6_ifaddr. Otherwise, preference numbers are *not* consulted by the kernel, but that will be rather easy for somebody with a little bit of free time to fix.
Please note that setting the preference number for a link-local IPv6 address does not work right, yet, but that ought to be fixed soon.
In support of the changes above,
1 Add a method to struct domain for "externalizing" a sockaddr, and provide an implementation for IPv6. Expect more work in this area: it may be more proper to say that the IPv6 implementation "internalizes" a sockaddr. Add sockaddr_externalize().
2 Add a subroutine, sofamily(), that returns a struct socket's address family or AF_UNSPEC.
3 Make a lot of IPv4-specific code generic, and move it from sys/netinet/ to sys/net/ for re-use by IPv6 parts of the kernel and ifconfig(8).
|
#
1.83 |
|
08-Sep-2009 |
dyoung |
Delete whitespace at ends of lines.
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
|
#
1.82 |
|
27-May-2009 |
pooka |
Make domaininit() take an argument which determines if it should add the special PF_ROUTE domain or not (if available).
|
Revision tags: yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 jym-xensuspend-base
|
#
1.81 |
|
28-Apr-2009 |
dyoung |
Cosmetic: remove unnecessary parentheses.
|
#
1.80 |
|
28-Apr-2009 |
dyoung |
Extract sockaddr_any_by_family() from sockaddr_any() for looking up a wildcard ("any") address by protocol family instead of by sockaddr.
|
Revision tags: nick-hppapmap-base3 nick-hppapmap-base
|
#
1.79 |
|
15-Mar-2009 |
cegger |
ansify function definitions
|
#
1.78 |
|
11-Mar-2009 |
mrg |
like KERN_FILE2: *do* update "needed" when there is no count. we want userland to know what sort of size to provide..
while here, slightly normalise the previous to init_sysctl.c.
|
Revision tags: nick-hppapmap-base2 haad-dm-base2 haad-nbase2 haad-dm-base mjf-devfs2-base
|
#
1.77 |
|
07-Dec-2008 |
pooka |
branches: 1.77.2; Move some sysctl node creations away from linksets and into the constructors for subsystems.
XXX: CTLFLAG_PERMANENT is non-sensible.
|
Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base
|
#
1.76 |
|
24-Apr-2008 |
ad |
branches: 1.76.2; 1.76.8; 1.76.10; 1.76.12; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
Revision tags: yamt-pf42-baseX yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14
|
#
1.75 |
|
21-Mar-2008 |
ad |
branches: 1.75.2; Catch up with descriptor handling changes. See kern_descrip.c revision 1.173 for details.
|
Revision tags: keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
|
#
1.74 |
|
07-Jan-2008 |
ad |
branches: 1.74.6; Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.73 |
|
05-Jan-2008 |
dsl |
Use FILE_LOCK() and FILE_UNLOCK()
|
#
1.72 |
|
28-Dec-2007 |
ad |
Pull up 1.71.8.1.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
|
#
1.71 |
|
19-Sep-2007 |
dyoung |
branches: 1.71.6; 1.71.8; 1.71.12; 1) Introduce a new socket option, (SOL_SOCKET, SO_NOHEADER), that tells a socket that it should both add a protocol header to tx'd datagrams and remove the header from rx'd datagrams:
int onoff = 1, s = socket(...); setsockopt(s, SOL_SOCKET, SO_NOHEADER, &onoff);
2) Add an implementation of (SOL_SOCKET, SO_NOHEADER) for raw IPv4 sockets.
3) Reorganize the protocols' pr_ctloutput implementations a bit. Consistently return ENOPROTOOPT when an option is unsupported, and EINVAL if a supported option's arguments are incorrect. Reorganize the flow of code so that it's more clear how/when options are passed down the stack until they are handled.
Shorten some pr_ctloutput staircases for readability.
4) Extract common mbuf code into subroutines, add new sockaddr methods, and introduce a new subroutine, fsocreate(), for reuse later; use it first in sys_socket():
struct mbuf *m_getsombuf(struct socket *so)
Create an mbuf and make its owner the socket `so'.
struct mbuf *m_intopt(struct socket *so, int val)
Create an mbuf, make its owner the socket `so', put the int `val' into it, and set its length to sizeof(int).
int fsocreate(..., int *fd)
Create a socket, a la socreate(9), put the socket into the given LWP's descriptor table, return the descriptor at `fd' on success.
void *sockaddr_addr(struct sockaddr *sa, socklen_t *slenp) const void *sockaddr_const_addr(const struct sockaddr *sa, socklen_t *slenp)
Extract a pointer to the address part of a sockaddr. Write the length of the address part at `slenp', if `slenp' is not NULL.
socklen_t sockaddr_getlen(const struct sockaddr *sa)
Return the length of a sockaddr. This just evaluates to sa->sa_len. I only add this for consistency with code that appears in a portable userland library that I am going to import.
const struct sockaddr *sockaddr_any(const struct sockaddr *sa)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
const void *sockaddr_anyaddr(const struct sockaddr *sa, socklen_t *slenp)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
|
Revision tags: nick-csl-alignment-base5
|
#
1.70 |
|
01-Sep-2007 |
dyoung |
In sockaddr_copy(), stop caring about the destination sockaddr's family and length, it doesn't matter in the post-pool(9) sockaddr regime.
|
#
1.69 |
|
30-Aug-2007 |
dyoung |
Use malloc(9) for sockaddrs instead of pool(9), and remove dom_sa_pool and dom_sa_len members from struct domain. Pools of fixed-size objects are too rigid for sockaddr_dls, whose size can vary over a wide range.
Return sockaddr_dl to its "historical" size. Now that I'm using malloc(9) instead of pool(9) to allocate sockaddr_dl, I can create a sockaddr_dl of any size in the kernel, so expanding sockaddr_dl is useless.
Avoid using sizeof(struct sockaddr_dl) in the kernel.
Introduce sockaddr_dl_alloc() for allocating & initializing an arbitrary sockaddr_dl on the heap.
Add an argument, the sockaddr length, to sockaddr_alloc(), sockaddr_copy(), and sockaddr_dl_setaddr().
Constify: LLADDR() -> CLLADDR().
Where the kernel overwrites LLADDR(), use sockaddr_dl_setaddr(), instead. Used properly, sockaddr_dl_setaddr() will not overrun the end of the sockaddr.
|
Revision tags: matt-mips64-base
|
#
1.68 |
|
07-Aug-2007 |
dyoung |
branches: 1.68.2; 1.68.4; Lengthen sockaddr_dl so that a 16-byte FireWire address will fit into sdl_data[].
Move the macro satocsdl() to net/if_dl.h, and introduce satosdl().
Add some helpers for initializing sockaddr_dl (sockaddr_dl_init), for finding out the length to put in a sockaddr_dl's sdl_len member (sockaddr_dl_measure), and for setting the link-layer address in a sockaddr_dl to a new value (sockaddr_dl_setaddr).
Make sockaddr_copy() panic if the caller tries to copy a sockaddr to a destination where it will not fit.
|
#
1.67 |
|
19-Jul-2007 |
dyoung |
branches: 1.67.4; Take steps to hide the radix_node implementation of the forwarding table from the forwarding table's users:
Introduce rt_walktree() for walking the routing table and applying a function to each rtentry. Replace most rn_walktree() calls with it.
Use rt_getkey()/rt_setkey() to get/set a route's destination. Keep a pointer to the sockaddr key in the rtentry, so that rtentry users do not have to grovel in the radix_node for the key.
Add a RTM_GET method to rtrequest. Use that instead of radix_node lookups in, e.g., carp(4).
Add sys/net/link_proto.c, which supplies sockaddr routines for link-layer socket addresses (sockaddr_dl).
Cosmetic:
Constify. KNF. Stop open-coding LIST_FOREACH, TAILQ_FOREACH, et cetera. Use NULL instead of 0 for null pointers. Use __arraycount(). Reduce gratuitous parenthesization.
Stop using variadic arguments for rip6_output(), it is unnecessary.
Remove the unnecessary rtentry member rt_genmask and the code to maintain it, since nothing actually used it.
Make rt_maskedcopy() easier to read by using meaningful variable names.
Extract a subroutine intern_netmask() for looking up a netmask in the masks table.
Start converting backslash-ridden IPv6 macros in sys/netinet6/in6_var.h into inline subroutines that one can read without special eyeglasses.
One functional change: when the kernel serves an RTM_GET, RTM_LOCK, or RTM_CHANGE request, it applies the netmask (if supplied) to a destination before searching for it in the forwarding table.
I have changed sys/netinet/ip_carp.c, carp_setroute(), to remove the unlawful radix_node knowledge.
Apart from the changes to carp(4), netiso, ATM, and strip(4), I have run the changes on three nodes in my wireless routing testbed, which involves IPv4 + IPv6 dynamic routing acrobatics, and it's working beautifully so far.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.66 |
|
09-Jul-2007 |
ad |
branches: 1.66.2; Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes - select()/poll() improvements - miscellaneous MT safety improvements
|
Revision tags: yamt-idlelwp-base8
|
#
1.65 |
|
06-May-2007 |
dyoung |
In AppleTalk, IPv4, and IPv6 routing domains, help sockaddr_cmp() avoid an indirect function call by comparing the family, length, and bytes [dom->dom_sa_cmpofs, dom->dom_sa_cmpofs + dom->dom_sa_cmplen), corresponding to the the sockaddrs' "address" members.
For ISO, actually use sockaddr_iso_cmp, for a change. Thanks to yamt@ for pointing out my error.
|
#
1.64 |
|
02-May-2007 |
dyoung |
Eliminate address family-specific route caches (struct route, struct route_in6, struct route_iso), replacing all caches with a struct route.
The principle benefit of this change is that all of the protocol families can benefit from route cache-invalidation, which is necessary for correct routing. Route-cache invalidation fixes an ancient PR, kern/3508, at long last; it fixes various other PRs, also.
Discussions with and ideas from Joerg Sonnenberger influenced this work tremendously. Of course, all design oversights and bugs are mine.
DETAILS
1 I added to each address family a pool of sockaddrs. I have introduced routines for allocating, copying, and duplicating, and freeing sockaddrs:
struct sockaddr *sockaddr_alloc(sa_family_t af, int flags); struct sockaddr *sockaddr_copy(struct sockaddr *dst, const struct sockaddr *src); struct sockaddr *sockaddr_dup(const struct sockaddr *src, int flags); void sockaddr_free(struct sockaddr *sa);
sockaddr_alloc() returns either a sockaddr from the pool belonging to the specified family, or NULL if the pool is exhausted. The returned sockaddr has the right size for that family; sa_family and sa_len fields are initialized to the family and sockaddr length---e.g., sa_family = AF_INET and sa_len = sizeof(struct sockaddr_in). sockaddr_free() puts the given sockaddr back into its family's pool.
sockaddr_dup() and sockaddr_copy() work analogously to strdup() and strcpy(), respectively. sockaddr_copy() KASSERTs that the family of the destination and source sockaddrs are alike.
The 'flags' argumet for sockaddr_alloc() and sockaddr_dup() is passed directly to pool_get(9).
2 I added routines for initializing sockaddrs in each address family, sockaddr_in_init(), sockaddr_in6_init(), sockaddr_iso_init(), etc. They are fairly self-explanatory.
3 structs route_in6 and route_iso are no more. All protocol families use struct route. I have changed the route cache, 'struct route', so that it does not contain storage space for a sockaddr. Instead, struct route points to a sockaddr coming from the pool the sockaddr belongs to. I added a new method to struct route, rtcache_setdst(), for setting the cache destination:
int rtcache_setdst(struct route *, const struct sockaddr *);
rtcache_setdst() returns 0 on success, or ENOMEM if no memory is available to create the sockaddr storage.
It is now possible for rtcache_getdst() to return NULL if, say, rtcache_setdst() failed. I check the return value for NULL everywhere in the kernel.
4 Each routing domain (struct domain) has a list of live route caches, dom_rtcache. rtflushall(sa_family_t af) looks up the domain indicated by 'af', walks the domain's list of route caches and invalidates each one.
|
Revision tags: thorpej-atomic-base ad-audiomp-base
|
#
1.63 |
|
17-Feb-2007 |
dyoung |
branches: 1.63.4; 1.63.6; KNF: de-__P, bzero -> memset, bcmp -> memcmp. Remove extraneous parentheses in return statements.
Cosmetic: don't open-code TAILQ_FOREACH().
Cosmetic: change types of variables to avoid oodles of casts: in in6_src.c, avoid casts by changing several route_in6 pointers to struct route pointers. Remove unnecessary casts to caddr_t elsewhere.
Pave the way for eliminating address family-specific route caches: soon, struct route will not embed a sockaddr, but it will hold a reference to an external sockaddr, instead. We will set the destination sockaddr using rtcache_setdst(). (I created a stub for it, but it isn't used anywhere, yet.) rtcache_free() will free the sockaddr. I have extracted from rtcache_free() a helper subroutine, rtcache_clear(). rtcache_clear() will "forget" a cached route, but it will not forget the destination by releasing the sockaddr. I use rtcache_clear() instead of rtcache_free() in rtcache_update(), because rtcache_update() is not supposed to forget the destination.
Constify:
1 Introduce const accessor for route->ro_dst, rtcache_getdst().
2 Constify the 'dst' argument to ifnet->if_output(). This led me to constify a lot of code called by output routines.
3 Constify the sockaddr argument to protosw->pr_ctlinput. This led me to constify a lot of code called by ctlinput routines.
4 Introduce const macros for converting from a generic sockaddr to family-specific sockaddrs, e.g., sockaddr_in: satocsin6, satocsin, et cetera.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.62 |
|
01-Nov-2006 |
yamt |
branches: 1.62.4; remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.61 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.60 |
|
23-Jul-2006 |
ad |
branches: 1.60.6; Use the LWP cached credentials where sane.
|
#
1.59 |
|
16-Jul-2006 |
elad |
CURTAIN() -> KAUTH_GENERIC_CANSEE.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.58 |
|
13-Jun-2006 |
yamt |
sysctl_unpcblist: don't abuse kauth_authorize_process for non-process object.
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.57 |
|
14-May-2006 |
elad |
branches: 1.57.2; integrate kauth.
|
Revision tags: elad-kernelauth-base
|
#
1.56 |
|
15-Apr-2006 |
christos |
Coverity CID 716: Fix query size vs return results initialization.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.55 |
|
08-Dec-2005 |
thorpej |
branches: 1.55.4; 1.55.6; 1.55.8; 1.55.10; 1.55.12; Use ANSI function decls in one more place.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.54 |
|
07-Sep-2005 |
elad |
Use ``l'' and not ``curlwp''. Thanks to Peter Postma for catching this.
|
#
1.53 |
|
07-Sep-2005 |
elad |
Implement curtain for AF_LOCAL PCB lists.
|
#
1.52 |
|
09-Jun-2005 |
atatat |
branches: 1.52.2; Properly fix the constipated lossage wrt -Wcast-qual and the sysctl code. I know it's not the prettiest code, but it seems to work rather well in spite of itself.
|
#
1.51 |
|
29-May-2005 |
christos |
- add const. - remove unnecessary casts. - add __UNCONST casts and mark them with XXXUNCONST as necessary.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.50 |
|
09-Mar-2005 |
atatat |
Add the following nodes to the sysctl tree:
net.local.stream.pcblist net.local.dgram.pcblist net.inet.tcp.pcblist net.inet.udp.pcblist net.inet.raw.pcblist net.inet6.tcp6.pcblist net.inet6.udp6.pcblist net.inet6.raw6.pcblist
which allow retrieval of the pcbs in use for those protocols. The struct involved is 32/64 bit clean and incorporates parts of struct inpcb, struct unpcb, a bit of struct tcpcb, and two socket addresses.
|
Revision tags: yamt-km-base2 yamt-km-base
|
#
1.49 |
|
23-Jan-2005 |
matt |
branches: 1.49.2; Change initialzie of domains to use link sets. Switch to using STAILQ. Add a convenience macro DOMAIN_FOREACH to interate through the domain.
|
Revision tags: kent-audio1-beforemerge kent-audio1-base
|
#
1.48 |
|
25-May-2004 |
atatat |
branches: 1.48.4; Sysctl descriptions under net subtree (net.key not done)
|
#
1.47 |
|
22-Apr-2004 |
matt |
Constify protosw arrays. This can reduce the kernel .data section by over 4K (if all the network protocols) are loaded.
|
Revision tags: netbsd-2-0-base
|
#
1.46 |
|
24-Mar-2004 |
atatat |
branches: 1.46.2; Tango on sysctl_createv() and flags. The flags have all been renamed, and sysctl_createv() now uses more arguments.
|
#
1.45 |
|
23-Mar-2004 |
junyoung |
Nuke __P().
|
#
1.44 |
|
04-Dec-2003 |
atatat |
Dynamic sysctl.
Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(), vfs_sysctl(), etc, routines, along with sysctl_int() et al. Now all nodes are registered with the tree, and nodes can be added (or removed) easily, and I/O to and from the tree is handled generically.
Since the nodes are registered with the tree, the mapping from name to number (and back again) can now be discovered, instead of having to be hard coded. Adding new nodes to the tree is likewise much simpler -- the new infrastructure handles almost all the work for simple types, and just about anything else can be done with a small helper function.
All existing nodes are where they were before (numerically speaking), so all existing consumers of sysctl information should notice no difference.
PS - I'm sorry, but there's a distinct lack of documentation at the moment. I'm working on sysctl(3/8/9) right now, and I promise to watch out for buses.
|
#
1.43 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.42 |
|
06-Aug-2003 |
jonathan |
(FAST_IPSEC): attach PFKEY socket domain when either (KAME) IPSEC or FAST_IPSEC is configured. Likewise for sysctl.
|
#
1.41 |
|
29-Jun-2003 |
fvdl |
branches: 1.41.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
#
1.40 |
|
28-Jun-2003 |
darrenr |
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
#
1.39 |
|
23-Jun-2003 |
martin |
Make sure to include opt_foo.h if a defflag option FOO is used.
|
#
1.38 |
|
26-Feb-2003 |
matt |
Add MBUFTRACE kernel option. Do a little mbuf rework while here. Change all uses of MGET*(*, M_WAIT, *) to m_get*(M_WAIT, *). These are not performance critical and making them call m_get saves considerable space. Add m_clget analogue of MCLGET and make corresponding change for M_WAIT uses. Modify netinet, gem, fxp, tulip, nfs to support MBUFTRACE. Begin to change netstat to use sysctl.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.37 |
|
12-May-2002 |
matt |
Make domains extern.
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base thorpej-mips-cache-base
|
#
1.36 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
#
1.35 |
|
29-Oct-2001 |
simonb |
Don't need to include <uvm/uvm_extern.h> just to include <sys/sysctl.h> anymore.
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.34 |
|
11-Feb-2001 |
itojun |
branches: 1.34.2; 1.34.4; 1.34.8; add pfctlinput2() (pfctlinput() with args).
|
#
1.33 |
|
02-Oct-2000 |
itojun |
attach ARP domain only if INET is compiled into the kernel.
|
#
1.32 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.31 |
|
30-Mar-2000 |
augustss |
Get rid of register declarations.
|
#
1.30 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
Revision tags: chs-ubc2-newbase
|
#
1.29 |
|
06-Feb-2000 |
thorpej |
Implement pffinddomain(), and use it as appropriate.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
|
#
1.28 |
|
05-Aug-1999 |
sommerfeld |
branches: 1.28.2; Implement arp_drain(), which frees packets tied up in the arp cache if mbufs are in short supply. Create a (trivial) protocol domain for arp so that the drain routine will be called from m_reclaim()
|
Revision tags: chs-ubc2-base
|
#
1.27 |
|
09-Jul-1999 |
thorpej |
defopt IPSEC and IPSEC_ESP (both into opt_ipsec.h).
|
#
1.26 |
|
01-Jul-1999 |
itojun |
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.25 |
|
14-Jan-1999 |
thorpej |
branches: 1.25.4; 1.25.6; Garbage-collect some straggling netimp stuff.
|
Revision tags: kenh-if-detach-base chs-ubc-base eeh-paddr_t-base
|
#
1.24 |
|
05-Jul-1998 |
jonathan |
branches: 1.24.4; defopt NATM.
|
#
1.23 |
|
05-Jul-1998 |
jonathan |
defopt NS, NSIP.
|
#
1.22 |
|
05-Jul-1998 |
jonathan |
defopt ISO TPIP.
|
#
1.21 |
|
05-Jul-1998 |
jonathan |
defopt CCITT.
|
#
1.20 |
|
05-Jul-1998 |
jonathan |
defopt INET, NETATALK.
|
#
1.19 |
|
06-May-1998 |
thorpej |
Add monotonically increasing "current time" stamps for pfslowtimo() and pffasttimo().
|
#
1.18 |
|
01-Mar-1998 |
fvdl |
Merge with Lite2 + local changes
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base thorpej-signal-base marc-pcmcia-bp marc-pcmcia-base
|
#
1.17 |
|
04-Apr-1997 |
christos |
Add netatalk domain.
|
Revision tags: is-newarp-before-merge is-newarp-base
|
#
1.16 |
|
14-Aug-1996 |
explorer |
formatting fix only
|
#
1.15 |
|
04-Jul-1996 |
chuck |
add native mode atm protocol layer
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.14 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.13 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.12 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.11 |
|
13-May-1994 |
mycroft |
Update to 4.4-Lite networking code, with a few local changes.
|
#
1.10 |
|
07-May-1994 |
cgd |
stub for sysctl
|
#
1.9 |
|
05-May-1994 |
mycroft |
Remove now-bogus casts.
|
#
1.8 |
|
05-May-1994 |
cgd |
lots of changes: prototype migration, move lots of variables, definitions, and structure elements around. kill some unnecessary type and macro definitions. standardize clock handling. More changes than you'd want.
|
#
1.7 |
|
29-Apr-1994 |
cgd |
change timeout/untimeout/wakeup/sleep/tsleep args to void *
|
#
1.6 |
|
14-Jan-1994 |
deraadt |
prevent an explicit splimp->splnet lowering. (which blows up on machines with a levelled-spl system that check for lowering) de-ansify two function definitions.
|
#
1.5 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.4 |
|
27-Jun-1993 |
andrew |
branches: 1.4.4; ANSIfications - removed all implicit function return types and argument definitions. Ensured that all files include "systm.h" to gain access to general prototypes. Casts where necessary.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
10-Apr-1993 |
glass |
fixed to be compliant, subservient, and to take advantage of the newly hacked config(8)
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
#
1.108 |
|
06-Nov-2020 |
christos |
PR/55777: Ruslan Nikolaev: Move the unp_sysctl_create to uipc_usrreq.c to facilitate splitting rump modules and does not require a dummy function.
|
Revision tags: thorpej-futex-base
|
#
1.107 |
|
17-Oct-2020 |
mlelstv |
validate unix socker buffer size and truncate path to prevent overflow.
|
Revision tags: netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.106 |
|
27-Dec-2018 |
maxv |
Fix apparent race.
We're doing a LIST_FOREACH, but unlock filelist_lock in the middle of the loop and drop the reference to fp. We then read fp->...le_next, but it may have been freed by another thread.
This is difficult to trigger and observe, probably only KASAN can see problems of this kind.
Switch to LIST_FOREACH_SAFE, and re-fetch np after re-locking.
May fix PR/53674.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.105 |
|
24-Nov-2018 |
maxv |
Fix kernel pointer leaks in sysctl_unpcblist.
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
|
#
1.104 |
|
03-Sep-2018 |
riastradh |
Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
|
#
1.103 |
|
05-May-2018 |
christos |
branches: 1.103.2; bump PIPSIZ from 4 to 8K like FreeBSD and provide the same sysctls
|
Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.102 |
|
28-Feb-2018 |
mrg |
branches: 1.102.2; in sockaddr_getsize_by_family() print the p_comm, pid and lid for unknown address family. helps location where missing af settings are.
|
#
1.101 |
|
10-Jan-2018 |
ozaki-r |
Don't start callouts for domains before attaching domains on rump kernels
On rump kernels, the callouts for domains, pffasttimo and pfslowtimo, started before domains were attached. Normally the callouts were dispatched after domain attaches (initializations) finished, however, under load the callouts could be executed prior to the attaches, resulting in that the callouts accessed unallocated or uninitialized resources.
|
Revision tags: tls-maxphys-base-20171202
|
#
1.100 |
|
09-Sep-2017 |
joerg |
Fix a race between sysctl_unpcblist and closef.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.99 |
|
05-Jul-2017 |
christos |
don't print diagnostic for AF_LINK
|
#
1.98 |
|
02-Jul-2017 |
christos |
don't warn about AF_LINK sockets with sa_len less than the size of the sockaddr
|
#
1.97 |
|
01-Jul-2017 |
christos |
put the code that returns the sizeof the socket by family in one place.
|
Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
|
#
1.96 |
|
02-Dec-2014 |
christos |
branches: 1.96.10; - add diagnostic check for sa_len - use new socket pretty printers to format sockaddr's
|
Revision tags: nick-nhusb-base
|
#
1.95 |
|
05-Sep-2014 |
matt |
branches: 1.95.2; Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get a correctly typed pointer.
|
#
1.94 |
|
22-Aug-2014 |
pooka |
Change the meaning of the boolean parameter to domaininit(). was: attach route domain if found from domains link set now: attach any domain which is found from domains link set
No functional change to monolithic kernel. In a rump kernel, which attaches networking domains "modularly", prevents domains from accidentally leaking in via the link set in static linked scenarios.
Problem reported by cube, Tom Bousso, and the voices in my head.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
#
1.93 |
|
23-Apr-2014 |
pooka |
domains are attached by module(-like) constructors, so no need to play link_set games with them.
|
#
1.92 |
|
17-Apr-2014 |
christos |
CID/1203196: Don't confuse coverity with out of bounds access
|
#
1.91 |
|
02-Apr-2014 |
seanb |
branches: 1.91.2; len argument to strlcpy() was incorrect when copying out AF_LOCAL sockets in sysctl helper. The entire buffer wasn't available since sun_path member is not at offset 0 in struct sockaddr_un.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
|
#
1.90 |
|
25-Feb-2014 |
pooka |
Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
#
1.89 |
|
15-Sep-2013 |
martin |
Remove unused variables
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.88 |
|
31-Jan-2013 |
joerg |
branches: 1.88.2; Add sockaddr_format to ease debugging code dealing with socket addresses.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.87 |
|
27-Oct-2011 |
seanb |
branches: 1.87.2; 1.87.12; Use PR_SLOWHZ, PR_FASTHZ defines in a couple spots.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.86 |
|
29-May-2011 |
manu |
Add SOCK_SEQPACKET to PL_LOCAL sockets. Based on patch from Jesse Off, submitted 8 years ago: http://mail-index.netbsd.org/tech-kern/2003/04/14/0006.html
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.85 |
|
03-Oct-2009 |
elad |
branches: 1.85.4; 1.85.6; KAUTH_GENERIC_CANSEE -> KAUTH_REQ_NETWORK_SOCKET_CANSEE.
Not quite the same semantics but it's okay. Once our sockets have credentials (and they will) it's all the same.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.84 |
|
11-Sep-2009 |
dyoung |
Make ifconfig(8) set and display preference numbers for IPv6 addresses. Make the kernel support SIOC[SG]IFADDRPREF for IPv6 interface addresses.
In in6ifa_ifpforlinklocal(), consult preference numbers before making an otherwise arbitrary choice of in6_ifaddr. Otherwise, preference numbers are *not* consulted by the kernel, but that will be rather easy for somebody with a little bit of free time to fix.
Please note that setting the preference number for a link-local IPv6 address does not work right, yet, but that ought to be fixed soon.
In support of the changes above,
1 Add a method to struct domain for "externalizing" a sockaddr, and provide an implementation for IPv6. Expect more work in this area: it may be more proper to say that the IPv6 implementation "internalizes" a sockaddr. Add sockaddr_externalize().
2 Add a subroutine, sofamily(), that returns a struct socket's address family or AF_UNSPEC.
3 Make a lot of IPv4-specific code generic, and move it from sys/netinet/ to sys/net/ for re-use by IPv6 parts of the kernel and ifconfig(8).
|
#
1.83 |
|
08-Sep-2009 |
dyoung |
Delete whitespace at ends of lines.
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
|
#
1.82 |
|
27-May-2009 |
pooka |
Make domaininit() take an argument which determines if it should add the special PF_ROUTE domain or not (if available).
|
Revision tags: yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 jym-xensuspend-base
|
#
1.81 |
|
28-Apr-2009 |
dyoung |
Cosmetic: remove unnecessary parentheses.
|
#
1.80 |
|
28-Apr-2009 |
dyoung |
Extract sockaddr_any_by_family() from sockaddr_any() for looking up a wildcard ("any") address by protocol family instead of by sockaddr.
|
Revision tags: nick-hppapmap-base3 nick-hppapmap-base
|
#
1.79 |
|
15-Mar-2009 |
cegger |
ansify function definitions
|
#
1.78 |
|
11-Mar-2009 |
mrg |
like KERN_FILE2: *do* update "needed" when there is no count. we want userland to know what sort of size to provide..
while here, slightly normalise the previous to init_sysctl.c.
|
Revision tags: nick-hppapmap-base2 haad-dm-base2 haad-nbase2 haad-dm-base mjf-devfs2-base
|
#
1.77 |
|
07-Dec-2008 |
pooka |
branches: 1.77.2; Move some sysctl node creations away from linksets and into the constructors for subsystems.
XXX: CTLFLAG_PERMANENT is non-sensible.
|
Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base
|
#
1.76 |
|
24-Apr-2008 |
ad |
branches: 1.76.2; 1.76.8; 1.76.10; 1.76.12; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
Revision tags: yamt-pf42-baseX yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14
|
#
1.75 |
|
21-Mar-2008 |
ad |
branches: 1.75.2; Catch up with descriptor handling changes. See kern_descrip.c revision 1.173 for details.
|
Revision tags: keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
|
#
1.74 |
|
07-Jan-2008 |
ad |
branches: 1.74.6; Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.73 |
|
05-Jan-2008 |
dsl |
Use FILE_LOCK() and FILE_UNLOCK()
|
#
1.72 |
|
28-Dec-2007 |
ad |
Pull up 1.71.8.1.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
|
#
1.71 |
|
19-Sep-2007 |
dyoung |
branches: 1.71.6; 1.71.8; 1.71.12; 1) Introduce a new socket option, (SOL_SOCKET, SO_NOHEADER), that tells a socket that it should both add a protocol header to tx'd datagrams and remove the header from rx'd datagrams:
int onoff = 1, s = socket(...); setsockopt(s, SOL_SOCKET, SO_NOHEADER, &onoff);
2) Add an implementation of (SOL_SOCKET, SO_NOHEADER) for raw IPv4 sockets.
3) Reorganize the protocols' pr_ctloutput implementations a bit. Consistently return ENOPROTOOPT when an option is unsupported, and EINVAL if a supported option's arguments are incorrect. Reorganize the flow of code so that it's more clear how/when options are passed down the stack until they are handled.
Shorten some pr_ctloutput staircases for readability.
4) Extract common mbuf code into subroutines, add new sockaddr methods, and introduce a new subroutine, fsocreate(), for reuse later; use it first in sys_socket():
struct mbuf *m_getsombuf(struct socket *so)
Create an mbuf and make its owner the socket `so'.
struct mbuf *m_intopt(struct socket *so, int val)
Create an mbuf, make its owner the socket `so', put the int `val' into it, and set its length to sizeof(int).
int fsocreate(..., int *fd)
Create a socket, a la socreate(9), put the socket into the given LWP's descriptor table, return the descriptor at `fd' on success.
void *sockaddr_addr(struct sockaddr *sa, socklen_t *slenp) const void *sockaddr_const_addr(const struct sockaddr *sa, socklen_t *slenp)
Extract a pointer to the address part of a sockaddr. Write the length of the address part at `slenp', if `slenp' is not NULL.
socklen_t sockaddr_getlen(const struct sockaddr *sa)
Return the length of a sockaddr. This just evaluates to sa->sa_len. I only add this for consistency with code that appears in a portable userland library that I am going to import.
const struct sockaddr *sockaddr_any(const struct sockaddr *sa)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
const void *sockaddr_anyaddr(const struct sockaddr *sa, socklen_t *slenp)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
|
Revision tags: nick-csl-alignment-base5
|
#
1.70 |
|
01-Sep-2007 |
dyoung |
In sockaddr_copy(), stop caring about the destination sockaddr's family and length, it doesn't matter in the post-pool(9) sockaddr regime.
|
#
1.69 |
|
30-Aug-2007 |
dyoung |
Use malloc(9) for sockaddrs instead of pool(9), and remove dom_sa_pool and dom_sa_len members from struct domain. Pools of fixed-size objects are too rigid for sockaddr_dls, whose size can vary over a wide range.
Return sockaddr_dl to its "historical" size. Now that I'm using malloc(9) instead of pool(9) to allocate sockaddr_dl, I can create a sockaddr_dl of any size in the kernel, so expanding sockaddr_dl is useless.
Avoid using sizeof(struct sockaddr_dl) in the kernel.
Introduce sockaddr_dl_alloc() for allocating & initializing an arbitrary sockaddr_dl on the heap.
Add an argument, the sockaddr length, to sockaddr_alloc(), sockaddr_copy(), and sockaddr_dl_setaddr().
Constify: LLADDR() -> CLLADDR().
Where the kernel overwrites LLADDR(), use sockaddr_dl_setaddr(), instead. Used properly, sockaddr_dl_setaddr() will not overrun the end of the sockaddr.
|
Revision tags: matt-mips64-base
|
#
1.68 |
|
07-Aug-2007 |
dyoung |
branches: 1.68.2; 1.68.4; Lengthen sockaddr_dl so that a 16-byte FireWire address will fit into sdl_data[].
Move the macro satocsdl() to net/if_dl.h, and introduce satosdl().
Add some helpers for initializing sockaddr_dl (sockaddr_dl_init), for finding out the length to put in a sockaddr_dl's sdl_len member (sockaddr_dl_measure), and for setting the link-layer address in a sockaddr_dl to a new value (sockaddr_dl_setaddr).
Make sockaddr_copy() panic if the caller tries to copy a sockaddr to a destination where it will not fit.
|
#
1.67 |
|
19-Jul-2007 |
dyoung |
branches: 1.67.4; Take steps to hide the radix_node implementation of the forwarding table from the forwarding table's users:
Introduce rt_walktree() for walking the routing table and applying a function to each rtentry. Replace most rn_walktree() calls with it.
Use rt_getkey()/rt_setkey() to get/set a route's destination. Keep a pointer to the sockaddr key in the rtentry, so that rtentry users do not have to grovel in the radix_node for the key.
Add a RTM_GET method to rtrequest. Use that instead of radix_node lookups in, e.g., carp(4).
Add sys/net/link_proto.c, which supplies sockaddr routines for link-layer socket addresses (sockaddr_dl).
Cosmetic:
Constify. KNF. Stop open-coding LIST_FOREACH, TAILQ_FOREACH, et cetera. Use NULL instead of 0 for null pointers. Use __arraycount(). Reduce gratuitous parenthesization.
Stop using variadic arguments for rip6_output(), it is unnecessary.
Remove the unnecessary rtentry member rt_genmask and the code to maintain it, since nothing actually used it.
Make rt_maskedcopy() easier to read by using meaningful variable names.
Extract a subroutine intern_netmask() for looking up a netmask in the masks table.
Start converting backslash-ridden IPv6 macros in sys/netinet6/in6_var.h into inline subroutines that one can read without special eyeglasses.
One functional change: when the kernel serves an RTM_GET, RTM_LOCK, or RTM_CHANGE request, it applies the netmask (if supplied) to a destination before searching for it in the forwarding table.
I have changed sys/netinet/ip_carp.c, carp_setroute(), to remove the unlawful radix_node knowledge.
Apart from the changes to carp(4), netiso, ATM, and strip(4), I have run the changes on three nodes in my wireless routing testbed, which involves IPv4 + IPv6 dynamic routing acrobatics, and it's working beautifully so far.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.66 |
|
09-Jul-2007 |
ad |
branches: 1.66.2; Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes - select()/poll() improvements - miscellaneous MT safety improvements
|
Revision tags: yamt-idlelwp-base8
|
#
1.65 |
|
06-May-2007 |
dyoung |
In AppleTalk, IPv4, and IPv6 routing domains, help sockaddr_cmp() avoid an indirect function call by comparing the family, length, and bytes [dom->dom_sa_cmpofs, dom->dom_sa_cmpofs + dom->dom_sa_cmplen), corresponding to the the sockaddrs' "address" members.
For ISO, actually use sockaddr_iso_cmp, for a change. Thanks to yamt@ for pointing out my error.
|
#
1.64 |
|
02-May-2007 |
dyoung |
Eliminate address family-specific route caches (struct route, struct route_in6, struct route_iso), replacing all caches with a struct route.
The principle benefit of this change is that all of the protocol families can benefit from route cache-invalidation, which is necessary for correct routing. Route-cache invalidation fixes an ancient PR, kern/3508, at long last; it fixes various other PRs, also.
Discussions with and ideas from Joerg Sonnenberger influenced this work tremendously. Of course, all design oversights and bugs are mine.
DETAILS
1 I added to each address family a pool of sockaddrs. I have introduced routines for allocating, copying, and duplicating, and freeing sockaddrs:
struct sockaddr *sockaddr_alloc(sa_family_t af, int flags); struct sockaddr *sockaddr_copy(struct sockaddr *dst, const struct sockaddr *src); struct sockaddr *sockaddr_dup(const struct sockaddr *src, int flags); void sockaddr_free(struct sockaddr *sa);
sockaddr_alloc() returns either a sockaddr from the pool belonging to the specified family, or NULL if the pool is exhausted. The returned sockaddr has the right size for that family; sa_family and sa_len fields are initialized to the family and sockaddr length---e.g., sa_family = AF_INET and sa_len = sizeof(struct sockaddr_in). sockaddr_free() puts the given sockaddr back into its family's pool.
sockaddr_dup() and sockaddr_copy() work analogously to strdup() and strcpy(), respectively. sockaddr_copy() KASSERTs that the family of the destination and source sockaddrs are alike.
The 'flags' argumet for sockaddr_alloc() and sockaddr_dup() is passed directly to pool_get(9).
2 I added routines for initializing sockaddrs in each address family, sockaddr_in_init(), sockaddr_in6_init(), sockaddr_iso_init(), etc. They are fairly self-explanatory.
3 structs route_in6 and route_iso are no more. All protocol families use struct route. I have changed the route cache, 'struct route', so that it does not contain storage space for a sockaddr. Instead, struct route points to a sockaddr coming from the pool the sockaddr belongs to. I added a new method to struct route, rtcache_setdst(), for setting the cache destination:
int rtcache_setdst(struct route *, const struct sockaddr *);
rtcache_setdst() returns 0 on success, or ENOMEM if no memory is available to create the sockaddr storage.
It is now possible for rtcache_getdst() to return NULL if, say, rtcache_setdst() failed. I check the return value for NULL everywhere in the kernel.
4 Each routing domain (struct domain) has a list of live route caches, dom_rtcache. rtflushall(sa_family_t af) looks up the domain indicated by 'af', walks the domain's list of route caches and invalidates each one.
|
Revision tags: thorpej-atomic-base ad-audiomp-base
|
#
1.63 |
|
17-Feb-2007 |
dyoung |
branches: 1.63.4; 1.63.6; KNF: de-__P, bzero -> memset, bcmp -> memcmp. Remove extraneous parentheses in return statements.
Cosmetic: don't open-code TAILQ_FOREACH().
Cosmetic: change types of variables to avoid oodles of casts: in in6_src.c, avoid casts by changing several route_in6 pointers to struct route pointers. Remove unnecessary casts to caddr_t elsewhere.
Pave the way for eliminating address family-specific route caches: soon, struct route will not embed a sockaddr, but it will hold a reference to an external sockaddr, instead. We will set the destination sockaddr using rtcache_setdst(). (I created a stub for it, but it isn't used anywhere, yet.) rtcache_free() will free the sockaddr. I have extracted from rtcache_free() a helper subroutine, rtcache_clear(). rtcache_clear() will "forget" a cached route, but it will not forget the destination by releasing the sockaddr. I use rtcache_clear() instead of rtcache_free() in rtcache_update(), because rtcache_update() is not supposed to forget the destination.
Constify:
1 Introduce const accessor for route->ro_dst, rtcache_getdst().
2 Constify the 'dst' argument to ifnet->if_output(). This led me to constify a lot of code called by output routines.
3 Constify the sockaddr argument to protosw->pr_ctlinput. This led me to constify a lot of code called by ctlinput routines.
4 Introduce const macros for converting from a generic sockaddr to family-specific sockaddrs, e.g., sockaddr_in: satocsin6, satocsin, et cetera.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.62 |
|
01-Nov-2006 |
yamt |
branches: 1.62.4; remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.61 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.60 |
|
23-Jul-2006 |
ad |
branches: 1.60.6; Use the LWP cached credentials where sane.
|
#
1.59 |
|
16-Jul-2006 |
elad |
CURTAIN() -> KAUTH_GENERIC_CANSEE.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.58 |
|
13-Jun-2006 |
yamt |
sysctl_unpcblist: don't abuse kauth_authorize_process for non-process object.
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.57 |
|
14-May-2006 |
elad |
branches: 1.57.2; integrate kauth.
|
Revision tags: elad-kernelauth-base
|
#
1.56 |
|
15-Apr-2006 |
christos |
Coverity CID 716: Fix query size vs return results initialization.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.55 |
|
08-Dec-2005 |
thorpej |
branches: 1.55.4; 1.55.6; 1.55.8; 1.55.10; 1.55.12; Use ANSI function decls in one more place.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.54 |
|
07-Sep-2005 |
elad |
Use ``l'' and not ``curlwp''. Thanks to Peter Postma for catching this.
|
#
1.53 |
|
07-Sep-2005 |
elad |
Implement curtain for AF_LOCAL PCB lists.
|
#
1.52 |
|
09-Jun-2005 |
atatat |
branches: 1.52.2; Properly fix the constipated lossage wrt -Wcast-qual and the sysctl code. I know it's not the prettiest code, but it seems to work rather well in spite of itself.
|
#
1.51 |
|
29-May-2005 |
christos |
- add const. - remove unnecessary casts. - add __UNCONST casts and mark them with XXXUNCONST as necessary.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.50 |
|
09-Mar-2005 |
atatat |
Add the following nodes to the sysctl tree:
net.local.stream.pcblist net.local.dgram.pcblist net.inet.tcp.pcblist net.inet.udp.pcblist net.inet.raw.pcblist net.inet6.tcp6.pcblist net.inet6.udp6.pcblist net.inet6.raw6.pcblist
which allow retrieval of the pcbs in use for those protocols. The struct involved is 32/64 bit clean and incorporates parts of struct inpcb, struct unpcb, a bit of struct tcpcb, and two socket addresses.
|
Revision tags: yamt-km-base2 yamt-km-base
|
#
1.49 |
|
23-Jan-2005 |
matt |
branches: 1.49.2; Change initialzie of domains to use link sets. Switch to using STAILQ. Add a convenience macro DOMAIN_FOREACH to interate through the domain.
|
Revision tags: kent-audio1-beforemerge kent-audio1-base
|
#
1.48 |
|
25-May-2004 |
atatat |
branches: 1.48.4; Sysctl descriptions under net subtree (net.key not done)
|
#
1.47 |
|
22-Apr-2004 |
matt |
Constify protosw arrays. This can reduce the kernel .data section by over 4K (if all the network protocols) are loaded.
|
Revision tags: netbsd-2-0-base
|
#
1.46 |
|
24-Mar-2004 |
atatat |
branches: 1.46.2; Tango on sysctl_createv() and flags. The flags have all been renamed, and sysctl_createv() now uses more arguments.
|
#
1.45 |
|
23-Mar-2004 |
junyoung |
Nuke __P().
|
#
1.44 |
|
04-Dec-2003 |
atatat |
Dynamic sysctl.
Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(), vfs_sysctl(), etc, routines, along with sysctl_int() et al. Now all nodes are registered with the tree, and nodes can be added (or removed) easily, and I/O to and from the tree is handled generically.
Since the nodes are registered with the tree, the mapping from name to number (and back again) can now be discovered, instead of having to be hard coded. Adding new nodes to the tree is likewise much simpler -- the new infrastructure handles almost all the work for simple types, and just about anything else can be done with a small helper function.
All existing nodes are where they were before (numerically speaking), so all existing consumers of sysctl information should notice no difference.
PS - I'm sorry, but there's a distinct lack of documentation at the moment. I'm working on sysctl(3/8/9) right now, and I promise to watch out for buses.
|
#
1.43 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.42 |
|
06-Aug-2003 |
jonathan |
(FAST_IPSEC): attach PFKEY socket domain when either (KAME) IPSEC or FAST_IPSEC is configured. Likewise for sysctl.
|
#
1.41 |
|
29-Jun-2003 |
fvdl |
branches: 1.41.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
#
1.40 |
|
28-Jun-2003 |
darrenr |
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
#
1.39 |
|
23-Jun-2003 |
martin |
Make sure to include opt_foo.h if a defflag option FOO is used.
|
#
1.38 |
|
26-Feb-2003 |
matt |
Add MBUFTRACE kernel option. Do a little mbuf rework while here. Change all uses of MGET*(*, M_WAIT, *) to m_get*(M_WAIT, *). These are not performance critical and making them call m_get saves considerable space. Add m_clget analogue of MCLGET and make corresponding change for M_WAIT uses. Modify netinet, gem, fxp, tulip, nfs to support MBUFTRACE. Begin to change netstat to use sysctl.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.37 |
|
12-May-2002 |
matt |
Make domains extern.
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base thorpej-mips-cache-base
|
#
1.36 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
#
1.35 |
|
29-Oct-2001 |
simonb |
Don't need to include <uvm/uvm_extern.h> just to include <sys/sysctl.h> anymore.
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.34 |
|
11-Feb-2001 |
itojun |
branches: 1.34.2; 1.34.4; 1.34.8; add pfctlinput2() (pfctlinput() with args).
|
#
1.33 |
|
02-Oct-2000 |
itojun |
attach ARP domain only if INET is compiled into the kernel.
|
#
1.32 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.31 |
|
30-Mar-2000 |
augustss |
Get rid of register declarations.
|
#
1.30 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
Revision tags: chs-ubc2-newbase
|
#
1.29 |
|
06-Feb-2000 |
thorpej |
Implement pffinddomain(), and use it as appropriate.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
|
#
1.28 |
|
05-Aug-1999 |
sommerfeld |
branches: 1.28.2; Implement arp_drain(), which frees packets tied up in the arp cache if mbufs are in short supply. Create a (trivial) protocol domain for arp so that the drain routine will be called from m_reclaim()
|
Revision tags: chs-ubc2-base
|
#
1.27 |
|
09-Jul-1999 |
thorpej |
defopt IPSEC and IPSEC_ESP (both into opt_ipsec.h).
|
#
1.26 |
|
01-Jul-1999 |
itojun |
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.25 |
|
14-Jan-1999 |
thorpej |
branches: 1.25.4; 1.25.6; Garbage-collect some straggling netimp stuff.
|
Revision tags: kenh-if-detach-base chs-ubc-base eeh-paddr_t-base
|
#
1.24 |
|
05-Jul-1998 |
jonathan |
branches: 1.24.4; defopt NATM.
|
#
1.23 |
|
05-Jul-1998 |
jonathan |
defopt NS, NSIP.
|
#
1.22 |
|
05-Jul-1998 |
jonathan |
defopt ISO TPIP.
|
#
1.21 |
|
05-Jul-1998 |
jonathan |
defopt CCITT.
|
#
1.20 |
|
05-Jul-1998 |
jonathan |
defopt INET, NETATALK.
|
#
1.19 |
|
06-May-1998 |
thorpej |
Add monotonically increasing "current time" stamps for pfslowtimo() and pffasttimo().
|
#
1.18 |
|
01-Mar-1998 |
fvdl |
Merge with Lite2 + local changes
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base thorpej-signal-base marc-pcmcia-bp marc-pcmcia-base
|
#
1.17 |
|
04-Apr-1997 |
christos |
Add netatalk domain.
|
Revision tags: is-newarp-before-merge is-newarp-base
|
#
1.16 |
|
14-Aug-1996 |
explorer |
formatting fix only
|
#
1.15 |
|
04-Jul-1996 |
chuck |
add native mode atm protocol layer
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.14 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.13 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.12 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.11 |
|
13-May-1994 |
mycroft |
Update to 4.4-Lite networking code, with a few local changes.
|
#
1.10 |
|
07-May-1994 |
cgd |
stub for sysctl
|
#
1.9 |
|
05-May-1994 |
mycroft |
Remove now-bogus casts.
|
#
1.8 |
|
05-May-1994 |
cgd |
lots of changes: prototype migration, move lots of variables, definitions, and structure elements around. kill some unnecessary type and macro definitions. standardize clock handling. More changes than you'd want.
|
#
1.7 |
|
29-Apr-1994 |
cgd |
change timeout/untimeout/wakeup/sleep/tsleep args to void *
|
#
1.6 |
|
14-Jan-1994 |
deraadt |
prevent an explicit splimp->splnet lowering. (which blows up on machines with a levelled-spl system that check for lowering) de-ansify two function definitions.
|
#
1.5 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.4 |
|
27-Jun-1993 |
andrew |
branches: 1.4.4; ANSIfications - removed all implicit function return types and argument definitions. Ensured that all files include "systm.h" to gain access to general prototypes. Casts where necessary.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
10-Apr-1993 |
glass |
fixed to be compliant, subservient, and to take advantage of the newly hacked config(8)
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
#
1.107 |
|
17-Oct-2020 |
mlelstv |
validate unix socker buffer size and truncate path to prevent overflow.
|
Revision tags: netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.106 |
|
27-Dec-2018 |
maxv |
Fix apparent race.
We're doing a LIST_FOREACH, but unlock filelist_lock in the middle of the loop and drop the reference to fp. We then read fp->...le_next, but it may have been freed by another thread.
This is difficult to trigger and observe, probably only KASAN can see problems of this kind.
Switch to LIST_FOREACH_SAFE, and re-fetch np after re-locking.
May fix PR/53674.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.105 |
|
24-Nov-2018 |
maxv |
Fix kernel pointer leaks in sysctl_unpcblist.
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
|
#
1.104 |
|
03-Sep-2018 |
riastradh |
Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
|
#
1.103 |
|
05-May-2018 |
christos |
branches: 1.103.2; bump PIPSIZ from 4 to 8K like FreeBSD and provide the same sysctls
|
Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.102 |
|
28-Feb-2018 |
mrg |
branches: 1.102.2; in sockaddr_getsize_by_family() print the p_comm, pid and lid for unknown address family. helps location where missing af settings are.
|
#
1.101 |
|
10-Jan-2018 |
ozaki-r |
Don't start callouts for domains before attaching domains on rump kernels
On rump kernels, the callouts for domains, pffasttimo and pfslowtimo, started before domains were attached. Normally the callouts were dispatched after domain attaches (initializations) finished, however, under load the callouts could be executed prior to the attaches, resulting in that the callouts accessed unallocated or uninitialized resources.
|
Revision tags: tls-maxphys-base-20171202
|
#
1.100 |
|
09-Sep-2017 |
joerg |
Fix a race between sysctl_unpcblist and closef.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.99 |
|
05-Jul-2017 |
christos |
don't print diagnostic for AF_LINK
|
#
1.98 |
|
02-Jul-2017 |
christos |
don't warn about AF_LINK sockets with sa_len less than the size of the sockaddr
|
#
1.97 |
|
01-Jul-2017 |
christos |
put the code that returns the sizeof the socket by family in one place.
|
Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
|
#
1.96 |
|
02-Dec-2014 |
christos |
branches: 1.96.10; - add diagnostic check for sa_len - use new socket pretty printers to format sockaddr's
|
Revision tags: nick-nhusb-base
|
#
1.95 |
|
05-Sep-2014 |
matt |
branches: 1.95.2; Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get a correctly typed pointer.
|
#
1.94 |
|
22-Aug-2014 |
pooka |
Change the meaning of the boolean parameter to domaininit(). was: attach route domain if found from domains link set now: attach any domain which is found from domains link set
No functional change to monolithic kernel. In a rump kernel, which attaches networking domains "modularly", prevents domains from accidentally leaking in via the link set in static linked scenarios.
Problem reported by cube, Tom Bousso, and the voices in my head.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
#
1.93 |
|
23-Apr-2014 |
pooka |
domains are attached by module(-like) constructors, so no need to play link_set games with them.
|
#
1.92 |
|
17-Apr-2014 |
christos |
CID/1203196: Don't confuse coverity with out of bounds access
|
#
1.91 |
|
02-Apr-2014 |
seanb |
branches: 1.91.2; len argument to strlcpy() was incorrect when copying out AF_LOCAL sockets in sysctl helper. The entire buffer wasn't available since sun_path member is not at offset 0 in struct sockaddr_un.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
|
#
1.90 |
|
25-Feb-2014 |
pooka |
Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
#
1.89 |
|
15-Sep-2013 |
martin |
Remove unused variables
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.88 |
|
31-Jan-2013 |
joerg |
branches: 1.88.2; Add sockaddr_format to ease debugging code dealing with socket addresses.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.87 |
|
27-Oct-2011 |
seanb |
branches: 1.87.2; 1.87.12; Use PR_SLOWHZ, PR_FASTHZ defines in a couple spots.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.86 |
|
29-May-2011 |
manu |
Add SOCK_SEQPACKET to PL_LOCAL sockets. Based on patch from Jesse Off, submitted 8 years ago: http://mail-index.netbsd.org/tech-kern/2003/04/14/0006.html
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.85 |
|
03-Oct-2009 |
elad |
branches: 1.85.4; 1.85.6; KAUTH_GENERIC_CANSEE -> KAUTH_REQ_NETWORK_SOCKET_CANSEE.
Not quite the same semantics but it's okay. Once our sockets have credentials (and they will) it's all the same.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.84 |
|
11-Sep-2009 |
dyoung |
Make ifconfig(8) set and display preference numbers for IPv6 addresses. Make the kernel support SIOC[SG]IFADDRPREF for IPv6 interface addresses.
In in6ifa_ifpforlinklocal(), consult preference numbers before making an otherwise arbitrary choice of in6_ifaddr. Otherwise, preference numbers are *not* consulted by the kernel, but that will be rather easy for somebody with a little bit of free time to fix.
Please note that setting the preference number for a link-local IPv6 address does not work right, yet, but that ought to be fixed soon.
In support of the changes above,
1 Add a method to struct domain for "externalizing" a sockaddr, and provide an implementation for IPv6. Expect more work in this area: it may be more proper to say that the IPv6 implementation "internalizes" a sockaddr. Add sockaddr_externalize().
2 Add a subroutine, sofamily(), that returns a struct socket's address family or AF_UNSPEC.
3 Make a lot of IPv4-specific code generic, and move it from sys/netinet/ to sys/net/ for re-use by IPv6 parts of the kernel and ifconfig(8).
|
#
1.83 |
|
08-Sep-2009 |
dyoung |
Delete whitespace at ends of lines.
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
|
#
1.82 |
|
27-May-2009 |
pooka |
Make domaininit() take an argument which determines if it should add the special PF_ROUTE domain or not (if available).
|
Revision tags: yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 jym-xensuspend-base
|
#
1.81 |
|
28-Apr-2009 |
dyoung |
Cosmetic: remove unnecessary parentheses.
|
#
1.80 |
|
28-Apr-2009 |
dyoung |
Extract sockaddr_any_by_family() from sockaddr_any() for looking up a wildcard ("any") address by protocol family instead of by sockaddr.
|
Revision tags: nick-hppapmap-base3 nick-hppapmap-base
|
#
1.79 |
|
15-Mar-2009 |
cegger |
ansify function definitions
|
#
1.78 |
|
11-Mar-2009 |
mrg |
like KERN_FILE2: *do* update "needed" when there is no count. we want userland to know what sort of size to provide..
while here, slightly normalise the previous to init_sysctl.c.
|
Revision tags: nick-hppapmap-base2 haad-dm-base2 haad-nbase2 haad-dm-base mjf-devfs2-base
|
#
1.77 |
|
07-Dec-2008 |
pooka |
branches: 1.77.2; Move some sysctl node creations away from linksets and into the constructors for subsystems.
XXX: CTLFLAG_PERMANENT is non-sensible.
|
Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base
|
#
1.76 |
|
24-Apr-2008 |
ad |
branches: 1.76.2; 1.76.8; 1.76.10; 1.76.12; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
Revision tags: yamt-pf42-baseX yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14
|
#
1.75 |
|
21-Mar-2008 |
ad |
branches: 1.75.2; Catch up with descriptor handling changes. See kern_descrip.c revision 1.173 for details.
|
Revision tags: keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
|
#
1.74 |
|
07-Jan-2008 |
ad |
branches: 1.74.6; Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.73 |
|
05-Jan-2008 |
dsl |
Use FILE_LOCK() and FILE_UNLOCK()
|
#
1.72 |
|
28-Dec-2007 |
ad |
Pull up 1.71.8.1.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
|
#
1.71 |
|
19-Sep-2007 |
dyoung |
branches: 1.71.6; 1.71.8; 1.71.12; 1) Introduce a new socket option, (SOL_SOCKET, SO_NOHEADER), that tells a socket that it should both add a protocol header to tx'd datagrams and remove the header from rx'd datagrams:
int onoff = 1, s = socket(...); setsockopt(s, SOL_SOCKET, SO_NOHEADER, &onoff);
2) Add an implementation of (SOL_SOCKET, SO_NOHEADER) for raw IPv4 sockets.
3) Reorganize the protocols' pr_ctloutput implementations a bit. Consistently return ENOPROTOOPT when an option is unsupported, and EINVAL if a supported option's arguments are incorrect. Reorganize the flow of code so that it's more clear how/when options are passed down the stack until they are handled.
Shorten some pr_ctloutput staircases for readability.
4) Extract common mbuf code into subroutines, add new sockaddr methods, and introduce a new subroutine, fsocreate(), for reuse later; use it first in sys_socket():
struct mbuf *m_getsombuf(struct socket *so)
Create an mbuf and make its owner the socket `so'.
struct mbuf *m_intopt(struct socket *so, int val)
Create an mbuf, make its owner the socket `so', put the int `val' into it, and set its length to sizeof(int).
int fsocreate(..., int *fd)
Create a socket, a la socreate(9), put the socket into the given LWP's descriptor table, return the descriptor at `fd' on success.
void *sockaddr_addr(struct sockaddr *sa, socklen_t *slenp) const void *sockaddr_const_addr(const struct sockaddr *sa, socklen_t *slenp)
Extract a pointer to the address part of a sockaddr. Write the length of the address part at `slenp', if `slenp' is not NULL.
socklen_t sockaddr_getlen(const struct sockaddr *sa)
Return the length of a sockaddr. This just evaluates to sa->sa_len. I only add this for consistency with code that appears in a portable userland library that I am going to import.
const struct sockaddr *sockaddr_any(const struct sockaddr *sa)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
const void *sockaddr_anyaddr(const struct sockaddr *sa, socklen_t *slenp)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
|
Revision tags: nick-csl-alignment-base5
|
#
1.70 |
|
01-Sep-2007 |
dyoung |
In sockaddr_copy(), stop caring about the destination sockaddr's family and length, it doesn't matter in the post-pool(9) sockaddr regime.
|
#
1.69 |
|
30-Aug-2007 |
dyoung |
Use malloc(9) for sockaddrs instead of pool(9), and remove dom_sa_pool and dom_sa_len members from struct domain. Pools of fixed-size objects are too rigid for sockaddr_dls, whose size can vary over a wide range.
Return sockaddr_dl to its "historical" size. Now that I'm using malloc(9) instead of pool(9) to allocate sockaddr_dl, I can create a sockaddr_dl of any size in the kernel, so expanding sockaddr_dl is useless.
Avoid using sizeof(struct sockaddr_dl) in the kernel.
Introduce sockaddr_dl_alloc() for allocating & initializing an arbitrary sockaddr_dl on the heap.
Add an argument, the sockaddr length, to sockaddr_alloc(), sockaddr_copy(), and sockaddr_dl_setaddr().
Constify: LLADDR() -> CLLADDR().
Where the kernel overwrites LLADDR(), use sockaddr_dl_setaddr(), instead. Used properly, sockaddr_dl_setaddr() will not overrun the end of the sockaddr.
|
Revision tags: matt-mips64-base
|
#
1.68 |
|
07-Aug-2007 |
dyoung |
branches: 1.68.2; 1.68.4; Lengthen sockaddr_dl so that a 16-byte FireWire address will fit into sdl_data[].
Move the macro satocsdl() to net/if_dl.h, and introduce satosdl().
Add some helpers for initializing sockaddr_dl (sockaddr_dl_init), for finding out the length to put in a sockaddr_dl's sdl_len member (sockaddr_dl_measure), and for setting the link-layer address in a sockaddr_dl to a new value (sockaddr_dl_setaddr).
Make sockaddr_copy() panic if the caller tries to copy a sockaddr to a destination where it will not fit.
|
#
1.67 |
|
19-Jul-2007 |
dyoung |
branches: 1.67.4; Take steps to hide the radix_node implementation of the forwarding table from the forwarding table's users:
Introduce rt_walktree() for walking the routing table and applying a function to each rtentry. Replace most rn_walktree() calls with it.
Use rt_getkey()/rt_setkey() to get/set a route's destination. Keep a pointer to the sockaddr key in the rtentry, so that rtentry users do not have to grovel in the radix_node for the key.
Add a RTM_GET method to rtrequest. Use that instead of radix_node lookups in, e.g., carp(4).
Add sys/net/link_proto.c, which supplies sockaddr routines for link-layer socket addresses (sockaddr_dl).
Cosmetic:
Constify. KNF. Stop open-coding LIST_FOREACH, TAILQ_FOREACH, et cetera. Use NULL instead of 0 for null pointers. Use __arraycount(). Reduce gratuitous parenthesization.
Stop using variadic arguments for rip6_output(), it is unnecessary.
Remove the unnecessary rtentry member rt_genmask and the code to maintain it, since nothing actually used it.
Make rt_maskedcopy() easier to read by using meaningful variable names.
Extract a subroutine intern_netmask() for looking up a netmask in the masks table.
Start converting backslash-ridden IPv6 macros in sys/netinet6/in6_var.h into inline subroutines that one can read without special eyeglasses.
One functional change: when the kernel serves an RTM_GET, RTM_LOCK, or RTM_CHANGE request, it applies the netmask (if supplied) to a destination before searching for it in the forwarding table.
I have changed sys/netinet/ip_carp.c, carp_setroute(), to remove the unlawful radix_node knowledge.
Apart from the changes to carp(4), netiso, ATM, and strip(4), I have run the changes on three nodes in my wireless routing testbed, which involves IPv4 + IPv6 dynamic routing acrobatics, and it's working beautifully so far.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.66 |
|
09-Jul-2007 |
ad |
branches: 1.66.2; Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes - select()/poll() improvements - miscellaneous MT safety improvements
|
Revision tags: yamt-idlelwp-base8
|
#
1.65 |
|
06-May-2007 |
dyoung |
In AppleTalk, IPv4, and IPv6 routing domains, help sockaddr_cmp() avoid an indirect function call by comparing the family, length, and bytes [dom->dom_sa_cmpofs, dom->dom_sa_cmpofs + dom->dom_sa_cmplen), corresponding to the the sockaddrs' "address" members.
For ISO, actually use sockaddr_iso_cmp, for a change. Thanks to yamt@ for pointing out my error.
|
#
1.64 |
|
02-May-2007 |
dyoung |
Eliminate address family-specific route caches (struct route, struct route_in6, struct route_iso), replacing all caches with a struct route.
The principle benefit of this change is that all of the protocol families can benefit from route cache-invalidation, which is necessary for correct routing. Route-cache invalidation fixes an ancient PR, kern/3508, at long last; it fixes various other PRs, also.
Discussions with and ideas from Joerg Sonnenberger influenced this work tremendously. Of course, all design oversights and bugs are mine.
DETAILS
1 I added to each address family a pool of sockaddrs. I have introduced routines for allocating, copying, and duplicating, and freeing sockaddrs:
struct sockaddr *sockaddr_alloc(sa_family_t af, int flags); struct sockaddr *sockaddr_copy(struct sockaddr *dst, const struct sockaddr *src); struct sockaddr *sockaddr_dup(const struct sockaddr *src, int flags); void sockaddr_free(struct sockaddr *sa);
sockaddr_alloc() returns either a sockaddr from the pool belonging to the specified family, or NULL if the pool is exhausted. The returned sockaddr has the right size for that family; sa_family and sa_len fields are initialized to the family and sockaddr length---e.g., sa_family = AF_INET and sa_len = sizeof(struct sockaddr_in). sockaddr_free() puts the given sockaddr back into its family's pool.
sockaddr_dup() and sockaddr_copy() work analogously to strdup() and strcpy(), respectively. sockaddr_copy() KASSERTs that the family of the destination and source sockaddrs are alike.
The 'flags' argumet for sockaddr_alloc() and sockaddr_dup() is passed directly to pool_get(9).
2 I added routines for initializing sockaddrs in each address family, sockaddr_in_init(), sockaddr_in6_init(), sockaddr_iso_init(), etc. They are fairly self-explanatory.
3 structs route_in6 and route_iso are no more. All protocol families use struct route. I have changed the route cache, 'struct route', so that it does not contain storage space for a sockaddr. Instead, struct route points to a sockaddr coming from the pool the sockaddr belongs to. I added a new method to struct route, rtcache_setdst(), for setting the cache destination:
int rtcache_setdst(struct route *, const struct sockaddr *);
rtcache_setdst() returns 0 on success, or ENOMEM if no memory is available to create the sockaddr storage.
It is now possible for rtcache_getdst() to return NULL if, say, rtcache_setdst() failed. I check the return value for NULL everywhere in the kernel.
4 Each routing domain (struct domain) has a list of live route caches, dom_rtcache. rtflushall(sa_family_t af) looks up the domain indicated by 'af', walks the domain's list of route caches and invalidates each one.
|
Revision tags: thorpej-atomic-base ad-audiomp-base
|
#
1.63 |
|
17-Feb-2007 |
dyoung |
branches: 1.63.4; 1.63.6; KNF: de-__P, bzero -> memset, bcmp -> memcmp. Remove extraneous parentheses in return statements.
Cosmetic: don't open-code TAILQ_FOREACH().
Cosmetic: change types of variables to avoid oodles of casts: in in6_src.c, avoid casts by changing several route_in6 pointers to struct route pointers. Remove unnecessary casts to caddr_t elsewhere.
Pave the way for eliminating address family-specific route caches: soon, struct route will not embed a sockaddr, but it will hold a reference to an external sockaddr, instead. We will set the destination sockaddr using rtcache_setdst(). (I created a stub for it, but it isn't used anywhere, yet.) rtcache_free() will free the sockaddr. I have extracted from rtcache_free() a helper subroutine, rtcache_clear(). rtcache_clear() will "forget" a cached route, but it will not forget the destination by releasing the sockaddr. I use rtcache_clear() instead of rtcache_free() in rtcache_update(), because rtcache_update() is not supposed to forget the destination.
Constify:
1 Introduce const accessor for route->ro_dst, rtcache_getdst().
2 Constify the 'dst' argument to ifnet->if_output(). This led me to constify a lot of code called by output routines.
3 Constify the sockaddr argument to protosw->pr_ctlinput. This led me to constify a lot of code called by ctlinput routines.
4 Introduce const macros for converting from a generic sockaddr to family-specific sockaddrs, e.g., sockaddr_in: satocsin6, satocsin, et cetera.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.62 |
|
01-Nov-2006 |
yamt |
branches: 1.62.4; remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.61 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.60 |
|
23-Jul-2006 |
ad |
branches: 1.60.6; Use the LWP cached credentials where sane.
|
#
1.59 |
|
16-Jul-2006 |
elad |
CURTAIN() -> KAUTH_GENERIC_CANSEE.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.58 |
|
13-Jun-2006 |
yamt |
sysctl_unpcblist: don't abuse kauth_authorize_process for non-process object.
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.57 |
|
14-May-2006 |
elad |
branches: 1.57.2; integrate kauth.
|
Revision tags: elad-kernelauth-base
|
#
1.56 |
|
15-Apr-2006 |
christos |
Coverity CID 716: Fix query size vs return results initialization.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.55 |
|
08-Dec-2005 |
thorpej |
branches: 1.55.4; 1.55.6; 1.55.8; 1.55.10; 1.55.12; Use ANSI function decls in one more place.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.54 |
|
07-Sep-2005 |
elad |
Use ``l'' and not ``curlwp''. Thanks to Peter Postma for catching this.
|
#
1.53 |
|
07-Sep-2005 |
elad |
Implement curtain for AF_LOCAL PCB lists.
|
#
1.52 |
|
09-Jun-2005 |
atatat |
branches: 1.52.2; Properly fix the constipated lossage wrt -Wcast-qual and the sysctl code. I know it's not the prettiest code, but it seems to work rather well in spite of itself.
|
#
1.51 |
|
29-May-2005 |
christos |
- add const. - remove unnecessary casts. - add __UNCONST casts and mark them with XXXUNCONST as necessary.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.50 |
|
09-Mar-2005 |
atatat |
Add the following nodes to the sysctl tree:
net.local.stream.pcblist net.local.dgram.pcblist net.inet.tcp.pcblist net.inet.udp.pcblist net.inet.raw.pcblist net.inet6.tcp6.pcblist net.inet6.udp6.pcblist net.inet6.raw6.pcblist
which allow retrieval of the pcbs in use for those protocols. The struct involved is 32/64 bit clean and incorporates parts of struct inpcb, struct unpcb, a bit of struct tcpcb, and two socket addresses.
|
Revision tags: yamt-km-base2 yamt-km-base
|
#
1.49 |
|
23-Jan-2005 |
matt |
branches: 1.49.2; Change initialzie of domains to use link sets. Switch to using STAILQ. Add a convenience macro DOMAIN_FOREACH to interate through the domain.
|
Revision tags: kent-audio1-beforemerge kent-audio1-base
|
#
1.48 |
|
25-May-2004 |
atatat |
branches: 1.48.4; Sysctl descriptions under net subtree (net.key not done)
|
#
1.47 |
|
22-Apr-2004 |
matt |
Constify protosw arrays. This can reduce the kernel .data section by over 4K (if all the network protocols) are loaded.
|
Revision tags: netbsd-2-0-base
|
#
1.46 |
|
24-Mar-2004 |
atatat |
branches: 1.46.2; Tango on sysctl_createv() and flags. The flags have all been renamed, and sysctl_createv() now uses more arguments.
|
#
1.45 |
|
23-Mar-2004 |
junyoung |
Nuke __P().
|
#
1.44 |
|
04-Dec-2003 |
atatat |
Dynamic sysctl.
Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(), vfs_sysctl(), etc, routines, along with sysctl_int() et al. Now all nodes are registered with the tree, and nodes can be added (or removed) easily, and I/O to and from the tree is handled generically.
Since the nodes are registered with the tree, the mapping from name to number (and back again) can now be discovered, instead of having to be hard coded. Adding new nodes to the tree is likewise much simpler -- the new infrastructure handles almost all the work for simple types, and just about anything else can be done with a small helper function.
All existing nodes are where they were before (numerically speaking), so all existing consumers of sysctl information should notice no difference.
PS - I'm sorry, but there's a distinct lack of documentation at the moment. I'm working on sysctl(3/8/9) right now, and I promise to watch out for buses.
|
#
1.43 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.42 |
|
06-Aug-2003 |
jonathan |
(FAST_IPSEC): attach PFKEY socket domain when either (KAME) IPSEC or FAST_IPSEC is configured. Likewise for sysctl.
|
#
1.41 |
|
29-Jun-2003 |
fvdl |
branches: 1.41.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
#
1.40 |
|
28-Jun-2003 |
darrenr |
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
#
1.39 |
|
23-Jun-2003 |
martin |
Make sure to include opt_foo.h if a defflag option FOO is used.
|
#
1.38 |
|
26-Feb-2003 |
matt |
Add MBUFTRACE kernel option. Do a little mbuf rework while here. Change all uses of MGET*(*, M_WAIT, *) to m_get*(M_WAIT, *). These are not performance critical and making them call m_get saves considerable space. Add m_clget analogue of MCLGET and make corresponding change for M_WAIT uses. Modify netinet, gem, fxp, tulip, nfs to support MBUFTRACE. Begin to change netstat to use sysctl.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.37 |
|
12-May-2002 |
matt |
Make domains extern.
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base thorpej-mips-cache-base
|
#
1.36 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
#
1.35 |
|
29-Oct-2001 |
simonb |
Don't need to include <uvm/uvm_extern.h> just to include <sys/sysctl.h> anymore.
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.34 |
|
11-Feb-2001 |
itojun |
branches: 1.34.2; 1.34.4; 1.34.8; add pfctlinput2() (pfctlinput() with args).
|
#
1.33 |
|
02-Oct-2000 |
itojun |
attach ARP domain only if INET is compiled into the kernel.
|
#
1.32 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.31 |
|
30-Mar-2000 |
augustss |
Get rid of register declarations.
|
#
1.30 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
Revision tags: chs-ubc2-newbase
|
#
1.29 |
|
06-Feb-2000 |
thorpej |
Implement pffinddomain(), and use it as appropriate.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
|
#
1.28 |
|
05-Aug-1999 |
sommerfeld |
branches: 1.28.2; Implement arp_drain(), which frees packets tied up in the arp cache if mbufs are in short supply. Create a (trivial) protocol domain for arp so that the drain routine will be called from m_reclaim()
|
Revision tags: chs-ubc2-base
|
#
1.27 |
|
09-Jul-1999 |
thorpej |
defopt IPSEC and IPSEC_ESP (both into opt_ipsec.h).
|
#
1.26 |
|
01-Jul-1999 |
itojun |
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.25 |
|
14-Jan-1999 |
thorpej |
branches: 1.25.4; 1.25.6; Garbage-collect some straggling netimp stuff.
|
Revision tags: kenh-if-detach-base chs-ubc-base eeh-paddr_t-base
|
#
1.24 |
|
05-Jul-1998 |
jonathan |
branches: 1.24.4; defopt NATM.
|
#
1.23 |
|
05-Jul-1998 |
jonathan |
defopt NS, NSIP.
|
#
1.22 |
|
05-Jul-1998 |
jonathan |
defopt ISO TPIP.
|
#
1.21 |
|
05-Jul-1998 |
jonathan |
defopt CCITT.
|
#
1.20 |
|
05-Jul-1998 |
jonathan |
defopt INET, NETATALK.
|
#
1.19 |
|
06-May-1998 |
thorpej |
Add monotonically increasing "current time" stamps for pfslowtimo() and pffasttimo().
|
#
1.18 |
|
01-Mar-1998 |
fvdl |
Merge with Lite2 + local changes
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base thorpej-signal-base marc-pcmcia-bp marc-pcmcia-base
|
#
1.17 |
|
04-Apr-1997 |
christos |
Add netatalk domain.
|
Revision tags: is-newarp-before-merge is-newarp-base
|
#
1.16 |
|
14-Aug-1996 |
explorer |
formatting fix only
|
#
1.15 |
|
04-Jul-1996 |
chuck |
add native mode atm protocol layer
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.14 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.13 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.12 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.11 |
|
13-May-1994 |
mycroft |
Update to 4.4-Lite networking code, with a few local changes.
|
#
1.10 |
|
07-May-1994 |
cgd |
stub for sysctl
|
#
1.9 |
|
05-May-1994 |
mycroft |
Remove now-bogus casts.
|
#
1.8 |
|
05-May-1994 |
cgd |
lots of changes: prototype migration, move lots of variables, definitions, and structure elements around. kill some unnecessary type and macro definitions. standardize clock handling. More changes than you'd want.
|
#
1.7 |
|
29-Apr-1994 |
cgd |
change timeout/untimeout/wakeup/sleep/tsleep args to void *
|
#
1.6 |
|
14-Jan-1994 |
deraadt |
prevent an explicit splimp->splnet lowering. (which blows up on machines with a levelled-spl system that check for lowering) de-ansify two function definitions.
|
#
1.5 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.4 |
|
27-Jun-1993 |
andrew |
branches: 1.4.4; ANSIfications - removed all implicit function return types and argument definitions. Ensured that all files include "systm.h" to gain access to general prototypes. Casts where necessary.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
10-Apr-1993 |
glass |
fixed to be compliant, subservient, and to take advantage of the newly hacked config(8)
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118
|
#
1.106 |
|
27-Dec-2018 |
maxv |
Fix apparent race.
We're doing a LIST_FOREACH, but unlock filelist_lock in the middle of the loop and drop the reference to fp. We then read fp->...le_next, but it may have been freed by another thread.
This is difficult to trigger and observe, probably only KASAN can see problems of this kind.
Switch to LIST_FOREACH_SAFE, and re-fetch np after re-locking.
May fix PR/53674.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.105 |
|
24-Nov-2018 |
maxv |
Fix kernel pointer leaks in sysctl_unpcblist.
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
|
#
1.104 |
|
03-Sep-2018 |
riastradh |
Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
|
#
1.103 |
|
05-May-2018 |
christos |
bump PIPSIZ from 4 to 8K like FreeBSD and provide the same sysctls
|
Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.102 |
|
28-Feb-2018 |
mrg |
branches: 1.102.2; in sockaddr_getsize_by_family() print the p_comm, pid and lid for unknown address family. helps location where missing af settings are.
|
#
1.101 |
|
10-Jan-2018 |
ozaki-r |
Don't start callouts for domains before attaching domains on rump kernels
On rump kernels, the callouts for domains, pffasttimo and pfslowtimo, started before domains were attached. Normally the callouts were dispatched after domain attaches (initializations) finished, however, under load the callouts could be executed prior to the attaches, resulting in that the callouts accessed unallocated or uninitialized resources.
|
Revision tags: tls-maxphys-base-20171202
|
#
1.100 |
|
09-Sep-2017 |
joerg |
Fix a race between sysctl_unpcblist and closef.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.99 |
|
05-Jul-2017 |
christos |
don't print diagnostic for AF_LINK
|
#
1.98 |
|
02-Jul-2017 |
christos |
don't warn about AF_LINK sockets with sa_len less than the size of the sockaddr
|
#
1.97 |
|
01-Jul-2017 |
christos |
put the code that returns the sizeof the socket by family in one place.
|
Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
|
#
1.96 |
|
02-Dec-2014 |
christos |
branches: 1.96.10; - add diagnostic check for sa_len - use new socket pretty printers to format sockaddr's
|
Revision tags: nick-nhusb-base
|
#
1.95 |
|
05-Sep-2014 |
matt |
branches: 1.95.2; Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get a correctly typed pointer.
|
#
1.94 |
|
22-Aug-2014 |
pooka |
Change the meaning of the boolean parameter to domaininit(). was: attach route domain if found from domains link set now: attach any domain which is found from domains link set
No functional change to monolithic kernel. In a rump kernel, which attaches networking domains "modularly", prevents domains from accidentally leaking in via the link set in static linked scenarios.
Problem reported by cube, Tom Bousso, and the voices in my head.
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
#
1.93 |
|
23-Apr-2014 |
pooka |
domains are attached by module(-like) constructors, so no need to play link_set games with them.
|
#
1.92 |
|
17-Apr-2014 |
christos |
CID/1203196: Don't confuse coverity with out of bounds access
|
#
1.91 |
|
02-Apr-2014 |
seanb |
branches: 1.91.2; len argument to strlcpy() was incorrect when copying out AF_LOCAL sockets in sysctl helper. The entire buffer wasn't available since sun_path member is not at offset 0 in struct sockaddr_un.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
|
#
1.90 |
|
25-Feb-2014 |
pooka |
Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
#
1.89 |
|
15-Sep-2013 |
martin |
Remove unused variables
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.88 |
|
31-Jan-2013 |
joerg |
branches: 1.88.2; Add sockaddr_format to ease debugging code dealing with socket addresses.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.87 |
|
27-Oct-2011 |
seanb |
branches: 1.87.2; 1.87.12; Use PR_SLOWHZ, PR_FASTHZ defines in a couple spots.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.86 |
|
29-May-2011 |
manu |
Add SOCK_SEQPACKET to PL_LOCAL sockets. Based on patch from Jesse Off, submitted 8 years ago: http://mail-index.netbsd.org/tech-kern/2003/04/14/0006.html
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.85 |
|
03-Oct-2009 |
elad |
branches: 1.85.4; 1.85.6; KAUTH_GENERIC_CANSEE -> KAUTH_REQ_NETWORK_SOCKET_CANSEE.
Not quite the same semantics but it's okay. Once our sockets have credentials (and they will) it's all the same.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.84 |
|
11-Sep-2009 |
dyoung |
Make ifconfig(8) set and display preference numbers for IPv6 addresses. Make the kernel support SIOC[SG]IFADDRPREF for IPv6 interface addresses.
In in6ifa_ifpforlinklocal(), consult preference numbers before making an otherwise arbitrary choice of in6_ifaddr. Otherwise, preference numbers are *not* consulted by the kernel, but that will be rather easy for somebody with a little bit of free time to fix.
Please note that setting the preference number for a link-local IPv6 address does not work right, yet, but that ought to be fixed soon.
In support of the changes above,
1 Add a method to struct domain for "externalizing" a sockaddr, and provide an implementation for IPv6. Expect more work in this area: it may be more proper to say that the IPv6 implementation "internalizes" a sockaddr. Add sockaddr_externalize().
2 Add a subroutine, sofamily(), that returns a struct socket's address family or AF_UNSPEC.
3 Make a lot of IPv4-specific code generic, and move it from sys/netinet/ to sys/net/ for re-use by IPv6 parts of the kernel and ifconfig(8).
|
#
1.83 |
|
08-Sep-2009 |
dyoung |
Delete whitespace at ends of lines.
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
|
#
1.82 |
|
27-May-2009 |
pooka |
Make domaininit() take an argument which determines if it should add the special PF_ROUTE domain or not (if available).
|
Revision tags: yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 jym-xensuspend-base
|
#
1.81 |
|
28-Apr-2009 |
dyoung |
Cosmetic: remove unnecessary parentheses.
|
#
1.80 |
|
28-Apr-2009 |
dyoung |
Extract sockaddr_any_by_family() from sockaddr_any() for looking up a wildcard ("any") address by protocol family instead of by sockaddr.
|
Revision tags: nick-hppapmap-base3 nick-hppapmap-base
|
#
1.79 |
|
15-Mar-2009 |
cegger |
ansify function definitions
|
#
1.78 |
|
11-Mar-2009 |
mrg |
like KERN_FILE2: *do* update "needed" when there is no count. we want userland to know what sort of size to provide..
while here, slightly normalise the previous to init_sysctl.c.
|
Revision tags: nick-hppapmap-base2 haad-dm-base2 haad-nbase2 haad-dm-base mjf-devfs2-base
|
#
1.77 |
|
07-Dec-2008 |
pooka |
branches: 1.77.2; Move some sysctl node creations away from linksets and into the constructors for subsystems.
XXX: CTLFLAG_PERMANENT is non-sensible.
|
Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base
|
#
1.76 |
|
24-Apr-2008 |
ad |
branches: 1.76.2; 1.76.8; 1.76.10; 1.76.12; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
Revision tags: yamt-pf42-baseX yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14
|
#
1.75 |
|
21-Mar-2008 |
ad |
branches: 1.75.2; Catch up with descriptor handling changes. See kern_descrip.c revision 1.173 for details.
|
Revision tags: keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
|
#
1.74 |
|
07-Jan-2008 |
ad |
branches: 1.74.6; Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.73 |
|
05-Jan-2008 |
dsl |
Use FILE_LOCK() and FILE_UNLOCK()
|
#
1.72 |
|
28-Dec-2007 |
ad |
Pull up 1.71.8.1.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
|
#
1.71 |
|
19-Sep-2007 |
dyoung |
branches: 1.71.6; 1.71.8; 1.71.12; 1) Introduce a new socket option, (SOL_SOCKET, SO_NOHEADER), that tells a socket that it should both add a protocol header to tx'd datagrams and remove the header from rx'd datagrams:
int onoff = 1, s = socket(...); setsockopt(s, SOL_SOCKET, SO_NOHEADER, &onoff);
2) Add an implementation of (SOL_SOCKET, SO_NOHEADER) for raw IPv4 sockets.
3) Reorganize the protocols' pr_ctloutput implementations a bit. Consistently return ENOPROTOOPT when an option is unsupported, and EINVAL if a supported option's arguments are incorrect. Reorganize the flow of code so that it's more clear how/when options are passed down the stack until they are handled.
Shorten some pr_ctloutput staircases for readability.
4) Extract common mbuf code into subroutines, add new sockaddr methods, and introduce a new subroutine, fsocreate(), for reuse later; use it first in sys_socket():
struct mbuf *m_getsombuf(struct socket *so)
Create an mbuf and make its owner the socket `so'.
struct mbuf *m_intopt(struct socket *so, int val)
Create an mbuf, make its owner the socket `so', put the int `val' into it, and set its length to sizeof(int).
int fsocreate(..., int *fd)
Create a socket, a la socreate(9), put the socket into the given LWP's descriptor table, return the descriptor at `fd' on success.
void *sockaddr_addr(struct sockaddr *sa, socklen_t *slenp) const void *sockaddr_const_addr(const struct sockaddr *sa, socklen_t *slenp)
Extract a pointer to the address part of a sockaddr. Write the length of the address part at `slenp', if `slenp' is not NULL.
socklen_t sockaddr_getlen(const struct sockaddr *sa)
Return the length of a sockaddr. This just evaluates to sa->sa_len. I only add this for consistency with code that appears in a portable userland library that I am going to import.
const struct sockaddr *sockaddr_any(const struct sockaddr *sa)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
const void *sockaddr_anyaddr(const struct sockaddr *sa, socklen_t *slenp)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
|
Revision tags: nick-csl-alignment-base5
|
#
1.70 |
|
01-Sep-2007 |
dyoung |
In sockaddr_copy(), stop caring about the destination sockaddr's family and length, it doesn't matter in the post-pool(9) sockaddr regime.
|
#
1.69 |
|
30-Aug-2007 |
dyoung |
Use malloc(9) for sockaddrs instead of pool(9), and remove dom_sa_pool and dom_sa_len members from struct domain. Pools of fixed-size objects are too rigid for sockaddr_dls, whose size can vary over a wide range.
Return sockaddr_dl to its "historical" size. Now that I'm using malloc(9) instead of pool(9) to allocate sockaddr_dl, I can create a sockaddr_dl of any size in the kernel, so expanding sockaddr_dl is useless.
Avoid using sizeof(struct sockaddr_dl) in the kernel.
Introduce sockaddr_dl_alloc() for allocating & initializing an arbitrary sockaddr_dl on the heap.
Add an argument, the sockaddr length, to sockaddr_alloc(), sockaddr_copy(), and sockaddr_dl_setaddr().
Constify: LLADDR() -> CLLADDR().
Where the kernel overwrites LLADDR(), use sockaddr_dl_setaddr(), instead. Used properly, sockaddr_dl_setaddr() will not overrun the end of the sockaddr.
|
Revision tags: matt-mips64-base
|
#
1.68 |
|
07-Aug-2007 |
dyoung |
branches: 1.68.2; 1.68.4; Lengthen sockaddr_dl so that a 16-byte FireWire address will fit into sdl_data[].
Move the macro satocsdl() to net/if_dl.h, and introduce satosdl().
Add some helpers for initializing sockaddr_dl (sockaddr_dl_init), for finding out the length to put in a sockaddr_dl's sdl_len member (sockaddr_dl_measure), and for setting the link-layer address in a sockaddr_dl to a new value (sockaddr_dl_setaddr).
Make sockaddr_copy() panic if the caller tries to copy a sockaddr to a destination where it will not fit.
|
#
1.67 |
|
19-Jul-2007 |
dyoung |
branches: 1.67.4; Take steps to hide the radix_node implementation of the forwarding table from the forwarding table's users:
Introduce rt_walktree() for walking the routing table and applying a function to each rtentry. Replace most rn_walktree() calls with it.
Use rt_getkey()/rt_setkey() to get/set a route's destination. Keep a pointer to the sockaddr key in the rtentry, so that rtentry users do not have to grovel in the radix_node for the key.
Add a RTM_GET method to rtrequest. Use that instead of radix_node lookups in, e.g., carp(4).
Add sys/net/link_proto.c, which supplies sockaddr routines for link-layer socket addresses (sockaddr_dl).
Cosmetic:
Constify. KNF. Stop open-coding LIST_FOREACH, TAILQ_FOREACH, et cetera. Use NULL instead of 0 for null pointers. Use __arraycount(). Reduce gratuitous parenthesization.
Stop using variadic arguments for rip6_output(), it is unnecessary.
Remove the unnecessary rtentry member rt_genmask and the code to maintain it, since nothing actually used it.
Make rt_maskedcopy() easier to read by using meaningful variable names.
Extract a subroutine intern_netmask() for looking up a netmask in the masks table.
Start converting backslash-ridden IPv6 macros in sys/netinet6/in6_var.h into inline subroutines that one can read without special eyeglasses.
One functional change: when the kernel serves an RTM_GET, RTM_LOCK, or RTM_CHANGE request, it applies the netmask (if supplied) to a destination before searching for it in the forwarding table.
I have changed sys/netinet/ip_carp.c, carp_setroute(), to remove the unlawful radix_node knowledge.
Apart from the changes to carp(4), netiso, ATM, and strip(4), I have run the changes on three nodes in my wireless routing testbed, which involves IPv4 + IPv6 dynamic routing acrobatics, and it's working beautifully so far.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.66 |
|
09-Jul-2007 |
ad |
branches: 1.66.2; Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes - select()/poll() improvements - miscellaneous MT safety improvements
|
Revision tags: yamt-idlelwp-base8
|
#
1.65 |
|
06-May-2007 |
dyoung |
In AppleTalk, IPv4, and IPv6 routing domains, help sockaddr_cmp() avoid an indirect function call by comparing the family, length, and bytes [dom->dom_sa_cmpofs, dom->dom_sa_cmpofs + dom->dom_sa_cmplen), corresponding to the the sockaddrs' "address" members.
For ISO, actually use sockaddr_iso_cmp, for a change. Thanks to yamt@ for pointing out my error.
|
#
1.64 |
|
02-May-2007 |
dyoung |
Eliminate address family-specific route caches (struct route, struct route_in6, struct route_iso), replacing all caches with a struct route.
The principle benefit of this change is that all of the protocol families can benefit from route cache-invalidation, which is necessary for correct routing. Route-cache invalidation fixes an ancient PR, kern/3508, at long last; it fixes various other PRs, also.
Discussions with and ideas from Joerg Sonnenberger influenced this work tremendously. Of course, all design oversights and bugs are mine.
DETAILS
1 I added to each address family a pool of sockaddrs. I have introduced routines for allocating, copying, and duplicating, and freeing sockaddrs:
struct sockaddr *sockaddr_alloc(sa_family_t af, int flags); struct sockaddr *sockaddr_copy(struct sockaddr *dst, const struct sockaddr *src); struct sockaddr *sockaddr_dup(const struct sockaddr *src, int flags); void sockaddr_free(struct sockaddr *sa);
sockaddr_alloc() returns either a sockaddr from the pool belonging to the specified family, or NULL if the pool is exhausted. The returned sockaddr has the right size for that family; sa_family and sa_len fields are initialized to the family and sockaddr length---e.g., sa_family = AF_INET and sa_len = sizeof(struct sockaddr_in). sockaddr_free() puts the given sockaddr back into its family's pool.
sockaddr_dup() and sockaddr_copy() work analogously to strdup() and strcpy(), respectively. sockaddr_copy() KASSERTs that the family of the destination and source sockaddrs are alike.
The 'flags' argumet for sockaddr_alloc() and sockaddr_dup() is passed directly to pool_get(9).
2 I added routines for initializing sockaddrs in each address family, sockaddr_in_init(), sockaddr_in6_init(), sockaddr_iso_init(), etc. They are fairly self-explanatory.
3 structs route_in6 and route_iso are no more. All protocol families use struct route. I have changed the route cache, 'struct route', so that it does not contain storage space for a sockaddr. Instead, struct route points to a sockaddr coming from the pool the sockaddr belongs to. I added a new method to struct route, rtcache_setdst(), for setting the cache destination:
int rtcache_setdst(struct route *, const struct sockaddr *);
rtcache_setdst() returns 0 on success, or ENOMEM if no memory is available to create the sockaddr storage.
It is now possible for rtcache_getdst() to return NULL if, say, rtcache_setdst() failed. I check the return value for NULL everywhere in the kernel.
4 Each routing domain (struct domain) has a list of live route caches, dom_rtcache. rtflushall(sa_family_t af) looks up the domain indicated by 'af', walks the domain's list of route caches and invalidates each one.
|
Revision tags: thorpej-atomic-base ad-audiomp-base
|
#
1.63 |
|
17-Feb-2007 |
dyoung |
branches: 1.63.4; 1.63.6; KNF: de-__P, bzero -> memset, bcmp -> memcmp. Remove extraneous parentheses in return statements.
Cosmetic: don't open-code TAILQ_FOREACH().
Cosmetic: change types of variables to avoid oodles of casts: in in6_src.c, avoid casts by changing several route_in6 pointers to struct route pointers. Remove unnecessary casts to caddr_t elsewhere.
Pave the way for eliminating address family-specific route caches: soon, struct route will not embed a sockaddr, but it will hold a reference to an external sockaddr, instead. We will set the destination sockaddr using rtcache_setdst(). (I created a stub for it, but it isn't used anywhere, yet.) rtcache_free() will free the sockaddr. I have extracted from rtcache_free() a helper subroutine, rtcache_clear(). rtcache_clear() will "forget" a cached route, but it will not forget the destination by releasing the sockaddr. I use rtcache_clear() instead of rtcache_free() in rtcache_update(), because rtcache_update() is not supposed to forget the destination.
Constify:
1 Introduce const accessor for route->ro_dst, rtcache_getdst().
2 Constify the 'dst' argument to ifnet->if_output(). This led me to constify a lot of code called by output routines.
3 Constify the sockaddr argument to protosw->pr_ctlinput. This led me to constify a lot of code called by ctlinput routines.
4 Introduce const macros for converting from a generic sockaddr to family-specific sockaddrs, e.g., sockaddr_in: satocsin6, satocsin, et cetera.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.62 |
|
01-Nov-2006 |
yamt |
branches: 1.62.4; remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.61 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.60 |
|
23-Jul-2006 |
ad |
branches: 1.60.6; Use the LWP cached credentials where sane.
|
#
1.59 |
|
16-Jul-2006 |
elad |
CURTAIN() -> KAUTH_GENERIC_CANSEE.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.58 |
|
13-Jun-2006 |
yamt |
sysctl_unpcblist: don't abuse kauth_authorize_process for non-process object.
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.57 |
|
14-May-2006 |
elad |
branches: 1.57.2; integrate kauth.
|
Revision tags: elad-kernelauth-base
|
#
1.56 |
|
15-Apr-2006 |
christos |
Coverity CID 716: Fix query size vs return results initialization.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.55 |
|
08-Dec-2005 |
thorpej |
branches: 1.55.4; 1.55.6; 1.55.8; 1.55.10; 1.55.12; Use ANSI function decls in one more place.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.54 |
|
07-Sep-2005 |
elad |
Use ``l'' and not ``curlwp''. Thanks to Peter Postma for catching this.
|
#
1.53 |
|
07-Sep-2005 |
elad |
Implement curtain for AF_LOCAL PCB lists.
|
#
1.52 |
|
09-Jun-2005 |
atatat |
branches: 1.52.2; Properly fix the constipated lossage wrt -Wcast-qual and the sysctl code. I know it's not the prettiest code, but it seems to work rather well in spite of itself.
|
#
1.51 |
|
29-May-2005 |
christos |
- add const. - remove unnecessary casts. - add __UNCONST casts and mark them with XXXUNCONST as necessary.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.50 |
|
09-Mar-2005 |
atatat |
Add the following nodes to the sysctl tree:
net.local.stream.pcblist net.local.dgram.pcblist net.inet.tcp.pcblist net.inet.udp.pcblist net.inet.raw.pcblist net.inet6.tcp6.pcblist net.inet6.udp6.pcblist net.inet6.raw6.pcblist
which allow retrieval of the pcbs in use for those protocols. The struct involved is 32/64 bit clean and incorporates parts of struct inpcb, struct unpcb, a bit of struct tcpcb, and two socket addresses.
|
Revision tags: yamt-km-base2 yamt-km-base
|
#
1.49 |
|
23-Jan-2005 |
matt |
branches: 1.49.2; Change initialzie of domains to use link sets. Switch to using STAILQ. Add a convenience macro DOMAIN_FOREACH to interate through the domain.
|
Revision tags: kent-audio1-beforemerge kent-audio1-base
|
#
1.48 |
|
25-May-2004 |
atatat |
branches: 1.48.4; Sysctl descriptions under net subtree (net.key not done)
|
#
1.47 |
|
22-Apr-2004 |
matt |
Constify protosw arrays. This can reduce the kernel .data section by over 4K (if all the network protocols) are loaded.
|
Revision tags: netbsd-2-0-base
|
#
1.46 |
|
24-Mar-2004 |
atatat |
branches: 1.46.2; Tango on sysctl_createv() and flags. The flags have all been renamed, and sysctl_createv() now uses more arguments.
|
#
1.45 |
|
23-Mar-2004 |
junyoung |
Nuke __P().
|
#
1.44 |
|
04-Dec-2003 |
atatat |
Dynamic sysctl.
Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(), vfs_sysctl(), etc, routines, along with sysctl_int() et al. Now all nodes are registered with the tree, and nodes can be added (or removed) easily, and I/O to and from the tree is handled generically.
Since the nodes are registered with the tree, the mapping from name to number (and back again) can now be discovered, instead of having to be hard coded. Adding new nodes to the tree is likewise much simpler -- the new infrastructure handles almost all the work for simple types, and just about anything else can be done with a small helper function.
All existing nodes are where they were before (numerically speaking), so all existing consumers of sysctl information should notice no difference.
PS - I'm sorry, but there's a distinct lack of documentation at the moment. I'm working on sysctl(3/8/9) right now, and I promise to watch out for buses.
|
#
1.43 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.42 |
|
06-Aug-2003 |
jonathan |
(FAST_IPSEC): attach PFKEY socket domain when either (KAME) IPSEC or FAST_IPSEC is configured. Likewise for sysctl.
|
#
1.41 |
|
29-Jun-2003 |
fvdl |
branches: 1.41.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
#
1.40 |
|
28-Jun-2003 |
darrenr |
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
#
1.39 |
|
23-Jun-2003 |
martin |
Make sure to include opt_foo.h if a defflag option FOO is used.
|
#
1.38 |
|
26-Feb-2003 |
matt |
Add MBUFTRACE kernel option. Do a little mbuf rework while here. Change all uses of MGET*(*, M_WAIT, *) to m_get*(M_WAIT, *). These are not performance critical and making them call m_get saves considerable space. Add m_clget analogue of MCLGET and make corresponding change for M_WAIT uses. Modify netinet, gem, fxp, tulip, nfs to support MBUFTRACE. Begin to change netstat to use sysctl.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.37 |
|
12-May-2002 |
matt |
Make domains extern.
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base thorpej-mips-cache-base
|
#
1.36 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
#
1.35 |
|
29-Oct-2001 |
simonb |
Don't need to include <uvm/uvm_extern.h> just to include <sys/sysctl.h> anymore.
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.34 |
|
11-Feb-2001 |
itojun |
branches: 1.34.2; 1.34.4; 1.34.8; add pfctlinput2() (pfctlinput() with args).
|
#
1.33 |
|
02-Oct-2000 |
itojun |
attach ARP domain only if INET is compiled into the kernel.
|
#
1.32 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.31 |
|
30-Mar-2000 |
augustss |
Get rid of register declarations.
|
#
1.30 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
Revision tags: chs-ubc2-newbase
|
#
1.29 |
|
06-Feb-2000 |
thorpej |
Implement pffinddomain(), and use it as appropriate.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
|
#
1.28 |
|
05-Aug-1999 |
sommerfeld |
branches: 1.28.2; Implement arp_drain(), which frees packets tied up in the arp cache if mbufs are in short supply. Create a (trivial) protocol domain for arp so that the drain routine will be called from m_reclaim()
|
Revision tags: chs-ubc2-base
|
#
1.27 |
|
09-Jul-1999 |
thorpej |
defopt IPSEC and IPSEC_ESP (both into opt_ipsec.h).
|
#
1.26 |
|
01-Jul-1999 |
itojun |
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.25 |
|
14-Jan-1999 |
thorpej |
branches: 1.25.4; 1.25.6; Garbage-collect some straggling netimp stuff.
|
Revision tags: kenh-if-detach-base chs-ubc-base eeh-paddr_t-base
|
#
1.24 |
|
05-Jul-1998 |
jonathan |
branches: 1.24.4; defopt NATM.
|
#
1.23 |
|
05-Jul-1998 |
jonathan |
defopt NS, NSIP.
|
#
1.22 |
|
05-Jul-1998 |
jonathan |
defopt ISO TPIP.
|
#
1.21 |
|
05-Jul-1998 |
jonathan |
defopt CCITT.
|
#
1.20 |
|
05-Jul-1998 |
jonathan |
defopt INET, NETATALK.
|
#
1.19 |
|
06-May-1998 |
thorpej |
Add monotonically increasing "current time" stamps for pfslowtimo() and pffasttimo().
|
#
1.18 |
|
01-Mar-1998 |
fvdl |
Merge with Lite2 + local changes
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base thorpej-signal-base marc-pcmcia-bp marc-pcmcia-base
|
#
1.17 |
|
04-Apr-1997 |
christos |
Add netatalk domain.
|
Revision tags: is-newarp-before-merge is-newarp-base
|
#
1.16 |
|
14-Aug-1996 |
explorer |
formatting fix only
|
#
1.15 |
|
04-Jul-1996 |
chuck |
add native mode atm protocol layer
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.14 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.13 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.12 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.11 |
|
13-May-1994 |
mycroft |
Update to 4.4-Lite networking code, with a few local changes.
|
#
1.10 |
|
07-May-1994 |
cgd |
stub for sysctl
|
#
1.9 |
|
05-May-1994 |
mycroft |
Remove now-bogus casts.
|
#
1.8 |
|
05-May-1994 |
cgd |
lots of changes: prototype migration, move lots of variables, definitions, and structure elements around. kill some unnecessary type and macro definitions. standardize clock handling. More changes than you'd want.
|
#
1.7 |
|
29-Apr-1994 |
cgd |
change timeout/untimeout/wakeup/sleep/tsleep args to void *
|
#
1.6 |
|
14-Jan-1994 |
deraadt |
prevent an explicit splimp->splnet lowering. (which blows up on machines with a levelled-spl system that check for lowering) de-ansify two function definitions.
|
#
1.5 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.4 |
|
27-Jun-1993 |
andrew |
branches: 1.4.4; ANSIfications - removed all implicit function return types and argument definitions. Ensured that all files include "systm.h" to gain access to general prototypes. Casts where necessary.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
10-Apr-1993 |
glass |
fixed to be compliant, subservient, and to take advantage of the newly hacked config(8)
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
#
1.101 |
|
10-Jan-2018 |
ozaki-r |
Don't start callouts for domains before attaching domains on rump kernels
On rump kernels, the callouts for domains, pffasttimo and pfslowtimo, started before domains were attached. Normally the callouts were dispatched after domain attaches (initializations) finished, however, under load the callouts could be executed prior to the attaches, resulting in that the callouts accessed unallocated or uninitialized resources.
|
Revision tags: tls-maxphys-base-20171202
|
#
1.100 |
|
09-Sep-2017 |
joerg |
Fix a race between sysctl_unpcblist and closef.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.99 |
|
05-Jul-2017 |
christos |
don't print diagnostic for AF_LINK
|
#
1.98 |
|
02-Jul-2017 |
christos |
don't warn about AF_LINK sockets with sa_len less than the size of the sockaddr
|
#
1.97 |
|
01-Jul-2017 |
christos |
put the code that returns the sizeof the socket by family in one place.
|
Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
|
#
1.96 |
|
02-Dec-2014 |
christos |
branches: 1.96.10; - add diagnostic check for sa_len - use new socket pretty printers to format sockaddr's
|
Revision tags: nick-nhusb-base
|
#
1.95 |
|
05-Sep-2014 |
matt |
branches: 1.95.2; Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get a correctly typed pointer.
|
#
1.94 |
|
22-Aug-2014 |
pooka |
Change the meaning of the boolean parameter to domaininit(). was: attach route domain if found from domains link set now: attach any domain which is found from domains link set
No functional change to monolithic kernel. In a rump kernel, which attaches networking domains "modularly", prevents domains from accidentally leaking in via the link set in static linked scenarios.
Problem reported by cube, Tom Bousso, and the voices in my head.
|
Revision tags: netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
#
1.93 |
|
23-Apr-2014 |
pooka |
domains are attached by module(-like) constructors, so no need to play link_set games with them.
|
#
1.92 |
|
17-Apr-2014 |
christos |
CID/1203196: Don't confuse coverity with out of bounds access
|
#
1.91 |
|
02-Apr-2014 |
seanb |
branches: 1.91.2; len argument to strlcpy() was incorrect when copying out AF_LOCAL sockets in sysctl helper. The entire buffer wasn't available since sun_path member is not at offset 0 in struct sockaddr_un.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
|
#
1.90 |
|
25-Feb-2014 |
pooka |
Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
#
1.89 |
|
15-Sep-2013 |
martin |
Remove unused variables
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.88 |
|
31-Jan-2013 |
joerg |
branches: 1.88.2; Add sockaddr_format to ease debugging code dealing with socket addresses.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.87 |
|
27-Oct-2011 |
seanb |
branches: 1.87.2; 1.87.12; Use PR_SLOWHZ, PR_FASTHZ defines in a couple spots.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.86 |
|
29-May-2011 |
manu |
Add SOCK_SEQPACKET to PL_LOCAL sockets. Based on patch from Jesse Off, submitted 8 years ago: http://mail-index.netbsd.org/tech-kern/2003/04/14/0006.html
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.85 |
|
03-Oct-2009 |
elad |
branches: 1.85.4; 1.85.6; KAUTH_GENERIC_CANSEE -> KAUTH_REQ_NETWORK_SOCKET_CANSEE.
Not quite the same semantics but it's okay. Once our sockets have credentials (and they will) it's all the same.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.84 |
|
11-Sep-2009 |
dyoung |
Make ifconfig(8) set and display preference numbers for IPv6 addresses. Make the kernel support SIOC[SG]IFADDRPREF for IPv6 interface addresses.
In in6ifa_ifpforlinklocal(), consult preference numbers before making an otherwise arbitrary choice of in6_ifaddr. Otherwise, preference numbers are *not* consulted by the kernel, but that will be rather easy for somebody with a little bit of free time to fix.
Please note that setting the preference number for a link-local IPv6 address does not work right, yet, but that ought to be fixed soon.
In support of the changes above,
1 Add a method to struct domain for "externalizing" a sockaddr, and provide an implementation for IPv6. Expect more work in this area: it may be more proper to say that the IPv6 implementation "internalizes" a sockaddr. Add sockaddr_externalize().
2 Add a subroutine, sofamily(), that returns a struct socket's address family or AF_UNSPEC.
3 Make a lot of IPv4-specific code generic, and move it from sys/netinet/ to sys/net/ for re-use by IPv6 parts of the kernel and ifconfig(8).
|
#
1.83 |
|
08-Sep-2009 |
dyoung |
Delete whitespace at ends of lines.
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
|
#
1.82 |
|
27-May-2009 |
pooka |
Make domaininit() take an argument which determines if it should add the special PF_ROUTE domain or not (if available).
|
Revision tags: yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 jym-xensuspend-base
|
#
1.81 |
|
28-Apr-2009 |
dyoung |
Cosmetic: remove unnecessary parentheses.
|
#
1.80 |
|
28-Apr-2009 |
dyoung |
Extract sockaddr_any_by_family() from sockaddr_any() for looking up a wildcard ("any") address by protocol family instead of by sockaddr.
|
Revision tags: nick-hppapmap-base3 nick-hppapmap-base
|
#
1.79 |
|
15-Mar-2009 |
cegger |
ansify function definitions
|
#
1.78 |
|
11-Mar-2009 |
mrg |
like KERN_FILE2: *do* update "needed" when there is no count. we want userland to know what sort of size to provide..
while here, slightly normalise the previous to init_sysctl.c.
|
Revision tags: nick-hppapmap-base2 haad-dm-base2 haad-nbase2 haad-dm-base mjf-devfs2-base
|
#
1.77 |
|
07-Dec-2008 |
pooka |
branches: 1.77.2; Move some sysctl node creations away from linksets and into the constructors for subsystems.
XXX: CTLFLAG_PERMANENT is non-sensible.
|
Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base
|
#
1.76 |
|
24-Apr-2008 |
ad |
branches: 1.76.2; 1.76.8; 1.76.10; 1.76.12; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
Revision tags: yamt-pf42-baseX yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14
|
#
1.75 |
|
21-Mar-2008 |
ad |
branches: 1.75.2; Catch up with descriptor handling changes. See kern_descrip.c revision 1.173 for details.
|
Revision tags: keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
|
#
1.74 |
|
07-Jan-2008 |
ad |
branches: 1.74.6; Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.73 |
|
05-Jan-2008 |
dsl |
Use FILE_LOCK() and FILE_UNLOCK()
|
#
1.72 |
|
28-Dec-2007 |
ad |
Pull up 1.71.8.1.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
|
#
1.71 |
|
19-Sep-2007 |
dyoung |
branches: 1.71.6; 1.71.8; 1.71.12; 1) Introduce a new socket option, (SOL_SOCKET, SO_NOHEADER), that tells a socket that it should both add a protocol header to tx'd datagrams and remove the header from rx'd datagrams:
int onoff = 1, s = socket(...); setsockopt(s, SOL_SOCKET, SO_NOHEADER, &onoff);
2) Add an implementation of (SOL_SOCKET, SO_NOHEADER) for raw IPv4 sockets.
3) Reorganize the protocols' pr_ctloutput implementations a bit. Consistently return ENOPROTOOPT when an option is unsupported, and EINVAL if a supported option's arguments are incorrect. Reorganize the flow of code so that it's more clear how/when options are passed down the stack until they are handled.
Shorten some pr_ctloutput staircases for readability.
4) Extract common mbuf code into subroutines, add new sockaddr methods, and introduce a new subroutine, fsocreate(), for reuse later; use it first in sys_socket():
struct mbuf *m_getsombuf(struct socket *so)
Create an mbuf and make its owner the socket `so'.
struct mbuf *m_intopt(struct socket *so, int val)
Create an mbuf, make its owner the socket `so', put the int `val' into it, and set its length to sizeof(int).
int fsocreate(..., int *fd)
Create a socket, a la socreate(9), put the socket into the given LWP's descriptor table, return the descriptor at `fd' on success.
void *sockaddr_addr(struct sockaddr *sa, socklen_t *slenp) const void *sockaddr_const_addr(const struct sockaddr *sa, socklen_t *slenp)
Extract a pointer to the address part of a sockaddr. Write the length of the address part at `slenp', if `slenp' is not NULL.
socklen_t sockaddr_getlen(const struct sockaddr *sa)
Return the length of a sockaddr. This just evaluates to sa->sa_len. I only add this for consistency with code that appears in a portable userland library that I am going to import.
const struct sockaddr *sockaddr_any(const struct sockaddr *sa)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
const void *sockaddr_anyaddr(const struct sockaddr *sa, socklen_t *slenp)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
|
Revision tags: nick-csl-alignment-base5
|
#
1.70 |
|
01-Sep-2007 |
dyoung |
In sockaddr_copy(), stop caring about the destination sockaddr's family and length, it doesn't matter in the post-pool(9) sockaddr regime.
|
#
1.69 |
|
30-Aug-2007 |
dyoung |
Use malloc(9) for sockaddrs instead of pool(9), and remove dom_sa_pool and dom_sa_len members from struct domain. Pools of fixed-size objects are too rigid for sockaddr_dls, whose size can vary over a wide range.
Return sockaddr_dl to its "historical" size. Now that I'm using malloc(9) instead of pool(9) to allocate sockaddr_dl, I can create a sockaddr_dl of any size in the kernel, so expanding sockaddr_dl is useless.
Avoid using sizeof(struct sockaddr_dl) in the kernel.
Introduce sockaddr_dl_alloc() for allocating & initializing an arbitrary sockaddr_dl on the heap.
Add an argument, the sockaddr length, to sockaddr_alloc(), sockaddr_copy(), and sockaddr_dl_setaddr().
Constify: LLADDR() -> CLLADDR().
Where the kernel overwrites LLADDR(), use sockaddr_dl_setaddr(), instead. Used properly, sockaddr_dl_setaddr() will not overrun the end of the sockaddr.
|
Revision tags: matt-mips64-base
|
#
1.68 |
|
07-Aug-2007 |
dyoung |
branches: 1.68.2; 1.68.4; Lengthen sockaddr_dl so that a 16-byte FireWire address will fit into sdl_data[].
Move the macro satocsdl() to net/if_dl.h, and introduce satosdl().
Add some helpers for initializing sockaddr_dl (sockaddr_dl_init), for finding out the length to put in a sockaddr_dl's sdl_len member (sockaddr_dl_measure), and for setting the link-layer address in a sockaddr_dl to a new value (sockaddr_dl_setaddr).
Make sockaddr_copy() panic if the caller tries to copy a sockaddr to a destination where it will not fit.
|
#
1.67 |
|
19-Jul-2007 |
dyoung |
branches: 1.67.4; Take steps to hide the radix_node implementation of the forwarding table from the forwarding table's users:
Introduce rt_walktree() for walking the routing table and applying a function to each rtentry. Replace most rn_walktree() calls with it.
Use rt_getkey()/rt_setkey() to get/set a route's destination. Keep a pointer to the sockaddr key in the rtentry, so that rtentry users do not have to grovel in the radix_node for the key.
Add a RTM_GET method to rtrequest. Use that instead of radix_node lookups in, e.g., carp(4).
Add sys/net/link_proto.c, which supplies sockaddr routines for link-layer socket addresses (sockaddr_dl).
Cosmetic:
Constify. KNF. Stop open-coding LIST_FOREACH, TAILQ_FOREACH, et cetera. Use NULL instead of 0 for null pointers. Use __arraycount(). Reduce gratuitous parenthesization.
Stop using variadic arguments for rip6_output(), it is unnecessary.
Remove the unnecessary rtentry member rt_genmask and the code to maintain it, since nothing actually used it.
Make rt_maskedcopy() easier to read by using meaningful variable names.
Extract a subroutine intern_netmask() for looking up a netmask in the masks table.
Start converting backslash-ridden IPv6 macros in sys/netinet6/in6_var.h into inline subroutines that one can read without special eyeglasses.
One functional change: when the kernel serves an RTM_GET, RTM_LOCK, or RTM_CHANGE request, it applies the netmask (if supplied) to a destination before searching for it in the forwarding table.
I have changed sys/netinet/ip_carp.c, carp_setroute(), to remove the unlawful radix_node knowledge.
Apart from the changes to carp(4), netiso, ATM, and strip(4), I have run the changes on three nodes in my wireless routing testbed, which involves IPv4 + IPv6 dynamic routing acrobatics, and it's working beautifully so far.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.66 |
|
09-Jul-2007 |
ad |
branches: 1.66.2; Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes - select()/poll() improvements - miscellaneous MT safety improvements
|
Revision tags: yamt-idlelwp-base8
|
#
1.65 |
|
06-May-2007 |
dyoung |
In AppleTalk, IPv4, and IPv6 routing domains, help sockaddr_cmp() avoid an indirect function call by comparing the family, length, and bytes [dom->dom_sa_cmpofs, dom->dom_sa_cmpofs + dom->dom_sa_cmplen), corresponding to the the sockaddrs' "address" members.
For ISO, actually use sockaddr_iso_cmp, for a change. Thanks to yamt@ for pointing out my error.
|
#
1.64 |
|
02-May-2007 |
dyoung |
Eliminate address family-specific route caches (struct route, struct route_in6, struct route_iso), replacing all caches with a struct route.
The principle benefit of this change is that all of the protocol families can benefit from route cache-invalidation, which is necessary for correct routing. Route-cache invalidation fixes an ancient PR, kern/3508, at long last; it fixes various other PRs, also.
Discussions with and ideas from Joerg Sonnenberger influenced this work tremendously. Of course, all design oversights and bugs are mine.
DETAILS
1 I added to each address family a pool of sockaddrs. I have introduced routines for allocating, copying, and duplicating, and freeing sockaddrs:
struct sockaddr *sockaddr_alloc(sa_family_t af, int flags); struct sockaddr *sockaddr_copy(struct sockaddr *dst, const struct sockaddr *src); struct sockaddr *sockaddr_dup(const struct sockaddr *src, int flags); void sockaddr_free(struct sockaddr *sa);
sockaddr_alloc() returns either a sockaddr from the pool belonging to the specified family, or NULL if the pool is exhausted. The returned sockaddr has the right size for that family; sa_family and sa_len fields are initialized to the family and sockaddr length---e.g., sa_family = AF_INET and sa_len = sizeof(struct sockaddr_in). sockaddr_free() puts the given sockaddr back into its family's pool.
sockaddr_dup() and sockaddr_copy() work analogously to strdup() and strcpy(), respectively. sockaddr_copy() KASSERTs that the family of the destination and source sockaddrs are alike.
The 'flags' argumet for sockaddr_alloc() and sockaddr_dup() is passed directly to pool_get(9).
2 I added routines for initializing sockaddrs in each address family, sockaddr_in_init(), sockaddr_in6_init(), sockaddr_iso_init(), etc. They are fairly self-explanatory.
3 structs route_in6 and route_iso are no more. All protocol families use struct route. I have changed the route cache, 'struct route', so that it does not contain storage space for a sockaddr. Instead, struct route points to a sockaddr coming from the pool the sockaddr belongs to. I added a new method to struct route, rtcache_setdst(), for setting the cache destination:
int rtcache_setdst(struct route *, const struct sockaddr *);
rtcache_setdst() returns 0 on success, or ENOMEM if no memory is available to create the sockaddr storage.
It is now possible for rtcache_getdst() to return NULL if, say, rtcache_setdst() failed. I check the return value for NULL everywhere in the kernel.
4 Each routing domain (struct domain) has a list of live route caches, dom_rtcache. rtflushall(sa_family_t af) looks up the domain indicated by 'af', walks the domain's list of route caches and invalidates each one.
|
Revision tags: thorpej-atomic-base ad-audiomp-base
|
#
1.63 |
|
17-Feb-2007 |
dyoung |
branches: 1.63.4; 1.63.6; KNF: de-__P, bzero -> memset, bcmp -> memcmp. Remove extraneous parentheses in return statements.
Cosmetic: don't open-code TAILQ_FOREACH().
Cosmetic: change types of variables to avoid oodles of casts: in in6_src.c, avoid casts by changing several route_in6 pointers to struct route pointers. Remove unnecessary casts to caddr_t elsewhere.
Pave the way for eliminating address family-specific route caches: soon, struct route will not embed a sockaddr, but it will hold a reference to an external sockaddr, instead. We will set the destination sockaddr using rtcache_setdst(). (I created a stub for it, but it isn't used anywhere, yet.) rtcache_free() will free the sockaddr. I have extracted from rtcache_free() a helper subroutine, rtcache_clear(). rtcache_clear() will "forget" a cached route, but it will not forget the destination by releasing the sockaddr. I use rtcache_clear() instead of rtcache_free() in rtcache_update(), because rtcache_update() is not supposed to forget the destination.
Constify:
1 Introduce const accessor for route->ro_dst, rtcache_getdst().
2 Constify the 'dst' argument to ifnet->if_output(). This led me to constify a lot of code called by output routines.
3 Constify the sockaddr argument to protosw->pr_ctlinput. This led me to constify a lot of code called by ctlinput routines.
4 Introduce const macros for converting from a generic sockaddr to family-specific sockaddrs, e.g., sockaddr_in: satocsin6, satocsin, et cetera.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.62 |
|
01-Nov-2006 |
yamt |
branches: 1.62.4; remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.61 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.60 |
|
23-Jul-2006 |
ad |
branches: 1.60.6; Use the LWP cached credentials where sane.
|
#
1.59 |
|
16-Jul-2006 |
elad |
CURTAIN() -> KAUTH_GENERIC_CANSEE.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.58 |
|
13-Jun-2006 |
yamt |
sysctl_unpcblist: don't abuse kauth_authorize_process for non-process object.
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.57 |
|
14-May-2006 |
elad |
branches: 1.57.2; integrate kauth.
|
Revision tags: elad-kernelauth-base
|
#
1.56 |
|
15-Apr-2006 |
christos |
Coverity CID 716: Fix query size vs return results initialization.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.55 |
|
08-Dec-2005 |
thorpej |
branches: 1.55.4; 1.55.6; 1.55.8; 1.55.10; 1.55.12; Use ANSI function decls in one more place.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.54 |
|
07-Sep-2005 |
elad |
Use ``l'' and not ``curlwp''. Thanks to Peter Postma for catching this.
|
#
1.53 |
|
07-Sep-2005 |
elad |
Implement curtain for AF_LOCAL PCB lists.
|
#
1.52 |
|
09-Jun-2005 |
atatat |
branches: 1.52.2; Properly fix the constipated lossage wrt -Wcast-qual and the sysctl code. I know it's not the prettiest code, but it seems to work rather well in spite of itself.
|
#
1.51 |
|
29-May-2005 |
christos |
- add const. - remove unnecessary casts. - add __UNCONST casts and mark them with XXXUNCONST as necessary.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.50 |
|
09-Mar-2005 |
atatat |
Add the following nodes to the sysctl tree:
net.local.stream.pcblist net.local.dgram.pcblist net.inet.tcp.pcblist net.inet.udp.pcblist net.inet.raw.pcblist net.inet6.tcp6.pcblist net.inet6.udp6.pcblist net.inet6.raw6.pcblist
which allow retrieval of the pcbs in use for those protocols. The struct involved is 32/64 bit clean and incorporates parts of struct inpcb, struct unpcb, a bit of struct tcpcb, and two socket addresses.
|
Revision tags: yamt-km-base2 yamt-km-base
|
#
1.49 |
|
23-Jan-2005 |
matt |
branches: 1.49.2; Change initialzie of domains to use link sets. Switch to using STAILQ. Add a convenience macro DOMAIN_FOREACH to interate through the domain.
|
Revision tags: kent-audio1-beforemerge kent-audio1-base
|
#
1.48 |
|
25-May-2004 |
atatat |
branches: 1.48.4; Sysctl descriptions under net subtree (net.key not done)
|
#
1.47 |
|
22-Apr-2004 |
matt |
Constify protosw arrays. This can reduce the kernel .data section by over 4K (if all the network protocols) are loaded.
|
Revision tags: netbsd-2-0-base
|
#
1.46 |
|
24-Mar-2004 |
atatat |
branches: 1.46.2; Tango on sysctl_createv() and flags. The flags have all been renamed, and sysctl_createv() now uses more arguments.
|
#
1.45 |
|
23-Mar-2004 |
junyoung |
Nuke __P().
|
#
1.44 |
|
04-Dec-2003 |
atatat |
Dynamic sysctl.
Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(), vfs_sysctl(), etc, routines, along with sysctl_int() et al. Now all nodes are registered with the tree, and nodes can be added (or removed) easily, and I/O to and from the tree is handled generically.
Since the nodes are registered with the tree, the mapping from name to number (and back again) can now be discovered, instead of having to be hard coded. Adding new nodes to the tree is likewise much simpler -- the new infrastructure handles almost all the work for simple types, and just about anything else can be done with a small helper function.
All existing nodes are where they were before (numerically speaking), so all existing consumers of sysctl information should notice no difference.
PS - I'm sorry, but there's a distinct lack of documentation at the moment. I'm working on sysctl(3/8/9) right now, and I promise to watch out for buses.
|
#
1.43 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.42 |
|
06-Aug-2003 |
jonathan |
(FAST_IPSEC): attach PFKEY socket domain when either (KAME) IPSEC or FAST_IPSEC is configured. Likewise for sysctl.
|
#
1.41 |
|
29-Jun-2003 |
fvdl |
branches: 1.41.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
#
1.40 |
|
28-Jun-2003 |
darrenr |
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
#
1.39 |
|
23-Jun-2003 |
martin |
Make sure to include opt_foo.h if a defflag option FOO is used.
|
#
1.38 |
|
26-Feb-2003 |
matt |
Add MBUFTRACE kernel option. Do a little mbuf rework while here. Change all uses of MGET*(*, M_WAIT, *) to m_get*(M_WAIT, *). These are not performance critical and making them call m_get saves considerable space. Add m_clget analogue of MCLGET and make corresponding change for M_WAIT uses. Modify netinet, gem, fxp, tulip, nfs to support MBUFTRACE. Begin to change netstat to use sysctl.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.37 |
|
12-May-2002 |
matt |
Make domains extern.
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base thorpej-mips-cache-base
|
#
1.36 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
#
1.35 |
|
29-Oct-2001 |
simonb |
Don't need to include <uvm/uvm_extern.h> just to include <sys/sysctl.h> anymore.
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.34 |
|
11-Feb-2001 |
itojun |
branches: 1.34.2; 1.34.4; 1.34.8; add pfctlinput2() (pfctlinput() with args).
|
#
1.33 |
|
02-Oct-2000 |
itojun |
attach ARP domain only if INET is compiled into the kernel.
|
#
1.32 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.31 |
|
30-Mar-2000 |
augustss |
Get rid of register declarations.
|
#
1.30 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
Revision tags: chs-ubc2-newbase
|
#
1.29 |
|
06-Feb-2000 |
thorpej |
Implement pffinddomain(), and use it as appropriate.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
|
#
1.28 |
|
05-Aug-1999 |
sommerfeld |
branches: 1.28.2; Implement arp_drain(), which frees packets tied up in the arp cache if mbufs are in short supply. Create a (trivial) protocol domain for arp so that the drain routine will be called from m_reclaim()
|
Revision tags: chs-ubc2-base
|
#
1.27 |
|
09-Jul-1999 |
thorpej |
defopt IPSEC and IPSEC_ESP (both into opt_ipsec.h).
|
#
1.26 |
|
01-Jul-1999 |
itojun |
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.25 |
|
14-Jan-1999 |
thorpej |
branches: 1.25.4; 1.25.6; Garbage-collect some straggling netimp stuff.
|
Revision tags: kenh-if-detach-base chs-ubc-base eeh-paddr_t-base
|
#
1.24 |
|
05-Jul-1998 |
jonathan |
branches: 1.24.4; defopt NATM.
|
#
1.23 |
|
05-Jul-1998 |
jonathan |
defopt NS, NSIP.
|
#
1.22 |
|
05-Jul-1998 |
jonathan |
defopt ISO TPIP.
|
#
1.21 |
|
05-Jul-1998 |
jonathan |
defopt CCITT.
|
#
1.20 |
|
05-Jul-1998 |
jonathan |
defopt INET, NETATALK.
|
#
1.19 |
|
06-May-1998 |
thorpej |
Add monotonically increasing "current time" stamps for pfslowtimo() and pffasttimo().
|
#
1.18 |
|
01-Mar-1998 |
fvdl |
Merge with Lite2 + local changes
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base thorpej-signal-base marc-pcmcia-bp marc-pcmcia-base
|
#
1.17 |
|
04-Apr-1997 |
christos |
Add netatalk domain.
|
Revision tags: is-newarp-before-merge is-newarp-base
|
#
1.16 |
|
14-Aug-1996 |
explorer |
formatting fix only
|
#
1.15 |
|
04-Jul-1996 |
chuck |
add native mode atm protocol layer
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.14 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.13 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.12 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.11 |
|
13-May-1994 |
mycroft |
Update to 4.4-Lite networking code, with a few local changes.
|
#
1.10 |
|
07-May-1994 |
cgd |
stub for sysctl
|
#
1.9 |
|
05-May-1994 |
mycroft |
Remove now-bogus casts.
|
#
1.8 |
|
05-May-1994 |
cgd |
lots of changes: prototype migration, move lots of variables, definitions, and structure elements around. kill some unnecessary type and macro definitions. standardize clock handling. More changes than you'd want.
|
#
1.7 |
|
29-Apr-1994 |
cgd |
change timeout/untimeout/wakeup/sleep/tsleep args to void *
|
#
1.6 |
|
14-Jan-1994 |
deraadt |
prevent an explicit splimp->splnet lowering. (which blows up on machines with a levelled-spl system that check for lowering) de-ansify two function definitions.
|
#
1.5 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.4 |
|
27-Jun-1993 |
andrew |
branches: 1.4.4; ANSIfications - removed all implicit function return types and argument definitions. Ensured that all files include "systm.h" to gain access to general prototypes. Casts where necessary.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
10-Apr-1993 |
glass |
fixed to be compliant, subservient, and to take advantage of the newly hacked config(8)
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
#
1.100 |
|
09-Sep-2017 |
joerg |
Fix a race between sysctl_unpcblist and closef.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.99 |
|
05-Jul-2017 |
christos |
don't print diagnostic for AF_LINK
|
#
1.98 |
|
02-Jul-2017 |
christos |
don't warn about AF_LINK sockets with sa_len less than the size of the sockaddr
|
#
1.97 |
|
01-Jul-2017 |
christos |
put the code that returns the sizeof the socket by family in one place.
|
Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
|
#
1.96 |
|
02-Dec-2014 |
christos |
branches: 1.96.10; - add diagnostic check for sa_len - use new socket pretty printers to format sockaddr's
|
Revision tags: nick-nhusb-base
|
#
1.95 |
|
05-Sep-2014 |
matt |
branches: 1.95.2; Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get a correctly typed pointer.
|
#
1.94 |
|
22-Aug-2014 |
pooka |
Change the meaning of the boolean parameter to domaininit(). was: attach route domain if found from domains link set now: attach any domain which is found from domains link set
No functional change to monolithic kernel. In a rump kernel, which attaches networking domains "modularly", prevents domains from accidentally leaking in via the link set in static linked scenarios.
Problem reported by cube, Tom Bousso, and the voices in my head.
|
Revision tags: netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
#
1.93 |
|
23-Apr-2014 |
pooka |
domains are attached by module(-like) constructors, so no need to play link_set games with them.
|
#
1.92 |
|
17-Apr-2014 |
christos |
CID/1203196: Don't confuse coverity with out of bounds access
|
#
1.91 |
|
02-Apr-2014 |
seanb |
branches: 1.91.2; len argument to strlcpy() was incorrect when copying out AF_LOCAL sockets in sysctl helper. The entire buffer wasn't available since sun_path member is not at offset 0 in struct sockaddr_un.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
|
#
1.90 |
|
25-Feb-2014 |
pooka |
Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
#
1.89 |
|
15-Sep-2013 |
martin |
Remove unused variables
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.88 |
|
31-Jan-2013 |
joerg |
branches: 1.88.2; Add sockaddr_format to ease debugging code dealing with socket addresses.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.87 |
|
27-Oct-2011 |
seanb |
branches: 1.87.2; 1.87.12; Use PR_SLOWHZ, PR_FASTHZ defines in a couple spots.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.86 |
|
29-May-2011 |
manu |
Add SOCK_SEQPACKET to PL_LOCAL sockets. Based on patch from Jesse Off, submitted 8 years ago: http://mail-index.netbsd.org/tech-kern/2003/04/14/0006.html
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.85 |
|
03-Oct-2009 |
elad |
branches: 1.85.4; 1.85.6; KAUTH_GENERIC_CANSEE -> KAUTH_REQ_NETWORK_SOCKET_CANSEE.
Not quite the same semantics but it's okay. Once our sockets have credentials (and they will) it's all the same.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.84 |
|
11-Sep-2009 |
dyoung |
Make ifconfig(8) set and display preference numbers for IPv6 addresses. Make the kernel support SIOC[SG]IFADDRPREF for IPv6 interface addresses.
In in6ifa_ifpforlinklocal(), consult preference numbers before making an otherwise arbitrary choice of in6_ifaddr. Otherwise, preference numbers are *not* consulted by the kernel, but that will be rather easy for somebody with a little bit of free time to fix.
Please note that setting the preference number for a link-local IPv6 address does not work right, yet, but that ought to be fixed soon.
In support of the changes above,
1 Add a method to struct domain for "externalizing" a sockaddr, and provide an implementation for IPv6. Expect more work in this area: it may be more proper to say that the IPv6 implementation "internalizes" a sockaddr. Add sockaddr_externalize().
2 Add a subroutine, sofamily(), that returns a struct socket's address family or AF_UNSPEC.
3 Make a lot of IPv4-specific code generic, and move it from sys/netinet/ to sys/net/ for re-use by IPv6 parts of the kernel and ifconfig(8).
|
#
1.83 |
|
08-Sep-2009 |
dyoung |
Delete whitespace at ends of lines.
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
|
#
1.82 |
|
27-May-2009 |
pooka |
Make domaininit() take an argument which determines if it should add the special PF_ROUTE domain or not (if available).
|
Revision tags: yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 jym-xensuspend-base
|
#
1.81 |
|
28-Apr-2009 |
dyoung |
Cosmetic: remove unnecessary parentheses.
|
#
1.80 |
|
28-Apr-2009 |
dyoung |
Extract sockaddr_any_by_family() from sockaddr_any() for looking up a wildcard ("any") address by protocol family instead of by sockaddr.
|
Revision tags: nick-hppapmap-base3 nick-hppapmap-base
|
#
1.79 |
|
15-Mar-2009 |
cegger |
ansify function definitions
|
#
1.78 |
|
11-Mar-2009 |
mrg |
like KERN_FILE2: *do* update "needed" when there is no count. we want userland to know what sort of size to provide..
while here, slightly normalise the previous to init_sysctl.c.
|
Revision tags: nick-hppapmap-base2 haad-dm-base2 haad-nbase2 haad-dm-base mjf-devfs2-base
|
#
1.77 |
|
07-Dec-2008 |
pooka |
branches: 1.77.2; Move some sysctl node creations away from linksets and into the constructors for subsystems.
XXX: CTLFLAG_PERMANENT is non-sensible.
|
Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base
|
#
1.76 |
|
24-Apr-2008 |
ad |
branches: 1.76.2; 1.76.8; 1.76.10; 1.76.12; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
Revision tags: yamt-pf42-baseX yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14
|
#
1.75 |
|
21-Mar-2008 |
ad |
branches: 1.75.2; Catch up with descriptor handling changes. See kern_descrip.c revision 1.173 for details.
|
Revision tags: keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
|
#
1.74 |
|
07-Jan-2008 |
ad |
branches: 1.74.6; Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.73 |
|
05-Jan-2008 |
dsl |
Use FILE_LOCK() and FILE_UNLOCK()
|
#
1.72 |
|
28-Dec-2007 |
ad |
Pull up 1.71.8.1.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
|
#
1.71 |
|
19-Sep-2007 |
dyoung |
branches: 1.71.6; 1.71.8; 1.71.12; 1) Introduce a new socket option, (SOL_SOCKET, SO_NOHEADER), that tells a socket that it should both add a protocol header to tx'd datagrams and remove the header from rx'd datagrams:
int onoff = 1, s = socket(...); setsockopt(s, SOL_SOCKET, SO_NOHEADER, &onoff);
2) Add an implementation of (SOL_SOCKET, SO_NOHEADER) for raw IPv4 sockets.
3) Reorganize the protocols' pr_ctloutput implementations a bit. Consistently return ENOPROTOOPT when an option is unsupported, and EINVAL if a supported option's arguments are incorrect. Reorganize the flow of code so that it's more clear how/when options are passed down the stack until they are handled.
Shorten some pr_ctloutput staircases for readability.
4) Extract common mbuf code into subroutines, add new sockaddr methods, and introduce a new subroutine, fsocreate(), for reuse later; use it first in sys_socket():
struct mbuf *m_getsombuf(struct socket *so)
Create an mbuf and make its owner the socket `so'.
struct mbuf *m_intopt(struct socket *so, int val)
Create an mbuf, make its owner the socket `so', put the int `val' into it, and set its length to sizeof(int).
int fsocreate(..., int *fd)
Create a socket, a la socreate(9), put the socket into the given LWP's descriptor table, return the descriptor at `fd' on success.
void *sockaddr_addr(struct sockaddr *sa, socklen_t *slenp) const void *sockaddr_const_addr(const struct sockaddr *sa, socklen_t *slenp)
Extract a pointer to the address part of a sockaddr. Write the length of the address part at `slenp', if `slenp' is not NULL.
socklen_t sockaddr_getlen(const struct sockaddr *sa)
Return the length of a sockaddr. This just evaluates to sa->sa_len. I only add this for consistency with code that appears in a portable userland library that I am going to import.
const struct sockaddr *sockaddr_any(const struct sockaddr *sa)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
const void *sockaddr_anyaddr(const struct sockaddr *sa, socklen_t *slenp)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
|
Revision tags: nick-csl-alignment-base5
|
#
1.70 |
|
01-Sep-2007 |
dyoung |
In sockaddr_copy(), stop caring about the destination sockaddr's family and length, it doesn't matter in the post-pool(9) sockaddr regime.
|
#
1.69 |
|
30-Aug-2007 |
dyoung |
Use malloc(9) for sockaddrs instead of pool(9), and remove dom_sa_pool and dom_sa_len members from struct domain. Pools of fixed-size objects are too rigid for sockaddr_dls, whose size can vary over a wide range.
Return sockaddr_dl to its "historical" size. Now that I'm using malloc(9) instead of pool(9) to allocate sockaddr_dl, I can create a sockaddr_dl of any size in the kernel, so expanding sockaddr_dl is useless.
Avoid using sizeof(struct sockaddr_dl) in the kernel.
Introduce sockaddr_dl_alloc() for allocating & initializing an arbitrary sockaddr_dl on the heap.
Add an argument, the sockaddr length, to sockaddr_alloc(), sockaddr_copy(), and sockaddr_dl_setaddr().
Constify: LLADDR() -> CLLADDR().
Where the kernel overwrites LLADDR(), use sockaddr_dl_setaddr(), instead. Used properly, sockaddr_dl_setaddr() will not overrun the end of the sockaddr.
|
Revision tags: matt-mips64-base
|
#
1.68 |
|
07-Aug-2007 |
dyoung |
branches: 1.68.2; 1.68.4; Lengthen sockaddr_dl so that a 16-byte FireWire address will fit into sdl_data[].
Move the macro satocsdl() to net/if_dl.h, and introduce satosdl().
Add some helpers for initializing sockaddr_dl (sockaddr_dl_init), for finding out the length to put in a sockaddr_dl's sdl_len member (sockaddr_dl_measure), and for setting the link-layer address in a sockaddr_dl to a new value (sockaddr_dl_setaddr).
Make sockaddr_copy() panic if the caller tries to copy a sockaddr to a destination where it will not fit.
|
#
1.67 |
|
19-Jul-2007 |
dyoung |
branches: 1.67.4; Take steps to hide the radix_node implementation of the forwarding table from the forwarding table's users:
Introduce rt_walktree() for walking the routing table and applying a function to each rtentry. Replace most rn_walktree() calls with it.
Use rt_getkey()/rt_setkey() to get/set a route's destination. Keep a pointer to the sockaddr key in the rtentry, so that rtentry users do not have to grovel in the radix_node for the key.
Add a RTM_GET method to rtrequest. Use that instead of radix_node lookups in, e.g., carp(4).
Add sys/net/link_proto.c, which supplies sockaddr routines for link-layer socket addresses (sockaddr_dl).
Cosmetic:
Constify. KNF. Stop open-coding LIST_FOREACH, TAILQ_FOREACH, et cetera. Use NULL instead of 0 for null pointers. Use __arraycount(). Reduce gratuitous parenthesization.
Stop using variadic arguments for rip6_output(), it is unnecessary.
Remove the unnecessary rtentry member rt_genmask and the code to maintain it, since nothing actually used it.
Make rt_maskedcopy() easier to read by using meaningful variable names.
Extract a subroutine intern_netmask() for looking up a netmask in the masks table.
Start converting backslash-ridden IPv6 macros in sys/netinet6/in6_var.h into inline subroutines that one can read without special eyeglasses.
One functional change: when the kernel serves an RTM_GET, RTM_LOCK, or RTM_CHANGE request, it applies the netmask (if supplied) to a destination before searching for it in the forwarding table.
I have changed sys/netinet/ip_carp.c, carp_setroute(), to remove the unlawful radix_node knowledge.
Apart from the changes to carp(4), netiso, ATM, and strip(4), I have run the changes on three nodes in my wireless routing testbed, which involves IPv4 + IPv6 dynamic routing acrobatics, and it's working beautifully so far.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.66 |
|
09-Jul-2007 |
ad |
branches: 1.66.2; Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes - select()/poll() improvements - miscellaneous MT safety improvements
|
Revision tags: yamt-idlelwp-base8
|
#
1.65 |
|
06-May-2007 |
dyoung |
In AppleTalk, IPv4, and IPv6 routing domains, help sockaddr_cmp() avoid an indirect function call by comparing the family, length, and bytes [dom->dom_sa_cmpofs, dom->dom_sa_cmpofs + dom->dom_sa_cmplen), corresponding to the the sockaddrs' "address" members.
For ISO, actually use sockaddr_iso_cmp, for a change. Thanks to yamt@ for pointing out my error.
|
#
1.64 |
|
02-May-2007 |
dyoung |
Eliminate address family-specific route caches (struct route, struct route_in6, struct route_iso), replacing all caches with a struct route.
The principle benefit of this change is that all of the protocol families can benefit from route cache-invalidation, which is necessary for correct routing. Route-cache invalidation fixes an ancient PR, kern/3508, at long last; it fixes various other PRs, also.
Discussions with and ideas from Joerg Sonnenberger influenced this work tremendously. Of course, all design oversights and bugs are mine.
DETAILS
1 I added to each address family a pool of sockaddrs. I have introduced routines for allocating, copying, and duplicating, and freeing sockaddrs:
struct sockaddr *sockaddr_alloc(sa_family_t af, int flags); struct sockaddr *sockaddr_copy(struct sockaddr *dst, const struct sockaddr *src); struct sockaddr *sockaddr_dup(const struct sockaddr *src, int flags); void sockaddr_free(struct sockaddr *sa);
sockaddr_alloc() returns either a sockaddr from the pool belonging to the specified family, or NULL if the pool is exhausted. The returned sockaddr has the right size for that family; sa_family and sa_len fields are initialized to the family and sockaddr length---e.g., sa_family = AF_INET and sa_len = sizeof(struct sockaddr_in). sockaddr_free() puts the given sockaddr back into its family's pool.
sockaddr_dup() and sockaddr_copy() work analogously to strdup() and strcpy(), respectively. sockaddr_copy() KASSERTs that the family of the destination and source sockaddrs are alike.
The 'flags' argumet for sockaddr_alloc() and sockaddr_dup() is passed directly to pool_get(9).
2 I added routines for initializing sockaddrs in each address family, sockaddr_in_init(), sockaddr_in6_init(), sockaddr_iso_init(), etc. They are fairly self-explanatory.
3 structs route_in6 and route_iso are no more. All protocol families use struct route. I have changed the route cache, 'struct route', so that it does not contain storage space for a sockaddr. Instead, struct route points to a sockaddr coming from the pool the sockaddr belongs to. I added a new method to struct route, rtcache_setdst(), for setting the cache destination:
int rtcache_setdst(struct route *, const struct sockaddr *);
rtcache_setdst() returns 0 on success, or ENOMEM if no memory is available to create the sockaddr storage.
It is now possible for rtcache_getdst() to return NULL if, say, rtcache_setdst() failed. I check the return value for NULL everywhere in the kernel.
4 Each routing domain (struct domain) has a list of live route caches, dom_rtcache. rtflushall(sa_family_t af) looks up the domain indicated by 'af', walks the domain's list of route caches and invalidates each one.
|
Revision tags: thorpej-atomic-base ad-audiomp-base
|
#
1.63 |
|
17-Feb-2007 |
dyoung |
branches: 1.63.4; 1.63.6; KNF: de-__P, bzero -> memset, bcmp -> memcmp. Remove extraneous parentheses in return statements.
Cosmetic: don't open-code TAILQ_FOREACH().
Cosmetic: change types of variables to avoid oodles of casts: in in6_src.c, avoid casts by changing several route_in6 pointers to struct route pointers. Remove unnecessary casts to caddr_t elsewhere.
Pave the way for eliminating address family-specific route caches: soon, struct route will not embed a sockaddr, but it will hold a reference to an external sockaddr, instead. We will set the destination sockaddr using rtcache_setdst(). (I created a stub for it, but it isn't used anywhere, yet.) rtcache_free() will free the sockaddr. I have extracted from rtcache_free() a helper subroutine, rtcache_clear(). rtcache_clear() will "forget" a cached route, but it will not forget the destination by releasing the sockaddr. I use rtcache_clear() instead of rtcache_free() in rtcache_update(), because rtcache_update() is not supposed to forget the destination.
Constify:
1 Introduce const accessor for route->ro_dst, rtcache_getdst().
2 Constify the 'dst' argument to ifnet->if_output(). This led me to constify a lot of code called by output routines.
3 Constify the sockaddr argument to protosw->pr_ctlinput. This led me to constify a lot of code called by ctlinput routines.
4 Introduce const macros for converting from a generic sockaddr to family-specific sockaddrs, e.g., sockaddr_in: satocsin6, satocsin, et cetera.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.62 |
|
01-Nov-2006 |
yamt |
branches: 1.62.4; remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.61 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.60 |
|
23-Jul-2006 |
ad |
branches: 1.60.6; Use the LWP cached credentials where sane.
|
#
1.59 |
|
16-Jul-2006 |
elad |
CURTAIN() -> KAUTH_GENERIC_CANSEE.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.58 |
|
13-Jun-2006 |
yamt |
sysctl_unpcblist: don't abuse kauth_authorize_process for non-process object.
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.57 |
|
14-May-2006 |
elad |
branches: 1.57.2; integrate kauth.
|
Revision tags: elad-kernelauth-base
|
#
1.56 |
|
15-Apr-2006 |
christos |
Coverity CID 716: Fix query size vs return results initialization.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.55 |
|
08-Dec-2005 |
thorpej |
branches: 1.55.4; 1.55.6; 1.55.8; 1.55.10; 1.55.12; Use ANSI function decls in one more place.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.54 |
|
07-Sep-2005 |
elad |
Use ``l'' and not ``curlwp''. Thanks to Peter Postma for catching this.
|
#
1.53 |
|
07-Sep-2005 |
elad |
Implement curtain for AF_LOCAL PCB lists.
|
#
1.52 |
|
09-Jun-2005 |
atatat |
branches: 1.52.2; Properly fix the constipated lossage wrt -Wcast-qual and the sysctl code. I know it's not the prettiest code, but it seems to work rather well in spite of itself.
|
#
1.51 |
|
29-May-2005 |
christos |
- add const. - remove unnecessary casts. - add __UNCONST casts and mark them with XXXUNCONST as necessary.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.50 |
|
09-Mar-2005 |
atatat |
Add the following nodes to the sysctl tree:
net.local.stream.pcblist net.local.dgram.pcblist net.inet.tcp.pcblist net.inet.udp.pcblist net.inet.raw.pcblist net.inet6.tcp6.pcblist net.inet6.udp6.pcblist net.inet6.raw6.pcblist
which allow retrieval of the pcbs in use for those protocols. The struct involved is 32/64 bit clean and incorporates parts of struct inpcb, struct unpcb, a bit of struct tcpcb, and two socket addresses.
|
Revision tags: yamt-km-base2 yamt-km-base
|
#
1.49 |
|
23-Jan-2005 |
matt |
branches: 1.49.2; Change initialzie of domains to use link sets. Switch to using STAILQ. Add a convenience macro DOMAIN_FOREACH to interate through the domain.
|
Revision tags: kent-audio1-beforemerge kent-audio1-base
|
#
1.48 |
|
25-May-2004 |
atatat |
branches: 1.48.4; Sysctl descriptions under net subtree (net.key not done)
|
#
1.47 |
|
22-Apr-2004 |
matt |
Constify protosw arrays. This can reduce the kernel .data section by over 4K (if all the network protocols) are loaded.
|
Revision tags: netbsd-2-0-base
|
#
1.46 |
|
24-Mar-2004 |
atatat |
branches: 1.46.2; Tango on sysctl_createv() and flags. The flags have all been renamed, and sysctl_createv() now uses more arguments.
|
#
1.45 |
|
23-Mar-2004 |
junyoung |
Nuke __P().
|
#
1.44 |
|
04-Dec-2003 |
atatat |
Dynamic sysctl.
Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(), vfs_sysctl(), etc, routines, along with sysctl_int() et al. Now all nodes are registered with the tree, and nodes can be added (or removed) easily, and I/O to and from the tree is handled generically.
Since the nodes are registered with the tree, the mapping from name to number (and back again) can now be discovered, instead of having to be hard coded. Adding new nodes to the tree is likewise much simpler -- the new infrastructure handles almost all the work for simple types, and just about anything else can be done with a small helper function.
All existing nodes are where they were before (numerically speaking), so all existing consumers of sysctl information should notice no difference.
PS - I'm sorry, but there's a distinct lack of documentation at the moment. I'm working on sysctl(3/8/9) right now, and I promise to watch out for buses.
|
#
1.43 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.42 |
|
06-Aug-2003 |
jonathan |
(FAST_IPSEC): attach PFKEY socket domain when either (KAME) IPSEC or FAST_IPSEC is configured. Likewise for sysctl.
|
#
1.41 |
|
29-Jun-2003 |
fvdl |
branches: 1.41.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
#
1.40 |
|
28-Jun-2003 |
darrenr |
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
#
1.39 |
|
23-Jun-2003 |
martin |
Make sure to include opt_foo.h if a defflag option FOO is used.
|
#
1.38 |
|
26-Feb-2003 |
matt |
Add MBUFTRACE kernel option. Do a little mbuf rework while here. Change all uses of MGET*(*, M_WAIT, *) to m_get*(M_WAIT, *). These are not performance critical and making them call m_get saves considerable space. Add m_clget analogue of MCLGET and make corresponding change for M_WAIT uses. Modify netinet, gem, fxp, tulip, nfs to support MBUFTRACE. Begin to change netstat to use sysctl.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.37 |
|
12-May-2002 |
matt |
Make domains extern.
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base thorpej-mips-cache-base
|
#
1.36 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
#
1.35 |
|
29-Oct-2001 |
simonb |
Don't need to include <uvm/uvm_extern.h> just to include <sys/sysctl.h> anymore.
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.34 |
|
11-Feb-2001 |
itojun |
branches: 1.34.2; 1.34.4; 1.34.8; add pfctlinput2() (pfctlinput() with args).
|
#
1.33 |
|
02-Oct-2000 |
itojun |
attach ARP domain only if INET is compiled into the kernel.
|
#
1.32 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.31 |
|
30-Mar-2000 |
augustss |
Get rid of register declarations.
|
#
1.30 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
Revision tags: chs-ubc2-newbase
|
#
1.29 |
|
06-Feb-2000 |
thorpej |
Implement pffinddomain(), and use it as appropriate.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
|
#
1.28 |
|
05-Aug-1999 |
sommerfeld |
branches: 1.28.2; Implement arp_drain(), which frees packets tied up in the arp cache if mbufs are in short supply. Create a (trivial) protocol domain for arp so that the drain routine will be called from m_reclaim()
|
Revision tags: chs-ubc2-base
|
#
1.27 |
|
09-Jul-1999 |
thorpej |
defopt IPSEC and IPSEC_ESP (both into opt_ipsec.h).
|
#
1.26 |
|
01-Jul-1999 |
itojun |
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.25 |
|
14-Jan-1999 |
thorpej |
branches: 1.25.4; 1.25.6; Garbage-collect some straggling netimp stuff.
|
Revision tags: kenh-if-detach-base chs-ubc-base eeh-paddr_t-base
|
#
1.24 |
|
05-Jul-1998 |
jonathan |
branches: 1.24.4; defopt NATM.
|
#
1.23 |
|
05-Jul-1998 |
jonathan |
defopt NS, NSIP.
|
#
1.22 |
|
05-Jul-1998 |
jonathan |
defopt ISO TPIP.
|
#
1.21 |
|
05-Jul-1998 |
jonathan |
defopt CCITT.
|
#
1.20 |
|
05-Jul-1998 |
jonathan |
defopt INET, NETATALK.
|
#
1.19 |
|
06-May-1998 |
thorpej |
Add monotonically increasing "current time" stamps for pfslowtimo() and pffasttimo().
|
#
1.18 |
|
01-Mar-1998 |
fvdl |
Merge with Lite2 + local changes
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base thorpej-signal-base marc-pcmcia-bp marc-pcmcia-base
|
#
1.17 |
|
04-Apr-1997 |
christos |
Add netatalk domain.
|
Revision tags: is-newarp-before-merge is-newarp-base
|
#
1.16 |
|
14-Aug-1996 |
explorer |
formatting fix only
|
#
1.15 |
|
04-Jul-1996 |
chuck |
add native mode atm protocol layer
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.14 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.13 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.12 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.11 |
|
13-May-1994 |
mycroft |
Update to 4.4-Lite networking code, with a few local changes.
|
#
1.10 |
|
07-May-1994 |
cgd |
stub for sysctl
|
#
1.9 |
|
05-May-1994 |
mycroft |
Remove now-bogus casts.
|
#
1.8 |
|
05-May-1994 |
cgd |
lots of changes: prototype migration, move lots of variables, definitions, and structure elements around. kill some unnecessary type and macro definitions. standardize clock handling. More changes than you'd want.
|
#
1.7 |
|
29-Apr-1994 |
cgd |
change timeout/untimeout/wakeup/sleep/tsleep args to void *
|
#
1.6 |
|
14-Jan-1994 |
deraadt |
prevent an explicit splimp->splnet lowering. (which blows up on machines with a levelled-spl system that check for lowering) de-ansify two function definitions.
|
#
1.5 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.4 |
|
27-Jun-1993 |
andrew |
branches: 1.4.4; ANSIfications - removed all implicit function return types and argument definitions. Ensured that all files include "systm.h" to gain access to general prototypes. Casts where necessary.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
10-Apr-1993 |
glass |
fixed to be compliant, subservient, and to take advantage of the newly hacked config(8)
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
#
1.99 |
|
05-Jul-2017 |
christos |
don't print diagnostic for AF_LINK
|
#
1.98 |
|
02-Jul-2017 |
christos |
don't warn about AF_LINK sockets with sa_len less than the size of the sockaddr
|
#
1.97 |
|
01-Jul-2017 |
christos |
put the code that returns the sizeof the socket by family in one place.
|
Revision tags: netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
|
#
1.96 |
|
02-Dec-2014 |
christos |
- add diagnostic check for sa_len - use new socket pretty printers to format sockaddr's
|
Revision tags: nick-nhusb-base
|
#
1.95 |
|
05-Sep-2014 |
matt |
branches: 1.95.2; Try not to use f_data, use f_{vnode,socket,pipe,mqueue,kqueue,ksem} to get a correctly typed pointer.
|
#
1.94 |
|
22-Aug-2014 |
pooka |
Change the meaning of the boolean parameter to domaininit(). was: attach route domain if found from domains link set now: attach any domain which is found from domains link set
No functional change to monolithic kernel. In a rump kernel, which attaches networking domains "modularly", prevents domains from accidentally leaking in via the link set in static linked scenarios.
Problem reported by cube, Tom Bousso, and the voices in my head.
|
Revision tags: netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
#
1.93 |
|
23-Apr-2014 |
pooka |
domains are attached by module(-like) constructors, so no need to play link_set games with them.
|
#
1.92 |
|
17-Apr-2014 |
christos |
CID/1203196: Don't confuse coverity with out of bounds access
|
#
1.91 |
|
02-Apr-2014 |
seanb |
branches: 1.91.2; len argument to strlcpy() was incorrect when copying out AF_LOCAL sockets in sysctl helper. The entire buffer wasn't available since sun_path member is not at offset 0 in struct sockaddr_un.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
|
#
1.90 |
|
25-Feb-2014 |
pooka |
Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
#
1.89 |
|
15-Sep-2013 |
martin |
Remove unused variables
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base
|
#
1.88 |
|
31-Jan-2013 |
joerg |
branches: 1.88.2; Add sockaddr_format to ease debugging code dealing with socket addresses.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.87 |
|
27-Oct-2011 |
seanb |
branches: 1.87.2; 1.87.12; Use PR_SLOWHZ, PR_FASTHZ defines in a couple spots.
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.86 |
|
29-May-2011 |
manu |
Add SOCK_SEQPACKET to PL_LOCAL sockets. Based on patch from Jesse Off, submitted 8 years ago: http://mail-index.netbsd.org/tech-kern/2003/04/14/0006.html
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 jym-xensuspend-nbase
|
#
1.85 |
|
03-Oct-2009 |
elad |
branches: 1.85.4; 1.85.6; KAUTH_GENERIC_CANSEE -> KAUTH_REQ_NETWORK_SOCKET_CANSEE.
Not quite the same semantics but it's okay. Once our sockets have credentials (and they will) it's all the same.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.84 |
|
11-Sep-2009 |
dyoung |
Make ifconfig(8) set and display preference numbers for IPv6 addresses. Make the kernel support SIOC[SG]IFADDRPREF for IPv6 interface addresses.
In in6ifa_ifpforlinklocal(), consult preference numbers before making an otherwise arbitrary choice of in6_ifaddr. Otherwise, preference numbers are *not* consulted by the kernel, but that will be rather easy for somebody with a little bit of free time to fix.
Please note that setting the preference number for a link-local IPv6 address does not work right, yet, but that ought to be fixed soon.
In support of the changes above,
1 Add a method to struct domain for "externalizing" a sockaddr, and provide an implementation for IPv6. Expect more work in this area: it may be more proper to say that the IPv6 implementation "internalizes" a sockaddr. Add sockaddr_externalize().
2 Add a subroutine, sofamily(), that returns a struct socket's address family or AF_UNSPEC.
3 Make a lot of IPv4-specific code generic, and move it from sys/netinet/ to sys/net/ for re-use by IPv6 parts of the kernel and ifconfig(8).
|
#
1.83 |
|
08-Sep-2009 |
dyoung |
Delete whitespace at ends of lines.
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
|
#
1.82 |
|
27-May-2009 |
pooka |
Make domaininit() take an argument which determines if it should add the special PF_ROUTE domain or not (if available).
|
Revision tags: yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 jym-xensuspend-base
|
#
1.81 |
|
28-Apr-2009 |
dyoung |
Cosmetic: remove unnecessary parentheses.
|
#
1.80 |
|
28-Apr-2009 |
dyoung |
Extract sockaddr_any_by_family() from sockaddr_any() for looking up a wildcard ("any") address by protocol family instead of by sockaddr.
|
Revision tags: nick-hppapmap-base3 nick-hppapmap-base
|
#
1.79 |
|
15-Mar-2009 |
cegger |
ansify function definitions
|
#
1.78 |
|
11-Mar-2009 |
mrg |
like KERN_FILE2: *do* update "needed" when there is no count. we want userland to know what sort of size to provide..
while here, slightly normalise the previous to init_sysctl.c.
|
Revision tags: nick-hppapmap-base2 haad-dm-base2 haad-nbase2 haad-dm-base mjf-devfs2-base
|
#
1.77 |
|
07-Dec-2008 |
pooka |
branches: 1.77.2; Move some sysctl node creations away from linksets and into the constructors for subsystems.
XXX: CTLFLAG_PERMANENT is non-sensible.
|
Revision tags: netbsd-5-1-5-RELEASE netbsd-5-1-4-RELEASE netbsd-5-1-3-RELEASE netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base
|
#
1.76 |
|
24-Apr-2008 |
ad |
branches: 1.76.2; 1.76.8; 1.76.10; 1.76.12; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
Revision tags: yamt-pf42-baseX yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14
|
#
1.75 |
|
21-Mar-2008 |
ad |
branches: 1.75.2; Catch up with descriptor handling changes. See kern_descrip.c revision 1.173 for details.
|
Revision tags: keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-nbase mjf-devfs-base matt-armv6-base hpcarm-cleanup-base
|
#
1.74 |
|
07-Jan-2008 |
ad |
branches: 1.74.6; Patch up sysctl locking:
- Lock processes, credentials, filehead etc correctly. - Acquire a read hold on sysctl_treelock if only doing a query. - Don't wire down the output buffer. It doesn't work correctly and the code regularly does long term sleeps with it held - it's not worth it. - Don't hold locks other than sysctl_lock while doing copyout(). - Drop sysctl_lock while doing copyout / allocating memory in a few places. - Don't take kernel_lock for sysctl. - Fix a number of bugs spotted along the way
|
#
1.73 |
|
05-Jan-2008 |
dsl |
Use FILE_LOCK() and FILE_UNLOCK()
|
#
1.72 |
|
28-Dec-2007 |
ad |
Pull up 1.71.8.1.
|
Revision tags: vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base jmcneill-pm-base reinoud-bufcleanup-base vmlocking-base
|
#
1.71 |
|
19-Sep-2007 |
dyoung |
branches: 1.71.6; 1.71.8; 1.71.12; 1) Introduce a new socket option, (SOL_SOCKET, SO_NOHEADER), that tells a socket that it should both add a protocol header to tx'd datagrams and remove the header from rx'd datagrams:
int onoff = 1, s = socket(...); setsockopt(s, SOL_SOCKET, SO_NOHEADER, &onoff);
2) Add an implementation of (SOL_SOCKET, SO_NOHEADER) for raw IPv4 sockets.
3) Reorganize the protocols' pr_ctloutput implementations a bit. Consistently return ENOPROTOOPT when an option is unsupported, and EINVAL if a supported option's arguments are incorrect. Reorganize the flow of code so that it's more clear how/when options are passed down the stack until they are handled.
Shorten some pr_ctloutput staircases for readability.
4) Extract common mbuf code into subroutines, add new sockaddr methods, and introduce a new subroutine, fsocreate(), for reuse later; use it first in sys_socket():
struct mbuf *m_getsombuf(struct socket *so)
Create an mbuf and make its owner the socket `so'.
struct mbuf *m_intopt(struct socket *so, int val)
Create an mbuf, make its owner the socket `so', put the int `val' into it, and set its length to sizeof(int).
int fsocreate(..., int *fd)
Create a socket, a la socreate(9), put the socket into the given LWP's descriptor table, return the descriptor at `fd' on success.
void *sockaddr_addr(struct sockaddr *sa, socklen_t *slenp) const void *sockaddr_const_addr(const struct sockaddr *sa, socklen_t *slenp)
Extract a pointer to the address part of a sockaddr. Write the length of the address part at `slenp', if `slenp' is not NULL.
socklen_t sockaddr_getlen(const struct sockaddr *sa)
Return the length of a sockaddr. This just evaluates to sa->sa_len. I only add this for consistency with code that appears in a portable userland library that I am going to import.
const struct sockaddr *sockaddr_any(const struct sockaddr *sa)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
const void *sockaddr_anyaddr(const struct sockaddr *sa, socklen_t *slenp)
Return the "don't care" sockaddr in the same family as `sa'. This is the address a client should sobind(9) if it does not care the source address and, if applicable, the port et cetera that it uses.
|
Revision tags: nick-csl-alignment-base5
|
#
1.70 |
|
01-Sep-2007 |
dyoung |
In sockaddr_copy(), stop caring about the destination sockaddr's family and length, it doesn't matter in the post-pool(9) sockaddr regime.
|
#
1.69 |
|
30-Aug-2007 |
dyoung |
Use malloc(9) for sockaddrs instead of pool(9), and remove dom_sa_pool and dom_sa_len members from struct domain. Pools of fixed-size objects are too rigid for sockaddr_dls, whose size can vary over a wide range.
Return sockaddr_dl to its "historical" size. Now that I'm using malloc(9) instead of pool(9) to allocate sockaddr_dl, I can create a sockaddr_dl of any size in the kernel, so expanding sockaddr_dl is useless.
Avoid using sizeof(struct sockaddr_dl) in the kernel.
Introduce sockaddr_dl_alloc() for allocating & initializing an arbitrary sockaddr_dl on the heap.
Add an argument, the sockaddr length, to sockaddr_alloc(), sockaddr_copy(), and sockaddr_dl_setaddr().
Constify: LLADDR() -> CLLADDR().
Where the kernel overwrites LLADDR(), use sockaddr_dl_setaddr(), instead. Used properly, sockaddr_dl_setaddr() will not overrun the end of the sockaddr.
|
Revision tags: matt-mips64-base
|
#
1.68 |
|
07-Aug-2007 |
dyoung |
branches: 1.68.2; 1.68.4; Lengthen sockaddr_dl so that a 16-byte FireWire address will fit into sdl_data[].
Move the macro satocsdl() to net/if_dl.h, and introduce satosdl().
Add some helpers for initializing sockaddr_dl (sockaddr_dl_init), for finding out the length to put in a sockaddr_dl's sdl_len member (sockaddr_dl_measure), and for setting the link-layer address in a sockaddr_dl to a new value (sockaddr_dl_setaddr).
Make sockaddr_copy() panic if the caller tries to copy a sockaddr to a destination where it will not fit.
|
#
1.67 |
|
19-Jul-2007 |
dyoung |
branches: 1.67.4; Take steps to hide the radix_node implementation of the forwarding table from the forwarding table's users:
Introduce rt_walktree() for walking the routing table and applying a function to each rtentry. Replace most rn_walktree() calls with it.
Use rt_getkey()/rt_setkey() to get/set a route's destination. Keep a pointer to the sockaddr key in the rtentry, so that rtentry users do not have to grovel in the radix_node for the key.
Add a RTM_GET method to rtrequest. Use that instead of radix_node lookups in, e.g., carp(4).
Add sys/net/link_proto.c, which supplies sockaddr routines for link-layer socket addresses (sockaddr_dl).
Cosmetic:
Constify. KNF. Stop open-coding LIST_FOREACH, TAILQ_FOREACH, et cetera. Use NULL instead of 0 for null pointers. Use __arraycount(). Reduce gratuitous parenthesization.
Stop using variadic arguments for rip6_output(), it is unnecessary.
Remove the unnecessary rtentry member rt_genmask and the code to maintain it, since nothing actually used it.
Make rt_maskedcopy() easier to read by using meaningful variable names.
Extract a subroutine intern_netmask() for looking up a netmask in the masks table.
Start converting backslash-ridden IPv6 macros in sys/netinet6/in6_var.h into inline subroutines that one can read without special eyeglasses.
One functional change: when the kernel serves an RTM_GET, RTM_LOCK, or RTM_CHANGE request, it applies the netmask (if supplied) to a destination before searching for it in the forwarding table.
I have changed sys/netinet/ip_carp.c, carp_setroute(), to remove the unlawful radix_node knowledge.
Apart from the changes to carp(4), netiso, ATM, and strip(4), I have run the changes on three nodes in my wireless routing testbed, which involves IPv4 + IPv6 dynamic routing acrobatics, and it's working beautifully so far.
|
Revision tags: nick-csl-alignment-base mjf-ufs-trans-base
|
#
1.66 |
|
09-Jul-2007 |
ad |
branches: 1.66.2; Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes - select()/poll() improvements - miscellaneous MT safety improvements
|
Revision tags: yamt-idlelwp-base8
|
#
1.65 |
|
06-May-2007 |
dyoung |
In AppleTalk, IPv4, and IPv6 routing domains, help sockaddr_cmp() avoid an indirect function call by comparing the family, length, and bytes [dom->dom_sa_cmpofs, dom->dom_sa_cmpofs + dom->dom_sa_cmplen), corresponding to the the sockaddrs' "address" members.
For ISO, actually use sockaddr_iso_cmp, for a change. Thanks to yamt@ for pointing out my error.
|
#
1.64 |
|
02-May-2007 |
dyoung |
Eliminate address family-specific route caches (struct route, struct route_in6, struct route_iso), replacing all caches with a struct route.
The principle benefit of this change is that all of the protocol families can benefit from route cache-invalidation, which is necessary for correct routing. Route-cache invalidation fixes an ancient PR, kern/3508, at long last; it fixes various other PRs, also.
Discussions with and ideas from Joerg Sonnenberger influenced this work tremendously. Of course, all design oversights and bugs are mine.
DETAILS
1 I added to each address family a pool of sockaddrs. I have introduced routines for allocating, copying, and duplicating, and freeing sockaddrs:
struct sockaddr *sockaddr_alloc(sa_family_t af, int flags); struct sockaddr *sockaddr_copy(struct sockaddr *dst, const struct sockaddr *src); struct sockaddr *sockaddr_dup(const struct sockaddr *src, int flags); void sockaddr_free(struct sockaddr *sa);
sockaddr_alloc() returns either a sockaddr from the pool belonging to the specified family, or NULL if the pool is exhausted. The returned sockaddr has the right size for that family; sa_family and sa_len fields are initialized to the family and sockaddr length---e.g., sa_family = AF_INET and sa_len = sizeof(struct sockaddr_in). sockaddr_free() puts the given sockaddr back into its family's pool.
sockaddr_dup() and sockaddr_copy() work analogously to strdup() and strcpy(), respectively. sockaddr_copy() KASSERTs that the family of the destination and source sockaddrs are alike.
The 'flags' argumet for sockaddr_alloc() and sockaddr_dup() is passed directly to pool_get(9).
2 I added routines for initializing sockaddrs in each address family, sockaddr_in_init(), sockaddr_in6_init(), sockaddr_iso_init(), etc. They are fairly self-explanatory.
3 structs route_in6 and route_iso are no more. All protocol families use struct route. I have changed the route cache, 'struct route', so that it does not contain storage space for a sockaddr. Instead, struct route points to a sockaddr coming from the pool the sockaddr belongs to. I added a new method to struct route, rtcache_setdst(), for setting the cache destination:
int rtcache_setdst(struct route *, const struct sockaddr *);
rtcache_setdst() returns 0 on success, or ENOMEM if no memory is available to create the sockaddr storage.
It is now possible for rtcache_getdst() to return NULL if, say, rtcache_setdst() failed. I check the return value for NULL everywhere in the kernel.
4 Each routing domain (struct domain) has a list of live route caches, dom_rtcache. rtflushall(sa_family_t af) looks up the domain indicated by 'af', walks the domain's list of route caches and invalidates each one.
|
Revision tags: thorpej-atomic-base ad-audiomp-base
|
#
1.63 |
|
17-Feb-2007 |
dyoung |
branches: 1.63.4; 1.63.6; KNF: de-__P, bzero -> memset, bcmp -> memcmp. Remove extraneous parentheses in return statements.
Cosmetic: don't open-code TAILQ_FOREACH().
Cosmetic: change types of variables to avoid oodles of casts: in in6_src.c, avoid casts by changing several route_in6 pointers to struct route pointers. Remove unnecessary casts to caddr_t elsewhere.
Pave the way for eliminating address family-specific route caches: soon, struct route will not embed a sockaddr, but it will hold a reference to an external sockaddr, instead. We will set the destination sockaddr using rtcache_setdst(). (I created a stub for it, but it isn't used anywhere, yet.) rtcache_free() will free the sockaddr. I have extracted from rtcache_free() a helper subroutine, rtcache_clear(). rtcache_clear() will "forget" a cached route, but it will not forget the destination by releasing the sockaddr. I use rtcache_clear() instead of rtcache_free() in rtcache_update(), because rtcache_update() is not supposed to forget the destination.
Constify:
1 Introduce const accessor for route->ro_dst, rtcache_getdst().
2 Constify the 'dst' argument to ifnet->if_output(). This led me to constify a lot of code called by output routines.
3 Constify the sockaddr argument to protosw->pr_ctlinput. This led me to constify a lot of code called by ctlinput routines.
4 Introduce const macros for converting from a generic sockaddr to family-specific sockaddrs, e.g., sockaddr_in: satocsin6, satocsin, et cetera.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.62 |
|
01-Nov-2006 |
yamt |
branches: 1.62.4; remove some __unused from function parameters.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.61 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 rpaulo-netinet-merge-pcb-base
|
#
1.60 |
|
23-Jul-2006 |
ad |
branches: 1.60.6; Use the LWP cached credentials where sane.
|
#
1.59 |
|
16-Jul-2006 |
elad |
CURTAIN() -> KAUTH_GENERIC_CANSEE.
|
Revision tags: yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base chap-midi-base
|
#
1.58 |
|
13-Jun-2006 |
yamt |
sysctl_unpcblist: don't abuse kauth_authorize_process for non-process object.
|
Revision tags: yamt-pdpolicy-base5 simonb-timecounters-base
|
#
1.57 |
|
14-May-2006 |
elad |
branches: 1.57.2; integrate kauth.
|
Revision tags: elad-kernelauth-base
|
#
1.56 |
|
15-Apr-2006 |
christos |
Coverity CID 716: Fix query size vs return results initialization.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 ktrace-lwp-base
|
#
1.55 |
|
08-Dec-2005 |
thorpej |
branches: 1.55.4; 1.55.6; 1.55.8; 1.55.10; 1.55.12; Use ANSI function decls in one more place.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.54 |
|
07-Sep-2005 |
elad |
Use ``l'' and not ``curlwp''. Thanks to Peter Postma for catching this.
|
#
1.53 |
|
07-Sep-2005 |
elad |
Implement curtain for AF_LOCAL PCB lists.
|
#
1.52 |
|
09-Jun-2005 |
atatat |
branches: 1.52.2; Properly fix the constipated lossage wrt -Wcast-qual and the sysctl code. I know it's not the prettiest code, but it seems to work rather well in spite of itself.
|
#
1.51 |
|
29-May-2005 |
christos |
- add const. - remove unnecessary casts. - add __UNCONST casts and mark them with XXXUNCONST as necessary.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.50 |
|
09-Mar-2005 |
atatat |
Add the following nodes to the sysctl tree:
net.local.stream.pcblist net.local.dgram.pcblist net.inet.tcp.pcblist net.inet.udp.pcblist net.inet.raw.pcblist net.inet6.tcp6.pcblist net.inet6.udp6.pcblist net.inet6.raw6.pcblist
which allow retrieval of the pcbs in use for those protocols. The struct involved is 32/64 bit clean and incorporates parts of struct inpcb, struct unpcb, a bit of struct tcpcb, and two socket addresses.
|
Revision tags: yamt-km-base2 yamt-km-base
|
#
1.49 |
|
23-Jan-2005 |
matt |
branches: 1.49.2; Change initialzie of domains to use link sets. Switch to using STAILQ. Add a convenience macro DOMAIN_FOREACH to interate through the domain.
|
Revision tags: kent-audio1-beforemerge kent-audio1-base
|
#
1.48 |
|
25-May-2004 |
atatat |
branches: 1.48.4; Sysctl descriptions under net subtree (net.key not done)
|
#
1.47 |
|
22-Apr-2004 |
matt |
Constify protosw arrays. This can reduce the kernel .data section by over 4K (if all the network protocols) are loaded.
|
Revision tags: netbsd-2-0-base
|
#
1.46 |
|
24-Mar-2004 |
atatat |
branches: 1.46.2; Tango on sysctl_createv() and flags. The flags have all been renamed, and sysctl_createv() now uses more arguments.
|
#
1.45 |
|
23-Mar-2004 |
junyoung |
Nuke __P().
|
#
1.44 |
|
04-Dec-2003 |
atatat |
Dynamic sysctl.
Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(), vfs_sysctl(), etc, routines, along with sysctl_int() et al. Now all nodes are registered with the tree, and nodes can be added (or removed) easily, and I/O to and from the tree is handled generically.
Since the nodes are registered with the tree, the mapping from name to number (and back again) can now be discovered, instead of having to be hard coded. Adding new nodes to the tree is likewise much simpler -- the new infrastructure handles almost all the work for simple types, and just about anything else can be done with a small helper function.
All existing nodes are where they were before (numerically speaking), so all existing consumers of sysctl information should notice no difference.
PS - I'm sorry, but there's a distinct lack of documentation at the moment. I'm working on sysctl(3/8/9) right now, and I promise to watch out for buses.
|
#
1.43 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.42 |
|
06-Aug-2003 |
jonathan |
(FAST_IPSEC): attach PFKEY socket domain when either (KAME) IPSEC or FAST_IPSEC is configured. Likewise for sysctl.
|
#
1.41 |
|
29-Jun-2003 |
fvdl |
branches: 1.41.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
#
1.40 |
|
28-Jun-2003 |
darrenr |
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
#
1.39 |
|
23-Jun-2003 |
martin |
Make sure to include opt_foo.h if a defflag option FOO is used.
|
#
1.38 |
|
26-Feb-2003 |
matt |
Add MBUFTRACE kernel option. Do a little mbuf rework while here. Change all uses of MGET*(*, M_WAIT, *) to m_get*(M_WAIT, *). These are not performance critical and making them call m_get saves considerable space. Add m_clget analogue of MCLGET and make corresponding change for M_WAIT uses. Modify netinet, gem, fxp, tulip, nfs to support MBUFTRACE. Begin to change netstat to use sysctl.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
#
1.37 |
|
12-May-2002 |
matt |
Make domains extern.
|
Revision tags: eeh-devprop-base newlock-base ifpoll-base thorpej-mips-cache-base
|
#
1.36 |
|
12-Nov-2001 |
lukem |
add RCSIDs
|
#
1.35 |
|
29-Oct-2001 |
simonb |
Don't need to include <uvm/uvm_extern.h> just to include <sys/sysctl.h> anymore.
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.34 |
|
11-Feb-2001 |
itojun |
branches: 1.34.2; 1.34.4; 1.34.8; add pfctlinput2() (pfctlinput() with args).
|
#
1.33 |
|
02-Oct-2000 |
itojun |
attach ARP domain only if INET is compiled into the kernel.
|
#
1.32 |
|
27-Jun-2000 |
mrg |
remove include of <vm/vm.h>
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.31 |
|
30-Mar-2000 |
augustss |
Get rid of register declarations.
|
#
1.30 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
Revision tags: chs-ubc2-newbase
|
#
1.29 |
|
06-Feb-2000 |
thorpej |
Implement pffinddomain(), and use it as appropriate.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base
|
#
1.28 |
|
05-Aug-1999 |
sommerfeld |
branches: 1.28.2; Implement arp_drain(), which frees packets tied up in the arp cache if mbufs are in short supply. Create a (trivial) protocol domain for arp so that the drain routine will be called from m_reclaim()
|
Revision tags: chs-ubc2-base
|
#
1.27 |
|
09-Jul-1999 |
thorpej |
defopt IPSEC and IPSEC_ESP (both into opt_ipsec.h).
|
#
1.26 |
|
01-Jul-1999 |
itojun |
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.25 |
|
14-Jan-1999 |
thorpej |
branches: 1.25.4; 1.25.6; Garbage-collect some straggling netimp stuff.
|
Revision tags: kenh-if-detach-base chs-ubc-base eeh-paddr_t-base
|
#
1.24 |
|
05-Jul-1998 |
jonathan |
branches: 1.24.4; defopt NATM.
|
#
1.23 |
|
05-Jul-1998 |
jonathan |
defopt NS, NSIP.
|
#
1.22 |
|
05-Jul-1998 |
jonathan |
defopt ISO TPIP.
|
#
1.21 |
|
05-Jul-1998 |
jonathan |
defopt CCITT.
|
#
1.20 |
|
05-Jul-1998 |
jonathan |
defopt INET, NETATALK.
|
#
1.19 |
|
06-May-1998 |
thorpej |
Add monotonically increasing "current time" stamps for pfslowtimo() and pffasttimo().
|
#
1.18 |
|
01-Mar-1998 |
fvdl |
Merge with Lite2 + local changes
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base thorpej-signal-base marc-pcmcia-bp marc-pcmcia-base
|
#
1.17 |
|
04-Apr-1997 |
christos |
Add netatalk domain.
|
Revision tags: is-newarp-before-merge is-newarp-base
|
#
1.16 |
|
14-Aug-1996 |
explorer |
formatting fix only
|
#
1.15 |
|
04-Jul-1996 |
chuck |
add native mode atm protocol layer
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.14 |
|
09-Feb-1996 |
christos |
More proto fixes
|
#
1.13 |
|
04-Feb-1996 |
christos |
First pass at prototyping
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.12 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.11 |
|
13-May-1994 |
mycroft |
Update to 4.4-Lite networking code, with a few local changes.
|
#
1.10 |
|
07-May-1994 |
cgd |
stub for sysctl
|
#
1.9 |
|
05-May-1994 |
mycroft |
Remove now-bogus casts.
|
#
1.8 |
|
05-May-1994 |
cgd |
lots of changes: prototype migration, move lots of variables, definitions, and structure elements around. kill some unnecessary type and macro definitions. standardize clock handling. More changes than you'd want.
|
#
1.7 |
|
29-Apr-1994 |
cgd |
change timeout/untimeout/wakeup/sleep/tsleep args to void *
|
#
1.6 |
|
14-Jan-1994 |
deraadt |
prevent an explicit splimp->splnet lowering. (which blows up on machines with a levelled-spl system that check for lowering) de-ansify two function definitions.
|
#
1.5 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.4 |
|
27-Jun-1993 |
andrew |
branches: 1.4.4; ANSIfications - removed all implicit function return types and argument definitions. Ensured that all files include "systm.h" to gain access to general prototypes. Casts where necessary.
|
#
1.3 |
|
20-May-1993 |
cgd |
add $Id$ strings, and clean up file headers where necessary
|
Revision tags: netbsd-0-8 netbsd-alpha-1
|
#
1.2 |
|
10-Apr-1993 |
glass |
fixed to be compliant, subservient, and to take advantage of the newly hacked config(8)
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|