Commit Graph

171 Commits

Author SHA1 Message Date
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
matt
3ad026ac87 vax -> __vax__ (and mips to __mips__ in ultrix_misc.c) 1998-10-20 01:46:27 +00:00
christos
3d10f9ca2b Fix ' ' -> '\t' 1998-09-13 15:24:39 +00:00
christos
9b63f5f407 Assign copyright to TNF. 1998-09-05 14:30:31 +00:00
thorpej
9f42788795 Add some braces to make egcs happy. 1998-08-25 04:43:46 +00:00
jonathan
5c0c5dd0b4 defopt ISO TPIP. 1998-07-05 04:37:35 +00:00
jonathan
8db0fcdbf7 defopt CCITT. 1998-07-05 02:12:22 +00:00
jonathan
f2a2327e0a defopt EON. 1998-07-05 01:06:49 +00:00
jonathan
3751946b97 defopt INET, NETATALK. 1998-07-05 00:51:04 +00:00
cgd
651b44e211 Rework the way kernel include files are installed. In the new method,
as with user-land programs, include files are installed by each directory
in the tree that has includes to install.  (This allows more flexibility
as to what gets installed, makes 'partial installs' easier, and gives us
more options as to which machines' includes get installed at any given
time.)  The old SYS_INCLUDES={symlinks,copies} behaviours are _both_
still supported, though at least one bug in the 'symlinks' case is
fixed by this change.  Include files can't be build before installation,
so directories that have includes as targets (e.g. dev/pci) have to move
those targets into a different Makefile.
1998-06-12 23:22:30 +00:00
thorpej
5596fe2614 Nuke TUBA per my note to tech-net; there's no reason to keep it around. 1998-05-11 19:57:23 +00:00
thorpej
1ffa60ac01 Use macros from tcp_timer.h to manipulate TCP timers, so that their
implementation can be changed easily.
1998-05-06 01:21:20 +00:00
drochner
57c38ff7bc fix egcs warning 1998-04-17 12:55:57 +00:00
fvdl
7ba6a2daac Remove extraneous files from Lite2 merge. 1998-03-01 13:45:28 +00:00
fvdl
e5bc90f40c Merge with Lite2 + local changes 1998-03-01 02:20:01 +00:00
fvdl
b50e39fa45 Import 4.4BSD-Lite for reference 1998-03-01 02:09:33 +00:00
kleink
59fe905973 Fix variable declarations: register -> register int. 1998-02-14 19:34:12 +00:00
thorpej
4c54445530 Use offsetof() from libkern.h 1998-01-28 02:35:10 +00:00
cgd
4293c20761 return an error if given an ioctl which isn't recognized. (Fixes
ifconfig media warning with GENERIC kernels, as well as simply being
more correct.)
1998-01-16 18:54:10 +00:00
thorpej
8947029c63 Make this compile in light of recent socket queue data structure change.
Pointed out by Matthias Drochner.
1998-01-09 18:31:50 +00:00
is
fd26a0bfcb Make these structures packed, so that at least with our compiler, fixed
since today, they will have the same size as the on-the-wire-packet on each
architecture.
Problem was reported by George Harvey for the m68k architecture.
1997-11-03 15:01:18 +00:00
lukem
f984b5a5dc use CPPFLAGS instead of CFLAGS 1997-10-26 21:50:53 +00:00
explorer
525a0ad7a5 Add hooks to use the kernel random system to generate TCP sequence numbers. 1997-10-10 01:54:32 +00:00
mikel
a1c1c11a40 eliminate non-comment text after #endifs; from Dave Sainty in PR kern/4091 1997-09-08 02:06:30 +00:00
hannken
4d03b30298 Add variable hdroptlen'. See file netinet/tcp_input.c', Rev. 1.30
for details. Closes PR #3922.
1997-07-28 11:50:05 +00:00
thorpej
7ed16a75d1 Pull SYN_cache_branch down to the main line. 1997-07-23 21:30:11 +00:00
thorpej
a0e791807e Eliminate use of dtom() from the network code, allowing more flexible
use of mbuf external storage and increasing performance (by eliminating
an m_pullup() for clusters in the IP reassembly code).

