Commit Graph

173 Commits

Author SHA1 Message Date
Ruslan Ermilov
10cdf827cd Sort SUBDIR. 2004-10-24 06:22:16 +00:00
Gleb Smirnoff
547d34736b Major overhaul.
List of functional changes:
   - Make a single device per single node with a single hook.
     This gives us parrallelizm, which can't be achieved on a single
     node with many devices/hooks. This also gives us flexibility - we
     can play with a particular device node, not affecting others.
   - Remove read queue as it is. Use struct ifqueue instead. This change
     removes a lot of extra memcpy()ing, m_devget()ting and m_copymem()ming.
     In ng_device_receivedata() we enqueue an mbuf and wake readers.
     In ngdread() we take one mbuf from qeueue and uiomove() it to
     userspace. If no mbuf is present we optionally block. [1]
   - In ngdwrite() we create an mbuf from uio using m_uiotombuf().
     This is faster then uiomove() into buffer, and then m_copydata(),
     and this is much better than huge m_pullup().
   - Perform locking of device
   - Perform locking of connection list.
   - Clear out _rcvmsg method, since it does nothing good yet.
   - Implement NGM_DEVICE_GET_DEVNAME message.
   - #if 0 ioctl method, while nothing is done here yet.
   - Return immediately from ngdwrite() if uio_resid == 0.

 List of tidyness changes:
   - Introduce device2priv(), to remove cut'n'paste.
   - Use MALLOC/FREE, instead of malloc/free.
   - Use unit2minor().
   - Use UID_ROOT/GID_WHEEL instead of 0/0.
   - Define NGD_DEVICE_DEVNAME, use it.
   - Use more nice macros for debugging. [2]
   - Return Exxx, not -1.

 style(9) changes:
   - No "#endif" after short block.
   - Break long lines.
   - Remove extra spaces, add needed spaces.

[1] Obtained from:      if_tun.c
[2] Obtained from:      ng_pppoe.c
Reviewed by:		marks
Approved by:		julian (mentor)
MFC after:		1 month
2004-10-18 20:13:57 +00:00
Gleb Smirnoff
cec50dea12 Attach ng_netflow to kernel build.
Approved by:	julian (mentor)
2004-09-16 20:35:28 +00:00
Hartmut Brandt
4f6f019206 Add the module build stuff for the ATM call control module. 2004-08-12 14:58:46 +00:00
Maksim Yevmenkin
23d1e148af Make bluetooth compile on all platforms
Reviewed by:	imp, ru
2004-07-07 22:48:30 +00:00
Warner Losh
143a002e40 Build usbdevs.h 2004-06-28 19:06:30 +00:00
Warner Losh
dba6dd177b Move to generating pccarddevs.h on the fly, both for the kernel and
the modules.

Also generate usbdevs.h automatically now, but a non-kernel file is
stopping that at the moment.
2004-05-26 00:53:10 +00:00
Roman Kurakin
8cd65c072e Add ng_sppp(4) to the modules build process. 2004-04-25 08:56:46 +00:00
Ruslan Ermilov
b462702f94 A simple packet distribution node type that acts like an Ethernet hub. 2004-04-17 12:42:17 +00:00
Roman Kurakin
8b96678536 sppp (4) to netgraph (4) node. As always: I'l connect it to the
system after extra check.

Approved by:	imp (mentor)
Approved by:	julian (in general)
2004-03-24 17:24:01 +00:00
Benno Rice
bde778e9f2 Add a netgraph node to handle ATM LLC encapsulation. This currently handles
ethernet (tested) and FDDI (not tested).  The main use for this is on ADSL (or
other ATM) connections where bridged ethernet is used, PPPoE being a prime
example.

There is no manual page as yet, I will write one shortly.

