Commit Graph

250 Commits

Author SHA1 Message Date
elad
0db637f40e Multiple inclusion protection, as suggested by christos@ on tech-kern@
few days ago.
2005-12-11 00:01:36 +00:00
dsl
d12c019f70 For some peverse reason the ISO code has to have the same template for
it's iso_pcbconnect() as the IP stack.
2005-11-16 20:44:19 +00:00
christos
3ebd13b60c - use memcpy instead of bcopy.
- constify.
2005-05-31 01:37:06 +00:00
christos
ee1e2f8883 deal with const cast-aways. 2005-05-30 22:14:52 +00:00
christos
d276a994d2 - sprinkle const
- remove unnecessary casts
- change some b*() to mem*()
2005-05-29 21:27:45 +00:00
christos
7cdea212c0 No 0x in front of %p... 2005-05-22 15:54:45 +00:00
christos
362a4a0bd5 Yes, it was a cool trick >20 years ago to use "0123456789abcdef"[a] to
implement, xtoa(), but I think defining the samestring 50 times is a bit
too much. Defined HEXDIGITS and hexdigits in subr_prf.c and use it...
2005-05-17 04:14:57 +00:00
perry
bcfcddbac1 nuke trailing whitespace 2005-02-26 22:31:44 +00:00
martin
7719036ed6 Avoid use of freed memory. Reported by Ted Unangst on tech-kern. 2005-02-24 08:29:23 +00:00
simonb
3cebd9325e White space nit- don't put a space before/after increment/decrement
operators.
2005-02-11 06:21:21 +00:00
matt
d341be30f4 Change initialzie of domains to use link sets. Switch to using STAILQ.
Add a convenience macro DOMAIN_FOREACH to interate through the domain.
2005-01-23 18:41:56 +00:00
peter
396b87b8c2 Convert lo(4) to a clonable device.
This also removes the loif array and changes all code to use the new
lo0ifp pointer which points to the lo0 ifnet structure.

Approved by christos.
2004-12-04 16:10:25 +00:00
matt
11ccf29a76 remove #else clause of #if __STDC__ 2004-04-25 21:13:13 +00:00
matt
e50668c7fa Constify protosw arrays. This can reduce the kernel .data section by
over 4K (if all the network protocols) are loaded.
2004-04-22 01:01:40 +00:00
matt
fd2a977729 Add #include "opt_iso.h" if not already there.
Make these compile cleanly when TPCONS is defined.
2004-04-21 23:19:49 +00:00
matt
961e6cb2e5 Add multiple inclusion protection 2004-04-21 23:18:10 +00:00
matt
0b5d1218b5 Add TPCONS option 2004-04-21 23:16:53 +00:00
itojun
d2f1c029b9 kill sprintf, use snprintf 2004-04-21 18:40:37 +00:00
matt
e3b919c754 Constify if.c radix.c and route.c (and fix related fallout). 2004-04-21 04:17:28 +00:00
matt
6a50a009d1 De-__P the header files (and reorder the includes of some C files). 2004-04-20 02:13:26 +00:00
matt
a87928f350 ANSI'fy, de-__P(), and constify some read-only data. 2004-04-19 05:16:45 +00:00
matt
591f26e81f Use M_ZERO when appropriate 2004-04-18 18:54:03 +00:00
christos
90e1f431ca adjust to the sbreserve prototype change. 2004-04-17 15:18:53 +00:00
wiz
e3fc4b66c3 Spell the plural of suffix "suffixes", not "suffices".
Inspired by PR 24400 by Todd Vierling.
2004-02-13 17:56:17 +00:00
keihan
b8702f530b netbsd.org -> NetBSD.org
This was the last commit of this kind to src/sys, which is now totally
"NetBSD.org clean".  Thanks for the patiance, and sorry for all the commits.
2003-12-04 13:57:30 +00:00
simonb
a2facef339 Remove some assigned-to but otherwise unused variables. 2003-10-30 01:43:08 +00:00
christos
36b4e0b6e7 Fix off-by-one in PRC_NCMDS check. From FreeBSD via OpenBSD 2003-09-30 00:01:18 +00:00
wiz
cff5e477ad Process has only one c. From miod@openbsd. 2003-09-26 22:23:58 +00:00
christos
51a4dadbfe adjust for SA_SIGINFO changes 2003-09-06 23:56:27 +00:00
itojun
82eb4ce914 change the additional arg to be passed to ip{,6}_output to struct socket *.
this fixes KAME policy lookup which was broken by the previous commit.
2003-08-22 21:53:01 +00:00
jonathan
28b5f5dfab (fast-ipsec): Add hooks to pass IPv4 IPsec traffic into fast-ipsec, if
configured with ``options FAST_IPSEC''.  Kernels with KAME IPsec or
with no IPsec should work as before.

