History log of /freebsd-10.1-release/sbin/ifconfig/
Revision Date Author Comments
272461 03-Oct-2014 gjb

Copy stable/10@r272459 to releng/10.1 as part of
the 10.1-RELEASE process.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


270009 15-Aug-2014 gjb

MFC r269888:
Fix a typo in a comment: s/interprete/interpret/

Sponsored by: The FreeBSD Foundation


268367 07-Jul-2014 ume

MFC r268049:
Fix ifconfig to show pltime and vltime with -L option,
again after usage change from time_second to time_uptime.

PR: 188520
Submitted by: Guy Yur <guyyur__at__gmail.com>


263086 12-Mar-2014 glebius

Bulk sync of pf changes from head, in attempt to fixup broken build I
made in r263029.

Merge r257186,257215,257349,259736,261797.

These changesets split pfvar.h into several smaller headers and make
userland utilities to include only some of them.


262556 27-Feb-2014 des

MFH (r256768): don't report an error for no-op add / remove


259073 07-Dec-2013 peter

Hoist all the mergeinfo up to the root in preparation for enforcing merges
to the root only. All MFC's were rerecorded to the root.

Going forward, if an MFC includes mergeinfo, it will need to be made to
the root and committed from the root. Merges with --ignore-ancestry
or diff | patch can go anywhere.

The mergeinfo in HEAD is in a bad state from years of neglect and manual
tampering and this was branched into 10.x. This confuses the coalescing
code and prevents it from doing its job.

Approved by: re (gjb, implicit)


257321 29-Oct-2013 glebius

Merge r256824 from head:
Provide a working example line for an interface with 1 address running
with CARP.

Currently, we've got a problem that interface isn't IFF_UP at the time
we assign it a redundant address, and the latter gets stuck in INIT state.
Additional SIOCSIFFLAGS from ifconfig(8) kicks it to a working state.

A proper fix is kernel side and appeared to be non-trivial, not to be
checked in before 10.0-RELEASE.

Submitted by: Ole Myhre <ole.myhre dataoppdrag.no>

Approved by: re (kib)


256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


252557 03-Jul-2013 hrs

Fix a typo (s/error/errno/).


252408 30-Jun-2013 hrs

Do not display a warning message in a jail without AF_INET6 support.

MFC after: 3 days


250604 13-May-2013 joel

mdoc sweep


249897 25-Apr-2013 glebius

Don't free memory that is going to be used as error string.

PR: bin/178121
Submitted by: Garrett Cooper <yaneurabeya gmail.com>


246505 07-Feb-2013 monthadar

Mark a mesh path to a mesh gate with a 'G'.

Approved by: adrian (mentor)


245230 09-Jan-2013 ume

Add no_prefer_iface option.
It stops treating the address on the interface as special by source
address selection rule even when the interface is outgoing interface.
This is desired in some situation.

Requested by: hrs
Reviewed by: IHANet folks including hrs
MFC after: 1 week


244538 21-Dec-2012 kevlo

Fix socket calls on error post-r243965.

Submitted by: Garrett Cooper


243866 04-Dec-2012 hrs

- Fix LOR in sa6_recoverscope() in rt_msg2()[1].
- Check V_deembed_scopeid before checking if sa_family == AF_INET6.
- Fix scope id handing in route(8)[2] and ifconfig(8).

Reported by: rpaulo[1], Mateusz Guzik[1], peter[2]


243187 17-Nov-2012 hrs

Fill sin6_scope_id in sockaddr_in6 before passing it from the kernel to
userland via routing socket or sysctl. This eliminates the following
KAME-specific sin6_scope_id handling routine from each userland utility:

sin6.sin6_scope_id = ntohs(*(u_int16_t *)&sin6.sin6_addr.s6_addr[2]);

This behavior can be controlled by net.inet6.ip6.deembed_scopeid. This is
set to 1 by default (sin6_scope_id will be filled in the kernel).

Reviewed by: bz


242705 07-Nov-2012 wblock

Actually change "silent" to "silence" this time (reviewed by adri@).

MFC after: 1 week


242704 07-Nov-2012 wblock

Remove fifteen-year-old notes on media selection (suggested by simon@).
Add commas after "e.g." and "i.e.". Change "silent" to "silence" in
wireless create section (reviewed by adri@).

MFC after: 1 week


242697 07-Nov-2012 wblock

Add devd.conf(5) and devd(8) to SEE ALSO xrefs. Give users a pointer to
seemingly mysterious actions that are not done by ifconfig itself, but
by devd triggering on events caused by ifconfig.

PR: docs/173405
Submitted by: Mateusz Kwiatkowski <mateusz.kwiatkowski@atlashost.eu>
MFC after: 1 week


238273 09-Jul-2012 hrs

Remove "prefer_source" address selection option. FreeBSD has had an
implementation of RFC 3484 for this purpose for a long time and "prefer_source"
was never implemented actually. ND6_IFF_PREFER_SOURCE macro is left intact.


237263 19-Jun-2012 np

- Updated TOE support in the kernel.

- Stateful TCP offload drivers for Terminator 3 and 4 (T3 and T4) ASICs.
These are available as t3_tom and t4_tom modules that augment cxgb(4)
and cxgbe(4) respectively. The cxgb/cxgbe drivers continue to work as
usual with or without these extra features.

- iWARP driver for Terminator 3 ASIC (kernel verbs). T4 iWARP in the
works and will follow soon.

Build-tested with make universe.

30s overview
============
What interfaces support TCP offload? Look for TOE4 and/or TOE6 in the
capabilities of an interface:
# ifconfig -m | grep TOE

Enable/disable TCP offload on an interface (just like any other ifnet
capability):
# ifconfig cxgbe0 toe
# ifconfig cxgbe0 -toe

Which connections are offloaded? Look for toe4 and/or toe6 in the
output of netstat and sockstat:
# netstat -np tcp | grep toe
# sockstat -46c | grep toe

Reviewed by: bz, gnn
Sponsored by: Chelsio communications.
MFC after: ~3 months (after 9.1, and after ensuring MFC is feasible)


236626 05-Jun-2012 joel

Remove repeated words.


236178 28-May-2012 rea

if_lagg: allow to invoke SIOCSLAGGPORT multiple times in a row

Currently, 'ifconfig laggX down' does not remove members from this
lagg(4) interface. So, 'service netif stop laggX' followed by
'service netif start laggX' will choke, because "stop" will leave
interfaces attached to the laggX and ifconfig from the "start" will
refuse to add already-existing interfaces.

The real-world case is when I am bundling together my Ethernet and
WiFi interfaces and using multiple profiles for accessing network in
different places: system being booted up with one profile, but later
this profile being exchanged to another one, followed by 'service
netif restart' will not add WiFi interface back to the lagg: the
"stop" action from 'service netif restart' will shut down my main WiFi
interface, so wlan0 that exists in the lagg0 will be destroyed and
purged from lagg0; the "start" action will try to re-add both
interfaces, but since Ethernet one is already in lagg0, ifconfig will
refuse to add the wlan0 from WiFi interface.

Since adding the interface to the lagg(4) when it is already here
should be an idempotent action: we're really not changing anything,
so this fix doesn't change the semantics of interface addition.

Approved by: thompsa
Reviewed by: emaste
MFC after: 1 week


236176 28-May-2012 bz

Removed the IFCAP_ prefix when printing the IPv6 checksum capabilities.

Submitted by: dim
MFC after: 3 days


236170 28-May-2012 bz

It turns out that too many drivers are not only parsing the L2/3/4
headers for TSO but also for generic checksum offloading. Ideally we
would only have one common function shared amongst all drivers, and
perhaps when updating them for IPv6 we should introduce that.
Eventually we should provide the meta information along with mbufs to
avoid (re-)parsing entirely.

To not break IPv6 (checksums and offload) and to be able to MFC the
changes without risking to hurt 3rd party drivers, duplicate the v4
framework, as other OSes have done as well.

Introduce interface capability flags for TX/RX checksum offload with
IPv6, to allow independent toggling (where possible). Add CSUM_*_IPV6
flags for UDP/TCP over IPv6, and reserve further for SCTP, and IPv6
fragmentation. Define CSUM_DELAY_DATA_IPV6 as we do for legacy IP and
add an alias for CSUM_DATA_VALID_IPV6.

This pretty much brings IPv6 handling in line with IPv4.
TSO is still handled in a different way and not via if_hwassist.

Update ifconfig to allow (un)setting of the new capability flags.
Update loopback to announce the new capabilities and if_hwassist flags.

Individual driver updates will have to follow, as will SCTP.

Reported by: gallatin, dim, ..
Reviewed by: gallatin (glanced at?)
MFC after: 3 days
X-MFC with: r235961,235959,235958


235671 19-May-2012 bz

MFp4 bz_ipv6_fast:

Allow tso4 and tso6 be set individually given we have the bits.
This will help with drivers not working as expected during the
transition time and later.

Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems

Reviewed by: gnn
MFC After: 1 week


235285 11-May-2012 hrs

Skip nd6 line with no warning message when the system does not support
INET6.

Spotted by: flo


234933 02-May-2012 monthadar

Update man page date to the date of the last commit.

Approved by: adrian


234895 01-May-2012 monthadar

* Modified ifconfig to show the IEEE80211_MESHRT_FLAGS_DISCOVER flag with a 'D';

Approved by: adrian


234893 01-May-2012 monthadar

* Added new command to ifconfig to activate Mesh Gate Announcement called
meshgate with corresponding explanation;

Approved by: adrian


233993 07-Apr-2012 joel

Remove end of line whitespace introduced in previous commit.


233848 03-Apr-2012 glebius

Document syncdev, syncpeer and defer keywords for
pfsync(4) interfaces.


233847 03-Apr-2012 glebius

Make it possible to switch pfsync(4) deferral mechanism on/off.

Obtained from: OpenBSD


233648 29-Mar-2012 eadler

Remove trailing whitespace per mdoc lint warning

Disussed with: gavin
No objection from: doc
Approved by: joel
MFC after: 3 days


233382 23-Mar-2012 bschmidt

Also fix the parameter usage in set80211meshpeering().

Submitted by: Monthadar Al Jaberi
MFC after: 1 week
X-MFC after: r233328


233328 22-Mar-2012 adrian

Fix an incorrect parameter usage here.

Submitted by: monthadar@gmail.com


232638 07-Mar-2012 thompsa

Fix typo and bump the document date which I also forgot.

Spotted by: Andrey Zonov


232629 06-Mar-2012 thompsa

Add the ability to set which packet layers are used for the load balance hash
calculation.


232316 29-Feb-2012 brueffer

Update bridge(4) default values.

PR: 164564
Submitted by: "Rudy (bulk)" <crapsh@monkeybrains.net>
MFC after: 2 weeks


232250 28-Feb-2012 gavin

Correct capitalization of "Hz" in user-visible text (manpages, printf(),
etc).

MFC after: 3 days


231642 14-Feb-2012 rmh

Disable jail support in ifconfig when either building a rescue
image or MK_JAIL knob has been set to "no".

Reviewed by: bz
Approved by: adrian (mentor)


229914 10-Jan-2012 eadler

Fix warning when compiling with gcc46:
error: variable 'firstkey' set but not used

Approved by: dim
MFC after: 3 days


229778 07-Jan-2012 uqs

Spelling fixes for sbin/


229518 04-Jan-2012 rwatson

Adjust the VLAN section of the ifconfig(8) man page to better reflect
reality:

1. Only 12-bit VLAN Identifiers, not full 16-bit VLAN tags can be set using
ifconfig vlan.

2. When we mean VLAN Identifiers, spell it that way, rather than as VLAN tag.

MFC after: 3 days
Sponsored by: Adara Networks, Inc.


228641 17-Dec-2011 bz

Allow toggling of IFCAP_VLAN_HWCSUM for hardware that supports checksum
offloading on vlans and document the new option.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


228577 16-Dec-2011 glebius

Rename ifcarp.c to carp.c


228574 16-Dec-2011 glebius

Since size of struct in_aliasreq has just been changed in r228571,
and thus ifconfig(8) needs recompile, it is a good chance to make
parameter checks on SIOCAIFADDR arguments more strict.


228571 16-Dec-2011 glebius

A major overhaul of the CARP implementation. The ip_carp.c was started
from scratch, copying needed functionality from the old implemenation
on demand, with a thorough review of all code. The main change is that
interface layer has been removed from the CARP. Now redundant addresses
are configured exactly on the interfaces, they run on.

The CARP configuration itself is, as before, configured and read via
SIOCSVH/SIOCGVH ioctls. A new prefix created with SIOCAIFADDR or
SIOCAIFADDR_IN6 may now be configured to a particular virtual host id,
which makes the prefix redundant.

ifconfig(8) semantics has been changed too: now one doesn't need
to clone carpXX interface, he/she should directly configure a vhid
on a Ethernet interface.

To supply vhid data from the kernel to an application the getifaddrs(8)
function had been changed to pass ifam_data with each address. [1]

The new implementation definitely closes all PRs related to carp(4)
being an interface, and may close several others. It also allows
to run a single redundant IP per interface.

Big thanks to Bjoern Zeeb for his help with inet6 part of patch, for
idea on using ifam_data and for several rounds of reviewing!

PR: kern/117000, kern/126945, kern/126714, kern/120130, kern/117448
Reviewed by: bz
Submitted by: bz [1]


227738 19-Nov-2011 glebius

For unknown reason, since rev 1.1 of ifconfig.c, sin_family isn't
set properly for the mask argument.

Since I'd like to improve argument sanity checking in kernel
side, in in_control(), fix this.


227479 12-Nov-2011 adrian

Bump date.


227477 12-Nov-2011 adrian

Add documentation for the new quiet time IE options.

Submitted by: Himali Patel <himali.patel@sibridgetech.com>
Sponsored by: Sibridge Technologies


227336 08-Nov-2011 adrian

Add quiet time element configuration support to ifconfig.

This allows a hostap to specify to a set of stations that they
should not transmit for a certain period of time after each
beacon interval has expired. This is used when searching for
radar pulses or general interference.

Submitted by: Himali Patel <himali.patel@sibridgetech.com>
Sponsored by: Sibridge Technologies


225672 19-Sep-2011 hrs