Reviewed by:	harti
2004-03-08 10:54:35 +00:00
Ruslan Ermilov
407ea29095 Netgraph node type for IEEE 802.1Q VLAN tagging. 2004-03-01 17:22:16 +00:00
Maksim Yevmenkin
18d948adb1 Add NO_BLUETOOTH knob to the build process
Requested by:	phk
Reviewed by:	imp (mentor), ru
2004-01-28 00:42:51 +00:00
Ruslan Ermilov
9cf7b16038 Normalize SUBDIR. 2004-01-19 12:36:08 +00:00
Ruslan Ermilov
0799be5978 MODULE_DEPEND is a C macro, not a make(1). 2004-01-13 11:30:37 +00:00
Ruslan Ermilov
5ef42ab64d bsd.kmod.mk does not deal with manpages anymore. 2004-01-13 11:28:51 +00:00
Ruslan Ermilov
5a4e8b0f24 Don't compile with -g by default; there's a better way to build modules with
debug support.
2003-11-10 12:54:54 +00:00
Hartmut Brandt
4295875a6d The layer 3 (signalling) of NgATM netgraph node: ng_uni. This node
handles user and network side signaling and partly PNNI.
2003-11-07 09:15:14 +00:00
Hartmut Brandt
ed70dde057 Put the address handling, traffic descripto handling and the
message encoding and decoding stuff into the base module. All of this
is accessed by several of the NgATM modules and putting this into
atmbase reduceds the memory footprint.
2003-11-03 09:18:52 +00:00
Hartmut Brandt
0376020649 Module build infrastructure for the NgATM SAA layer. 2003-10-24 07:42:08 +00:00
Maksim Yevmenkin
0986ab12e4 Update Bluetooth code.
Reviewed by: M. Warner Losh <imp@bsdimp.com>; John Hay <jhay@freebsd.org>
Approved by: M. Warner Losh <imp@bsdimp.com> (mentor)
2003-10-12 22:04:24 +00:00
Hartmut Brandt
ee4080d424 Add ng_atmpif: a HARP physical interface emulation. This allows one
to run the HARP ATM stack without real hardware.

Submitted by:	Vincent Jardin <vjardin@wanadoo.fr>
2003-08-11 08:40:02 +00:00
Hartmut Brandt
cfca62bfac This is a netgraph node to access ATM interfaces. It works with the
hatm(4) and fatm(4) drivers, en(4) will follow soon.
2003-06-25 13:20:19 +00:00
Julian Elischer
f2bb1cae36 Part one of undating the bluetooth code to the newest version
Submitted by:   Maksim Yevmenkin <m_evmenkin@yahoo.com>
Approved by: re@
2003-05-10 21:44:42 +00:00
Bill Paul
87b4a25958 Add device driver support for the ASIX Electronics AX88172 USB 2.0
ethernet controller. The driver has been tested with the LinkSys
USB200M adapter. I know for a fact that there are other devices out
there with this chip but don't have all the USB vendor/device IDs.

Note: I'm not sure if this will force the driver to end up in the
install kernel image or not. Special magic needs to be done to exclude
it to keep the boot floppies from bloating again, someone please
advise.
2003-04-20 19:05:33 +00:00
Jonathan Lemon
921f8bb982 Fix module build by adding options to Makefile. 2003-03-08 21:54:32 +00:00
Doug Ambrisko
233896e9da Take the rc4 code out of ng_mppc module so we don't fail to load when
we have the rc4 code already in the kernel (via wlan stuff or awi).
Add a dependency on the rc4 module so if it doesn't exist then load it.

Reviewed by:	archie
2003-02-05 19:11:11 +00:00
Julian Elischer
4ea478a43f Make it work -current style. 2002-12-23 22:33:08 +00:00
Yoshihiro Takahashi
9e6482fc5b Add Makefile.inc to include ../Makefile.inc.
Approved by:	re (rwatson)
2002-12-01 16:07:53 +00:00
Warner Losh
668537ba95 Fix make buildkernel.
These makefiles work when building in the sys/modules directory, but
not with the objdir stuff that buildkernel uses.  This is because they
used -I../../../blah rather than -I${.CURDIR}/../../../blah.

# I didn't fix the abuse of CFLAGS to specify -g since I wanted the
# barest minimal change since we're in a code freeze.

