4127 Commits

Author SHA1 Message Date
rpaulo
8424d74020 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
2009-07-11 15:02:45 +00:00
jkim
ba5583d318 Get correct maxio from the controller and drop the tunable.
The default (64K) is too pessimistic for "new comm" hardware.
Also, this is bad because multiple controllers get limited by
the global tunable.

Reviewed by:	scottl
Approved by:	re (kensmith)
2009-07-11 08:10:18 +00:00
scottl
e33e5dce32 Separate the parallel scsi knowledge out of the core of the XPT, and
modularize it so that new transports can be created.

Add a transport for SATA

Add a periph+protocol layer for ATA

Add a driver for AHCI-compliant hardware.

Add a maxio field to CAM so that drivers can advertise their max
I/O capability.  Modify various drivers so that they are insulated
from the value of MAXPHYS.

The new ATA/SATA code supports AHCI-compliant hardware, and will override
the classic ATA driver if it is loaded as a module at boot time or compiled
into the kernel.  The stack now support NCQ (tagged queueing) for increased
performance on modern SATA drives.  It also supports port multipliers.

ATA drives are accessed via 'ada' device nodes.  ATAPI drives are
accessed via 'cd' device nodes.  They can all be enumerated and manipulated
via camcontrol, just like SCSI drives.  SCSI commands are not translated to
their ATA equivalents; ATA native commands are used throughout the entire
stack, including camcontrol.  See the camcontrol manpage for further
details.  Testing this code may require that you update your fstab, and
possibly modify your BIOS to enable AHCI functionality, if available.

This code is very experimental at the moment.  The userland ABI/API has
changed, so applications will need to be recompiled.  It may change
further in the near future.  The 'ada' device name may also change as
more infrastructure is completed in this project.  The goal is to
eventually put all CAM busses and devices until newbus, allowing for
interesting topology and management options.

Few functional changes will be seen with existing SCSI/SAS/FC drivers,
though the userland ABI has still changed.  In the future, transports
specific modules for SAS and FC may appear in order to better support
the topologies and capabilities of these technologies.

The modularization of CAM and the addition of the ATA/SATA modules is
meant to break CAM out of the mold of being specific to SCSI, letting it
grow to be a framework for arbitrary transports and protocols.  It also
allows drivers to be written to support discrete hardware without
jeopardizing the stability of non-related hardware.  While only an AHCI
driver is provided now, a Silicon Image driver is also in the works.
Drivers for ICH1-4, ICH5-6, PIIX, classic IDE, and any other hardware
is possible and encouraged.  Help with new transports is also encouraged.

Submitted by:	scottl, mav
Approved by:	re
2009-07-10 08:18:08 +00:00
joel
a0e34d5479 Adjust the description of hw.snd.feeder_rate_polyphase_max and
hw.snd.compat_linux_mmap a bit.

Submitted by:	ariff
Approved by:	re (blanket)
2009-07-09 16:59:29 +00:00
joel
42e7fca302 Fix two typos and sort sysctls.
PR:		docs/136408
Approved by:	re (blanket)
2009-07-07 13:58:47 +00:00
joel
0f4464a413 Document the new EQ and VPC features along with a few loader tunables.
Reviewed by:	ariff
Approved by:	re (blanket)
2009-07-06 19:32:13 +00:00
rpaulo
ea30121075 acpi_hp.c:
- sysctl dev.acpi_hp.0.verbose to toggle debug output
- A modification so this can deal with different array lengths
  when reading the CMI BIOS - now it works ok on HP Compaq nx7300
  as well.
- Change behaviour to query only max_instance-1 CMI BIOS instances,
  because all HPs seen so far are broken in that respect
  (or there is a fundamental misunderstanding on my side, possible
  as well). This way a disturbing ACPI Error Field exceeds Buffer
  message is avoided.
- New bit to set on dev.acpi_hp.0.cmi_detail (0x8) to
  also query the highest guid instance of CMI bios

acpi_hp.4:
- Document dev.acpi_hp.0.verbose sysctl in man page
- Document new bit for dev.acpi_hp.0.cmi_detail
- Add a section to manpage about hardware that has been reported
  to work ok