All calls to ip_output() now always pass an additional compulsory
argument: the inpcb associated with the packet being sent,
or 0 if no inpcb is available.

Fast-ipsec tested with ICMP or UDP over ESP. TCP doesn't work, yet.
2003-08-15 03:42:00 +00:00
itojun
9ec3d05b38 remove weird #define MNULL/PCBNULL (NULL should do it just fine) 2003-08-11 15:17:29 +00:00
agc
aad01611e7 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
2003-08-07 16:26:28 +00:00
lukem
9391907df1 add missing __RCSID() 2003-07-14 15:40:37 +00:00
fvdl
d5aece61d6 Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
2003-06-29 22:28:00 +00:00
darrenr
960df3c8d1 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
2003-06-28 14:20:43 +00:00
is
04d8fd7e2c Keep pkthdr when prepending new mbuf in front of a given chain.
This keeps us from panic()ing in the interface output routine.
2003-05-25 08:47:54 +00:00
fvdl
00abb49877 if 0 out some redundant asserts. 2003-04-17 12:52:21 +00:00
thorpej
f4a068d5c2 Use PAGE_SIZE rather than NBPG. 2003-04-01 01:43:29 +00:00
matt
65e5548a17 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.
2003-02-26 06:31:08 +00:00
jdolecek
932e9f001c deobfuscify PRU_CONNECT a bit - split isop_sfaddr and rcb_faddr pointer
assignment to separate statements (and lines), add some comments
2003-02-08 11:11:11 +00:00
thorpej
74e0a051d0 Delete unused variable (result of callout changes). kern/20194. 2003-02-04 07:19:56 +00:00
thorpej
1b84adbe5f New callout implementation. This is based on callwheel implementation
done by Artur Grabowski and Thomas Nordin for OpenBSD, which is more
efficient in several ways than the callwheel implementation that it is
replacing.  It has been adapted to our pre-existing callout API, and
also provides the slightly more efficient (and much more intuitive)
API (adapted to the callout_*() naming scheme) that the OpenBSD version
provides.

Among other things, this shaves a bunch of cycles off rescheduling-in-
the-future a callout which is already scheduled, which the common case
for TCP timers (notably REXMT and KEEP).

The API has been simplified a bit, as well.  The (very confusing to
a good many people) "ACTIVE" state for callouts has gone away.  There
is now only "PENDING" (scheduled to fire in the future) and "EXPIRED"
(has fired, and the function called).

Kernel version bump not done; we'll ride the 1.6N bump that happened
with the malloc(9) change.
2003-02-04 01:21:03 +00:00
lukem
0635de35a3 Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more. 2002-11-26 23:30:07 +00:00
thorpej
9ae47ca44d Move netiso config defns to netiso/files.netiso. 2002-10-10 22:56:03 +00:00
itojun
c00fa8dfd9 avoid swapping endian of ip_len and ip_off on mbuf, to meet with M_LEADINGSPACE
optimization made last year.  should solve PR 17867 and 10195.

IP_HDRINCL behavior of raw ip socket is kept unchanged.  we may want to
provide IP_HDRINCL variant that does not swap endian.
2002-08-14 00:23:27 +00:00
itojun
27174b9ec9 fix null pointer deref. from ho@openbsd 2002-07-29 22:54:38 +00:00
wiz
da0b574ae0 Comment out token after #endif. 2002-05-16 19:30:41 +00:00
matt
8dcbea3bed Eliminate commons. 2002-05-12 21:30:35 +00:00
tv
8e6f7afb5b MKfoo=no -> NOfoo 2001-12-12 01:48:43 +00:00
wiz
1fd7eeefcd "than" instead of "then". 2001-11-21 19:14:19 +00:00
wiz
1f1e26bd6d Presence looks better with a 'c' instead of an 's'. 2001-11-21 19:01:31 +00:00
lukem
2565646230 don't need <sys/types.h> when including <sys/param.h> 2001-11-15 09:47:59 +00:00
lukem
4f2ad95259 add RCSIDs 2001-11-13 00:56:55 +00:00
matt
8fef52258f Eliminate local extern declartion for inetctlerrmap 2001-11-04 20:52:39 +00:00
thorpej
e45efd967f Deprecate the "m_act" alias of "m_nextpkt" (m_act is a historical
name), and just use m_nextpkt everywhere.
2001-10-18 20:17:24 +00:00
wiz
4c99916337 va_{start,end} audit:
Make sure that each va_start has one and only one matching va_end,
especially in error cases.
If the va_list is used multiple times, do multiple va_starts/va_ends.
If a function gets va_list as argument, don't let it use va_end (since
it's the callers responsibility).

Improved by comments from enami and christos -- thanks!

Heimdal/krb4/KAME changes already fed back, rest to follow.

