Commit Graph

99 Commits

Author SHA1 Message Date
Brooks Davis
fc74a9f93a Stop embedding struct ifnet at the top of driver softcs. Instead the
struct ifnet or the layer 2 common structure it was embedded in have
been replaced with a struct ifnet pointer to be filled by a call to the
new function, if_alloc(). The layer 2 common structure is also allocated
via if_alloc() based on the interface type. It is hung off the new
struct ifnet member, if_l2com.

This change removes the size of these structures from the kernel ABI and
will allow us to better manage them as interfaces come and go.

Other changes of note:
 - Struct arpcom is no longer referenced in normal interface code.
   Instead the Ethernet address is accessed via the IFP2ENADDR() macro.
   To enforce this ac_enaddr has been renamed to _ac_enaddr.
 - The second argument to ether_ifattach is now always the mac address
   from driver private storage rather than sometimes being ac_enaddr.

Reviewed by:	sobomax, sam
2005-06-10 16:49:24 +00:00
Brooks Davis
55d81cdbc0 Add missing Va in ifi_epoch entry. 2005-06-06 00:21:28 +00:00
Brooks Davis
bc9d299133 Change the definition of struct if_data's member ifi_epoch from wall
clock time to uptime because wall clock time may go backwards.

This is a change in the API which will impact SNMP agents who are using
ifi_epoch to set RFC2233's ifCounterDiscontinuityTime.  None are know to
exist today.  This will not impact applications that are using the
<index, epoch> tuple to verify interface uniqueness except that it
eliminates a race which could lead to a false assumption of uniqueness.

Because this is a behavior change, bump __FreeBSD_version.

Discussed with:	re (jhb, scottl)
MFC after:	3 days
Pointed out by:	pkh (way back at EuroBSDCon)
Pointy hat:	brooks
2005-02-25 19:46:41 +00:00
Ruslan Ermilov
c0854fb7b2 Scheduled mdoc(7) sweep. 2005-01-12 21:48:25 +00:00
Kirill Ponomarev
51daf549e8 Remove trailing spaces.
Reviewed by:	brueffer
MFC after:	3 days
2005-01-02 18:20:29 +00:00
Brooks Davis
31a5aa8a1c Document the struct if_data members ifi_datalen, ifi_epoch, and
ifi_link_state.

Reminded by:	ru
2004-09-17 06:49:43 +00:00
Ruslan Ermilov
d07b8cff88 Markup fixes. 2004-06-16 15:57:59 +00:00
Yaroslav Tykhiy
fe96d560de Touch .Dd (date) since new functionality has been documented.
Reminded by:	ru
2004-06-08 09:54:53 +00:00
Yaroslav Tykhiy
429fa51d7c Make the legend to the table of interface flags compact
for the reader's convenience.

Suggested by:	ru
2004-06-08 09:01:37 +00:00
Yaroslav Tykhiy
4c829e7560 Describe how polling(4) applies to network interfaces.
Reviewed by:	ru
2004-06-08 08:48:49 +00:00
Yaroslav Tykhiy
e06e6ff9bc 1. There are interface capabilities to be used by "lower" kernel
components as well, i.e., polling.

2. Stress that if_capenable should be modified only from within
   the interface driver because it solely knows about how to control
   the capabilities.
2004-06-07 16:46:28 +00:00
Brooks Davis
36c19a572a Add the kernel side of network interface renaming support.
The basic process is to send a routing socket announcement that the
interface has departed, change if_xname, update the sockaddr_dl
associated with the interface, and announce the arrival of the interface
on the routing socket.

As part of this change, ifunit() is greatly simplified by testing
if_xname directly.  if_clone_destroy() now uses if_dname to look up the
cloner for the interface and if_dunit to identify the unit number.

Reviewed by:	ru, sam (concept)
		Vincent Jardin <vjardin AT free.fr>
		Max Laier <max AT love2party.net>
2004-02-04 02:54:25 +00:00
Yaroslav Tykhiy
5eb4925c66 Document the interface method if_input(). 2004-01-26 12:51:00 +00:00
Yaroslav Tykhiy
dede2093e5 Clearly state that upon SIOCSIFFLAGS, ifp->if_flags is updated
at the common ifioctl() level.
2004-01-26 12:08:23 +00:00
Yaroslav Tykhiy
ac1ac9d76b Extend the description of SIOCSIFCAP. 2004-01-26 11:48:26 +00:00
Yaroslav Tykhiy
d4030ed6c5 Extend the description of the framework of interface capabilities. 2004-01-22 00:10:21 +00:00
Brooks Davis
9bf40ede4a Replace the if_name and if_unit members of struct ifnet with new members
if_xname, if_dname, and if_dunit. if_xname is the name of the interface
and if_dname/unit are the driver name and instance.

This change paves the way for interface renaming and enhanced pseudo
device creation and configuration symantics.

Approved By:	re (in principle)
Reviewed By:	njl, imp
Tested On:	i386, amd64, sparc64
Obtained From:	NetBSD (if_xname)
2003-10-31 18:32:15 +00:00
Ruslan Ermilov
fe08efe680 mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
Hiten Pandya
97a30ee292 Remove paragraph which describes how we might switch our packet queueing
discipline to Random Early Detection (RED) in the future.  The same para
incorrectly spelt ``Random Early Detection'' as ``Random Early Drop''.

While I am there, nuke IF_ENQ_DROP from the list of functions.  More
work will be done on this, since some of the functions like
if_enq_drop() and if_queue_drop() were replaced with one function
called if_handoff() that does the job of enqueing the packet and
updating interface statistics as necessary.