Approved by: make buildkernel...
Hat for armchair anarchists: core member fixing src tree damage
2002-11-21 07:21:45 +00:00
Julian Elischer
075c3f0781 Make the bluetooth modules
Approved by:	re
2002-11-21 00:40:11 +00:00
Julian Elischer
878ed22696 The second try a committing the bluetooth code
Has been seen to work on several cards and communicating with
several mobile phones to use them as modems etc.

We are still talking with 3com to try get them to allow us to include
the firmware for their pccard in the driver but the driver is here..
In the mean time
it can be downloaded from the 3com website and loaded using the utility
bt3cfw(8) (supplied) (instructions in the man page)

Not yet linked to the build

Submitted by:	Maksim Yevmenkin <myevmenk@exodus.net>
Approved by:	re
2002-11-20 23:01:59 +00:00
Julian Elischer
585ff168dc Add the netgraph 'source' module.
This is NOT YET CONVERTED TO -current.
This node is a source for preprogrammed packets at a known rate for testing.

I will convert it to -current "in place" but will MFC teh original
pre-conversion variant as that is  what is originally submitted.
Man page my me, info from Dave's README.

Submitted by:	Dave Chapeskie <dchapeskie@SANDVINE.com>
Obtained from:	Sandvine inc.
MFC after:	1 week
2002-10-31 23:03:09 +00:00
Julian Elischer
6da3d5ce7f Finally get around to committing Bill Paul's FEC netgraph nodes.
These are really only partly netgraph nodes as they do not use the
netgraph interfaces for many of the functions for which they could
be used, however they represent important functionality.

Submitted by:	wpaul
MFC after: 2 days
2002-10-29 19:12:44 +00:00
Archie Cobbs
613744fcb4 Keep subdirectory list sorted. 2002-08-20 23:58:49 +00:00
Archie Cobbs
a9c61b3dfc Add ng_l2tp module. 2002-08-20 22:03:57 +00:00
Julian Elischer
a835396035 A node that creates a device entry in /dev (yay devfs)
so that /dev/mumble can be the entrypoint to some networking graph,
e.g. a tunnel or a remote tape drive or whatever...

Not fully tested (by me) yet.

Submitted by:	Mark Santcroos <marks@ripe.net>
MFC after:	3 weeks
2002-06-18 21:32:33 +00:00
Julian Elischer
561dac2175 turn on the ethertype filter module 2002-02-27 08:54:13 +00:00
Archie Cobbs
bf2ed16b89 Export "ng_ether_enaddr_type" because the ng_bridge type uses it. 2002-01-12 17:31:25 +00:00
Ruslan Ermilov
17d6c63672 Drop <bsd.man.mk> support from <bsd.kmod.mk>.
Not objected to by:	-current
2002-01-11 15:49:02 +00:00
Mike Smith
4535126875 Turn on unconditional symbol export for modules whose API is
not clear enough, will require additional analysis, or will
require some input from their maintainers.
2002-01-11 01:19:26 +00:00
Julian Elischer
10d7ccab88 A node that allows ethernet type packets to be filtered to different
hooks depending on ethertype. Great for prototyping protocols.
connects to the lower and upper hooks of an ethernet type of node.

Obtained from: Monzoon Networks.
	Thanks to Andre Oppermann, May 2001.
2001-10-30 07:28:17 +00:00
Brooks Davis
c2eed10556 Add ng_ip_input. A new netgraph node for queuing IP packets into the
main IP input processing code.
2001-09-27 21:54:27 +00:00
Brooks Davis
94408d94c3 /home/brooks/ng_gif.message 2001-09-26 23:50:17 +00:00
Julian Elischer
b40ce4165d KSE Milestone 2
Note ALL MODULES MUST BE RECOMPILED
make the kernel aware that there are smaller units of scheduling than the
process. (but only allow one thread per process at this time).
This is functionally equivalent to teh previousl -current except
that there is a thread associated with each process.

Sorry john! (your next MFC will be a doosie!)

