Commit Graph

149 Commits

Author SHA1 Message Date
christos
72ad9c4bc4 no point in assigning to ifq twice. 2005-03-31 21:19:35 +00:00
explorer
fcc0a1f852 Fix error with ifq not being set before use. Explicitly set it to NULL just before it may be set to the fastq, since if this becomes a loop (and in one case already is) this will always work. ifq_enqueue2() is designed to handle this case. 2005-03-31 17:07:39 +00:00
christos
d7ec95d370 factor out the interface queueing code into two functions. One used by
the non point-to-point interfaces that has one queue, and one used by
the point to point interfaces that has two queues. No functional changes.
XXX: The ALTQ stuff makes the code ugly.
XXX: More cleanup to come
2005-03-31 15:48:13 +00:00
perry
f07677dd81 nuke trailing whitespace 2005-02-26 22:45:09 +00:00
christos
6d413e70c4 pasto: simple_lock -> simple_unlock. 2004-12-05 15:03:13 +00:00
peter
cf47c76c1b Don't forget to call bpfdetach in the clone destroy function.
While here, add a missing static and change some spaces to tabs.
2004-12-05 15:00:47 +00:00
he
fdd8e7a3e5 Fix an obvious typo: scf -> sc. Discovered while compiling for x68k. 2004-12-05 13:32:03 +00:00
christos
7a05522334 void in arg prototype. 2004-12-05 05:42:19 +00:00
christos
f11e795a0f Make ppp a cloning device. Based on the work of Quentin Garnier. 2004-12-05 04:15:16 +00:00
dyoung
225bd76ac3 I changed pppoutput to use M_PREPEND. pppoutput was duplicating
the functionality of M_PREPEND, but with a bug: m_pkthdr.len was
not updated in pppoutput as it is in M_PREPEND.

Also, replace the loop that measures the length of the mbuf chain
with a call to m_length.

This fixes a PR from an anonymous bug reporter.  Thank you, anonymous
bug reporter.  Thanks, Itojun, for bringing the anonymous bug report
to my attention.
2004-07-03 18:11:33 +00:00
itojun
d2f1c029b9 kill sprintf, use snprintf 2004-04-21 18:40:37 +00:00
mycroft
8655a8eb83 Also, if we're going to bail, we should free the memory we just allocated... 2003-10-28 20:16:28 +00:00
mycroft
52beeea9f1 Previous patch created a dead break. 2003-10-28 20:15:19 +00:00
christos
125ccd91b1 Fix uninitialized variable warnings 2003-10-25 18:29:12 +00:00
christos
ab661a6a58 Add a new ioctl PPPIOCGRAWIN to get the last characters we got from the
remote site.
2003-09-01 16:51:25 +00:00
itojun
860a851ea8 KNF 2003-05-02 03:15:23 +00:00
christos
e950c1ac8f PR/20844: Iain Hibbert: PPP Compressors cannot be loaded as LKM 2003-03-27 17:50:06 +00:00
simonb
221db74413 Remove variable that is only assigned too but not referenced. 2003-01-19 23:44:03 +00:00
itojun
8b1cd24b78 backout previous two - if you use ppp* interface, kernel panics instantly.
it is apparent that the change was untested, and severety is high.
2002-10-02 02:27:54 +00:00
augustss
7656699497 Remove unused variable so the file compiles again. 2002-09-25 23:24:37 +00:00
darrenr
4c314b9a9f Keep m_pkthdr.len updated correctly and use it rather than a loop to find
out the total length of the packet.
2002-09-25 16:10:15 +00:00
itojun
fb05cd3dd3 new copyright boilerplate from CMU. from openbsd 2002-07-01 22:09:31 +00:00
matt
17b32e3800 Make ppp_softc[] extern and declare in if_ppp.c 2002-05-12 20:38:15 +00:00
atatat
31144d9976 Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command".  ERESTART is -1, which can lead to
confusion.  ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4.  No ioctl code should now return -1 anywhere.  The
ioctl() system call is now properly restartable.
2002-03-17 19:40:26 +00:00
itojun
ac36f7cb2c bring in latest ALTQ from kjc. ALTQify some of the drivers. 2002-03-05 04:12:57 +00:00
kleink
67dfac7357 Include <machine/intr.h> unconditionally, instead of only doing so if
__HAVE_GENERIC_SOFT_INTERRUPTS and relying on <sys/param.h> to provide it
otherwise; pointed out by Aymeric Vincent.
2002-01-14 18:19:15 +00:00
lukem
64a432d965 remove unnecessary #if NFOO > 0 .... #endif wrappers 2001-11-13 00:49:35 +00:00
lukem
34d65a3414 add RCSIDs 2001-11-12 23:49:33 +00:00
jdolecek
74954dadf9 use unsigned variable types as appropriate 2001-08-05 18:07:51 +00:00
thorpej
cbf41a143a bzero -> memset 2001-07-18 16:43:09 +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
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
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
ed7695a765 Fill in if_dlt. 2000-12-18 19:44:33 +00:00
thorpej
66539b9373 Add ALTQ support. 2000-12-18 18:57:21 +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
wiz
75311ca708 Fix typo (thinko?), which didn't allow MRU to be set below the default
value (instead of the minimum value). Patch supplied by Stephen Degler
in PR #9945, and reviewed by Ignatios Souvatzis.
2000-10-26 01:26:15 +00:00
onoe
3ec2a62f74 unique #include opt_inet.h 2000-10-06 04:49:53 +00:00
itojun
6b9793517d need opt_inet.h for #ifdef INET 2000-10-04 02:51:18 +00:00
itojun
dd859d3462 enable VJC only with INET 2000-10-02 03:54:10 +00:00
augustss
c1ebd1929a Kill some more register declarations. 2000-03-30 09:45: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
hannken
2a59794a70 Fix typo introduced in rev. 1.55.
It caused IP6 packets to be sent as AF_UNSPEC instead of AF_INET6.
1999-11-27 18:45:08 +00:00
itojun
06c350054d remove reference to in6_systm.h (file itself will be removed afterwords) 1999-07-30 10:35:34 +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
tron
81897066b9 Fix compilation problem caused by recent changes to filtering code. 1999-05-14 21:33:41 +00:00
thorpej
7e3a0bf0c5 Decouple inbound and outbound filters. Now instead of using "active-filter"
and "pass-filter" and "inbound" and "outbound" qualifiers in the filter
expression, use new "active-filter-in", "active-filter-out", "pass-filter-in",
and "pass-filter-out" without these qualifiers.

