Commit Graph

644 Commits

Author SHA1 Message Date
archie
2a59c570d4 Don't try to apply ipfw filtering to non-IP packets.
Reported-by:	"Lachlan O'Dea" <lodea@vet.com.au>
2000-06-02 22:47:53 +00:00
mjacob
bb3c05baed fix KASSERT usage 2000-06-02 19:06:33 +00:00
phk
2e5551ad87 Don't panic if ifpromisc() returnes ENXIO, it's probably just an pccard
which have been pulled.
2000-06-01 21:57:13 +00:00
green
2f41e1d09e Make sl(4) SLIP devices dynamically expansible. Yay! =)
PR:		kern/17758
Submitted by:	David Malone <dwmalone@maths.tcd.ie>
2000-05-30 13:47:03 +00:00
gallatin
0eb0bb6777 Rather than checking for hlen causing misalignment, we should do the
m_adj() and then check the resulting mbuf for misalignment, copying
backwards to align the mbuf if required.

This fixes a longstanding problem where an mbuf which would have been
properly aligned after an m_adj() was being misaligned and causing an
unaligned access trap in ip_input().  This bug only triggered when booting
diskless.

Reviewed by:	dfr
2000-05-26 13:47:02 +00:00
jake
961b97d434 Back out the previous change to the queue(3) interface.
It was not discussed and should probably not happen.

Requested by:		msmith and others
2000-05-26 02:09:24 +00:00
archie
4ba625d0ce Just need to pass the address family to if_simloop(), not the whole sockaddr. 2000-05-24 21:16:56 +00:00
jake
d93fbc9916 Change the way that the queue(3) structures are declared; don't assume that
the type argument to *_HEAD and *_ENTRY is a struct.

Suggested by:	phk
Reviewed by:	phk
Approved by:	mdodd
2000-05-23 20:41:01 +00:00
archie
fa21035b4e Move code to handle BPF and bridging for incoming Ethernet packets out
of the individual drivers and into the common routine ether_input().
Also, remove the (incomplete) hack for matching ethernet headers
in the ip_fw code.

The good news: net result of 1016 lines removed, and this should make
bridging now work with *all* Ethernet drivers.

The bad news: it's nearly impossible to test every driver, especially
for bridging, and I was unable to get much testing help on the mailing
lists.

Reviewed by:	freebsd-net
2000-05-14 02:18:43 +00:00
darrenr
cd382f0186 patch from Alexey Zelkin 2000-05-11 00:44:35 +00:00
darrenr
5419f3d595 Add pfil(9) subroutines and manpage from NetBSD. 2000-05-10 13:37:51 +00:00
phk
ce2aa22c93 Remove unneeded #include <sys/kernel.h> 2000-04-29 15:36:14 +00:00
julian
d7f46cd010 OOps forgot to check in this one...
API chage for netgraph.
2000-04-28 17:43:04 +00:00
wpaul
63e31a38dc Add a bpfdetach() stub routine to bpf.c. Without this, you'll get an
unresolved symbol error if you try to load a network driver into a kernel
which doesn't have bpf enabled.

Forgotten by: rwatson
Found by: peter
2000-04-27 15:11:41 +00:00
bp
69bf459ec2 Fix support for 802.2 and SNAP frames. Bug was introduced during
initial import.

Tested by:	Jorge P Vasquez <jorge@acron.ind.br>
2000-04-27 10:13:52 +00:00
kjc
448f92fc1b remove "register" specifiers to supress compiler warning. 2000-04-26 02:40:33 +00:00
obrien
a8c8e00c91 * Use sys/sys/random.h rather than a i386 specific one.
* There was nothing that should be machine dependant about
  i386/isa/random_machdep.c, so it is now sys/kern/kern_random.c.