Reviewed by:		wollman
Approved by:		des (mentor)
MFC after:		1 day
2003-06-12 21:33:00 +00:00
Tom Rhodes
b655544297 fnet(9) claims that "those interfaces supporting reception of multicast
datagrams have a LIST of multicast group memberships...".  On -CURRENT, that
LIST is actually a TAILQ.  Note that -STABLE still uses a LIST

PR:		50426
Submitted by:	Scott Mitchell <scott+freebsd@fishballoon.org>
2003-05-01 18:34:13 +00:00
Ceri Davies
a6f87194d6 Correct typo in function declaration (s/if_dont/if_done).
PR:		docs/50136
Submitted by:	Scott Mitchell <scott+freebsd@fishballoon.org>
MFC After:	4.8
2003-03-19 22:27:21 +00:00
Ruslan Ermilov
d962d52ac0 mdoc(7) police: scheduled sweep.
Approved by:	re
2002-11-29 11:39:20 +00:00
Maxim Sobolev
d1831a621a Last missed bit of user-setable promisc mode.
Pointy hat to:  sobomax
MFC after:      1 day
2002-08-28 07:24:20 +00:00
Maxim Sobolev
62f7648682 Increase size of ifnet.if_flags from 16 bits (short) to 32 bits (int). To avoid
breaking application ABI use unused ifreq.ifru_flags[1] for upper 16 bits in
SIOCSIFFLAGS and SIOCGIFFLAGS ioctl's.

Reviewed by:	-hackers, -net
2002-08-18 07:05:00 +00:00
Ruslan Ermilov
00594efed6 mdoc(7) police: tidy up the markup, fix some minor bugs. 2002-01-10 11:57:10 +00:00
Mike Pritchard
b82af3f5e4 ispell sweep of share/man/man9/*. 2002-01-09 11:43:48 +00:00
Chad David
f16b3c0de4 Update function definitions and required include files to reflect
the current state of the system.

Approved by: alfred
2001-12-26 23:14:04 +00:00
Ruslan Ermilov
32eef9aeb1 mdoc(7) police: Use the new .In macro for #include statements. 2001-10-01 16:09:29 +00:00
Ruslan Ermilov
3b944e14cd mdoc(7) police: removed gratuitous .Pp calls. 2001-10-01 13:28:16 +00:00
Jeroen Ruigrok van der Werven
940205d5e8 Remove IFCAP_HWCSUM, it is merely a luxury #define, not a real flag.
Remove explicit mention of IP stack, since it might not be accurate for all
interfaces.
Change if_enable to if_capenable, as it is spelled.

Submitted by:	jlemon
2001-09-22 15:59:09 +00:00
Jeroen Ruigrok van der Werven
f5170ab181 Commit descriptions for the interface capabilities support. 2001-09-22 12:34:19 +00:00
Ruslan Ermilov
c4d9468ea0 mdoc(7) police:
Avoid using parenthesis enclosure macros (.Pq and .Po/.Pc) with plain text.
Not only this slows down the mdoc(7) processing significantly, but it also
has an undesired (in this case) effect of disabling hyphenation within the
entire enclosed block.
2001-08-07 15:48:51 +00:00
Jens Schweikhardt
c1f3e4bf21 Removed whitespace at end-of-line; no content changes. I simply did
cd src/share; find man[1-9] -type f|xargs perl -pi -e 's/[ \t]+$//'

BTW, what editors are the culprits? I'm using vim and it shows
me whitespace at EOL in troff files with a thick blue block...

Reviewed by:	Silence from cvs diff -b
MFC after:	7 days
2001-07-14 19:41:16 +00:00
Ruslan Ermilov
3d45e180f4 mdoc(7) police: removed HISTORY info from the .Os call. 2001-07-10 15:31:11 +00:00
Bruce Evans
2c9ba841c6 Fixed bitrot in synopsis. The Lite2 change from int to u_long for ioctl
command numbers had not reached here.
2001-02-15 12:54:34 +00:00
Ruslan Ermilov
d0353b836e mdoc(7) police: split punctuation characters + misc fixes. 2001-02-01 16:38:02 +00:00
Ruslan Ermilov
3136363f3e Prepare for mdoc(7)NG. 2000-12-29 09:18:45 +00:00
Ruslan Ermilov
ed40311694 mdoc(7) police: removed history info from the .Os FreeBSD call. 2000-12-14 11:52:05 +00:00
Alexander Langer
dc661e78a8 Remove XXX: Describe if_init().
Reviewed by:	asmodai
2000-06-10 10:23:06 +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
Ruslan Ermilov
c931dae17f Adjust descriptions for if_up() and if_down().
Reviewed by:	wollman
1999-09-14 01:05:40 +00:00
Peter Wemm
7f3dea244c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
Mike Pritchard
5d70612b3f Fix some typos and do some minor mdoc cleanup. 1999-06-27 02:38:46 +00:00
Philippe Charnier
aaf1f16e39 .Sh AUTHOR -> .Sh AUTHORS according to mdoc specs.
Use .An/.Aq.
1998-03-12 07:31:21 +00:00
Garrett Wollman
de707befce Document Monday's changes in the interface structure. 1997-01-15 19:28:39 +00:00
Jordan K. Hubbard
1130b656e5 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
Wolfram Schneider
0b992c1d66 Sort cross references. 1996-12-26 16:16:37 +00:00
Mike Pritchard
4a6a66d28c Typo police. 1996-12-18 22:06:47 +00:00
Garrett Wollman
3cb60f1a48 Create a new manual page describing how network interfaces and
addresses are glued together with the generic networking code.
1996-12-17 20:21:01 +00:00