Changes from Koji Imada <koji@math.human.nagoya-u.ac.jp>, in PR #3628
and #3480, with ever-so-slight integration changes by me.
1997-06-24 02:25:59 +00:00
is
07b064e02e New ARP system, supports IPv4 over any hardware link.
Some of the stuff (e.g., rarpd, bootpd, dhcpd etc., libsa) still will
only support Ethernet. Tcpdump itself should be ok, but libpcap needs
lot of work.

For the detailed change history, look at the commit log entries for
the is-newarp branch.
1997-03-15 18:09:08 +00:00
veego
8f03890dff Cast the printf("%ld", sizeof) in eoniphdr to long.
This fix a -Wall error on non alpha systems
1996-11-23 21:13:18 +00:00
cgd
6cc49bedec fix -Wformat problems 1996-11-13 20:00:15 +00:00
christos
ad67e04154 backout previous kprintf change 1996-10-13 16:50:51 +00:00
christos
5545959d0b backout previous kprintf changes 1996-10-13 02:03:00 +00:00
christos
6d7ad25bea printf -> kprintf, sprintf -> ksprintf 1996-10-10 23:12:43 +00:00
mycroft
dd1088afc1 Catch up with netinet changes. 1996-09-17 16:43:48 +00:00
mycroft
0804856d01 Make sure the control mbufs are freed in all cases.
Return ENOPROTOOPT rather than picking pseudo-random error values.
Restructure *_ctloutput() functions to match other protocols.
iso_ifreq and SIOC*_ISO are no longer needed; use the standard versions.
1996-09-08 14:28:08 +00:00
cgd
d73abf41aa avoid unnecessary checks of m_get/MGET/etc.'s return values. When
they're called with M_WAIT, they are defined to never return NULL.
1996-06-14 22:21:12 +00:00
mycroft
49d52c9b1c Pass a proc pointer down to the usrreq and pcbbind functions for PRU_ATTACH, PRU_BIND and
PRU_CONTROL.  The usrreq interface really needs to be split up, but this will have to wait.
Remove SS_PRIV completely.
1996-05-22 13:54:55 +00:00
scottr
64da2bdad9 Include <machine/cpu.h> to get setsoftnet().
XXX - We need this for at least amiga and hp300.  This change must die,
      and is intended as a temporary workaround only.