2000-04-24 17:30:08 +00:00
wollman
20f13d8bcf A couple months ago, Kirk and I were doing a walkthrough of the radix-tree
search routine, and scratching our heads over why it was so obfuscated.
This delta fixes a number of confusing style bugs and renames several
structure members to have more meaningful names.  There remain a number
of odd control-flow structures.  These changes do not affect the generated
code.
2000-04-23 04:00:00 +00:00
guido
4046d8c9d4 IOCGIFCONF once and for all. Sometimes the ifc_len variable
would be returned with a wrong value.
While we're here, get rid of unnecessary panic call.

PR:		17311, 12996, 14457
Submitted by:	Patrick Bihan-Faou <patrick@mindstep.com>,
		Kris Kennaway <kris@FreeBSD.org>
2000-04-21 17:48:48 +00:00
phk
6be1308ad1 Remove ~25 unneeded #include <sys/conf.h>
Remove ~60 unneeded #include <sys/malloc.h>
2000-04-19 14:58:28 +00:00
imp
4b312a286f Awi driver, ported from NetBSD from Atsushi Once-san.
From the README:
	Any IEEE 802.11 cards use AMD Am79C930 and Harris (Intersil) Chipset
	with PCnetMobile firmware by AMD.
	   BayStack 650   1Mbps Frequency Hopping PCCARD adapter
	   BayStack 660   2Mbps Direct Sequence PCCARD adapter
	   Icom SL-200    2Mbps Direct Sequence PCCARD adapter
	   Melco WLI-PCM  2Mbps Direct Sequence PCCARD adapter
	   NEL SSMagic    2Mbps Direct Sequence PCCARD adapter
	   Netwave AirSurfer Plus
			  1Mbps Frequency Hopping PCCARD adapter
	   Netwave AirSurfer Pro
			  2Mbps Direct Sequence PCCARD adapter

Known Problems:
	WEP is not supported.
	Does not create IBSS itself.
	Cannot configure the following on FreeBSD:
		selection of infrastructure/adhoc mode
		ESSID
		...

Submitted by: Atsushi Onoe <onoe@sm.sony.co.jp>
2000-04-06 02:48:48 +00:00
gj
8efc52e239 Pass me the pointy hat.
It was not a good idea to remove csu_header from struct cspace, it had
ramifications which I didn't notice.

Restore src/usr.sbin/ppp/slcompress.h to the way it was, since MAX_HDR
was already defined as 128 there and it's a user program anyway.

In sys/net/slcompress.h make MAX_HDR 128 intead of MLEN to avoid
bloat.

My apologies for any inconvenience.
2000-04-04 09:20:53 +00:00
gj
08bbcfe72f Nuke csu_hdr from struct cspace. csu_hdr is not used anywhere in the
tree. This considerably reduces unnecessary bloat in struct slcompress.

I'm running with this change right now and have seen no negative
side-effects.

On my sytem this reduced kernel BSS by about 25KB.

Submitted by:	bde
Approved by:	brian for user-ppp
2000-04-03 19:54:33 +00:00
jlemon
0dcc5bc0d1 Add support for offloading IP/TCP/UDP checksums to NIC hardware which
supports them.
2000-03-27 19:14:27 +00:00
charnier
6e109d2561 Remove duplicate word 2000-03-26 15:24:53 +00:00
lile
f14c3bda44 o Replace most magic numbers related to token ring with #defines
from iso88025.h.

o Add minimal llc support to iso88025_input.

o Clean up most of the source routing code.

* Submitted by: Nikolai Saoukh <nms@otdel-1.org>
2000-03-19 21:34:39 +00:00
rwatson
5b7df33ce0 The advent of if_detach, allowing interface removal at runtime, makes it
possible for a panic to occur if BPF is in use on the interface at the
time of the call to if_detach.  This happens because BPF maintains pointers
to the struct ifnet describing the interface, which is freed by if_detach.

To correct this problem, a new call, bpfdetach, is introduced.  bpfdetach
locates BPF descriptor references to the interface, and NULLs them.  Other
BPF code is modified so that discovery of a NULL interface results in
ENXIO (already implemented for some calls).  Processes blocked on a BPF
call will also be woken up so that they can receive ENXIO.