- Document inet6 no_radr flag.
- Add descriptions of sysctl(8) variables which can control the default
configuration of the inet6 flags.

Approved by: re (kib)


224224 20-Jul-2011 adrian

This patch removes a check in ifconfig which disables HT/40 channels
on frequency bands with DFS. All Atheros chipsets >= AR9001 support
radar event detection on HT40 extension channels.

This should be a chipset specific item rather than enforced in the
regulatory domain database.

In addition, it's irrelevant for STA mode, as the radar detection is
done by the access point, not the STA.

Approved by: re (kib)


224219 19-Jul-2011 adrian

This patch enables listing DFS related flags when 'ifconfig -v wlanX
list channel' is run. The following new options are introduced:

* D: channel requires DFS
* R: channel has a radar event
* I: channel has detected inteference
* C: the CAC period has completed on a channel that requires it (ie,
DFS + PASSIVE.)

It's relevant for developing, debugging and using the DFS and
interference options.

Approved by: re (bz)


224179 18-Jul-2011 bz

If compiling RESCUE always ignore feature_present(3) calls so that
a /rescue/ifconfig more modern than the kernel could still configure
IPv4 or IPv6 addresses.

Reported by: Andrzej Tobola (ato iem.pw.edu.pl)
Reported by: gcooper
MFC after: 1 day
X-MFC: will not MFC any time soon, just reminder for r222527


223735 03-Jul-2011 bz

Add infrastructure to allow all frames/packets received on an interface
to be assigned to a non-default FIB instance.

You may need to recompile world or ports due to the change of struct ifnet.

Submitted by: cjsp
Submitted by: Alexander V. Chernikov (melifaro ipfw.ru)
(original versions)
Reviewed by: julian
Reviewed by: Alexander V. Chernikov (melifaro ipfw.ru)
MFC after: 2 weeks
X-MFC: use spare in struct ifnet


223078 14-Jun-2011 luigi

Grab one of the ifcap bits for netmap, and enable printing in ifconfig.

Document the fact that we might want an IFCAP_CANTCHANGE mask,
even though the value is not yet used in sys/net/if.c

(asked on -current a week ago, no feedback so i assume no objection).


222728 06-Jun-2011 hrs

- Accept Router Advertisement messages even when net.inet6.ip6.forwarding=1.

- A new per-interface knob IFF_ND6_NO_RADR and sysctl IPV6CTL_NO_RADR.
This controls if accepting a route in an RA message as the default route.
The default value for each interface can be set by net.inet6.ip6.no_radr.
The system wide default value is 0.

- A new sysctl: net.inet6.ip6.norbit_raif. This controls if setting R-bit in
NA on RA accepting interfaces. The default is 0 (R-bit is set based on
net.inet6.ip6.forwarding).

Background:

IPv6 host/router model suggests a router sends an RA and a host accepts it for
router discovery. Because of that, KAME implementation does not allow
accepting RAs when net.inet6.ip6.forwarding=1. Accepting RAs on a router can
make the routing table confused since it can change the default router
unintentionally.

However, in practice there are cases where we cannot distinguish a host from
a router clearly. For example, a customer edge router often works as a host
against the ISP, and as a router against the LAN at the same time. Another
example is a complex network configurations like an L2TP tunnel for IPv6
connection to Internet over an Ethernet link with another native IPv6 subnet.
In this case, the physical interface for the native IPv6 subnet works as a
host, and the pseudo-interface for L2TP works as the default IP forwarding
route.

Problem:

Disabling processing RA messages when net.inet6.ip6.forwarding=1 and
accepting them when net.inet6.ip6.forward=0 cause the following practical
issues:

- A router cannot perform SLAAC. It becomes a problem if a box has
multiple interfaces and you want to use SLAAC on some of them, for
example. A customer edge router for IPv6 Internet access service
using an IPv6-over-IPv6 tunnel sometimes needs SLAAC on the
physical interface for administration purpose; updating firmware
and so on (link-local addresses can be used there, but GUAs by
SLAAC are often used for scalability).

- When a host has multiple IPv6 interfaces and it receives multiple RAs on
them, controlling the default route is difficult. Router preferences
defined in RFC 4191 works only when the routers on the links are
under your control.

Details of Implementation Changes:

Router Advertisement messages will be accepted even when
net.inet6.ip6.forwarding=1. More precisely, the conditions are as
follow:

(ACCEPT_RTADV && !NO_RADR && !ip6.forwarding)
=> Normal RA processing on that interface. (as IPv6 host)

(ACCEPT_RTADV && (NO_RADR || ip6.forwarding))
=> Accept RA but add the router to the defroute list with
rtlifetime=0 unconditionally. This effectively prevents
from setting the received router address as the box's
default route.

(!ACCEPT_RTADV)
=> No RA processing on that interface.

ACCEPT_RTADV and NO_RADR are per-interface knob. In short, all interface
are classified as "RA-accepting" or not. An RA-accepting interface always
processes RA messages regardless of ip6.forwarding. The difference caused by
NO_RADR or ip6.forwarding is whether the RA source address is considered as
the default router or not.

R-bit in NA on the RA accepting interfaces is set based on
net.inet6.ip6.forwarding. While RFC 6204 W-1 rule (for CPE case) suggests
a router should disable the R-bit completely even when the box has
net.inet6.ip6.forwarding=1, I believe there is no technical reason with
doing so. This behavior can be set by a new sysctl net.inet6.ip6.norbit_raif
(the default is 0).

Usage:

# ifconfig fxp0 inet6 accept_rtadv
=> accept RA on fxp0
# ifconfig fxp0 inet6 accept_rtadv no_radr
=> accept RA on fxp0 but ignore default route information in it.
# sysctl net.inet6.ip6.norbit_no_radr=1
=> R-bit in NAs on RA accepting interfaces will always be set to 0.


222711 05-Jun-2011 hrs

Add the "nd6 options" line handler as af_other_status() of AF_INET6, not as an
own address family.

Reviewed by: bz


222527 31-May-2011 bz

Conditionally compile in the af_inet and af_inet6, af_nd6 modules.
If compiled in for dual-stack use, test with feature_present(3)
to see if we should register the IPv4/IPv6 address family related
options.

In case there is no "inet" support we would love to go with the
usage() and make the address family mandatory (as it is for anything
but inet in theory). Unfortunately people are used to
ifconfig IF up/down
etc. as well, so use a fallback of "link". Adjust the man page
to reflect these minor details.

Improve error handling printing a warning in addition to the usage
telling that we do not know the given address family in two places.

Reviewed by: hrs, rwatson
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
MFC after: 2 weeks


221954 15-May-2011 marius

When setting media always and not just in case of switching to IFM_AUTO
clear the options of the current media, i.e. only inherit the instance,
which matches what NetBSD does. Without this it's really non-intuitive
that the following sequence:
ifconfig bge0 media 1000baseT mediaopt full-duplex
ifconfig bge0 media 100baseTX
results in 100baseTX full-duplex to be set or that:
ifconfig bge0 media autoselect mediaopt flowcontrol
ifconfig bge0 media 1000baseT mediaopt full-duplex
tries to set 1000baseT full-duplex with flowcontrol, which isn't suported
und thus fails while the following:
ifconfig re0 media 1000baseT mediaopt flowcontrol,full-duplex
ifconfig re0 media autoselect
just switches to autoselection without flowcontrol.

MFC after: 2 weeks


220935 22-Apr-2011 adrian

Revert r220907 and r220915.

Changing the size of struct ieee80211_mimo_info changes
the STA info data, breaking ifconfig in general.


220907 21-Apr-2011 adrian

Change the MIMO userland export ABI to include flags, number of radio chains,
extended EVM statistics and EXT channel data.

ifconfig still displays 3 chains worth of ctl noise/rssi.


220382 06-Apr-2011 gjb

Correct 'list scan' description in the examples. The previous description
was incorrect - 'list scan' does not actually do a scan, but instead lists
the results of the background 'scan' cache.

Submitted by: Fabian Keil (freebsd-listen of fabiankeil de) (via email)
Discussed with: bschmidt
MFC after: 3 days


219834 21-Mar-2011 gjb

Bump date from previous commit.


219805 20-Mar-2011 gjb

Use 'list scan' in favor of 'scan', as 'scan' has a different purpose.

Pointed out by: bschmidt
MFC after: 1 day


219575 12-Mar-2011 gjb

Remove unneeded newline.

MFC after: 1 week


219574 12-Mar-2011 gjb

Add example of using 'scan' for wireless networks, similarly to
OpenBSD's ifconfig(8).

PR: 151952
Submitted by: Jared (rhyous of yahoo com)
MFC after: 1 week


218093 30-Jan-2011 bschmidt

Fix the 'scan hang' issue.

When requesting a scan and one is already in progess, e.g. while in scan
state, we happily wait for a scan done notification. Though, this
notification might never be sent, e.g. if we are trying to find a network
to associate to and there is none. Instead of always waiting for a
notification just do so if a new scan has been started. For both cases the
scan cache is used to report available networks even if the content might
not be fresh.

MFC after: 1 month


218090 30-Jan-2011 bschmidt

When doing a scan while being associated it is possible that the scan
is deferred for the time it takes to flush the TX queue. This work being
done the scan then is continued, but only if it is marked to do so. As
the 'ifconfig scan' request is meant to be used after the interface is
brought up, request a background scan by default. This behaviour is
already documented in manual page.

This fixes on possible case where 'ifconfig scan' hangs infinitely.

MFC after: 1 month


217013 05-Jan-2011 marius

Teach ifconfig(8) the handy shared option shortcut aliases the NetBSD
counterpart also takes, i.e. "fdx" for "full-duplex", "flow" for
"flowcontrol", "hdx" for "half-duplex" as well as "loop" and "loopback"
for "hw-loopback".

MFC after: 1 week


216399 12-Dec-2010 joel

Remove the advertising clause from UCB copyrighted files in sbin. This
is in accordance with the information at
ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change


216267 07-Dec-2010 weongyo

Introduces IFF_CANTCONFIG interface flag to point that the interface
isn't configurable in a meaningful way. This is for ifconfig(8) or
other tools not to change code whenever IFT_USB-like interfaces are
registered at the interface list.

Reviewed by: brooks
No objections: gavin, jkim


216089 01-Dec-2010 weongyo

Don't print usbus[0-9] interfaces that it's not the interesting
interface type for ifconfig(8).


215272 13-Nov-2010 marius

When setting a media with no sub-type specified also reset the type
specific options along with the global ones so these options don't
stick when f.e. switching to IFM_AUTO.

MFC after: 2 weeks


215259 13-Nov-2010 marius

When printing media with more than one media option set aggregate these
in a comma delimited list instead of repeating "mediaopt" for each one.
This matches how the options of the active media are printed with
print_media_word() and brings us in line what NetBSD does.

MFC after: 2 weeks


211397 16-Aug-2010 joel

Fix typos, spelling, formatting and mdoc mistakes found by Nobuyuki while
translating these manual pages. Minor corrections by me.

Submitted by: Nobuyuki Koganemaru <n-kogane@syd.odn.ne.jp>


210936 06-Aug-2010 jhb

Ethernet vlan(4) interfaces have valid Ethernet link layer addresses but
use a different interface type (IFT_L2VLAN vs IFT_ETHER). Treat IFT_L2VLAN
interfaces like IFT_ETHER interfaces when handling link layer addresses.

Reviewed by: syrinx (bsnmpd)
MFC after: 1 week


210933 06-Aug-2010 joel

Fix typos and spelling mistakes.


210702 31-Jul-2010 joel

Spelling fixes.


208077 14-May-2010 bz

Document the 'short preamble' capability for 802.11bg.

Reviewed by: sam
MFC after: 4 days


207321 28-Apr-2010 rpaulo

Bump man page date.


207320 28-Apr-2010 rpaulo

Fix typos.

Obtained from: DragonFlyBSD


206637 14-Apr-2010 delphij

When an underlying ioctl(2) handler returns an error, our ioctl(2)
interface considers that it hits a fatal error, and will not copyout
the request structure back for _IOW and _IOWR ioctls, keeping them
untouched.

The previous implementation of the SIOCGIFDESCR ioctl intends to
feed the buffer length back to userland. However, if we return
an error, the feedback would be defeated and ifconfig(8) would
trap into an infinite loop.

This commit changes SIOCGIFDESCR to set buffer field to NULL to
indicate the previous ENAMETOOLONG case.

Reported by: bschmidt
MFC after: 2 weeks


205514 23-Mar-2010 rpaulo

Add a missing LINE_BREAK() after printing the roaming parameters in
verbose mode.

Sponsored by: iXsystems, inc.
MFC after: 2 weeks


205222 16-Mar-2010 qingli

Verify interface up status using its link state only
if the interface has such capability. The interface
capability flag indicates whether such capability
exists. This approach is much more backward compatible.
Physical device driver changes will be part of another
commit.

Also updated the ifconfig utility to show the LINKSTATE
capability if present.

Reviewed by: rwatson, imp, juli
MFC after: 3 days


204329 25-Feb-2010 ru

Fixed dependencies (make checkdpadd).


204150 20-Feb-2010 yongari

Add TSO support on VLAN in fconfig(8).

Reviewed by: thompsa


203970 16-Feb-2010 imp

The NetBSD Foundation has granted permission for people to remove
clause 3 and 4 from their software.


203486 04-Feb-2010 ru

Shortening a passphrase caused wrong authentication key to be used.
Fix this in a FreeBSD and OpenBSD compatible way.

MFC after: 3 days


203052 27-Jan-2010 delphij

Revised revision 199201 (add interface description capability as inspired
by OpenBSD), based on comments from many, including rwatson, jhb, brooks
and others.

Sponsored by: iXsystems, Inc.
MFC after: 1 month


202532 17-Jan-2010 ed

Raise WARNS for various tools where possible.

Submitted by: Marius NĂ¼nnerich <marius@nuenneri.ch>


202289 14-Jan-2010 emaste

Reject invalid CIDR widths rather than silently stopping at the first
non-digit character.

Due to an issue with rc(8) in a test configuration, ifconfig was being
invoked with the address used again as the width - for example,

ifconfig vlan0 10.0.0.1/10.0.0.1

Prior to this change, that address/width would be interpreted as
10.0.0.1/10.