Reviewed by: peter@freebsd.org, dillon@freebsd.org

X-MFC after:    ha ha ha ha
2001-09-12 08:38:13 +00:00
Brooks Davis
851127a276 Make ng_split part of the module building process.
MFC after:	7 weeks
2001-07-24 23:42:56 +00:00
Brooks Davis
09261c4f2f Put module directories one per line so adding new modules creates readable
diffs and produces less conflicts with local source trees.
2001-07-15 04:55:37 +00:00
Bruce Evans
4b8db4a299 Backed out rev.1.8. Rev.1.8 was just to support a bogus unused include
in ng_tty.c.
2001-05-17 11:54:30 +00:00
John Hay
0d1b4aef96 Move the isa parts to a separate file. 2001-04-16 13:20:39 +00:00
Julian Elischer
e548a5c513 Allow the eiface node to be made as a module (not linked into build yet) 2001-02-25 06:18:22 +00:00
Julian Elischer
6de306ecee Add a Makefile for the sample node so It can be compiled.
This helps to stop it from geting out of sync.
It is not part of the normal build but I can use it with all the others
when I make changes to netgraph to ensure it is buildable.
2001-02-25 05:34:33 +00:00
Julian Elischer
cdee49f986 Add a 'splitter' node to separate a bidirectional
packet flow into two unidirectional flows.

Part of a suite of nodes developed for packet flow control.
More to follow as I have time to port them to 5.x or
as others do so. The ipfw node will be the hardest..

Submitted by:	"Vitaly V. Belekhov" <vitaly@riss-telecom.ru>
2001-02-22 17:14:36 +00:00
John Hay
01b96fdf9e Make klds for the ar and sr devices and hook them up.
The normal versions are called if_ar.ko and if_sr.ko and the netgraph
versions ng_sync_ar.ko and ng_sync_sr.ko.
2001-01-30 10:20:43 +00:00
David E. O'Brien
c68159a6d8 Use a consistent style and one much closer to the rest of /usr/src 2001-01-06 14:00:42 +00:00
Mike Smith
bb0d0a8efc Next phase in the PCI subsystem cleanup.
- Move PCI core code to dev/pci.
 - Split bridge code out into separate modules.
 - Remove the descriptive strings from the bridge drivers.  If you
   want to know what a device is, use pciconf.  Add support for
   broadly identifying devices based on class/subclass, and for
   parsing a preloaded device identification database so that if
   you want to waste the memory, you can identify *anything* we know
   about.
 - Remove machine-dependant code from the core PCI code.  APIC interrupt
   mapping is performed by shadowing the intline register in machine-
   dependant code.
 - Bring interrupt routing support to the Alpha
   (although many platforms don't yet support routing or mapping
   interrupts entirely correctly).  This resulted in spamming
   <sys/bus.h> into more places than it really should have gone.
 - Put sys/dev on the kernel/modules include path.  This avoids
   having to change *all* the pci*.h includes.
2000-12-08 22:11:23 +00:00
Jonathan Lemon
fe96e26dd0 Fix another callout_init() that I missed. 2000-11-26 21:59:30 +00:00
Poul-Henning Kamp
a1bb9fabb1 unhook netgraph/bridge until somebody makes it compile in LINT 2000-11-26 16:40:00 +00:00
Archie Cobbs
7cc2023054 Add one2many subdirectory (previously forgotten). 2000-11-22 19:04:42 +00:00
Archie Cobbs
6e8d625628 New netgraph node type ng_one2many(4). 2000-11-16 05:58:33 +00:00
Jason Evans
0384fff8c5 Major update to the way synchronization is done in the kernel. Highlights
include:

* Mutual exclusion is used instead of spl*().  See mutex(9).  (Note: The
  alpha port is still in transition and currently uses both.)

* Per-CPU idle processes.

* Interrupts are run in their own separate kernel threads and can be
  preempted (i386 only).