Interface drivers that invoke bpfattach and if_detach must be modified to
also call bpfattach(ifp) before calling if_detach(ifp).  This is relevant
for buses that support hot removal, such as pccard and usb.  Patches to
all effected devices will not be committed, only to if_wi.c, due to
testing limitations.  To reproduce the crash, load up tcpdump on you
favorite pccard ethernet card, and then eject the card.  As some pccard
drivers do not invoke if_detach(ifp), this bug will not manifest itself
for those drivers.

Reviewed by:	wes
2000-03-19 05:42:34 +00:00
rwatson
7432002de6 Introduce a new bd_seesent flag to the BPF descriptor, indicating whether or
not the current BPF device should report locally generated packets or not.
This allows sniffing applications to see only packets that are not generated
locally, which can be useful for debugging bridging problems, or other
situations where MAC addresses are not sufficient to identify locally
sourced packets.  Default to true for this flag, so as to provide existing
behavior by default.

Introduce two new ioctls, BIOCGSEESENT and BIOCSSEESENT, which may be used
to manipulate this flag from userland, given appropriate privilege.

Modify bpf.4 to document these two new ioctl arguments.

Reviewed by:	asmodai
2000-03-18 06:30:42 +00:00
shin
4897d4b884 IPv6 6to4 support.
Now most big problem of IPv6 is getting IPv6 address
   assignment.
   6to4 solve the problem. 6to4 addr is defined like below,

          2002: 4byte v4 addr : 2byte SLA ID : 8byte interface ID

   The most important point of the address format is that an IPv4 addr
   is embeded in it. So any user who has IPv4 addr can get IPv6 address
   block with 2byte subnet space. Also, the IPv4 addr is used for
   semi-automatic IPv6 over IPv4 tunneling.

   With 6to4, getting IPv6 addr become dramatically easy.
   The attached patch enable 6to4 extension, and confirmed to work,
   between "Richard Seaman, Jr." <dick@tar.com> and me.

Approved by: jkh

Reviewed by: itojun
2000-03-11 11:17:24 +00:00
archie
08f912afac The "sdl_family" field in a "struct sockaddr_dl" will be equal
to AF_LINK, not AF_DLI, as stated in the comment. Fix the comment.

Reviewed by:	wollman
2000-03-01 02:46:25 +00:00
guido
0dbc45d7e8 This fixes a problem where the SIOCGIFCONF ioctl goes wrong. This
is triggered when qmail is used with INET6 enabled.  The bug
manifests itself in that the space variable can become negative
and that in the comparison in the guards of the 2 loops, this was
not noticed because sizeof() returns an unsigned and thus the signed
variable gets promoted to unsigned. I decided not to make space
unsigned because I think we should guard against this from happening.
Thus panic() in case space becomes negative.

Approved by:	jkh
2000-02-28 19:30:25 +00:00
shin
9fc288cd6b Wrap if_up() by splnet.
Approved by: jkh

Submitted by: peter
2000-02-27 18:36:30 +00:00
ache
b60f3c5a4a Fix possible SLIOCSUNIT panic
PR:		16564
Submitted by:	ru
Approved by:	jkh
2000-02-20 21:03:53 +00:00
mdodd
e3460215d8 Track if_i{bytes,packets,errors}.
Approved by: 	jkh
2000-02-16 04:04:36 +00:00
peter
a5441090de Clean up some loose ends in the network code, including the X.25 and ISO
#ifdefs.  Clean out unused netisr's and leftover netisr linker set gunk.
Tested on x86 and alpha, including world.

Approved by:	jkh
2000-02-13 03:32:07 +00:00
luigi
17953c4313 Update bridging code to the one already in -stable (this was
forgotten some time ago...).

Approved-by: jordan
2000-02-08 14:53:55 +00:00
mdodd
578abf357d m_pullup() frees the supplied mbuf on failure; we don't need to try
and do this ourselves.