202161 12-Jan-2010 gavin

Spell "Hz" correctly wherever it is user-visible.

PR: bin/142566
Submitted by: N.J. Mann njm njm.me.uk
Approved by: ed (mentor)
MFC after: 2 weeks


200587 15-Dec-2009 gavin

ifconfig(8) is documented to take a ISO 3166-1 country code to set the
regulatory domain with the "country" parameter, but will also take a full
country name. The man page warns that only the ISO code is unambiguous.
In reality, however, the first match on either would be accepted, leading
to "DE" being interpreted as the "DEBUG" country rather than Germany, and
"MO" selecting Morocco rather than the correct country, Macau.

Fix this by always checking for an ISO CC match first, and only search on
the full country name if that fails.

PR: bin/140571
Tested by: Dirk Meyer dirk.meyer dinoex.sub.org
Reviewed by: sam
Approved by: ed (mentor)
MFC after: 1 month


199770 25-Nov-2009 will

Make ``ifconfig -l ether'' only list interfaces that speak Ethernet.

PR: 118987
Approved by: ken (mentor)


199231 12-Nov-2009 delphij

Revert revision 199201 for now as it has introduced a kernel vulnerability
and requires more polishing.


199201 11-Nov-2009 delphij

Add interface description capability as inspired by OpenBSD.

MFC after: 3 months


198006 12-Oct-2009 hrs

Use printb() to display the "nd6 options=" line.


197980 12-Oct-2009 rpaulo

Update for latest 802.11s changes in meshconf format.

MFC after: 3 days


197526 26-Sep-2009 hrs

Fix several logic bugs in the previous IPv6 variable change and
re-add $ipv6_enable support for backward compatibility. From
UPDATING:

1. To use IPv6, simply define $ifconfig_IF_ipv6 like $ifconfig_IF
for IPv4. For aliases, $ifconfig_IF_aliasN should be used.
Note that both variables need the "inet6" keyword at the head.

Do not set $ipv6_network_interfaces manually if you do not
understand what you are doing. It is not needed in most cases.

$ipv6_ifconfig_IF and $ipv6_ifconfig_IF_aliasN still work, but
they are obsolete.

2. $ipv6_enable is obsolete. Use $ipv6_prefer and/or
"inet6 accept_rtadv" keyword in ifconfig(8) instead.

If you define $ipv6_enable=YES, it means $ipv6_prefer=YES and
all configured interfaces have "inet6 accept_rtadv" in the
$ifconfig_IF_ipv6. These are for backward compatibility.

3. A new variable $ipv6_prefer has been added. If NO, IPv6
functionality of interfaces with no corresponding
$ifconfig_IF_ipv6 is disabled by using "inet6 ifdisabled" flag,
and the default address selection policy of ip6addrctl(8)
is the IPv4-preferred one (see rc.d/ip6addrctl for more details).
Note that if you want to configure IPv6 functionality on the
disabled interfaces after boot, first you need to clear the flag by
using ifconfig(8) like:

ifconfig em0 inet6 -ifdisabled

If YES, the default address selection policy is set as
IPv6-preferred.

The default value of $ipv6_prefer is NO.

4. If your system need to receive Router Advertisement messages,
define "inet6 accept_rtadv" in $ifconfig_IF_ipv6. The rc(8)
scripts automatically invoke rtsol(8) when the interface becomes
UP. The Router Advertisement messages are used for SLAAC
(State-Less Address AutoConfiguration).


197142 12-Sep-2009 hrs

Document accept_rev_ethip_ver and send_rev_ethip_ver flags of
EtherIP (gif(4) + if_bridge(8)).

MFC after: 3 days


197138 12-Sep-2009 hrs

Improve flexibility of receiving Router Advertisement and
automatic link-local address configuration:

- Convert a sysctl net.inet6.ip6.accept_rtadv to one for the
default value of a per-IF flag ND6_IFF_ACCEPT_RTADV, not a
global knob. The default value of the sysctl is 0.

- Add a new per-IF flag ND6_IFF_AUTO_LINKLOCAL and convert a
sysctl net.inet6.ip6.auto_linklocal to one for its default
value. The default value of the sysctl is 1.

- Make ND6_IFF_IFDISABLED more robust. It can be used to disable
IPv6 functionality of an interface now.

- Receiving RA is allowed if ip6_forwarding==0 *and*
ND6_IFF_ACCEPT_RTADV is set on that interface. The former
condition will be revisited later to support a "host + router" box
like IPv6 CPE router. The current behavior is compatible with
the older releases of FreeBSD.

- The ifconfig(8) now supports these ND6 flags as well as "nud",
"prefer_source", and "disabled" in ndp(8). The ndp(8) now
supports "auto_linklocal".

Discussed with: bz and jinmei
Reviewed by: bz
MFC after: 3 days


196931 07-Sep-2009 hrs

Use printb() instead of rolling its own routine to display
bits in options=<>.

Pointed out by: ume
MFC after: 3 days


196929 07-Sep-2009 ume

Suppress an options line when no bit is on.

Reviewed by: hrs
MFC after: 3 days


195908 27-Jul-2009 rpaulo

Mesh fixes, namely:
* don't clobber proxy entries
* HWMP seq number processing, including discard of old frames
* flush routing table entries based on nexthop
* print route flags in ifconfig
* more debugging messages and comments

Proxy changes submitted by sam.

Approved by: re (kib)


195890 26-Jul-2009 bz

Make ifconfig ifN -vnet <jname|jid> actually work:

- fix ifconfig to ignore the non-existent interface in the current
network stack in case of '-vnet'.
- in ifconfig: actually use the local variables defined for the
vnet functions rather than modifying the global.

Reviewed by: rwatson
Approved by: re (kib)


195784 20-Jul-2009 rpaulo

More mesh bits, namely:
* bridge support (sam)
* handling of errors (sam)
* deletion of inactive routing entries
* more debug msgs (sam)
* fixed some inconsistencies with the spec.
* decap is now specific to mesh (sam)
* print mesh seq. no. on ifconfig list mesh
* small perf. improvements

Reviewed by: sam
Approved by: re (kib)


195618 11-Jul-2009 rpaulo

Implementation of the upcoming Wireless Mesh standard, 802.11s, on the
net80211 wireless stack. This work is based on the March 2009 D3.0 draft
standard. This standard is expected to become final next year.
This includes two main net80211 modules, ieee80211_mesh.c
which deals with peer link management, link metric calculation,
routing table control and mesh configuration and ieee80211_hwmp.c
which deals with the actually routing process on the mesh network.
HWMP is the mandatory routing protocol on by the mesh standard, but
others, such as RA-OLSR, can be implemented.

Authentication and encryption are not implemented.

There are several scripts under tools/tools/net80211/scripts that can be
used to test different mesh network topologies and they also teach you
how to setup a mesh vap (for the impatient: ifconfig wlan0 create
wlandev ... wlanmode mesh).

A new build option is available: IEEE80211_SUPPORT_MESH and it's enabled
by default on GENERIC kernels for i386, amd64, sparc64 and pc98.

Drivers that support mesh networks right now are: ath, ral and mwl.

More information at: http://wiki.freebsd.org/WifiMesh

Please note that this work is experimental. Also, please note that
bridging a mesh vap with another network interface is not yet supported.

Many thanks to the FreeBSD Foundation for sponsoring this project and to
Sam Leffler for his support.
Also, I would like to thank Gateworks Corporation for sending me a
Cambria board which was used during the development of this project.

Reviewed by: sam
Approved by: re (kensmith)
Obtained from: projects/mesh11s


194871 24-Jun-2009 jamie

Add the "vnet" and "-vnet" options, to allow moving interfaces between
jails with VIMAGE.

Approved by: bz (mentor)


194799 23-Jun-2009 delphij

- Use size_t instead of int when appropriate;
- Use C99 sparse initialization.

With these changes ifconfig(8) is WARNS=2 clean.


194136 13-Jun-2009 sam

Rev IEEE80211_IOC_STA_INFO abi: ni_flags grew from 16 bits to 32
bits but isi_state did not follow; expand it to 32 bits and pad to
maintain alignment. Note this is an incompatible change that
requires rebuilding of user applications.

Submitted by: rpaulo, cbzimmer, avatar


193664 07-Jun-2009 hrs

Fix and add a workaround on an issue of EtherIP packet with reversed
version field sent via gif(4)+if_bridge(4). The EtherIP
implementation found on FreeBSD 6.1, 6.2, 6.3, 7.0, 7.1, and 7.2 had
an interoperability issue because it sent the incorrect EtherIP
packets and discarded the correct ones.

This change introduces the following two flags to gif(4):

accept_rev_ethip_ver: accepts both correct EtherIP packets and ones
with reversed version field, if enabled. If disabled, the gif
accepts the correct packets only. This flag is enabled by
default.

send_rev_ethip_ver: sends EtherIP packets with reversed version field
intentionally, if enabled. If disabled, the gif sends the correct
packets only. This flag is disabled by default.

These flags are stored in struct gif_softc and can be set by
ifconfig(8) on per-interface basis.

Note that this is an incompatible change of EtherIP with the older
FreeBSD releases. If you need to interoperate older FreeBSD boxes and
new versions after this commit, setting "send_rev_ethip_ver" is
needed.

Reviewed by: thompsa and rwatson
Spotted by: Shunsuke SHINOMIYA
PR: kern/125003
MFC after: 2 weeks


193447 04-Jun-2009 sam

track rename of CSA ie

Submitted by: wxs


191693 30-Apr-2009 thompsa

Do no spam the ifconfig output for the aggregated interface with 'laggdev laggX'.


191252 18-Apr-2009 rwatson

ifconfig(8) no longer needs to know how to print the IFF_NEEDSGIANT flag,
since it shortly won't be defined at all.


191121 15-Apr-2009 brooks

The structs ifaliasreq and in_aliasreq have exactly the same layout and
member names, but we really do mean to use in_aliasreq here.

MFC after: 1 week


190456 26-Mar-2009 sam

add superg+tdma include files for protocol defs needed to do ie parsing


189864 15-Mar-2009 jamie

Default to AF_LOCAL instead of AF_INET sockets for non-family-specific
operations. This allows the query operations to work in non-IPv4 jails,
and will be necessary in a future of possible non-INET networking.

Approved by: bz (mentor)


189096 27-Feb-2009 rpaulo

Replace clone_setcallback() with a new function clone_setdefcallback()
that selects a callback from an interface prefix name. This allows us to
report a meaningful error when the user types 'ifconfig wlan0 create',
for example, and also kills some redundant code.

Reviewed by: sam (earlier version)


188784 19-Feb-2009 sam

Fixup handling of roaming and xmit parameters to support 1/2 and 1/4-width
channel modes:
o usurp 'h' mode flag for half-width channels
o add 'q' mode flag for quarter-width channels
o rewrite rate parameter parsing to handle fractional values
o merge mode loops to eliminate ordering assumptions
o replace 0x80 with IEEE80211_RATE_MCS


188258 07-Feb-2009 sam

Regulatory fixups:
o add missing channel flags for ECM, indoor, and outdoor constraints
o use HT capabilities to short-circuit HT20/HT40 channel construction
o rewrite 1/2 and 1/4 width channel handling yet again; previously
we assumed there was a full-width version of the channel in the
calibration table but that's not always true (e.g. for the Public
Safety Band), now we first check the calibration table for the
exact channel we want then fall back to the heuristics we used before
o fix HT channel construction; wasn't adjusting band edges for HT40
channel bandwidth requirements


188155 05-Feb-2009 sam

add support for max antenna gain (not used at the moment)


188038 03-Feb-2009 delphij

Use %u instead of %zu when we intend to print integer constant.


187845 28-Jan-2009 sam

include the channel list in list caps when -v is set; ieee channel
#'s are not available and we have to hack around the mapchan routine
but it lets us see the calibration table w/o forcing the debug regdomain


187844 28-Jan-2009 sam

pritize the channel we display with list chans so that, among other
things, 1/2 and 1/4 width channels are hidden behind the full width
channel; this is needed because they are ordered such that they
appear after in the channel table


187843 28-Jan-2009 sam

simplify display of 1/2 and 1/4 width channels


187842 28-Jan-2009 sam

improve debug msgs for regdomain operations; print channel flags
symbolically so it's easier to identify channels and why they
are added (or not)


187841 28-Jan-2009 sam