Partially contributed by:	BSDi (BSD/OS)
Submissions by (at least):	cp, dfr, dillon, grog, jake, jhb, sheldonh
2000-09-07 01:33:02 +00:00
Archie Cobbs
ed2dbd316a New netgraph node type for Ethernet bridging.
No ipfw support yet.
2000-09-01 01:37:13 +00:00
Sheldon Hearn
c146223678 When manual pages are moved or removed, MANX should be changed
to NOMAN.

Reported by:	bde
2000-07-24 13:52:07 +00:00
Sheldon Hearn
b601c69bdb Move the netgraph-related manual pages into share/man/man4/, as
discussed with archie.
2000-07-21 10:46:58 +00:00
Archie Cobbs
55f205ecae Build ng_ether(4) KLD. 2000-06-26 23:41:08 +00:00
Peter Wemm
64db83a8ab Use .include <bsd.kmod.mk> to get to ../../*/conf/kmod.mk instead of
encoding the relative path.
2000-05-27 01:14:33 +00:00
Archie Cobbs
5feb7588af Update man page to reflect new IPv6 hook. Simplify Makefile. 2000-05-10 16:54:40 +00:00
Sheldon Hearn
0f5fcaa3f1 Supply only one author name per instance of %A, as per mdoc.samples(7).
PR:		18465
Submitted by:	Kazu TAKAMUNE <takamune@avrl.mei.co.jp>
2000-05-10 09:49:04 +00:00
Archie Cobbs
12aef8b7e9 AUTHOR -> AUTHORS 2000-05-05 17:08:55 +00:00
Archie Cobbs
7a52493f42 Document the new statistics control messages.
Add a note about the IP header asymmetry on the "lower" hook.
2000-05-05 01:20:28 +00:00
Archie Cobbs
bec35b9a5f Move netgraph node type man pages from section 8 to section 4. 2000-05-04 17:54:37 +00:00
Peter Wemm
56ca39961b Pull in sys/conf/kmod.mk, rather than /usr/share/mk/bsd.kmod.mk.
This means that the kernel can be totally self contained now and is not
dependent on the last buildworld to update /usr/share/mk.  This might
also make it easier to build 5.x kernels on 4.0 boxes etc, assuming
gensetdefs and config(8) are updated.
2000-05-04 12:08:52 +00:00
Peter Wemm
23f282aa31 Zap KMODDEPS line 2000-05-01 18:58:48 +00:00
Julian Elischer
ac4445057f Update the man page to reflect the recent changes to the kernel API for
netgraph.
2000-04-30 10:01:11 +00:00
Archie Cobbs
71bd3f0cc1 Only build the ng_mppc KLD if !NOCRYPT and required crypto sources exist. 2000-04-12 19:57:32 +00:00
Archie Cobbs
ee5bb5a822 Revert to previous state, plus a few cleanups pointed out by bde.
Instead, make the decision as to whether to build this KLD in ../Makefile.
2000-04-12 19:56:16 +00:00
Archie Cobbs
2a92d3584c Turn off build of ng_mppc KLD until I can figure out how to have the
Makefile correctly handle all the possible permutations (including
missing crypto sources). Suggestions welcome.
2000-04-11 17:14:48 +00:00
Archie Cobbs
8e5b414e24 Turn off MPPE encryption if NOCRYPT is defined. If neither compression
nor encryption is enabled, don't build or install anything.
2000-04-10 22:22:18 +00:00
Archie Cobbs
807a5caa14 Add ng_mppc(8) netgraph node as a KLD module.
Obtained from:  Whistle source tree
2000-04-09 21:07:39 +00:00
Philippe Charnier
46a32e616a Remove duplicate word 2000-03-26 15:24:53 +00:00
Archie Cobbs
a7dc837919 - Document updates in iface netgraph node type functionality
- Remove makefile hacks for opt_inet.h, etc: the KLD now supports
  whatever address families your kernel was compiled with automagically
2000-03-13 19:19:48 +00:00
Archie Cobbs
ef02c1e500 Fix typo.
Reported by:	Robert Swindells <swindellsr@genrad.co.uk>
2000-03-13 18:29:58 +00:00
Archie Cobbs
8081ce2ea7 Correct man page title. 2000-03-10 20:38:24 +00:00
Bill Fumerola
958b92d24d Add a little more history of when netgraph appeared in FreeBSD.
Reviewed by:	asmodai
2000-02-29 18:32:26 +00:00
Archie Cobbs
010c5481fd Work around aparent bug in the .Dv macro by eliminating some spaces.
The closing curly-brace in this line was being omitted somehow.
2000-01-17 20:10:39 +00:00
Archie Cobbs
0f9183be1b Fix typos per PR 15649. Also did some rewording for clarity.
PR:		docs/15649
Submitted by:	Kazuo Horikawa <horikawa@jp.FreeBSD.org>
2000-01-03 18:36:42 +00:00
Archie Cobbs
c01c073c4c Revert previous checkin; I incorrectly thought that it was needed
due to having an old version of bsd.kmod.mk.

Caught by:	bde
1999-12-21 20:51:34 +00:00
Julian Elischer
5129159789 Manual page style work.
Submitted by:	Alexey Zelkin <phantom@FreeBSD.org>
thanks!
1999-12-21 01:25:21 +00:00
Archie Cobbs
4fc461b343 Add reference to RFC 1702, after learning how to have "T. Li"
as an author without nroff blowing up.

Problem solved by:	fenner
1999-12-10 19:29:43 +00:00
Archie Cobbs
c4cb96e576 Update man page: BPF is supported even in the KLD version. 1999-12-09 00:25:37 +00:00
Archie Cobbs
d6e03b7f2e Fix 'make clean' 1999-12-09 00:22:34 +00:00
Archie Cobbs
add85a1d6e New netgraph node type 'pptpgre': this performs GRE encapsulation
for the PPTP protocol as specified in RFC 2637.
1999-12-08 18:55:39 +00:00
Archie Cobbs
4562620cd4 Include net/slcompress.c in the build of this module. 1999-12-08 18:51:13 +00:00
Julian Elischer
907b6f57b9 forgot .CURDIR
caught by Steven G. Kargl <kargl@troutmask.apl.washington.edu>
1999-12-04 03:52:29 +00:00
Archie Cobbs
92a3e5521f New netgraph node type, ng_bpf(8). This node type allows you to
apply bpf(4) filters to data travelling through a netgraph network.
1999-12-03 21:21:49 +00:00
Archie Cobbs
8e0788736e Update documentation to reflect new functionality. 1999-11-30 07:24:05 +00:00
Archie Cobbs
ac83689e01 Fix typo. 1999-11-30 06:47:54 +00:00
Archie Cobbs
f8307e1233 Add two new generic control messages, NGM_ASCII2BINARY and
NGM_BINARY2ASCII, which convert control messages to ASCII and back.
This allows control messages to be sent and received in ASCII form
using ngctl(8), which makes ngctl a lot more useful.

This also allows all the type-specific debugging code in libnetgraph
to go away -- instead, we just ask the node itself to do the ASCII
translation for us.

Currently, all generic control messages are supported, as well as
messages associated with the following node types: async, cisco,
ksocket, and ppp.

See /usr/share/examples/netgraph/ngctl for an example of using this.

Also give ngctl(8) the ability to print out incoming data and
control messages at any time.  Eventually nghook(8) may be subsumed.

Several other misc. bug fixes.

Reviewed by:	julian
1999-11-30 02:45:32 +00:00
Bruce Evans
6f940b3847 Removed special rules for building and cleaning device interface files
and empty options files.  The rules are now generated automatically in
bsd.kmod.mk.  Cleaned up related things ($S and ${CLEANFILES}).
1999-11-28 18:53:47 +00:00
Julian Elischer
6a192c5e8c Document the requirement for root privileges. 1999-11-21 23:19:13 +00:00
Julian Elischer
93abfafb05 Document new feature (support for write(2) when 1 hook attached). 1999-11-21 12:03:00 +00:00