Inspired by, but not not based on, OpenBSD.
2001-09-24 13:22:25 +00:00
wiz
456dff6cb8 Spell 'occurred' with two 'r's. 2001-09-16 16:34:23 +00:00
wiz
c52d355d71 "wierd" is weird. 2001-08-20 12:20:01 +00:00
wiz
1e378c4c12 precede, not preceed. 2001-08-20 12:00:46 +00:00
jdolecek
934f52d4ff Sprinkle couple of cosmetic changes - use 'extern' in headers, make
some stuff static, const as appropriate, use static TAILQ_HEAD_INITIALIZER()
instead TAILQ_INIT() call.
2001-06-19 07:37:16 +00:00
wiz
5e33503d64 Fix typo. 2001-06-18 11:36:47 +00:00
jdolecek
176beeea9e Make compilable with -Wall, in hope this could be actually useful
(which is unlikely)
2001-06-18 09:57:27 +00:00
itojun
4d51fe368b change the meaning of ifnet.if_lastchange to meet RFC1573 ifLastChange.
follows BSD/OS practice and ucd-snmp code (FreeBSD does it for specific
interfaces only).

was: if_lastchange get updated on every packet transmission/receipt.
now: if_lastchange get updated when IFF_UP is changed.
2001-06-14 05:44:23 +00:00
kristerw
90b4d889db Silent gcc 3.0 warnings that multi-line string literals are deprecated (and
these literals should not be multi-line. It looks like they became that way
when a developer got a bit carried away when KNFing the code...)
2001-06-02 17:29:46 +00:00
thorpej
bf2dcec4f5 Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
wiz
14dbdf5518 Negative exit code cleanup: Replace exit(-x) with exit(x).
As seen on tech-userlevel.
2001-04-06 11:13:45 +00:00
thorpej
20fe4e2d96 Add a protosw flag, PR_ABRTACPTDIS (Abort on Accept of Disconnected
Socket), and add it to the protocols that use that behavior (all
PR_LISTEN protocols except for PF_LOCAL stream sockets).
2001-03-21 19:22:27 +00:00
itojun
498c0185d2 add IFT_GIF case. from chopps. 2001-02-20 10:38:37 +00:00
jdolecek
34c8ae80da constify 2001-01-18 20:28:15 +00:00
itojun
2d9097af9e correct typecast for eonrtrequest 3rd arg. 2001-01-17 15:13:37 +00:00
itojun
df9784d749 pull post-4.4BSD change to sys/net/route.c from BSD/OS 4.2 (UCB copyrighted).
have sys/net/route.c:rtrequest1(), which takes rt_addrinfo * as the argument.
pass rt_addrinfo all the way down to rtrequest, and ifa->ifa_rtrequest.
3rd arg of ifa->ifa_rtrequest is now rt_addrinfo * instead of sockaddr *
(almost noone is using it anyways).

benefit: the follwoing command now works.  previously we need two route(8)
invocations, "add" then "change".
# route add -inet6 default ::1 -ifp gif0

remove unsafe typecast in rtrequest(), from rtentry * to sockaddr *.  it was
introduced by 4.3BSD-reno and never corrected.

XXX is eon_rtrequest() change correct regarding to 3rd arg?
eon_rtrequest() and rtrequest() were incorrect since 4.3BSD-reno,
so i do not have correct answer in the source code.
someone with more clue about netiso-over-ip, please help.
2001-01-17 04:05:41 +00:00
thorpej
fc5dafc79b Fix a rather annoying problem where the sockaddr_dl which holds
the link level name for the interface (ifp->if_sadl) is allocated
before ifp->if_addrlen is initialized, which could lead to allocating
too little space for the link level address.

Do this by splitting allocation of the link level name out of
if_attach() and into if_alloc_sadl(), which is normally called
by functions like ether_ifattach().  Network interfaces which
don't have a link-specific attach routine must call if_alloc_sadl()
themselves (example: gif).

Link level names are freed by if_free_sadl(), which can be called
from e.g. ether_ifdetach().  Drivers never need call if_free_sadl()
themselves as if_detach() will do it if it is not already done.

While here, add the ability to pass an AF_LINK address to
SIOCSIFADDR in ether_ioctl() (this is what caused me to notice
the problem that the above fixes).
2001-01-17 00:30:49 +00:00
itojun
8524eab4d4 fix paren/#ifdef match. 2000-10-02 03:54:53 +00:00
kleink
079b94ad72 Avoid recursion with traditional cpp. 2000-07-28 12:13:32 +00:00
kleink
65c9edb442 Define sa_family_t, and use it for siso_family. 2000-06-26 16:20:01 +00:00
kleink
2fe502bf16 Define sa_family_t, and use it for seon_family. 2000-06-26 16:18:36 +00:00
augustss
8529438fe6 Remove register declarations. 2000-03-30 12:51:13 +00:00
thorpej
fc96443d15 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.
2000-03-23 07:01:25 +00:00
itojun
04ac848d6f introduce m->m_pkthdr.aux to hold random data which needs to be passed
between protocol handlers.

