Commit Graph

39 Commits

Author SHA1 Message Date
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
lukem
a4845ebfa1 delint to c89; use #define instead of static const int for an array size 2001-05-07 10:15: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
enami
2ceebb6c0e Remove unnecessary test of tp->t_linesw against NULL; they are results
of confusion while correcting compilation error after t_line is
replaced with t_linesw.
2001-03-31 00:35:21 +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
thorpej
569e9a31e2 For SLIP/STRIP/PPP, use generic soft interrupts, if available. 2001-01-15 16:33:30 +00:00
thorpej
1cdefa9f66 Fix a comment. 2001-01-12 19:38:46 +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
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
c5acd6aad5 Fix a typo in the ALTQ changes. 2001-01-08 23:43:34 +00:00
thorpej
5363e5eed4 ALTQ'ify. 2000-12-18 20:47:10 +00:00
thorpej
ed7695a765 Fill in if_dlt. 2000-12-18 19:44:33 +00:00
thorpej
c5293456da Adapt to bpfattach() changes, and further centralize the bpfattach()
and bpfdetach() calls into link-type subroutines where possible.
2000-12-12 18:00:22 +00:00
eeh
16bbba0a23 Fix bug w/previous. 2000-11-02 16:50:17 +00:00
itohy
344f9b7b00 Set the default line discipline to t_linesw, rather than just NULL it. 2000-11-02 12:00:49 +00:00
itohy
486a58959c Adapt to the new line discipline scheme. 2000-11-02 11:00:53 +00:00
itojun
253515cca1 cosmetic; repair indentation 2000-10-02 03:51:18 +00:00
augustss
c1ebd1929a Kill some more register declarations. 2000-03-30 09:45:33 +00:00
simonb
0fd09c8496 Don't need to include <sys/conf.h> here. 2000-03-29 03:43:33 +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
thorpej
9ab51d2224 Make this compile again. 1998-07-07 03:22:03 +00:00
jonathan
3751946b97 defopt INET, NETATALK. 1998-07-05 00:51:04 +00:00
thorpej
851be78801 Start the watchdog timer in stripopen(), and make sure it's cancelled in
stripclose().  In strip_watchdog(), make abort if the line has been closed.

This fixes kern/4470 (Wolfgang Rupprecht), which was a bad pointer passed
to b_to_q() from strip_proberadio() called via strip_watchdog(); the tty
hadn't yet been attached to the strip interface.
1997-11-20 08:03:06 +00:00
thorpej
7ec7599a61 Change the interface name from "st" to "strip", so as to match the
pseudo-device option listed in the kernel config file, and to avoid
a name clash with the "SCSI tape" driver.
1997-11-17 23:35:28 +00:00
thorpej
22284276e8 Remove a gratuitous debugging printf. 1997-11-17 23:01:44 +00:00
christos
6a9f9d3292 PR/3665: Martin Husemann: if_strip calls sl_compress_init with extra arg. 1997-05-24 14:39:44 +00:00
mikel
5f50ab9716 fix bogons; from Jonathan O'Brien in PR kern/3571. 1997-05-07 04:47:15 +00:00
thorpej
d1c9089a16 Update for the new mbuf code, in a slighly kludgy way. Basically, these
drivers played a somewhat evil trick with clusters, which is now
replaced by a somewhat evil trick with regular malloc'd memory.
1997-03-27 20:36:14 +00:00
cgd
8800178e5c -Wcast-qual cleanups. Don't discard 'const' when casting. 1996-10-25 22:15:54 +00:00
christos
a1dcf4b026 backout previous kprintf change 1996-10-13 02:10:01 +00:00
christos
10191279fb - printf -> kprintf, sprintf -> ksprintf 1996-10-10 22:59:41 +00:00
jonathan
36c640a447 * Remove old, unused SLIP variables from softc.
* Fix radio error-message parsing bug: old comparison against error
  prefix string  off by the size of the Starmode link-level protocol field.
* Fix radio reset finite state machine, given that parsing works properly.
* Add debugging messages about reset FSM if IFF_DEBUG is set.
* Remove #ifdefs notdef around back the check that discards newlines at
  the beginning of a frame. Every error message from the radio has a newline,
  as the radio send error messages terminated by \r\n, not  just \r like data
  frames. Not dropping the \n garbles the following data frame.
* Remove unused low-level debugging routines.
* Reformat the low-level bytestuff/RLL code to match the canonical source.
* Reduce MTU to 1100 bytes; 1200 bytes can overflow the radio buffers if the
  bytestuff/RLL does poorly.
* Fix radio-probe string to _not_ include a frame delimiter (\r): sending
  a \r to the radio tickles a bug in the firmware, causing the radio to
  smash the next frame sent after  the "**\r" probe string.
* Add calls to the tty t_oproc routine to make sure the probe and reset
  strings get sent to the modem promptly, rather than waiting for the next
  packet.
* Add PPP-style calls to the tty start-output function; seems to
  reduce latency marginally.

still to do:
* Flush output queue if resetting, since the radio is going to drop
  frames on the floor anyway if it needs resetting.
* Reduce tty start-output calls.
1996-08-02 02:53:39 +00:00
jonathan
d41e338edc * Put in fix to in bytestuffing/RLL code from Stuart Cheshire, that
somehow got lost between NetBSD and Linux.    Output side mbuf-walking
  code now correctly bytestuffs mbuf chains, as well as single mbufs
  and clusters.

* Update radio error-parsing code to Stuart's latest stable code.
  We now parse error messages the older code didn't.

* Note where radio-crash watchdogs should be added (the linux code
  is there, #ifdef'ed out). This still just  doesn't work.
  The radio reset doesn't always work even when slattatch is first started,
  but I have a radio with old firmware, which may be a contributing factor.

* Correct the checks for the tty output queue being overfull;  estimate
  the stuffed pkt size as  (original * 65/64) + STRIP_HDRLEN + 2,
  instead of SLIP's (2*SLMTU).  Re-enable the disabled  check now the
  size estimate isn't excessively large.

* Fix BPF tapping of strip interfaces,  STRIP packets are wrapped
  in a SLIP bpf  header.   This implies no BPF support for arp or atalk,
  even though Linux boxes are sending arp requests and  gratuitous arps.
  There may be no good  fix short  of adding explicit  STRIP encapsulation
  support to bpf/tcpdump.

* Still need a solid walkthrough, and  rewrite to eliminate redundant
  receive-side mbuf copying.
1996-06-26 06:04:20 +00:00
thorpej
5804211474 Initialize sc_unit in the right place, a'la if_sl.c. Thanks to
Jonathan Stone <jonathan@DSG.Stanford.EDU> for pointing this out.
1996-06-05 23:20:49 +00:00
jonathan
ed314bc45a Catch up to removal of if_unit and addition of if_xname and sc_unit,
blindly following the changes to if_sl.c.
1996-05-19 22:09:36 +00:00
jonathan
32d97e42f6 Packet-mode driver for Metricom Ricochet radios (Starmode Radio IP). 1996-05-19 16:34:36 +00:00