This is necessary due to the horrible, awful way "inbound" and "outbound"
were specified for the filter programs when a packet was passed through them.
Basically, the "address" byte in the serial PPP header was overwritten with
a value to indicate the direction.  However, the "address" byte doesn't even
exist on PPP headers for all other PPP encaps!  So, this old method worked
only for serial encaps, and corrupted packets for all others (PPPoE, ATM, etc.)
1999-05-12 18:50:51 +00:00
thorpej
4c89a367d5 * Start out with a data link type of DLT_NULL. When we change an interface
to serial encap, change its data link type to DLT_PPP_SERIAL.
* Work around some serious bogosity in the filtering code which utterly
breaks proper functioning of BPF.  The PPP code and pppd(8) WILL be changed
to fix this.
1999-05-11 02:18:52 +00:00
thorpej
d70bb64a38 Use M_LINK{0,1} for our own mbuf flags, rather than arbitrarily picking
2 bits.
1999-01-09 21:47:09 +00:00
christos
52f565dcfd Revert IPX changes that I committed accidentally. 1998-12-10 17:48:40 +00:00
christos
c7578c510a defopt 1998-12-10 11:01:01 +00:00
christos
564a4c75d0 PR/5414: Ronald Khoo: tcpdump ppp does not respect inbound/outbound qualifiers. 1998-09-03 14:12:36 +00:00
sommerfe
6ee9772e54 Fix PR5898: ppp delays last packet. 1998-08-02 15:09:50 +00:00
thorpej
e552760fbe Glue in fast forwarding. 1998-07-09 22:30:01 +00:00
sommerfe
3858a1179a Only run pppasyncstart (sc->sc_start) from the netisr handler.
This allows pppoutput to be called from splimp (e.g., when ipflow is
in use.) without requiring pppasyncstart to run at splimp.
This is believed to fix PR5624.
1998-07-08 18:05:48 +00:00
jtk
14119e2944 use #ifdef INET so this compiles again 1998-07-06 13:51:32 +00:00
jonathan
3751946b97 defopt INET, NETATALK. 1998-07-05 00:51:04 +00:00
christos
0f39feb773 Merge changes from pppd-2.3.4; adds ppp-deflate-draft stuff and updates
zlib. Maybe we can merge our other copy of zlib with this one now and
avoid having two copies?
1998-05-02 14:34:24 +00:00
christos
d980c28e1d From Paul Mackerras: use sl_compress_setup, not sl_compress_init 1997-06-16 17:01:36 +00:00
christos
cf463415ec Update to ppp-2.3b5 1997-05-17 21:11:59 +00:00
is
f4271c55fd Made pppoutput() public again on behalf of Martin Husemann (PR 3455).
Apparently, the BISDN package uses this function.
1997-04-16 12:54:42 +00:00
christos
e775167e27 Update to ppp-2.3b4; from Paul Mackerras 1997-03-12 20:26:46 +00:00
mycroft
e4bbd86a82 Use splimp() to block interrupts, not splhigh(). 1997-03-04 21:40:07 +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
cgd
1f29d4b51f no need for a local implementation of SIOCGIFMTU; delete it. 1996-06-13 21:50:32 +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
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
paulus
fa78064f7c Make inclusion of the PPP BSD-Compress and Deflate compressors
dependent on the PPP_BSDCOMP and PPP_DEFLATE kernel configuration
options, respectively.
1996-03-19 01:00:49 +00:00
paulus
6654fd558b Added packet filtering, support for "PPP Deflate" packet compression,
trivial multicast support, and support for xon/xoff output flow
control to the PPP subsystem.  Fixed several bugs, including making
the accumulation and resetting of statistics more consistent.  State
for the VJ compressor is now dynamically allocated.
1996-03-15 02:28:00 +00:00
christos
206e75c6f1 Net prototypes 1996-02-13 21:59:53 +00:00
pk
c633b5aae2 wrt. previous change: can't compute `ilen' that early; just do computation
separately when logging.
Notes: consider using mbuf pkthdr length field in PPP code.
       condider doing packet log after de-compression.