Approved by:	jkh
Noticed by:	Mike Spengler <mks@networkcs.com>
2000-02-07 06:18:38 +00:00
mdodd
3349880cb4 Make sure that the entire header is in the first mbuf before we
attempt to copy the ethernet header forward and otherwise encapsulate
a packet for output.

This fixes the panic when using VLAN devices on hardware that doesn't
do 802.1Q tagging onboard.  (That is to say, all drivers except the Tigon.)

My tests consisted of telnet, ttcp, and a pingflood of packets
between 1 and 1600 (plus headers) bytes.

MFC to follow in 1 week.

Approved by:	jkh
2000-02-03 07:44:39 +00:00
shin
6f79c7e06b Add workaround for fxp issue at interface initialization with IPv6.
Some LAN card chip for fxp is known to cause problem at
  interface initialization with IPv6 enabled. It happens at
  some delicate timing.
  And also, just adding some DELAY before IPv6 address
  autoconfiguration is known to avoid the problem.

  Complete fix is changing the driver not to use interrupt at
  multicast filter initialization, but trying such change in
  this stage will be dangerous.

  So I add some DELAY() only inside #ifdef INET6 part,
  as temporal workaround only for 4.0.

Approbed by: jkh

Noticed by: Mattias Pantzare <pantzer@ludd.luth.se>

Obtained from: openbsd-tech mailing list
2000-02-01 15:49:37 +00:00
peter
25c1fa20e1 Remove #if NGIF > 0 and #if NFAITH > 0 as config already checks this. 2000-01-29 18:10:39 +00:00
peter
d15f4a9e26 Remove some #if NFOO > 0 that are always true because of config rules. 2000-01-29 16:56:24 +00:00
peter
b3c16cb9b2 Fix this so LINT compiles. There is no way this could have worked if
tested with LINT.  I've put back netatm/kern_include.h and maked it
with a fixme!, otherwise NETISR_ATM isn't defined as ATM_KERNEL isn't
defined.  Defining that exposes a whole bunch of other dependencies.. :-(
2000-01-29 16:13:08 +00:00
brian
c798df12dd Remove unused includes 2000-01-29 01:10:24 +00:00
shin
73f095255d Count AF_INET6 attachement to routing socket.
Obtained from: KAME project
2000-01-28 20:10:51 +00:00
brian
3f0a670dfa Redo the intrq.c idea as
int family_enqueue(sa_family_t, struct mbuf *);
2000-01-27 23:37:39 +00:00
brian
26fcba4c5a Move the *intrq variables into net/intrq.c and unconditionally
include this in all kernels.  Declare some const *intrq_present
variables that can be checked by a module prior to using *intrq
to queue data.

Make the if_tun module capable of processing atm, ip, ip6, ipx,
natm and netatalk packets when TUNSIFHEAD is ioctl()d on.

Review not required by: freebsd-hackers
2000-01-24 20:39:02 +00:00
ru
8976fc6f89 Notify user processes about interface's MTU change.
Reviewed by:	wollman, freebsd-net
2000-01-24 08:53:39 +00:00
bp
fc532071c9 Allow if_ef driver to be compiled into kernel. 2000-01-23 03:35:11 +00:00
brian
a186cbef4e Implement TUN[GS]IFHEAD ioctls. Passing a non-zero int to TUNSIFHEAD
tells that tun unit to prepend a four byte address family to packets
queued for tunread() and to expect a four byte address family at the
front of data received by tunwrite().

We queue any protocol received from the interface for tunread(), but
only accept INET, INET6, IPX and NETATALK from tunwrite().  There is
support for Xerox's NS stuff, but AFAICT config(8) doesn't ever
define NS.
2000-01-23 01:47:12 +00:00
brian
b5a9af645e Add a new TUNSIFPID ioctl to update the tun_pid (recorded in
tunopen) with the current pid.
2000-01-21 00:31:43 +00:00