Commit Graph

27 Commits

Author SHA1 Message Date
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
augustss 8529438fe6 Remove register declarations. 2000-03-30 12:51:13 +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 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
drochner 87568e8d82 defopt the XNS protocol (options NS), clean up the use of related
option headers / defines
1999-10-25 19:18:10 +00:00
jonathan 011f2bda08 defopt NS, NSIP. 1998-07-05 06:49:00 +00:00
fvdl e5bc90f40c Merge with Lite2 + local changes 1998-03-01 02:20:01 +00:00
thorpej c5dab54215 - Be more careful with type sizes (many u_long -> u_int32_t in protocol
structures).
- Use NTOH*() and HTON*() where appropriate.
- Some slight formatting cleanup in a few places.
1997-07-18 19:30:33 +00:00
christos cb32007a8b backout previous kprintf change 1996-10-13 01:59:55 +00:00
christos 98d5537195 - make this compile again
- printf -> kprintf, sprintf -> ksprintf
1996-10-10 23:22:58 +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 f0684ee41d netns prototypes 1996-02-13 22:13:43 +00:00
mycroft 7d87f9110f Clean this up a bit. Use queue.h more; de-uglify casts. 1995-06-13 08:36:58 +00:00
mycroft e47a488874 nsipstart() should return void. 1995-04-11 04:25:21 +00:00
cgd e7c1a9e7f9 cast pointers correctly, ioctl cmds are u_longs, most int != long type bogons 1995-03-08 02:14:50 +00:00
cgd 6ac2bbfc35 be more careful with types, also pull in headers where necessary. 1994-10-30 21:43:03 +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
mycroft c191ecd14e Update to 4.4-Lite networking code, with a few local changes. 1994-05-13 06:10:16 +00:00
mycroft 986265a242 Need cpu.h for setsoftnet(). 1994-02-20 03:19:45 +00:00
deraadt fa8be24b36 delete references to mtpr.h 1994-01-20 18:17:00 +00:00
mycroft 00d41f83e8 Make this compile again after netinet changes. 1994-01-10 22:01:43 +00:00
mycroft 27876f2d51 Correct order of arguments to m_get*(). 1994-01-06 23:58:17 +00:00
mycroft 95b048b53a Canonicalize all #includes. 1993-12-18 00:40:47 +00:00
cgd a506801dc2 header cleanup & id string addition 1993-05-20 04:35:46 +00:00
cgd db622a7428 added netccitt, netiso, and netns support, from (currently
alpha) patch 126
1993-04-09 12:00:07 +00:00