Submitted by:	Michael Gmelin <freebsdusb at bindone.de>
Approved by:	re (kib)
MFC after:	2 weeks
2009-07-03 21:12:37 +00:00
stas
9a7ae64d55 - Add support to atomically set/clear individual bits of a MSR register
via cpuctl(4) driver.  Two new CPUCTL_MSRSBIT and CPUCTL_MSRCBIT ioctl(2)
  calls treat the data field of the argument struct passed as a mask
  and set/clear bits of the MSR register according to the mask value.
- Allow user to perform atomic bitwise AND and OR operaions on MSR registers
  via cpucontrol(8) utility.  Two new operations ("&=" and "|=") have been
  added.  The first one applies bitwise AND operaion between the current
  contents of the MSR register and the mask, and the second performs bitwise
  OR.  The argument can be optionally prefixed with "~" inversion operator.
  This allows one to mimic the "clear bit" behavior by using the command
  like this:
      cpucontrol -m 0x10&=~0x02		# clear the second bit of TSC MSR

  Inversion operator support in all modes (assignment, OR, AND).

Approved by:	re (kib)
MFC after:	1 month
2009-06-30 12:35:47 +00:00
rpaulo
905d9397a0 acpi_wmi_if:
- Document different semantics for ACPI_WMI_PROVIDES_GUID_STRING_METHOD

acpi_wmi.c:
- Modify acpi_wmi_provides_guid_string_method to return absolut number of
  instances known for the given GUID.

acpi_hp.c:
- sysctl dev.acpi_hp.0.verbose to toggle debug output
- A modification so this can deal with different array lengths
  when reading the CMI BIOS - now it works ok on HP Compaq nx7300
  as well.
- Change behaviour to query only max_instance-1 CMI BIOS instances,
  because all HPs seen so far are broken in that respect
  (or there is a fundamental misunderstanding on my side, possible
  as well). This way a disturbing ACPI Error Field exceeds Buffer
  message is avoided.
- New bit to set on dev.acpi_hp.0.cmi_detail (0x8) to
  also query the highest guid instance of CMI bios

acpi_hp.4:
- Document dev.acpi_hp.0.verbose sysctl in man page
- Document new bit for dev.acpi_hp.0.cmi_detail
- Add a section to manpage about hardware that has been reported
  to work ok

Submitted by:	Michael Gmelin, freebsdusb at bindone.de
Approved by:	re (kib)
MFC after:	2 weeks
2009-06-30 09:51:41 +00:00
thompsa
5f0950b122 Rename man4/if_bridge.4 to man4/bridge.4 in order to be consistent with other
peueso interfaces. The .Nm name hasnt been changed and all xrefs are still
valid.
2009-06-25 17:24:36 +00:00
bz
e1dc108b61 Merge from p4: CH154790,154793,154874
Import if_epair(4), a virtual cross-over Ethernet-like interface pair.

Note these files are 1:1 from p4 and not yet connected to the build
not knowing about the new netisr interface.

Sponsored by:	The FreeBSD Foundation
2009-06-24 22:21:30 +00:00
mav
ab41608038 Document new hint.atapci.X.msi and hint.ata.X.pm_level tunables. 2009-06-24 19:25:47 +00:00
thompsa
5910fa6cfc Move programming info from usb(4) to usbdi(9) and update for the usb stack
changeover. Needs much more content still.
2009-06-24 17:01:17 +00:00
joel
f46a6593e2 Add one more reference to SEE ALSO. Sort while here.
Submitted by:	ariff
2009-06-23 21:37:12 +00:00
joel
351cb69f95 Bring in a few mdoc/language fixes.
Submitted by:	ru
2009-06-23 21:24:21 +00:00
marius
ecb123b942 - Update regarding the support for SBus GEM added in r194763.
- Improve the description a bit and add a reference to vlan(4).
2009-06-23 20:38:35 +00:00
rpaulo
9cc7a03cb6 Fix double path issue and other nits.
MFC after:	2 weeks
2009-06-23 14:57:06 +00:00
rpaulo
792757454a * Driver for ACPI WMI (Windows Management Instrumentation)
* Driver for ACPI HP extra functionations, which required
  ACPI WMI driver.

Submitted by:	Michael <freebsdusb at bindone.de>
Approved by:	re
MFC after:	2 weeks
2009-06-23 13:17:25 +00:00
joel
924f7f4b8c Start documenting some of the new sound stuff. More is on the way.
Probably also needs some more mdoc love.