Fix 1/2 and 1/4 width channel handling:
o only include 1/2 and 1/4 width channels when they are specified in the
regulatory database description; previously we treated them as if they
were part of the band and blindly added them for 11a/g
o check the channel list returned in the devcaps to identify whether a
device supports 1/2 or 1/4 width channels on a band; this might be
better brought out as a capability bit to avoid filling the channel
list w/ 1/2 and 1/4 width channels but then cards that only support
these channels in a range of frequencies could not be described (though
right now we don't check frequency range only band)


187801 27-Jan-2009 sam

Remove assumptions about the max # channels in ioctl's:
o change ioctl's that pass channel lists in/out to handle variable-size
arrays instead of a fixed (compile-time) value; we do this in a way
that maintains binary compatibility
o change ifconfig so all channel list data structures are now allocated
to hold MAXCHAN entries (1536); this, for example, allows the kernel
to return > IEEE80211_CHAN_MAX entries for calls like IEEE80211_IOC_DEVCAPS


187798 27-Jan-2009 sam

remove %b msg bit defines now public


187342 16-Jan-2009 sam

Fix 1/2 and 1/4 width channel handling for non-GSM operation:
o correct typo that caused random channel selection
o explicitly add 1/2 and 1/4 width channels because channel lookups match
flags that include IEEE80211_CHANNEL_HALF and IEEE80211_CHANNEL_QUARTER


187253 14-Jan-2009 sam

use correct interface name when setting flags; fixes ifconfig ... create ... up

Noticed by: Chris Anderson


186904 08-Jan-2009 sam

TDMA support for long distance point-to-point links using ath devices:
o add net80211 support for a tdma vap that is built on top of the
existing adhoc-demo support
o add tdma scheduling of frame transmission to the ath driver; it's
conceivable other devices might be capable of this too in which case
they can make use of the 802.11 protocol additions etc.
o add minor bits to user tools that need to know: ifconfig to setup and
configure, new statistics in athstats, and new debug mask bits

While the architecture can support >2 slots in a TDMA BSS the current
design is intended (and tested) for only 2 slots.

Sponsored by: Intel


186108 15-Dec-2008 sam

back out unintended change


186105 15-Dec-2008 sam

move channel parsing to a getchannel routine so it can be reused to check
the channel argument supplied to chanswitch


186104 15-Dec-2008 sam

fix handling of sku codes like country codes


186103 15-Dec-2008 sam

fix handling of unknown country codes; atoi doesn't return -1
for an invalid string as I thought; so use strtol instead


186102 15-Dec-2008 sam

0 is a potential ISO CC; use new NO_COUNTRY #define to identify
when the CC is not set. Note NO_COUNTRY is set to 0xffff for now
(must be 16 bits as ieee80211_regdomain struct defines sku's and
cc's as uint16_t which may need fixing).


186101 15-Dec-2008 sam

o distinguish between adhoc and ahdemo modes
o do not require 1/2 and 1/4 rate channels be present in the
calibration list when doing a gsm regulatory change; the
existing 900MHz cards are not self-identifying so there is
no way (using the calibration channel list) to check


186100 15-Dec-2008 sam

Improve regdomain.xml parser:
o store XML_Parser in the state block so we can report line numbers for errors
o complain about netband w/o mode
o complain about unknown modes
o complain about band w/o enclosing netband
o complain about duplicate freqband
o complain about unknown channel flags
o complain about band w/o freqband's
o complain about band w/o maxpower
o complain about country w/o ISO cc
o complain about country w/o regdomain reference


184057 19-Oct-2008 keramida

Tiny wording nits.

MFC after: 1 week


183616 05-Oct-2008 maxim

o Typo fixes.

PR: docs/127866
Submitted by: Marius Korsmo


183554 02-Oct-2008 sam

add duplicate cmd entries for vlan and vlandev that are marked !clone
so they can be used when not doing a create operation

Reviewed by: ed


183466 29-Sep-2008 sam

Distinguish between cmd/parameters used for clone operations and
all others. Use this to disambiguate cmd line arguments that can
be either clone params or regular parameters so, in particular,
"bssid" again works as a regular parameter.

While here leverage the above to improve the logic for flushing
clone operations on the first !clone cmd line parameter.

Reviewed by: jhay


183261 22-Sep-2008 sam

MIMO power save and RIFS; while here also update per-node state/flags for ampdu


183260 22-Sep-2008 sam

"ampdudensity -" is too subtle; use "NA" for any and accept it as a parameter


183244 21-Sep-2008 sam

check for undefined identifiers


182414 28-Aug-2008 jfv

Add support in ifconfig to control the vlan hardware filter feature.

Reviewed by: EvilSam and moi
MFC after:1 week


182263 27-Aug-2008 rpaulo

Fix typo.


181722 14-Aug-2008 thompsa

Fix channel parsing which was broken in r179958, the channel number may be
suffixed with :flag and /width.


181463 09-Aug-2008 des

Add sbuf_new_auto as a shortcut for the very common case of creating a
completely dynamic sbuf.

Obtained from: Varnish
MFC after: 2 weeks


181454 09-Aug-2008 sam

recognize WPS ie's

Submitted by: "Chuck Tuffli" <chuck@tuffli.net>
MFC after: 1 week


181224 03-Aug-2008 thompsa

Move the grekey to its own file, ifconfig.c does not have interface specific
code.

Submitted by: sam


181199 02-Aug-2008 sam

change list wme to only print the channel parameters; to
get channel+bss use -v


181198 02-Aug-2008 sam

don't silently exit if the regdomain.xml file is missing


181102 01-Aug-2008 sam

add missing capability bits


180999 30-Jul-2008 sam

correct description of how to clear a desired channel

Pointed out by: Chris Buechler
MFC after: 1 week


179958 23-Jun-2008 thompsa

Ensure the channel is a number and not a range, the 'channel' command can be
easily mixed up with 'chanlist' and would give unexpected results by fixing the
channel on the first number in the range.


179894 20-Jun-2008 thompsa

Add support for the optional key in the GRE header.

PR: kern/114714
Submitted by: Cristian KLEIN


178852 08-May-2008 cokane

Update the lib/expat tree for the new v2.0.1 expat import. The bsdxml.h
header is now in two parts: bsdxml.h and bsdxml_external.h, representing
the expat.h and expat_external.h headers. Updated the info on the man
page as well. Also, fixed a type-error in a printf in
sbin/ifconfig/regdomain.c that would cause a compiler warning.

Approved by: sam, phk


178354 20-Apr-2008 sam

Multi-bss (aka vap) support for 802.11 devices.

Note this includes changes to all drivers and moves some device firmware
loading to use firmware(9) and a separate module (e.g. ral). Also there
no longer are separate wlan_scan* modules; this functionality is now
bundled into the wlan module.

Supported by: Hobnob and Marvell
Reviewed by: many
Obtained from: Atheros (some bits)


177799 31-Mar-2008 sam

Fix handling of create operation together with setting other parameters:
o mark cmds/parameters to indicate they are potential arguments to a clone
operation (e.g. vlantag)
o when handling a create/clone operation do the callback on seeing the first
non-clone cmd line argument so the new device is created and can be used;
and re-setup operating state to reflect the newly created device

Reviewed by: Eugene Grosbein
MFC after: 2 weeks


176666 29-Feb-2008 sam

explain that you must set a default transmit key for WEP

Submitted by: Jeremie Le Hen <jeremie@le-hen.org>
MFC after: 1 week


175953 03-Feb-2008 sam

correct tx rate displayed by list sta: the reported legacy tx rate
is still an index into the rate set and not (yet) the rate code

Noticed by: JoaoBR


175952 03-Feb-2008 sam

fix list mac; broken in delta 1.48

Noticed by: JoaoBR


174505 10-Dec-2007 sam

Wake On Lan (WOL) infrastructure

Submitted by: Stefan Sperling <stsp@stsp.name>
Reviewed by: brooks


173320 04-Nov-2007 thompsa

Add an option to limit the number of source MACs that can be behind a bridge
interface. Once the limit is reached packets with unknown source addresses are
dropped until an existing host cache entry expires or is removed. Useful to
use with the STICKY cache option.

Sponsored by: miniSuperHappyDevHouse NZ


173275 02-Nov-2007 sam

sync with vap code base; updates for 11n support and some
general code cleanups

Reviewed by: thompsa, avatar
MFC after: 1 week


173274 02-Nov-2007 sam

minor wireless-related corrections

MFC after: 1 week


172438 04-Oct-2007 thompsa

Fix the module name matching to the drivers present in the kernel. Previously
it would return true on a partial match where it would think the edsc module
was already present by having a positive match on 'ed'. This changes it so
that it compares the full string including the nul terminators.

This also fixes a buffer overflow in the ifkind variable where the length of
the interface name in *argv wasnt checked for size.

Reviewed by: brooks
Approved by: re (gnn)


171678 01-Aug-2007 thompsa

Add a bridge interface flag called PRIVATE where any private port can not
communicate with another private port.

All unicast/broadcast/multicast layer2 traffic is blocked so it works much the
same way as using firewall rules but scales better and is generally easier as
firewall packages usually do not allow ARP blocking.

An example usage would be having a number of customers on separate vlans
bridged with a server network. All the vlans are marked private, they can all
communicate with the server network unhindered, but can not exchange any
traffic whatsoever with each other.

Approved by: re (rwatson)


171319 09-Jul-2007 sam

updates for 802.11-related parameters

Reviewed by: thompsa
Approved by: re (hrs)


171247 05-Jul-2007 thompsa

Allow the LACP state to be queried from userland which at the moment is the
actor and partner peer info. Print out the active aggregator and per port data
in verbose mode from ifconfig.

Approved by: re (mux)


170681 13-Jun-2007 thompsa

Add the vlan tag to the bridge route table. This allows a vlan trunk to be
bridged, previously legitimate traffic was not passed as the bridge could not
tell that it was on a different Ethernet segment.

All non-tagged traffic is treated as vlan1 as per IEEE 802.1Q-2003


170679 13-Jun-2007 rwatson

Remove IPX over IP tunneling pieces from ifconfig(8), omitted portion of
previous commit:

Remove IPX over IP tunneling support, which allows IPX routing over IP
tunnels, and was not MPSAFE. The code can be easily restored in the
event that someone with an IPX over IP tunnel configuration can work
with me to test patches.

This removes one of five remaining consumers of NET_NEEDS_GIANT.

Approved by: re (kensmith)

Spotted by: Artem Naluzhny <tutat nhamon dot com dot ua>


170603 12-Jun-2007 thompsa

Catch up with variable name changes in struct lagg_protos.


170588 12-Jun-2007 thompsa

Reset the pointer to the ioctl buffer after it gets changed.


170578 11-Jun-2007 andre

Add reporting and toggling of TCP LRO (large receive offload) support to
ifconfig(8).


170531 11-Jun-2007 sam

Update for revised 802.11 support:
o revised channel handling support; ifconfig now queries the kernel to
find the list of available channels and handles channel promotion;
channel attributes can be specified as part of the channel; e.g. 36:a
for channel 36 in 11a (as opposed to turbo A or HT A)
o use channel list to map between freq and IEEE channel #; this eliminates
all knowledge of how the mapping is done and fixes handling of cases
where channels overlap in the IEEE channel # space but are distinct in
the frequency+attributes space (e.g. PSB)
o add new knobs: bgscan, ff (Atheors fast frames), dturbo (Atheros
Dynamic Turbo mode), bgscanidle, bgscanintvl, scanvalid, roam:rssi11a,
roam:rssi11b, roam:rssi11g, roam:rate11a, roam:rate11b, roam:rate11g
(roaming parameters), burst, doth (forthcoming 11h support)
o print contents of WME, ATH, WPA, RSN, information elements with -v option
o print signal strength in dBm
o print noise floor in dBm
o add list txpow to print tx power caps/channel
o change default channel display in status to be more informative


169873 22-May-2007 thompsa

Add the -n flag for disabling automatic module loading, this will be used by
rc.d to stop it reloading the network module on unload.


168793 17-Apr-2007 thompsa

Rename the trunk(4) driver to lagg(4) as it is too similar to vlan trunking.

The name trunk is misused as the networking term trunk means carrying multiple
VLANs over a single connection. The IEEE standard for link aggregation (802.3
section 3) does not talk about 'trunk' at all while it is used throughout IEEE
802.1Q in describing vlans.

The lagg(4) driver provides link aggregation, failover and fault tolerance.

Discussed on: current@


168568 10-Apr-2007 thompsa

Bump document date for new trunk commands.


168563 10-Apr-2007 thompsa

Hook trunk(4) up to the build.


168561 10-Apr-2007 thompsa

Add the trunk(4) driver for providing link aggregation, failover and fault
tolerance. This driver allows aggregation of multiple network interfaces as
one virtual interface using a number of different protocols/algorithms.

failover - Sends traffic through the secondary port if the master becomes
inactive.
fec - Supports Cisco Fast EtherChannel.
lacp - Supports the IEEE 802.3ad Link Aggregation Control Protocol
(LACP) and the Marker Protocol.
loadbalance - Static loadbalancing using an outgoing hash.
roundrobin - Distributes outgoing traffic using a round-robin scheduler
through all active ports.

This code was obtained from OpenBSD and this also includes 802.3ad LACP support
from agr(4) in NetBSD.


168075 30-Mar-2007 sam

don't display ssid cloaking status as "ssid HIDE", use the cmd line
parameter like everything else

MFC after: 2 weeks


168031 29-Mar-2007 thompsa

Correct the name of the 'proto' command.

MFC after: 3 days


167871 24-Mar-2007 yar

Back out rev. 1.129 because it breaks the practice of auto-loading
hardware drivers. Unlike pseudo-device drivers, which just attach
to the cloning framework and wait for "ifconfig create", h/w drivers
create interfaces for installed cards as soon as loaded. The issue
of devd(8) involuntarily reloading modules should be dealt with in a
different way.


167485 12-Mar-2007 yar

Attempt to load the kernel module only if we are going to create a
new interface. In other cases loading the module is unwanted and
can lead to ill side effects. One such effect found is as follows:
"kldunload if_foo" tells the module to kill all its interfaces,
which results in messages sent to devd; the module unloads. Then
devd starts processing the messages, which ends up in a etc script
running ifconfig fooX, which reloads the module.


167388 09-Mar-2007 sam

point-to-point address should come from ifa_dstaddr


167081 27-Feb-2007 sam

o consistently check strlcpy result
o warn when we skip an interface because it's name is too long


167079 27-Feb-2007 sam

correct type to silence const complaint


167078 27-Feb-2007 sam

unbreak create operation, must copy argument to global name

Spotted by: des


166956 24-Feb-2007 sam

use getifaddrs from libc instead of private code

Reviewed by: bms
MFC after: 1 month


166804 17-Feb-2007 sam

correct type definition of option routine callback


166803 17-Feb-2007 sam

remove (now) duplicate definition of IEEE80211_IS_CHAN_PASSIVE


166498 04-Feb-2007 bms

Be explicit in examples about the correct grammar for 'alias' and
'-alias', and that 'add' and 'delete are in fact synonyms for these
in the ifconfig(8) grammar.

Use network prefixes explicitly specified in IETF RFCs for
documentation purposes. (bz)

PR: 102701
MFC after: 1 day
See also: RFC 3330, RFC 3849
Submitted by: bz


166446 03-Feb-2007 bms

Backout revision 1.4; it is not verified as the correct fix for the PR.
A more correct fix has been committed to ifconfig(8).

Submitted by: bz
PR: 102701


166445 03-Feb-2007 bms

Add an EXAMPLES section to ifconfig(8), clearly showing how to configure
IPv6 addresses in FreeBSD.

See also: http://www.telscom.ch/index.php/downloads/configure_ipv6_features

MFC after: 1 week
PR: 102701
Obtained from: OpenBSD (partly, with edits)


166169 22-Jan-2007 marius

Actually fully emulate NetBSD and print the media instance number
only for non-zero instances so the typical output for IFM_IEEE80211
type media doesn't overflow 80 columns.

Requested by: sam


166113 20-Jan-2007 marius

- Display the media instance numbers and allow the user to set the active
one. This is based on NetBSD but unlike NetBSD this implementation prints
the instance number for all media instances and doesn't skip it for the
first one as I don't see a reason to suppress it except for the vague
reason to preserve the output for single-instance configurations.
- Fix some whitespace nits.


166015 15-Jan-2007 sam

Add initial support for 900MHz channels; still has some rough
edges but ifconfig ath0 list chan works and you can use ieee
channel #'s to lock/select a channel.

MFC after: 1 month


165641 29-Dec-2006 bz

Fix an off-by-one which could mean writing beyond the end of the array
when copying the interface name.
This code part should probably be rewritten.


165570 27-Dec-2006 sam

Add half/quarter rate 11a channel support:
o add hack/nonstandard channel mapping for public safety band channels to
mirror kernel (temporary until we have proper 802.11 state)
o change ieee80211_mhz2ieee to take channel flags (unused right now)

While here do some minor fixups like using IEEE80211_IS_CHAN_ANYG.


165359 19-Dec-2006 jkim

Clear full-duplex when half-duplex flag is set. This actually makes
'mediaopt half-duplex' working as it should. It is now equivalent of
'-mediaopt full-duplex'.


165105 11-Dec-2006 thompsa

These days P2P means peer-2-peer (also well known from serveral filesharing
protocols) while PointToPoint has been PtP links. Change the variables
accordingly while the code is still fresh and undocumented.

Requested by: bz


165045 09-Dec-2006 sam

fix handling of ssid "-" etc; we're writing 1 byte past the
end of the result buffer

Noticed by: Sepherosa Zieha
Reviewed by: cperciva
MFC after: 2 weeks


164698 27-Nov-2006 thompsa

Add descriptions for p2p and autop2p.


164697 27-Nov-2006 ceri

Bump .Dd for r1.127.


164691 27-Nov-2006 thompsa

Show the MAC address cache size and timeout.


164688 27-Nov-2006 thompsa

Keep the command name the same as the values display name in ifconfig.


164653 27-Nov-2006 thompsa

Sync with the OpenBSD port of RSTP
- use flags rather than sperate ioctls for edge, p2p
- implement p2p and autop2p flags
- define large pathcost constant as ULL
- show bridgeid and rootid in ifconfig

Obtained from: Reyk Floeter <reyk@openbsd.org>


164112 09-Nov-2006 thompsa

Add a new address cache type called sticky. On an interface marked sticky any
address learned by the bridge is made permanent, the address will not age out
and most importantly will not migrate to another interface.

This can be used to stop mac address poisoning or clients roaming in much the
same way as static entries without the hassle of preloading the table.


163863 01-Nov-2006 thompsa

Bring in support for the Rapid Spanning Tree Protocol (802.1w).

RSTP provides faster spanning tree convergence, the protocol will exchange
information with neighboring switches to quickly transition to forwarding
without creating loops. The code will default to RSTP mode but will downgrade
any port connected to a legacy STP network so is fully backward compatible.

Reviewed by: syrinx
Tested by: syrinx


163195 10-Oct-2006 ru

Fix markup botched in previous commit.


163189 10-Oct-2006 trhodes

Note that the -v option may be used to expand long SSIDs.

PR: 102118
Reviewed by: sam


162948 02-Oct-2006 schweikh

Correct some grammos.


162637 25-Sep-2006 bms

Fix a typo in af_inet6.c such that IPv6 addresses may be deleted
from interfaces.

PR: bin/102701
Submitted by: George Mitchell
MFC after: 3 days


162469 20-Sep-2006 andre

In setifcap() only set/unset those capabilities the interface actually
supports.


162395 18-Sep-2006 ru

Markup fixes.


162152 08-Sep-2006 andre

Fix octal representation of TSO4 and TSO6 bits in interface capabilities
description.


162088 06-Sep-2006 andre

Make TSO (TCP segmentation offload) capabilities visible and accessible with
'ifconfig em0 tso' and 'ifconfig em0 -tso'. TSO for IPv4 and IPv6 is always
enabled or disabled together. The driver may enable only one if it doesn't
support both.

Document 'tso' and '-tso' in the ifconfig(8) man pages.

Sponsored by: TCP/IP Optimization Fundraise 2005


161536 22-Aug-2006 thomas

(media_status): Factor common code between IFM_ETHER and IFM_ATM cases.
(print_media_word, print_media_word_ifconfig): Remove unnecessary
goto following test for null desc.

PR: bin/102354
Submitted by: Ricardo Nabinger Sanchez <rnsanchez@gmail.com>
MFC after: 1 week


161248 12-Aug-2006 yar

Restore the "plumb" compatibility command, which was lost
due to the recent change by sam@ to clone operations in ifconfig(8).


161147 10-Aug-2006 sam

fixup list station support:
o add sanity check to avoid possible looping
o use intended api for IEEE80211_IOC_STA_INFO
o when operating in sta mode get the sta info for the ap


160687 26-Jul-2006 sam

add beacon miss threshold control

Submitted by: Henrik Brix Andersen <henrik@brixandersen.dk>
MFC after: 2 weeks


160196 09-Jul-2006 sam

o replace special handling of clone operations by a clone callback
mechanism
o change vlan cloning to use callback and pass all vlan parameters
on create using the new SIOCREATE2 ioctl
o update vlan set logic to match existing practice


159885 23-Jun-2006 sam

remove display of the ERP ie from the list sta output (it's always
zero); replace it with station capabilities

MFC after: 1 month


159781 19-Jun-2006 mlaier

Import interface groups from OpenBSD. This allows to group interfaces in
order to - for example - apply firewall rules to a whole group of
interfaces. This is required for importing pf from OpenBSD 3.9

Obtained from: OpenBSD (with changes)
Discussed on: -net (back in April)


159336 06-Jun-2006 glebius

Print pfsync interface status if either syncpeer or syncdev is configured.


157595 08-Apr-2006 scottl

Document the rest of the 802.11 capability flags.


156905 20-Mar-2006 ru

Extend coverage of the MK_IPX build option to the following:

- <netipx> headers [1]
- IPX library (libipx)
- IPX support in ifconfig(8)
- IPXrouted(8)
- new MK_NCP option

New MK_NCP build option controls:

- <netncp> and <fs/nwfs> headers
- NCP library (libncp)
- ncplist(1) and ncplogin(1)
- mount_nwfs(8)
- ncp and nwfs kernel modules

User knobs: WITHOUT_IPX, WITHOUT_IPX_SUPPORT, WITHOUT_NCP.

[1] <netsmb/netbios.h> unconditionally uses <netipx> headers
so they are still installed. This needs to be dealt with.


156591 12-Mar-2006 glebius

There is no IFF_POLLING flag anymore.


156498 09-Mar-2006 yar

Revert to setting vlan and vlandev parametes synchronously, as soon
as both have been read from the command line. Still use the callback,
but this time only to verify that both vlan and vlandev have been
found on the command line.

This should allow for control over the relative order of processing
parameters, which is needed to satisfy some caveats of the if_vlan
driver. E.g., MTU cannot be changed on a vlan interface until it's
attached to its parent.

PR: bin/94028
Reviewed by: ru
MFC after: 3 days


156079 27-Feb-2006 sam

explain what list chan displays

MFC after: 1 week


155931 23-Feb-2006 sam

cleanup line break formatting

MFC after: 1 week


155740 15-Feb-2006 sam

add miss args to mac:del and mac:kick

Submitted by: Anders Hanssen
MFC after: 3 days


155702 14-Feb-2006 sam

fix off by one malloc sizes

Submitted by: Michal Mertl
MFC after: 1 week


155461 08-Feb-2006 sam

really truncate long ssid's when !verbose

MFC after: 1 week


155254 03-Feb-2006 jcamou

Document carp(4) arguments.

PR: docs/92653
Submitted by: Jeremy C. Reed <reed@reedmedia.net>
Reviewed by: ru
Approved by: trhodes (mentor)
MFC after: 5 days


155053 30-Jan-2006 glebius

Recognize new VLAN_HWCSUM flag.


155050 30-Jan-2006 yar

Do address assignment/removal operations after callbacks.

Presently, ifconfig callbacks are used for L2 configuration, media
and vlan, so actions associated with address assignment, like sending
out a gratuitous ARP, should go when L2 is running already.

This also should fix the problem with setting up vlan interfaces
from rc.conf, when both IP and vlan+vlandev parameters are passed
to ifconfig at once.

Future work: Consider introducing several ifconfig callback lists
to invoke callbacks orderly.

MFC after: 1 week


155009 29-Jan-2006 maxim

Fix an off-by-one error.

Reviewed by: sam


154522 18-Jan-2006 sam

don't widen the ssid field by default, this screws up other formatting;
make it available with the -v option


154401 15-Jan-2006 ru

Fix an off-by-one bug.

Submitted by: Ulrich Spoerlein


154240 11-Jan-2006 ambrisko

Grab the media from the passed in structure to put it into the
global structure.

PR: bin/91399
Submitted by: Spencer Minear


153892 30-Dec-2005 rwatson

When printing SSID's in ifconfig(8)'s scan mode, set the width of the
ssid field to 32 characters instead of 14, as long SSID's are quite
common and hard to type in if you can't read them.


153736 26-Dec-2005 sam

document deftxkey


153475 16-Dec-2005 ceri

Document the pfsync(4) specific maxupd parameter, with text mostly taken
from OpenBSD's manpage.

PR: docs/89256
Submitted by: Pim van Pelt <pim at ipng dot nl>
MFC after: 3 days


153422 14-Dec-2005 sam

add control for packet bursting


153408 14-Dec-2005 thompsa

Add support for creating span ports so that one can snoop bridged traffic
from another interface/machine/network.

Obtained from: OpenBSD
MFC after: 2 weeks


153405 14-Dec-2005 sam

display a bssid that's zero with the -v option


153354 12-Dec-2005 sam

add mcastrate support

MFC after: 1 week


152568 18-Nov-2005 ru

-mdoc sweep.


151883 30-Oct-2005 brooks

SSIDs are of length 32-bytes and not NUL terminated. Use the correct
length and bail immediatly if the returned length is wrong rather than
attempting to set an correct value.

This commit differs from the patch in the PR in the use of exit instead
of return and the use of a defined value for the array.

Submitted by: Daan Vreeken [PA4DAN] <Danovitsch at Vitsch dot net>
PR: bin/74509


151827 28-Oct-2005 brooks

Don't crash when given an invalid nwkey string.

PR: misc/88159


151040 07-Oct-2005 thompsa

Display the status of the spanning tree for each port.

member: xl0 flags=7<LEARNING,DISCOVER,STP>
member: gem0 flags=7<LEARNING,DISCOVER,STP>
to:
member: xl0 flags=7<LEARNING,DISCOVER,STP>
port 3 priority 128 path cost 55 forwarding
member: gem0 flags=7<LEARNING,DISCOVER,STP>
port 1 priority 128 path cost 55 learning


151000 06-Oct-2005 yar

Eliminate some unneeded code bits.


150907 04-Oct-2005 yar

Use a callback to set up a vlan interface so that "vlan"
and "vlandev" commands can be specified in any order.
This makes the code more compact and clear as well.

Improve error check on vlan argument.

MFC after: 2 weeks


150792 01-Oct-2005 glebius

Now ifconfig is the one right way to turn polling on. Thus, remove
the "if" clauses.


150740 29-Sep-2005 yar

For the sake of consistency and easier typing,
introduce "-tunnel" as an alias for "deletetunnel".
The latter is overly long and prone to typos, but
keep it for POLA since it costs nothing.

MFC after: 5 days


150737 29-Sep-2005 yar

Forgot to touch .Dd in the previous commit.


150736 29-Sep-2005 yar

Deprecate the useless argument to -vlandev.

Submitted by: Fredrik Lindberg <fli+freebsd-current at shapeshifter.se> (implementation)
Reviewed by: brooks
MFC after: 5 days


150708 29-Sep-2005 ru

err() -> errx() where appropriate.


150465 22-Sep-2005 yar

Since special interface types get their own subsections
(not in mdoc(7) sense yet) in ifconfig(8) manpage, create such
subsections for gif(4) and vlan(4) so that their specific
options are not mixed up with general options.


149043 14-Aug-2005 thompsa

Document two missed if_bridge commands 'addr' and 'static'.

Noticed by: Michal Mertl
Approved by: mlaier (mentor)
MFC after: 3 days


149029 13-Aug-2005 sam

add list mac and mac:kick support

Submitted by: Michal Mertl (original version)
MFC after: 2 weeks


148686 03-Aug-2005 stefanf

Fix commen typos.


148643 02-Aug-2005 sam

Wireless suport fixups: add a bunch of stuff that's been in the
code but not documented (e.g. wme, mac acl) and correct some
information, etc.

Reviewed by: brueffer


148621 01-Aug-2005 sam

acm and ack are specified per-ac

MFC after: 3 days


148554 30-Jul-2005 sam

oops, revert previous change


148553 30-Jul-2005 sam

MFC: add fragthreshold parameter and accept - (or any) for rtsthreshold

Approved by: re (kensmith)


148416 26-Jul-2005 sam

o add fragthreshold support now that the ioctl exists
o accept rtsthreshold - (or any) as a shorthand for rtsthreshold 2346

MFC after: 3 days


148001 14-Jul-2005 rwatson

Add a new flag '-k' to ifconfig(8), indicating that it is alright to
print potentially sensitive keying material to stdout. With the new
802.11 support, ifconfig(8) is now capable of printing 802.11 keys,
and did by default for the root user, which is undesirable in some
environments. Now it will not print keying material unless requested
(and available to the user).

MFC after: 1 week


147979 13-Jul-2005 yar

Add symbolic names for the IFF_PPROMISC and IFF_NEEDSGIANT flags
so that ifconfig(8) can print them.

MFC after: 5 days


147948 13-Jul-2005 brueffer

mdoc cleanup and whitespace removal after the last commit.

Submitted by: ru


147943 12-Jul-2005 brueffer

Information about the capability flags in 'ifconfig foo0 scan' output.

Most content by: avatar
Reviewed by: sam
Approved by: re (hrs)
MFC after: 3 days


147795 06-Jul-2005 sam

add pureg/-pureg parameter for controlling pureg ap mode support

Reviewed by: avatar
Approved by: re (scottl)


147489 20-Jun-2005 avatar

Appending "..." to a SSID which contains unprintable characters only when
necessary.

Submitted by: sam
Approved by: re (scottl)


147437 16-Jun-2005 ume

only show a tunnel information of an adequate address family.

Approved by: re (dwhite)


147369 14-Jun-2005 ru

Markup fixes.

Approved by: re (blanket)


147337 13-Jun-2005 brueffer

It's spelled 'preceded' of course.

Submitted by: David Adam <zanchey@ucc.gu.uwa.edu.au>
Pointy hat to: brueffer


147333 13-Jun-2005 brueffer

Hex strings are _pre_ceeded by 0x, not _pro_ceeded.

PR: 82187
Submitted by: Anthony Rogers <anthony.j.rogers@gmail.com>
Approved by: re (blanket)
MFC after: 3 days


146987 05-Jun-2005 thompsa

Connect if_bridge to the build.

Approved by: mlaier (mentor)


146985 05-Jun-2005 thompsa

Add if_bridge, which provides more advanced Ethernet bridging and 802.1d
spanning tree support.

Based on Jason Wright's bridge driver from OpenBSD, and modified by Jason R.
Thorpe in NetBSD.

Reviewed by: mlaier, bms, green
Silence from: -net
Approved by: mlaier (mentor)
Obtained from: NetBSD


146873 01-Jun-2005 jhb

Fix some warnings on 64-bit archs.

Reviewed by: sam


146426 20-May-2005 sam

guard against bogus address data

Submitted by: Bakul Shah


146187 13-May-2005 ume

NI_WITHSCOPEID cleanup. Neither RFC 2553 nor RFC 3493 defines
NI_WITHSCOPEID, and our getaddrinfo(3) does nothing special
for it, now.


145842 03-May-2005 mlaier

Update ifconfig's pfsync module for 3.7 pfsync(4)


144818 08-Apr-2005 stefanf

ISO C does not allow unnamed union members.


144817 08-Apr-2005 stefanf

Fix typo in comment.


144130 25-Mar-2005 brooks

Remove bogus (but harmless) -I.. from CFLAGS. It makes no difference to
.depends other then the commant line.

Also remove -g from CFLAGS. The user should add it to CFLAGS if they
desire debug support.

Reviewed by: ru (in concept)
MFC After: 7 days


143846 19-Mar-2005 brueffer

Xref carp(4) and polling(4).

MFC after: 3 days


142224 22-Feb-2005 glebius

Use afswch->af_other_status for carp_status() and pfsync_status().

Sponsored by: Rambler


142215 22-Feb-2005 glebius

Add CARP (Common Address Redundancy Protocol), which allows multiple
hosts to share an IP address, providing high availability and load
balancing.

Original work on CARP done by Michael Shalayeff, with many
additions by Marco Pfatschbacher and Ryan McBride.

FreeBSD port done solely by Max Laier.

Patch by: mlaier
Obtained from: OpenBSD (mickey, mcbride)


140913 27-Jan-2005 ambrisko

Change the ifr_media operation to only get its value and only set
its value once per ifconfig run. Use Sam's new callback
operation to set it when everything is done.

The purpose for this is that if you did something like
ifconfig bge0 media 100baseTX mediaopt full-duplex
multiple times it would end up causing the PHY to re-sync
since it would send the IOCTLs:
ifconfig bge0 media 100baseTX -mediaopt full-duplex
ifconfig bge0 media 100baseTX mediaopt full-duplex
This would cause the PHY to be updated twice even though
there really wasn't any change since the check in
sys/net/if_media.c would always fail.

Caveat is that this doesn't fix the case of:
ifconfig bge0 media autoselect
etc. since in sys/net/if_media.c it forces an autoselect to go through
the entire process in ifmedia_ioctl :-( :
/*
* If no change, we're done.
* XXX Automedia may invole software intervention.
* Keep going in case the the connected media changed.
* Similarly, if best match changed (kernel debugger?).
*/
if ((IFM_SUBTYPE(newmedia) != IFM_AUTO) &&
(newmedia == ifm->ifm_media) &&
(match == ifm->ifm_cur))
return 0;

Briefly looked at by: sam


140415 18-Jan-2005 ru

Sort sections.


139987 10-Jan-2005 ru

Scheduled mdoc(7) sweep.


139494 31-Dec-2004 sam

Fix special status reporting. Prior to the reorg there was
special-purpose code to display status for an interface for
state that was not address-oriented. This status reporting
was merged in to the address-oriented status reporting but
did not work for link address reporting (as discovered with
fwip interfaces). Correct this mis-merge and eliminate the
bogus kludge that was used for link-level address reporting.

o add an af_other_status method for an address family for
reporting status of things like media, vlan, etc.
o call the af_other_status methods after reporting address
status for an interface
o special-case link address status; when reporting all
status for an interface invoke it specially prior to
reporting af_other_status methods (since it requires the
sockaddr_dl that is passed in to status separately from
the rtmsg address state)
o correct the calling convention for link address status;
don't cast types, construct the proper parameter

This fixes ifconfig on fwip interfaces.


139493 31-Dec-2004 sam

o accept deftxkey as a synonym for weptxkey since that is what is
printed for status (allows cut&paste)
o accept undef for the deftxkey/weptxkey so you can reset state

Requested by: phk


139492 31-Dec-2004 sam

recognize atheros information elements


138718 12-Dec-2004 sam

always display the deftxkey for an 802.11 device if privacy is enabled


138671 11-Dec-2004 sam

add a callback mechanism for code that wants to defer committing changes
until all the command line args have been processed

Reviewed by: ambrisko


138593 08-Dec-2004 sam

Overhaul to cleanup some of the tangled logic that's grown over the years.

o break per-address family support out into separate files
o modularize per-address family and functional operations using
a registration mechanism; this permits configuration according
to which files you include (but beware that order of the files
is important to insure backwards compatibility)
o many cleanups to eliminate incestuous behaviour, global variables,
and poor coding practices (still much more to fix)

The original motivation of this work was to support dynamic addition
of functionality based on the interface so we can eliminate the various
little control programs and so that vendors can distribute ifconfig
plugins that support their in-kernel code. That work is still to be
completed.

o Update 802.11 support for all the new net80211 functionality; some
of these operations (e.g. list *) may be better suited in a different
program


137313 06-Nov-2004 ru

First there was an -m option.
Then Peter killed it and made it the default.
Then Brooks and Poul-Henning added it again.
Then Ruslan fixed the manpage...


134609 01-Sep-2004 brooks

Use a spare byte in struct if_data to store the structure size without
increasing it. Add code to ifconfig to use this size to find the
sockaddr_dl after the struct if_data in the routing message. This
allows struct if_data to grow (up to 255 bytes) without breaking
ifconfig.

Submitted by: peter


133352 09-Aug-2004 yongari

Fix long standing mediaopt setting bugs seen on sparc64. Though
the bug exists in little-endian machine, it was not triggered due
to the difference of memory ordering between little/big endian
machines. Instead of relying on possibly modified value during
function invokcations, use saved copy of ifr.ifr_addr.sa_family.
Also add a comment at the top of ifconfig.c clarifying the issue
so the bug won't re-appear.

Approved by: jake
Reviewed by: yar


132690 27-Jul-2004 yar

Bump the date, .Dd, since the document content has been changed
in the previous commit.

Pointed out by: ru


132658 26-Jul-2004 yar

Add two knobs to ifconfig(8), `vlanmtu' and `vlanhwtag',
that provide control over the respective capabilities
of an interface, reception of extended frames and hardware
VLAN multiplexor.


131488 02-Jul-2004 ru

Mechanically kill hard sentence breaks.


130488 14-Jun-2004 bms

mdoc(7) police

Submitted by: ru


130474 14-Jun-2004 bms

Wordsmith the BUGS section re: IPv6 link-local addresses.

PR: docs/66541
Submitted by: Michel Lavondes (with some cleanups/additions)


129327 17-May-2004 ru

Assorted markup, grammar, and spelling fixes.


128782 30-Apr-2004 ambrisko

For both ifconfig and route if we didn't get enough memory from the
prior sysctl due to the structure growing between calls try again.

Also try again for deleting routes if things fail. We've seen
route -f fail this way which does not actually flush all routes.
This fixes it. It will whine but it will do the work.

PR: 56732
Obtained from: IronPort


128186 13-Apr-2004 luigi

Replace ROUNDUP/ADVANCE with SA_SIZE


128114 11-Apr-2004 ru

Document that -m also causes the capability list to be displayed.


128113 11-Apr-2004 ru

Added the new interface capability option for drivers that implement
user-configurable polling(4) support. Make ifconfig(8) aware of it.

Suggested by: luigi


128073 09-Apr-2004 markm

Remove advertising clause from University of California Regent's license,
per letter dated July 22, 1999.

Approved by: core, imp


127831 04-Apr-2004 phk

Fix an off-by-one error in the function used to input the ascii/hex strings.
Be a little bit more helpful in error messages.


127649 30-Mar-2004 sam

add support for setting 802.11 rtsthreshold, transmit power,
and 11g protection mode

Reviewed by: imp (just code)


126895 12-Mar-2004 ru

The print mask's first part is the base, not the total number of bit
identifiers.


126894 12-Mar-2004 ru

Show the polling(4) flag on the interface.


126797 10-Mar-2004 bde

Fixed a misspelling of 0 as NULL.


126301 27-Feb-2004 kan

Look for both name and if_<name> strings in module metadata. Pseudo-devices
like tun are naming their modules using the 'if_; prefix and previous version of
the code failed to detect their presence in the kernel, resulting in the same
module being loaded twice.


126178 23-Feb-2004 johan

style.Makefile(5):
Use WARNS?= instead of WARNS=.


126068 21-Feb-2004 yar

We can cross-reference to vlan(4) as long as
the corresponding manpage has been committed.
The rest of "vlan" words, which are refering
to the technology itself, should be capitalized.

MFC after: 1 week


126067 21-Feb-2004 yar

The hardware tagging capability is set on the physical
interface that is parent to a vlan(4) interface,
not on the vlan(4) interface itself.


125412 04-Feb-2004 brooks

Add ifconfig support for network interface renaming. In the process,
reorganize the printing of the interface name when using wildcard
cloning so it is not printed if it we either immediately rename or
destroy the interface.

Reviewed by: ru


125280 31-Jan-2004 brooks

Use memcpy plus a manual NUL termination when copying the interface name
from the sdl because strlcpy requires that the source string be
NUL-terminated unlike strncpy.

Submitted by: Peter Jeremy <PeterJeremy at optushome dot com dot au>


125060 27-Jan-2004 brooks

Use IFNAMSIZ instead of a magic value for the length of an interface
name.

Prevent the kernel from potentially overflowing the interface name
variable. The size argument of strlcpy is complex because the name is
not null-terminated in sdl_data.


124560 15-Jan-2004 sam

802.11 mode bits are now masks; convert to suit


121827 01-Nov-2003 brooks

We want the length of the string, not the size of its pointer.


121539 26-Oct-2003 peter

Give wider types to sscanf to fix two warnings (u_short cannot be > 0xffff)
and to make sure that we catch oversized arguments rather than silently
truncate them. I dont know if sscanf will reject an integer if it will
not fit in the short return variable or not, but this way it should be
detected.


120626 01-Oct-2003 ru

By popular demand, added the "static ARP" per-interface option.


120178 17-Sep-2003 sam

o add support for setting 128-bit WEP keys
o use IEEE80211_KEYBUF_SIZE instead of magic numbers
o distinguish between 40-, 104-, and 128-bit WEP keys when printing status


116957 28-Jun-2003 sam

o update for new 802.11 support
o fix channel command so channel - does what the man page says


116820 25-Jun-2003 sam

o correct mode request handling
o add 802.11 alias support
o suppress display of the default "mode autoselect" when showing the "phy mode"


114999 14-May-2003 ru

mdoc(7) police: fix more breakages from rev. 1.69.


114970 13-May-2003 sheldonh

Fix broken comment line introduced in rev 1.69.

Found with: nroff -mandoc ifconfig.8 > /dev/null


114232 29-Apr-2003 harti

Add media types and options for ATM. While on most ATM cards media cannot
be changed, it is very convenient to be able to toggle SDH/Sonet,
idle/unassigned cells and scrambled mode and to see the carrier
state.

Reviewed by: -arch (if_media.h definitions)


114165 28-Apr-2003 sam

document mode directive


114164 28-Apr-2003 sam

add a "mode" directive to specify the operating mode for multi-mode devices;
this is mostly intended for use with multi-mode 802.11 devices that support
some combination of 11a, 11b, and 11g


113503 15-Apr-2003 mdodd

Don't abuse module names to facilitate ifconfig module loading;
such abuse isn't really needed. (And if we do need type information
associated with a module then we should make it explicit and not
use hacks.)


111996 08-Mar-2003 tjr

Uncomment the description of the ipdst parameter, but refer to IPX
instead of NS.


111921 05-Mar-2003 peter

Kill #ifdef NS code


111649 27-Feb-2003 ru

Document the rxcsum and txcsum commands.

Submitted by: jlemon


109740 23-Jan-2003 mdodd

Add missing #if USE_IF_MEDIA/#endif.


109670 22-Jan-2003 fjoe

fix link_status() in non-Ethernet case

MFC after: 1 week


107233 25-Nov-2002 ru

mdoc(7) police: markup, spelling.

Also fixed a critical bug made in revision 1.62 by phk@.


106942 15-Nov-2002 sam

update vlandev description; vlan code now auto-recognizes devices that
support h/w tagging


106940 15-Nov-2002 sam

o display new interface capability bits
o capitilize capability bit strings for consistency

Approved by: re


106071 28-Oct-2002 chris

Remove a line that reflected behavior that does not actually exist.

Obtained from: TrustedBSD Project
Sponsored by: DARPA, NAI Labs


105967 25-Oct-2002 chris

Document the `maclabel' command.

Obtained from: TrustedBSD Project
Sponsored by: Network Associates Laboratories


105881 24-Oct-2002 phk

Report the MONITOR bit.


105825 23-Oct-2002 rwatson

Rename ifconfig's "mac" argument to "maclabel" to prevent confusion
regarding 802.1 MAC and Mandatory Access Control (MAC). Some
potential for confusion remains further in other areas of the
system regarding Message Authentication Codes (MAC).

Requested by: wollman
Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories


105760 23-Oct-2002 rwatson

Teach ifconfig(8) how to print and set the MAC labels on network
interfaces using the 'mac' argument. Without MAC support in the
kernel, this does not change the behavior of ifconfig.

Approved by: re
Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories


104337 02-Oct-2002 dd

Don't crash when the user feeds us nonesense in the form:
ifconfig IF ether WHATEVER -alias

PR: 42544
Submitted by: Mike Makonnen <makonnen@pacbell.net>


104044 27-Sep-2002 phk

Add the "Monitor" interface flag.

Setting this flag on an ethernet interface blocks transmission of packets
and discards incoming packets after BPF processing.

This is useful if you want to monitor network trafic but not interact
with the network in question.

Sponsored by: http://www.babeltech.dk


102099 19-Aug-2002 sobomax

Implement user-setable promiscuous mode (a new `promisc' flag for ifconfig(8)).
Also, for all interfaces in this mode pass all ethernet frames to upper layer,
even those not addressed to our own MAC, which allows packets encapsulated
in those frames be processed with packet filters (ipfw(8) et al).

Emphatically requested by: Anton Turygin <pa3op@ukr-link.net>
Valuable suggestions by: fenner


102095 19-Aug-2002 sobomax

Fix last-minute typo which breaks the world.

Submitted by: many


102052 18-Aug-2002 sobomax

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


101792 13-Aug-2002 ru

mdoc(7) police: KAMEism in rev. 1.56, nits in rev. 1.58.


101714 12-Aug-2002 imp

Warn that hex keys are the most portable.

Submitted by: Gregory Bond <gnb@itga.com.au>
Pr: 40872


99501 06-Jul-2002 charnier

The .Nm utility


98258 15-Jun-2002 ume

Add eui64 option which fills interface index (lowermost 64bit of
an IPv6 address) automatically.
This should obsolete prefix(8).

Obtained from: NetBSD
MFC after: 2 weeks


96403 11-May-2002 brian

Reword the ``alias'' description slightly. We must specify a non-conflicting
netmask - not necessarily 0xffffffff.

MFC after: 3 days


95005 18-Apr-2002 imp

De-__P, use ansi function definitions


93281 27-Mar-2002 ru

Turn "ether" address family into a generic "link" family
that could be used to set/get arbitrary length link level
addresses. Alias "lladdr" parameter and "ether" family
to the new "link" family for backward compatibility.

PR: bin/31476
MFC after: 1 week


92806 20-Mar-2002 obrien

Remove 'register' keyword.
It does not help modern compilers, and some may take some hit from it.
(I also found several functions that listed *every* of its 10 local vars with
"register" -- just how many free registers do people think machines have?)


92335 15-Mar-2002 ru

mdoc(7) police: kill whitespace at eol.


91454 28-Feb-2002 brooks

Some style(9) whitespace fixes and a correction to the copyright.


90671 15-Feb-2002 luigi

Do not disable IPv6 and vlan support when RELEASE_CRUNCH is defined.
We do support already IPv6 in the RELENG_4 boot floppies, and
vlan might be desirable as well.


90508 11-Feb-2002 dd

Note what the default address_family is.

PR: 32463
Submitted by: Gary W. Swearingen


89146 09-Jan-2002 ru

mdoc(7) police:

Restore (sorta) a useful piece of information that got lost in the
previous delta -- an ability to specify /prefixlength after an IPv6
address.


88989 07-Jan-2002 dd

In the words of the submitter:

The first "synopsis" example has a "[/prefixlength]" which shouldn't
be there, since that stuff is part of the preceeding "address" as is
explained in the description of "address".

(The way it is now, 192.168.0.1/16/prefixlength would be a proper
operand. Note that "prefixlength" is not mentioned by name anywhere.)

PR: 32462
Submitted by: Gary W. Swearingen <swear@blarg.net>


88748 31-Dec-2001 ambrisko

Fix bugs in the structure for rx_frame by making gap length one byte and
a packed array so sizeof work. This broke RFMON mode and passing
up 802.11 packets.

The Linux emulation code was derived from the open source Linux driver to
maintain compatibility.

LEAP support is added, hints from Richard Johnson. I've verified this
locally with PC350v42510.img firmware. More bug fixing from Marco to
fix long passwords.

Change DELAYs in flash part of driver to FLASH_DELAY which uses tsleep
so it doesn't look like your system died during a flash update.

Install header files in /usr/include/dev/an

Cleanup some ifmedia bugs add "Home" key mode to ifmedia and ancontrol.
This way you can manage 2 keys a little easier. Map the home mode into
key 5. Enhance ifconfig to dump the various configured SSIDs. I use
a bunch of different ones and roam between them. Use the syntax similar
to the WEP keys to deal with setting difference SSIDs.

Bump up up the Card capabilities RID since they added 2 bytes to it
in the latest firmware. Thankfully we changed it from a terminal
failure so the card still worked but the driver whined.

Some cleanup patches from Marco Molteni.

Submitted by: Richard Johnson <raj@cisco.com>
Marco Molteni <molter@tin.it>
and myself
Various checks: David Wolfskill <david@catwhisker.org>
Reviewed by: Brooks Davis <brooks@freebsd.org>
Warner Losh <imp@freebsd.org>
Approved by: Brooks Davis <brooks@freebsd.org>
Warner Losh <imp@freebsd.org>
Obtained from: Linux emulation API's from Aironet driver.


87376 05-Dec-2001 mike

Move the WARNS attribute down so that it also applies to the
RELEASE_CRUNCH case.


87325 04-Dec-2001 obrien

Default to WARNS=2.
Binary builds that cannot handle this must explicitly set WARNS=0.

Reviewed by: mike


87274 03-Dec-2001 ru

MTU and metric are available with NET_RT_IFLIST.

MFC after: 3 days


86881 24-Nov-2001 dd

Spelling police: sucessful -> successful.

Submitted by: Anders Andersson <anders@codefactory.se>


86875 24-Nov-2001 dd

Spelling police: "more then" - "more than" where appropriate.


86407 15-Nov-2001 asmodai

Back out previous commit.
This works for wi(4), but apparantly other wireless drivers seem to do
the right thing.

Submitter and yours truly both got Mislead(tm).

Submitted by: udp <udp@sneakerz.org>


86403 15-Nov-2001 asmodai

Report ad hoc mode correctly.

Submitted by: udp <udp@sneakerz.org>


85853 02-Nov-2001 yar

Cosmetic: Don't output a blank line if a driver provides
no media status.

PR: bin/30587
Submitted by: Andre Albsmeier <andre.albsmeier@mchp.siemens.de>
MFC after: 1 week


85075 17-Oct-2001 jlemon

When specifying an interface to ifconfig, first look up the interface
index, then retrieve statistics for that index, rather than retrieving
all interfaces and then looking for a matching name. This allows the
user to refer to an interface via an alias name.

While I'm here, also perform a few assorted cleanups.


83888 24-Sep-2001 rwatson

o Reduce userland inclusion of kernel headers -- remove unneeded include
of <sys/mbuf.h>.

Reviewed by: jlemon


83637 18-Sep-2001 jlemon

Split hwcsum into rxcsum and txcsum components.


83626 18-Sep-2001 jlemon

Teach ifconfig about the new interface capability words.


83112 05-Sep-2001 dd

Use CFLAGS, not COPTS, in the Makefile. bsd.prog.mk conveniently adds
COPTS towards the end of final CFLAGS so that it can be used to
override Makefile and other defaults. Using it in Makefiles risks
having options set using it clobbered when somebody uses it on the
command line.

Approved by: bde


82145 22-Aug-2001 yar

``create'' and ``destroy'' are command modifiers (.Cm), not flags (.Fl).


81862 17-Aug-2001 brooks

Actuall make plumb work in addition to create as per the manpage.

PR: bin/29812
Submitted by: Joao Carlos Mendes Luis <jonny@eng05.embratel.net.br>


81774 16-Aug-2001 ru

mdoc(7) police: restore markup bit that got accidentally lost in rev. 1.44.


81586 13-Aug-2001 ru

Removed duplicate VCS ID tags, as per style(9).


81229 07-Aug-2001 mckay

Spelling.


80392 26-Jul-2001 ume

ifconfig if0 netmask xxx.xxx.xxx.0 didn't change the netmask.

PR: bin/28833
MFC after: 3 days


80315 25-Jul-2001 brooks

Fix a stupid bug which resulted in a blank line in the status output if
WEP is supported, but not keys are set.

MFC after: 3 days


80057 21-Jul-2001 obrien

Dike out the IPX bits if RELEASE_CRUNCH is defined.


79319 05-Jul-2001 ru

mdoc(7) police: fix markup.


79105 02-Jul-2001 brooks

Support network device cloning via create and destroy options.

Reviewed by: ru, ume
Obtained from: NetBSD
MFC after: 1 week


78064 11-Jun-2001 ume

Sync with recent KAME.
This work was based on kame-20010528-freebsd43-snap.tgz and some
critical problem after the snap was out were fixed.
There are many many changes since last KAME merge.

TODO:
- The definitions of SADB_* in sys/net/pfkeyv2.h are still different
from RFC2407/IANA assignment because of binary compatibility
issue. It should be fixed under 5-CURRENT.
- ip6po_m member of struct ip6_pktopts is no longer used. But, it
is still there because of binary compatibility issue. It should
be removed under 5-CURRENT.

Reviewed by: itojun
Obtained from: KAME
MFC after: 3 weeks


77611 02-Jun-2001 dd

ARP works on networks other than Ethernet.

PR: 22062
Submitted by: Christian Weisgerber <naddy@mips.inka.de>,
Brooks Davis <brooks@one-eyed-alien.net>


77610 02-Jun-2001 dd

Mention the 'ether' parameter.

PR: 23767
Submitted by: Maxime Henrion <mux@qualys.com>,
Brooks Davis <brooks@one-eyed-alien.net>


77385 29-May-2001 phk

When using interfaces that support if_media, the supported media list is
printed on a single, very long, and generally unreadable line. This
isn't very useful. It's also really ugly and most of the time you don't
care what media is supported anyway.

PR: 27701
Submitted by: Brooks Davis <brooks@one-eyed-alien.net>


77218 26-May-2001 phk

Forgot to cvs add these two files for the previous commit.


77217 26-May-2001 phk

Currently, each wireless networking driver has it's own control program
despite the fact that most people want to set exactly the same settings
regardless of which card they have. It has been repeatidly suggested
that this configuration should be done via ifconfig. This patch
implements the required functionality in ifconfig and add support to the
wi and an drivers. It also provides partial, untested support for the
awi driver.

PR: 25577
Submitted by: Brooks Davis <brooks@one-eyed-alien.net>


76326 07-May-2001 ru

Cosmetics: .Dl -> .Li.


76295 05-May-2001 jesper

Let ifconfig(8) catch up with the new functionality where
one can specify addresses and netmask in CIDR notation.

Submitted by: Dima Dorfman <dima@unixfreak.org>


76276 04-May-2001 jesper

Implement slash/CIDR notation for IPv4 and IPv6 addresses.

MFC after: 1 week

Reviewed by: phk
Obtained from: NetBSD


74815 26-Mar-2001 ru

- Backout botched attempt to introduce MANSECT feature.
- MAN[1-9] -> MAN.


74531 20-Mar-2001 ru

Set the default manual section for sbin/ to 8.


72805 21-Feb-2001 ume

if no address is setted, do not call ioctl(SIOCAIFADDR)

Obtained from: KAME


71895 01-Feb-2001 ru

mdoc(7) police: split punctuation characters + misc fixes.


71386 22-Jan-2001 ben

mdoc police.

Submitted by: ru


71303 20-Jan-2001 ben

Add 'netrange' parameter to 'range' command and fix a couple of typos.

PR: 23984
Submitted by: Jimmy Olgeni <olgeni@uli.it>


69424 30-Nov-2000 ache

Add missing && which absense stops 'make world'


69414 30-Nov-2000 luigi

remove an undefined reference when no VLAN support is compiled in.


69261 27-Nov-2000 ume

Add missing initialization for IPv6 address lifetime.

PR: misc/22884
Obtained from: KAME


68960 20-Nov-2000 ru

mdoc(7) police: use the new features of the Nm macro.


63542 19-Jul-2000 archie

Show the actual command line usage in the man page and usage error string.


63473 18-Jul-2000 archie

Make "ifconfig" with no arguments equivalent to "ifconfig -a".


63029 12-Jul-2000 jhb

Note that "ether" is a supported address family for setting addresses.


63026 12-Jul-2000 jhb

Add support to the 'ether' address family to support setting of addresses.
This allows you to set ether addresses with 'ifconfig ether'. Also, use
some saner socket address families that allow several special case tests
to be removed.


61734 16-Jun-2000 wpaul

Implement SIOCSIFLLADDR, which allows you to change the link-level
address on an interface. This basically allows you to do what my
little setmac module/utility does via ifconfig. This involves the
following changes:

socket.h: define SIOCSIFLLADDR
if.c: add support for SIOCSIFLLADDR, which resets the values in
the arpcom struct and sockaddr_dl for the specified interface.
Note that if the interface is already up, we need to down/up
it in order to program the underlying hardware's receive filter.
ifconfig.c: add lladdr command
ifconfig.8: document lladdr command

You can now force the MAC address on any ethernet interface to be
whatever you want. (The change is not sticky across reboots of course:
we don't actually reprogram the EEPROM or anything.) Actually, you
can reprogram the MAC address on other kinds of interfaces too; this
shouldn't be ethernet-specific (though at the moment it's limited to
6 bytes of address data).

Nobody ran up to me and said "this is the politically correct way to
do this!" so I don't want to hear any complaints from people who think
I could have done it more elegantly. Consider yourselves lucky I didn't
do it by having ifconfig tread all over /dev/kmem.


60736 20-May-2000 obrien

Document "-alias".


57776 06-Mar-2000 peter

Purely cosmetic tweak, use consistant whitespace with scopeid.


57668 01-Mar-2000 sheldonh

Remove single-space hard sentence breaks. These degrade the quality
of the typeset output, tend to make diffs harder to read and provide
bad examples for new-comers to mdoc.


57562 28-Feb-2000 shin

Print scope id for scoped addrs.

Approved by: jkh


57521 26-Feb-2000 chris

Spelling: ``adress'' -> ``address''


57520 26-Feb-2000 rwatson

Introduce ``add'' and ``remove'' as alternatives to ``alias'' and ``delete''.
Improve compatibility with BSD/OS, and also more accurately reflect that
IP aliases aren't really any different than the primary IP address on an
interface.

Reviewed by: dcs
Approved by: jkh


57108 10-Feb-2000 shin

Support IPv6 scoped addr in ifconfig and route

IPv6 scoped addr display is not yet supported by ifconfig
and route. Now almost of IPv6 apps support it, so its support
in ifconfig and route is important to keep consisetncy, and
to avoid user confusion.

Approved by: jkh


56407 23-Jan-2000 mpp

Fix various man pages to stop abusing the .Bx macro to generate
the strings "FreeBSD" and "NetBSD". Use the .Fx or .Nx macro
instead.


55215 29-Dec-1999 ru

- do not dereference a null pointer.
- minor sanity.

PR: 15318


54664 16-Dec-1999 billf

Spelling fix (manuall -> manual)

Submitted by: Jeroen C. van Gelderen <jeroen@vangelderen.org>


54662 16-Dec-1999 billf

Spelling correction (adress -> address)


54624 15-Dec-1999 shin

Enable INET6 by default.
This should be OK on non INET6 enabled kernel.


54263 07-Dec-1999 shin

udp IPv6 support, IPv6/IPv4 tunneling support in kernel,
packet divert at kernel for IPv6/IPv4 translater daemon

This includes queue related patch submitted by jburkhol@home.com.

Submitted by: queue related patch from jburkhol@home.com
Reviewed by: freebsd-arch, cvs-committers
Obtained from: KAME project


53505 21-Nov-1999 phk

Add comment about aliases on same subnet.

Submitted by: Martin Blapp <mbr@imp.ch>


51452 20-Sep-1999 msmith

If we don't appear to have a module loaded supporting the interface
we're about to operate on, try to load one. Don't complain if the
load fails, and always press on regardless (there may not be a module
suitable or required).

With the renaming of the PCI ethernet driver modules and the addition
of appropriate miibus dependancies on those modules that need it, it is
now no longer necessary to compile many ethernet drivers into the kernel;
they will be loaded on demand the first time they are ifconfig'ed.

Inspiration from: mount
Reviewed by: obrien


50476 28-Aug-1999 peter

$Id$ -> $FreeBSD$


48027 19-Jun-1999 phk

Move the IFSTATUS stuff after the address listing.


48021 19-Jun-1999 phk

Add a new interface ioctl, to return "aux status".

This is inteded for to allow ifconfig to print various unstructured
information from an interface.

The data is returned from the kernel in ASCII form, see the comment in
if.h for some technicalities.

Canonical cut&paste example to be found in if_tun.c

Initial use:
Now tun* interfaces tell the PID of the process which opened them.

Future uses could be (volounteers welcome!):
Have ppp/slip interfaces tell which tty they use.
Make sync interfaces return their media state: red/yellow/blue
alarm, timeslot assignment and so on.
Make ethernets warn about missing heartbeats and/or cables


47777 06-Jun-1999 phk

Introduce IFF_SMART bit.

This means that the driver will add/delete routes when it knows it is
up/down, rather than have the generic code belive it is up if configured.

This is probably most useful for serial lines, although many PHY chips
could probably tell us if we're connected to the cable/hub as well.


44764 15-Mar-1999 wpaul

Grrr... botched remote commit. Let's try this again: vlan updates,
take two.


38154 07-Aug-1998 phk

unifdef -UISO

Inspired by bdes comment to PR: 7419


37445 06-Jul-1998 bde

ioctl() request args are unsigned longs, so don't attempt to store
them as ints. Among other bugs, doing so at best caused benign
overflow followed by fatal sign extension on machines with 32-bit
ints and 64-bit longs.


37416 06-Jul-1998 charnier

Update man page to allow adding address_family when -l is used (this is a no op
for now). Correct use of .Nm. Short usage string (see man page for full list).
Spelling. Use err(3).


36743 08-Jun-1998 danny

Fix typo: exit -> exist


34691 19-Mar-1998 eivind

Make 'ifconfig -l ether' only list Ethernet interfaces. This is
useful, intuitive, and match the old comments in the source.
Previously, 'ifconfig -l ether' and 'ifconfig -l' were equal.


32968 01-Feb-1998 steve

Spell 'implements' correctly.

PR: 5614
Submitted by: Dag-Erling Coidan Smorgrav <dag-erli@ifi.uio.no>


32570 16-Jan-1998 bde

Removed most unused includes of <net/if_var.h> outside the kernel.


32008 26-Dec-1997 imp

style(9) corrections
Submitted by: bde


31954 24-Dec-1997 imp

Be extra paranoid about trusting the size of the address returned from
gethostbyaddr.
Submitted by: Julian Assange


30757 27-Oct-1997 steve

Fix a misleading comment.

PR: bin/4861
Submitted by: Alex <garbanzo@hooked.net>


30459 16-Oct-1997 peter

Make the supported media info output the default.
The -m switch is now accepted for backwards compatability.

Suggested by: davidg


29882 27-Sep-1997 peter

Spell out a few things for the media options.


25667 10-May-1997 peter

Clean up some more. Move parsing of sysctl iflist data into a single
place rather than updating the main loop's index variables from within
a subroutine and other revolting things like that. Move some more
globals into local variables.


25660 10-May-1997 peter

Grumble.. My last patchup here didn't quite work either. I hate this
program and it's use of global variables. Somehow, I managed to miss the
most obvious case.. "ifconfig ed0 10.0.0.1" failed (no "inet")

Submitted by: dfr


25522 07-May-1997 peter

Restore unintentially lost backwards compat behavior of defaulting to
family inet if not specified. (eg: "ifconfig ed0" down would fail because
no family was specified, even though the up/down status is not per family)

Pointed out by: Wolfgang Helbig <helbig@MX.BA-Stuttgart.De>


25451 04-May-1997 peter

Commit hooks for ifmedia support. It's optional in the Makefile, and
can be trivially disabled.


25450 04-May-1997 peter

Bring in the ifmedia components of NetBSD's ifconfig as a seperate file.

Obtained from: Jason Thorpe via NetBSD


25449 04-May-1997 peter

Second try at cleanups and fixes (without if_media stuff for the moment)
- parse command options using getopt for consistancy
- sanitise the command parsing so that it's less like spaghetti
- implement a "-l" option (idea from NetBSD - just list names)
- attempt to clean up the sysctl parsing loop some more. It still needs
to be taken out the back and shot though.
- cut down on global usage, but there's a lot more scope for this.
- make usage string a bit closer to reality (it was missing lots of things)

Unfortunately, I did this for the second time but with the memory of
the NetBSD version still recently in my mind. It's hard to redo simple
changes or getopt stuff without making it look like what you've been
working with a few hours ago.


25448 04-May-1997 peter

force null commit to skip over rev 1.25 so there's less cvs trouble


25440 03-May-1997 peter

Grab some of the NetBSD text for describing the new options and the
media commands.


22990 22-Feb-1997 peter

Revert $FreeBSD$ to $Id$


21673 14-Jan-1997 jkh

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.


21635 13-Jan-1997 wosch

Sort cross references.


21264 03-Jan-1997 wollman

Update to match changes in <net/if.h>.


20287 10-Dec-1996 wollman

Fix up programs which expect <net/if.h> to include <sys/time.h> to instead
do it themselves. (Some of these programs actually depended on this
beyond compiling the definition of struct ifinfo!) Also fix up some
other #include messes while we're at it.


19914 21-Nov-1996 wollman

Fix lots of non-bug questionable code:

- Don't link against libkvm and don't uselessly include <kvm.h>.
- Declare constant objects as const.
- Declare functions with the correct types.
- Call functions with the correct parameters.

Not fixed:

- The sysctl parsing remains ugly (but it may be the best we can do).
- atnetrange() should use strtoul() rather than sscanf() for better
error checking.


18965 16-Oct-1996 jkh

Bring back NS support for this utility - we need it for the commercial Novell
server software.


18050 05-Sep-1996 bde

Fixed DPADD.


18033 04-Sep-1996 julian

Just realised the man page didn't mention the appletalk specific options
to ifconfig..
so I 've added them..


18032 04-Sep-1996 julian

Get rid of an unexpectedly bogus sanity check under appletalk because
it stopped us from removing or setting loopback address
on lo0:

also make use of the fact the athe sockaddre_at struct now has a "netrange"
field.

CVS ----------------------------------------------------------------------


17254 23-Jul-1996 julian

Submitted by: archie@whistle.com

appletalk cleanups


17171 14-Jul-1996 alex

Grammar fix described by wollman in response to PR 1363.


17022 09-Jul-1996 julian

Submitted by: Archie@whistle.com
Obtained from: Whistle Communications
patches to allow ifconfig to work with appletalk addresses etc.


14092 13-Feb-1996 wollman

XNS sort-of-support is no more.


13940 06-Feb-1996 wollman

Remove support for OSI networking in user-land (#ifdef OSI aor CCITT)
in preparation for its removal from the kernel source tree. NB: because
a function was deleted, libc is now at version 3.0 (was 2.2 previously).


13753 30-Jan-1996 ache

Add missing comma in usage printf


13720 29-Jan-1996 mpp

Fix a bunch of spelling errors.


13345 08-Jan-1996 peter

Yet another "fix" for some of the mistakes in the recent versions..

I discovered that when asking for the IFLIST via sysctl(), if you
specify only AF_INET address, it actually gives you only AF_INET..
(suprise, suprise..!)

Now, it should "do the right thing" in just about all cases... The only
problem, is that "the right thing" isn't exactly clear in all cases.


13329 08-Jan-1996 peter

Fix some of my mistakes, slight cleanup, improve reliability (the old
ifconfig would segfault on "ifconfig ed0 ether up" and the like).

The main reason for this commit was that an "ifconfig -a" would also show
the AF_INET addresses in AF_IPX form (if the kernel was configured for IPX)
due to insufficient AF checking in my "new way" of doing it.


13145 01-Jan-1996 peter

My really ugly hack to ifconfig to make it pick up interface aliases
and the ethernet address for non-root users.

I apologise to the world for propagating the ugliness of some of the code
constructs within ifconfig... Fixing them would just abou mean rewriting
most of the function call interfaces, something I didn't have the stomach
for. :-)


12672 07-Dec-1995 wollman

Use a dynamically-sized buffer for SIOCGIFCONF so that `ifconfig -a'
actually retrieves all the information no matter how many interfaces
there are. (Probably there are other utilities which need similar
modification.)

Submitted by: Andrew Webster <awebster@dataradio.com>


11840 27-Oct-1995 julian

Submitted by: john hay

patches to merge the two IPX packages to work with each other and to
not break make-world :)

IPXrouted should be working now, (or at least compiling) :)


11819 26-Oct-1995 julian

Reviewed by: julian and jhay@mikom.csir.co.za
Submitted by: Mike Mitchell, supervisor@alb.asctmd.com

This is a bulk mport of Mike's IPX/SPX protocol stacks and all the
related gunf that goes with it..
it is not guaranteed to work 100% correctly at this time
but as we had several people trying to work on it
I figured it would be better to get it checked in so
they could all get teh same thing to work on..

Mikes been using it for a year or so
but on 2.0

more changes and stuff will be merged in from other developers now that this is in.

Mike Mitchell, Network Engineer
AMTECH Systems Corporation, Technology and Manufacturing
8600 Jefferson Street, Albuquerque, New Mexico 87113 (505) 856-8000
supervisor@alb.asctmd.com


8871 30-May-1995 rgrimes

Remove trailing whitespace.


8089 26-Apr-1995 pst

Replace call to obsolete inet_addr routine with inet_aton so we can specify
netmasks and broadcast addresses of 255.255.255.255.


7039 12-Mar-1995 wpaul

Impliment -ad and -au flags in addition to -a and document the change
in the man page. ifconfig -au affects all interfaces marked as up,
and ifconfig -ad affects only the interfaces marked down. ifconfig -a
still handles everything. This change is purely for compatibility with
SunOS, for those who might be accustomed to the SunOS ifconfig's
behavior.


5299 30-Dec-1994 jkh

Tweak the man page too.


5298 30-Dec-1994 jkh

From: Wankle Rotary Engine <wpaul@skynet.ctr.columbia.edu>

- The -a flag now works just as it does in SunOS: '-a' is actually
handled like a wildcard for all interfaces. 'ifconfig -a' displays
the status of all interfaces, 'ifconfig -a netmask 0xffffff00' sets
the netmask of all interfaces, and so forth. I don't know if many
people really need to be able to set the netmasks of all interfaces
at once, but the SunOS ifconfig seems to allow this, so there you
have it.

- An 'ether_status' function has been added to display the ethernet
address of all ethernet interfaces. Again, as in SunOS, you must
be root in order for this to work. The ethernet address is read
from /dev/kmem using kvm_open() and kvm_read(), much in the same
was as it's done with netstat. If you choose to install ifconfig
set-gid kmem then normal users will be able to see the ethernet
address as well, though this may not be desireable. This feature
requires a small change to the ifconfig Makefile: you need to link
with -lkvm in order to use the kvm_*() functions.

Submitted by: wpaul


4702 20-Nov-1994 ats

Add parameters "compress", "normal" and "noicmp" for the slip usage.
These names are used in the slip.hosts file as examples, but ifconfig
have formerly only accepted link0, -link0 and link1 for this.


1940 08-Aug-1994 dg

Added support for setting the per-interface MTU.


1855 05-Aug-1994 wollman

Convert to our man installation style. Also fixed long-standing bug
in `fastboot'/`fasthalt' in which the interpreter would hang around
after `reboot' or `halt' is run, causing an irritating ``Killed'' message.


1559 26-May-1994 rgrimes

This commit was generated by cvs2svn to compensate for changes in r1558,
which included commits to RCS files with non-trunk default branches.