Commit Graph

751 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
thorpej f64af41401 No need to reference ifnet_addrs[]. 2001-01-16 21:18:56 +00:00
itojun 72f7f224db run IPCP only if we have IPv4 in kernel 2001-01-16 15:28:27 +00:00
thorpej 569e9a31e2 For SLIP/STRIP/PPP, use generic soft interrupts, if available. 2001-01-15 16:33:30 +00:00
martin 89e8f275be Don't peek at part of a structure via fuword. Does not work well on
64bit architectures. XXX - have to check other changes in the I4B
distribution, this had been fixed there a long time ago.
2001-01-15 13:40:35 +00:00
thorpej 1cdefa9f66 Fix a comment. 2001-01-12 19:38:46 +00:00
thorpej ba4e91812d After freeing the input buffer, set the pointer to it to NULL. 2001-01-12 19:27:32 +00:00
thorpej acd96e1307 Don't use splimp() to block both net and tty interrupts. Instead,
block both interrupt levels as appropriate.
2001-01-12 19:26:48 +00:00
thorpej 6f85104748 Sync with if_sl.c,v 1.67:
Defer output processing to the software interrupt.

Note, that in the process of doing this, I discovered several
very broken things about this driver, which are not fixed with
this commit.  It should work as well as it previously did, but
this code could be seriously improved.  As soon as I can find
my second Metricom radio, I'll give it a proper shakedown.
2001-01-12 19:03:24 +00:00
thorpej 455e3228dd Sync if if_sl.c,v 1.66:
Move the VJ uncompress code into the software interrupt.
2001-01-11 22:56:51 +00:00
thorpej c292853354 Plug a memory leak. 2001-01-11 22:43:02 +00:00
thorpej 7c1a1a3ae8 Process STRIP software interrupts. 2001-01-11 22:32:21 +00:00
thorpej 1ce7cbc90b Sync with if_sl.c,v 1.65:
Once we have a complete frame, schedule a STRIP software interrupt,
and manipulate ipintrq from there.  This will allow us to clean up
the use of splimp() in this file later.
2001-01-11 22:31:49 +00:00
thorpej a5ee0c0a19 Sync with if_sl.c,v 1.64:
Make the buffer management in STRIP just a little less evil.
2001-01-11 22:23:11 +00:00
thorpej 7c5fe175c0 Defer output processing to the software interrupt. 2001-01-11 21:15:58 +00:00
thorpej 4c9cb837ba Move the VJ uncompress code into the software interrupt. 2001-01-10 23:29:42 +00:00
itojun ea2d93c355 fix indentation 2001-01-10 01:16:59 +00:00
thorpej f5428a0a17 Fix oversight in slip softintr changes. 2001-01-09 20:20:13 +00:00
thorpej efed547b78 Once we have a complete frame, schedule a SLIP software interrupt,
and manipulate ipintrq from there.  This will allow us to clean up
the use of splimp() in this file later.
2001-01-09 05:04:23 +00:00
thorpej 30be6aa8b6 Add NETISRs for SLIP and STRIP. (Geez, I wish we had the softintr
API everywhere...)
2001-01-09 05:03:10 +00:00
thorpej 692a2bc939 Make the buffer management in SLIP just a little less evil. 2001-01-09 04:42:48 +00:00
thorpej c5acd6aad5 Fix a typo in the ALTQ changes. 2001-01-08 23:43:34 +00:00
martin 6b82e7fe42 64bit police.
Rumors say there are archs without ISA busses, so avoid including
(uneccesarily) isa bus headers in MI files.
XXX this is the minimal solution, layer interface calls will have
XXX to be revisited later
2001-01-07 21:47:24 +00:00
enami 0e081e1b48 Missing newline in log messsage. 2001-01-04 00:17:52 +00:00
thorpej d2bbed89e7 Fix non-blocking BPF reads, from Guy Harris, kern/11836. 2000-12-29 01:55:49 +00:00
thorpej ad5b855ef0 Back out the sledgehammer damage applied by wiz while I was out for
the holiday.
2000-12-28 21:40:59 +00:00
augustss 79431d7824 Simplify case statement a tiny bit. 2000-12-26 23:54:34 +00:00
wiz 32e20d8993 Back out previous change. It causes NAT to fail, and was CLEARLY
NOT TESTED before it was committed.
2000-12-25 02:00:46 +00:00
thorpej f9fd00d8e7 Fix a silly bug in the ALTQ version of IFQ_DEQUEUE(). 2000-12-23 19:00:18 +00:00
thorpej d0357bdb4f Slight adjustment to how pfil_head's are registered. Instead of a
"key" and a "dlt", use a "type" (PFIL_TYPE_{AF,IFNET} for now) and
a val/ptr appropriate for that type.  This allows for more future
flexibility with the pfil_hook mechanism.
2000-12-22 20:01:17 +00:00
thorpej 8a56f72a7c Oops, make this build without ALTQ again. 2000-12-18 21:13:14 +00:00
thorpej 831d5b8d43 Add SIOCGIFDLT, which will fetch the data link type (DLT_* constant)
for a given network interface.
2000-12-18 21:05:03 +00:00
thorpej 0b541534c5 Add an "ifr_dlt" alias for the union in struct ifreq. 2000-12-18 21:03:34 +00:00
thorpej 192e2774b3 Always pull in DLT_* constants. 2000-12-18 20:58:41 +00:00
thorpej 023adb3093 Use IFQ_PURGE(). 2000-12-18 20:50:36 +00:00
thorpej 5363e5eed4 ALTQ'ify. 2000-12-18 20:47:10 +00:00
thorpej 541812a992 ALTQ'ify. 2000-12-18 20:41:44 +00:00
thorpej ed7695a765 Fill in if_dlt. 2000-12-18 19:44:33 +00:00
thorpej 23df92e38d Small cosmetic change. 2000-12-18 19:36:41 +00:00
thorpej 6484f81abc We now support hw vlan tag support in network interfaces, so remote it
from the TODO list.
2000-12-18 19:32:20 +00:00
thorpej 00d64bedbc Add a if_dlt member, used so that userland can query the DLT_* of an
interface without having to first attach it to a bpfdesc.
2000-12-18 19:25:57 +00:00
thorpej db9fd3e536 Add ALTQ support. This is used for testing/debugging ALTQ only. It
is triggered only on loopback interfaces, and not simplex interfaces
(which also use looutput()).
2000-12-18 19:18:33 +00:00
thorpej 66539b9373 Add ALTQ support. 2000-12-18 18:57:21 +00:00
thorpej 2663dfcf85 Commit to the ALTQ glue. 2000-12-18 18:54:47 +00:00
thorpej 721139924d Add a version of the 802.11 frame header that includes the 4th address. 2000-12-18 18:00:23 +00:00
itojun 60fa2b29af fix typo in function name (rn_satsifies_leaf -> satisfies). indent.
split rn_inithead() into two function - i'm putting some hook around here.
2000-12-17 10:23:19 +00:00
thorpej e961c654a8 Change an if_qflush() to an IFQ_PURGE() to deal with ALTQ correctly. 2000-12-14 17:47:26 +00:00
thorpej fb2688c12f Fix braino in IF_PURGE(). 2000-12-14 00:19:42 +00:00
thorpej dce7e1a85b Oops, forgot IFQ_POLL() in the ALTQ case. 2000-12-14 00:07:35 +00:00
thorpej 3dc1664f57 Add ALTQ glue. 2000-12-13 22:07:50 +00:00