Reviewed by:	ariff
2009-06-22 21:51:29 +00:00
ed
ed4bbcb2e7 Improve sentence and add reference to openpty(3). Add missing newlines. 2009-06-20 16:30:32 +00:00
marius
544830c8f1 Add a man page for cas(4) and reference it as appropriate.
Approved by:	re (kib)
MFC after:	2 weeks
2009-06-15 18:24:04 +00:00
marius
2146cf6028 Improve the description a bit and add a reference to vlan(4). 2009-06-14 14:46:20 +00:00
sam
34a2b41537 Marvell 88W8363 driver and associated firmware 2009-06-10 03:35:40 +00:00
sam
6404353851 iwn does not require a license ack 2009-06-10 03:28:34 +00:00
yongari
b801626916 Add alc(4) man page and hook up ale(4) to the build.
Also add Xr to appropriate man pages.
2009-06-10 02:19:54 +00:00
oleg
e1eaf0348e Sync struct ng_ipfw_tag description with sources.
Submitted by:	Mikolaj Golub
2009-06-09 21:35:32 +00:00
jkim
e9424001d9 Reflect debug level changes from the recent ACPICA import. 2009-06-08 21:48:13 +00:00
hrs
9bf362d0cc 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
2009-06-07 23:00:40 +00:00
sam
eca850df9b lack of power save violates 802.11 and is a bug, not a "caveat" 2009-06-05 17:44:43 +00:00
sam
805d7a8a45 note lack of power save support in ap mode
Submitted by:	"Paul B. Mahol" <onemda@gmail.com>
2009-06-05 17:26:15 +00:00
yongari
6ae620b4f5 Add 88E8071, 88E8072 to the supported hardware list. While I'm here
correct description of 88E8070. It's Yukon Extreme and have gigabit
PHY.
2009-06-02 05:13:02 +00:00
joel
e71d9d7bc1 - Remove obsolete and confusing comment about renaming "sound" to "snd".
We will look at renaming stuff for 9.0, but it's far from certain that we
   will do it this way.
-  Sort sysctl's alphabetically.  I'll add a bunch of new sysctl's once
   ariff's next mega-patch goes in, and having everything sorted makes my
   job easier.
2009-06-01 18:58:46 +00:00
pjd
3683dec373 Document IP_BINDANY IP socket option.
Reviewed by:	brueffer
2009-06-01 10:30:52 +00:00
jmallett
c3fcf42d7a o) Remove some references to long-unsupported old-style config(8) directives.
o) Borrow da(4) language about autoconfiguration for ch(4).
2009-06-01 06:52:03 +00:00
rwatson
378ab0baa1 Upgrade audit(4) from experimental to production status for FreeBSD 8.0.
While there remain some incomplete aspects of the implementation (such
as incomplete auditing of some system calls), the implementation has
been burned in for a few years, as well as in GENERIC for a few years.

Obtained from:	TrustedBSD Project
2009-05-31 09:03:14 +00:00
bms
f73e96a405 Merge final round of MLD changes from p4:
ip6_input.c, in6.h:
 * Add netinet6-specific mbuf flag M_RTALERT_MLD, shadowing M_PROTO6.
  * Always set this flag if HBH Router Alert option is present for MLD,
    even when not forwarding.

 icmp6.c:
 * In icmp6_input(), spell m->m_pkthdr.rcvif as ifp to be consistent.
 * Use scope ID for verifying input. Do not apply SSM filters here, no inpcb.
  * Check for M_RTALERT_MLD when validating MLD traffic, as we can't see
    IPv6 hop options outside of ip6_input().

 in6_mcast.c:
 * Use KAME scope/zone ID in in6_multi.
   * Update net.inet6.ip6.mcast.filters implementation to use scope IDs
     for comparisons.
 * Fix scope ID treatment in multicast socket option processing.
   Scope IDs passed in from userland will be ignored as other less
   ambiguous APIs exist for specifying the link.
 * Tighten userland input checks in IPv6 SSM delta and full-state ops.
   * Source filter embedded scope IDs need to be revisited, for now
     just clear them and ignore them on input.
 * Adapt KAME behaviour of looking up the scope ID in the default zone
   for multicast leaves, when the interface is ambiguous.

 mld6.c:
 * Tighten origin checks on MLD traffic as per RFC3810 Section 6.2:
  * ip6_src MAY be the unspecified address for MLDv1 reports.
  * ip6_src MAY have link-local address scope for MLDv1 reports,
    MLDv1 queries, and MLDv2 queries.
  * Perform address field validation *before* accepting queries.
 * Use KAME scope/zone ID in query/report processing.
   * Break const correctness for mld_v1_input_report(), mld_v1_input_query()
     as we temporarily modify the input mbuf chain.
   * Clear the scope ID before handoff to userland MLD daemon.
 * Fix MLDv1 old querier present timer processing.
   With the protocol defaults, hosts should revert to MLDv2 after 260s.
 * Add net.inet6.mld.v1enable sysctl, default to on.

 ifmcstat.c:
 * Use sysctl by default; -K requests kvm(3) if so compiled.

 mld.4:
 * Connect man page to build.