ipsec socket pointers, ipsec decryption/auth information, tunnel
decapsulation information are in my mind - there can be several other usage.
at this moment, we use this for ipsec socket pointer passing.  this will
avoid reuse of m->m_pkthdr.rcvif in ipsec code.

due to the change, MHLEN will be decreased by sizeof(void *) - for example,
for i386, MHLEN was 100 bytes, but is now 96 bytes.
we may want to increase MSIZE from 128 to 256 for some of our architectures.

take caution if you use it for keeping some data item for long period
of time - use extra caution on M_PREPEND() or m_adj(), as they may result
in loss of m->m_pkthdr.aux pointer (and mbuf leak).

this will bump kernel version.

(as discussed in tech-net, tested in kame tree)
2000-03-01 12:49:27 +00:00
itojun
6b56aad85e more careful about AF on ctlinput. (saw panic in the past with kame/netbsd141) 2000-02-26 16:10:31 +00:00
itojun
d142237f2a clear m_pkthdr for M_PKTHDR mbuf, so that we do not get panic with
old data in pointer fields.  NOTE: we'll extend m_pkthdr field soon.

why does the code allocate mbuf by its own?
2000-02-25 03:41:54 +00:00
thorpej
c1185c1020 PRU_PURGEADDR -> PRU_PURGEIF, per a discussion w/ itojun. In the IPv4
and IPv6 code, also use this to traverse PCB tables, looking for cached
routes referencing the dying ifnet, forcing them to be refreshed.
2000-02-02 23:28:08 +00:00
thorpej
d844a3ac41 First-draft if_detach() implementation, originally from Bill Studnemund,
although this version has been changed somewhat:
- reference counting on ifaddrs isn't as complete as Bill's original
  work was.  This is hard to get right, and we should attack one
  protocol at a time.
- This doesn't do reference counting or dynamic allocation of ifnets yet.
- This version introduces a new PRU -- PRU_PURGEADDR, which is used to
  purge an ifaddr from a protocol.  The old method Bill used didn't work
  on all protocols, and it only worked on some because it was Very Lucky.

This mostly works ... i.e. works for my USB Ethernet, except for a dangling
ifaddr reference left by the IPv6 code; have not yet tracked this down.
2000-02-01 22:52:04 +00:00
chopps
f420a461a1 allow delivery of routing protocol pdus to `raw' sockets even when the
interface has no iso address
2000-01-08 20:39:45 +00:00
itojun
559075a711 make sure we do not pass bogus socket pointer to IPv4 IPsec.
XXX we (KAME) are trying to invent cleaner way to pass socket pointer to
ip{,6}_output... so please permit this mess for now.
1999-12-24 05:01:33 +00:00
ragge
6aabd4d0c2 CL* discarding. 1999-12-04 12:11:13 +00:00
thorpej
c08800739a Back out previous. I was getting bitten by a bug in make(1), which is
now fixed.
1999-07-12 18:15:09 +00:00
thorpej
74b592231c Only include opt_*.h if we're building a kernel. 1999-07-11 21:28:08 +00:00
itojun
118d2b1d4f 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.
1999-07-01 08:12:45 +00:00
darrenr
67cac86e57 add PR_LISTEN to protocols which support listen(2) 1999-07-01 05:53:04 +00:00
chopps
dc3a7247ce add multicast address like everyone else, using if_ioctl 1999-06-30 03:32:40 +00:00
chopps
0f274aa73e don't check for ether_output, instead use if_type == IFT_ETHER
while we are here add IFT_FDDI support
1999-04-14 16:26:42 +00:00
chopps
47acef4796 add note about who uses this code 1999-04-05 01:09:51 +00:00
chopps
71f81a6eb6 add back the SIOCxxx_ISO ioctl's that were eroneously removed previously 1999-04-01 06:51:48 +00:00
perry
d446fb449c exterminate ovbcopy. patches provided by Erik Bertelsen, pr-7145 1999-03-12 22:42:30 +00:00
mjacob
d7e48cb804 adjust format args for compiler changes 1999-03-04 02:38:31 +00:00
lukem
dcab0210a0 convert from NOxxx= to MKxxx=no.
include <bsd.own.mk> if testing a MKxxx variable.
1999-02-13 02:54:17 +00:00
christos
e30bd461e3 Fix prototypes for iso_gethostbyname and iso_gethostbyaddr 1999-01-31 19:43:32 +00:00
thorpej
4b0e6bb4dc Domains are associated with protocol families, not address families. 1999-01-14 01:16:55 +00:00