1996-05-09 22:29:25 +00:00
thorpej
4edabe2501 Changed struct ifnet to have a pointer to the softc of the underlying
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit.  Updated interface to (*if_watchdog)() and (*if_reset)()
to take a struct ifnet *, rather than a unit number.
1996-05-07 02:40:22 +00:00
christos
261b2f7f02 fix a printf format string 1996-04-22 01:43:45 +00:00
cgd
7e4d04910d fix screw-up in the prototyping changes: print pointers with %p, NOT
by casting them to (unsigned int) then printing with %x.
1996-04-13 01:34:06 +00:00
christos
df16a66658 Make netiso not need netccitt by providing a fake pk_flowcontrol(), as before.
Closes PR2263
1996-03-26 22:27:01 +00:00
christos
95b6e29e65 Fix a gazillion incorrect printf usages. 1996-03-16 23:13:45 +00:00
christos
1c2a80cfe3 add another missing prototype with TPCONS is not defined. 1996-02-14 21:32:37 +00:00
christos
2d4af9a7f8 netiso prototypes and fixes to get -DTUBA to compile. 1996-02-13 22:07:57 +00:00
mycroft
201c24de5a Build a hash table of PCBs. Hash function needs tweaking. 1996-02-02 21:56:34 +00:00
mycroft
3a0d2c6a5b Add extra arg for in_pcbinit(). 1996-02-02 21:47:37 +00:00
cgd
dfad729a16 make netinet work on systems where pointers and longs are 64 bits
(like the alpha).  Biggest problem: IP headers were overlayed with
structure which included pointers, and which therefore didn't overlay
properly on 64-bit machines.  Solution: instead of threading pointers
through IP header overlays, add a "queue element" structure to do
the threading, and point it at the ip headers.
1995-11-21 01:07:34 +00:00
mycroft
c7f52bfe3f Fix error pointed out by GCC 2.7. 1995-10-16 05:28:58 +00:00
mycroft
873ed30f83 so_pcb should be a void *. 1995-08-17 02:57:20 +00:00
mycroft
26c674e349 Allocate PCBs with malloc(), not MGET(). 1995-08-16 00:38:53 +00:00
mycroft
5482957905 splnet --> splsoftnet 1995-08-12 23:59:09 +00:00
mycroft
68735fd022 Encapsulate the test for sending a notification in a macro, sb_notify(). 1995-08-04 01:09:57 +00:00
mycroft
10a73abd8b Initialize iso_ifaddr. 1995-07-27 20:36:14 +00:00
cgd
130c77c5a5 make this compile again, a la pr 1218 from Alistair G. Crooks, as whacked
by the style police.
1995-07-12 09:17:06 +00:00
mycroft
4b83f9cc67 Change llinfo_llc to use queue.h. 1995-06-13 08:12:33 +00:00
mycroft
3bcdd7fb97 Replace an insque()/remque() pair I missed. 1995-06-13 08:11:37 +00:00
mycroft
a92b154a68 Touch this up so it compiles again. 1995-06-13 07:58:10 +00:00
mycroft
3c833d10fc Clean this up a bit. Use queue.h more; de-uglify casts. 1995-06-13 07:13:14 +00:00
mycroft
d2307f3ecb Update to match data structure changes. 1995-06-13 05:52:42 +00:00
mycroft
e21c61b16f Remove extra definition of satosin(). 1995-06-07 15:21:48 +00:00
mycroft
eb216fd6c2 Avoid byte-swapping IP addresses at run time. 1995-06-01 21:35:34 +00:00
cgd
239425ba96 cast pointers to longs, not ints 1995-04-22 13:29:33 +00:00
cgd
eddc28046e type changes; fix compiler warning caused by new netinet code 1995-04-15 01:55:45 +00:00
mycroft
8b77f9cd5f Remove some explicit references to loif. 1995-04-11 04:30:47 +00:00
briggs
6efcd1b6d4 KERNEL -> _KERNEL 1995-03-29 21:57:43 +00:00
jtc
db0046c14d KERNEL -> _KERNEL 1995-03-28 19:59:56 +00:00
jtc
f76f1f89ad KERNEL -> _KERNEL 1995-03-26 20:35:13 +00:00
cgd
d4c091877f cast pointers correctly, ioctl cmds are u_longs, most int \!= long
type bogons.  two on-inspection fixes.
1995-03-08 02:16:07 +00:00
glass
af55380e5a remove references to arptnew. fix spelling error 1995-03-06 19:06:05 +00:00
mycroft
d67b084135 Fix compiler warning. 1994-12-13 20:38:52 +00:00
cgd
6ac2bbfc35 be more careful with types, also pull in headers where necessary. 1994-10-30 21:43:03 +00:00
cgd
f096880a27 C syntax, and proper definition of time. 1994-09-20 06:41:35 +00:00
mycroft
e475493b73 Don't try to define BYTE_ORDER; get it from <machine/endian.h>. 1994-07-21 07:10:12 +00:00
cgd
fccfa11af5 New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD' 1994-06-29 06:39:25 +00:00
cgd
cf92afd66e New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD' 1994-06-29 06:29:24 +00:00
mycroft
c191ecd14e Update to 4.4-Lite networking code, with a few local changes. 1994-05-13 06:10:16 +00:00
mycroft
13a6ea2dd4 Clean up deleted files. 1994-05-13 06:10:13 +00:00
mycroft
c427e65091 Update to 4.4-Lite networking code, with a few local changes. 1994-05-13 06:08:03 +00:00
cgd
f16095c91d kill wrongheaded byte order foo 1994-05-05 07:56:35 +00:00