Tested using PCS.
2009-05-27 18:57:13 +00:00
bms
23f9b7a952 Add mld(4) man page. 2009-05-27 16:30:33 +00:00
sson
527dd57555 Add the ksyms(4) pseudo driver. The ksyms driver allows a process to
get a quick snapshot of the kernel's symbol table including the symbols
from any loaded modules (the symbols are all merged into one symbol
table).  Unlike like other implementations, this ksyms driver maps
memory in the process memory space to store the snapshot at the time
/dev/ksyms is opened.  It also checks to see if the process has already
a snapshot open and won't allow it to open /dev/ksyms it again until it
closes first.  This prevents kernel and process memory from being
exhausted.  Note that /dev/ksyms is used by the lockstat(1) command.

Reviewed by:	gallatin kib (freebsd-arch)
Approved by:	gnn (mentor)
2009-05-26 21:39:09 +00:00
yongari
48a3a6e4a0 Correct controller description for 88E8035, 88E8036, 88E8038 and
88E8039. These are fast ethernet controllers.
2009-05-25 08:27:52 +00:00
yongari
d813fd7664 msk(4) now supports Yukon FE+. Specifically 88E8040, 88E8040T,
88E8048 and 88E8070 are supported.
Bump .Dd
2009-05-25 08:11:03 +00:00
bz
9642ff6e28 Add sysctls to toggle the behaviour of the (former) IPSEC_FILTERTUNNEL
kernel option.
This also permits tuning of the option per virtual network stack, as
well as separately per inet, inet6.

The kernel option is left for a transition period, marked deprecated,
and will be removed soon.

Initially requested by:	phk (1 year 1 day ago)
MFC after:		4 weeks
2009-05-23 16:42:38 +00:00
thompsa
6cd12e776b Update usb(4) to match reality, remove section on permissions.
Delete usb2_core.4.

Submitted by:	Hans Petter Selasky
2009-05-21 17:26:20 +00:00
yongari
ebe6d252ef Add nge(4) to the list of drivers supporting ALTQ. 2009-05-21 02:47:46 +00:00
yongari
f4456a5293 nge(4) supports altq(4). Xr altq 2009-05-21 02:44:32 +00:00
yongari
7553aa62fe DP83821 also supports jumbo frames. 2009-05-21 02:42:15 +00:00
yongari
80978fdd27 Document sysctl variable dev.nge.%d.int_holdoff. 2009-05-21 02:39:47 +00:00
joel
ced59a6c96 Add Dell PowerEdge R200 and R300 to the hardware section. 2009-05-19 17:17:53 +00:00
sam
4e93a31511 AH_SUPPORT_TDMA is gone; ath now honors IEEE80211_SUPPORT_TDMA
Noticed by:	Jon Loeliger <jdl@jdl.com>
2009-05-19 14:51:48 +00:00
trasz
678fe0aa03 Add links to libgeom(3) where appropriate. 2009-05-19 12:10:48 +00:00
brueffer
87f3af3d09 Remove license clauses 3 and 4 as per rev. 1.2 from NetBSD.
Also, FreeBSD 8.0 will be the first release including this driver. (1)

PR:		134093 (1)
Submitted by:	gavin
2009-05-18 11:23:15 +00:00