1996-02-07 12:43:41 +00:00
pk
b77eaf2c1c Init variable before use (PRs 1646 & 2042). 1996-02-07 10:25:58 +00:00
mycroft
813ecfb64a Remove old workaround for a bug. 1995-12-27 06:30:38 +00:00
mycroft
c594af848d Add some missing statistics. From Thorsten Lockert. 1995-10-05 05:55:09 +00:00
mycroft
5482957905 splnet --> splsoftnet 1995-08-12 23:59:09 +00:00
paulus
7f06ab8b0b Latest version of PPP stuff, with packet compression and other
improvements.  The PPP kernel code is now split into if_ppp.c,
containing generic PPP support, and ppp_tty.c, which specifically
supports PPP on async tty devices (as a line discipline).  This is
so that other devices can be supported without making them look
like ttys.
1995-07-04 06:28:17 +00:00
cgd
e363664703 fixed sized types, where appropriate. when casting pointers to
integers to do math on them, cast to long.  ioctl commands are
u_longs.
1995-03-08 02:56:49 +00:00
cgd
6ac2bbfc35 be more careful with types, also pull in headers where necessary. 1994-10-30 21:43:03 +00:00
deraadt
fb42f63898 bug 367. paulus says the fix is right & critical. 1994-07-27 09:05:33 +00:00
paulus
ce6d680c66 The ppp interface now retries the mbuf allocation when it receives
a character and it doesn't already have enough space allocated.
It still needs cluster mbufs to be able to decompress VJ-compressed
packets.  It drops packets if it can't allocate mbufs rather than
taking the interface down.
1994-07-20 01:49:20 +00:00
paulus
09264a28ec Due to popular revulsion, the ppp interface now drops packets if 1994-07-20 01:40:11 +00:00
paulus
e7ba8f6b5a If we can't get mbuf clusters, take the ppp interface down instead
of writing beyond the end of ordinary mbufs.
1994-07-18 23:45:33 +00:00
deraadt
5044aff065 bug #319. fix from <alasdair@wildcat.demon.co.uk> 1994-07-03 06:44:03 +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
paulus
45c7c2fc56 Some restructuring of the PPP packet input procedure to make it easier
to implement PPP over sync lines and PPP compression protocols.
1994-06-20 00:35:39 +00:00
paulus
aa01a834a4 some minor splx-type bug fixes from christos@deshaw.com. 1994-06-14 03:09:23 +00:00
paulus
5d72d095e8 check for escaped char before checking for escape char
so if peer escapes 0x5d we interpret it correctly
1994-05-29 23:44:23 +00:00
cgd
f42a80c7ea MIN -> min, MAX -> max 1994-05-24 02:33:03 +00:00
mycroft
07b4f2ab54 Update to 4.4-Lite networking code, with a few local changes. 1994-05-13 06:02:48 +00:00
paulus
3f7fd64c45 Version from ppp-2.1 release;
this version has been restructured to make more of the code usable
with sync serial drivers
1994-05-08 12:33:49 +00:00
deraadt
ad054dea7e PPP_HEADER_LEN -> PPP_HDRLEN 1994-01-25 05:56:06 +00:00
cgd
61bcdb266e include <machine/cpu.h> rather than <machine/mtpr.h> -- if the latter
exists at all, it's supposed to be included by <machine/cpu.h>
1993-12-23 07:36:06 +00:00
mycroft
95b048b53a Canonicalize all #includes. 1993-12-18 00:40:47 +00:00
paulus
5fda6c1974 Removed test (CCOUNT(&sc->sc_ttyp->t_outq) == 0) for whether
to call pppstart or not: now we call pppstart for every packet,
which should aid recovery from lost transmitter interrupts.
Also a fix for 386BSD/FreeBSD which doesn't affect NetBSD.
1993-11-04 03:45:23 +00:00
paulus
3ecb88ccbc Fixed bug in if_ppp.c so that received IP packets are passed correctly to BPF. 1993-09-02 12:10:59 +00:00
paulus
d71061b357 Modified if_ppp.c and if_ppp.h to add priority queueing for "interactive"
traffic (done in a similar fashion to if_sl.c), and BPF support.
1993-08-31 00:05:27 +00:00
deraadt
3604916e13 ppp from paul mackerras 1993-08-14 06:29:28 +00:00