dragonfly.git
17 years agoImport of the port of the new(er) FreeBSD atacontrol(8), as natacontrol(8).
Thomas E. Spanjaard [Tue, 5 Dec 2006 21:32:21 +0000 (21:32 +0000)]
Import of the port of the new(er) FreeBSD atacontrol(8), as natacontrol(8).
It has not yet been hooked into the build, though it does build.

17 years agoOur cam_sim_free() does not have a flag to signify it should free the devq.
Thomas E. Spanjaard [Tue, 5 Dec 2006 19:40:43 +0000 (19:40 +0000)]
Our cam_sim_free() does not have a flag to signify it should free the devq.
We can probably get away with it like this.

Also, make sure opt_scsi.h is generated for individual kmod builds. The CAM
header files need it.

17 years agoAdd more kmods to the Makefile after testing.
Thomas E. Spanjaard [Tue, 5 Dec 2006 19:30:14 +0000 (19:30 +0000)]
Add more kmods to the Makefile after testing.

17 years agoUse IODATA as pcmcia vendor id for the IO-Data CBIDE2. Actually, it should
Thomas E. Spanjaard [Tue, 5 Dec 2006 19:28:14 +0000 (19:28 +0000)]
Use IODATA as pcmcia vendor id for the IO-Data CBIDE2. Actually, it should
be -1, because it is really identified by CIS data. This requires (at least)
a sync of our pccarddevs with Free-/NetBSD, because this vendor id actually
belongs to another company.

Also call pccard_get_function_number() instead of pccard_get_function() with
error recording, as we don't have that, and this works.

17 years agoFix a NULL pointer dereference introduced in the previous commit.
Matthew Dillon [Tue, 5 Dec 2006 19:07:18 +0000 (19:07 +0000)]
Fix a NULL pointer dereference introduced in the previous commit.

Reported-by: Emiel Kollof <coolvibe@hackerheaven.org>
Submitted-by: "Thomas E. Spanjaard" <tgen@netphreax.net>, "Simon 'corecode' Schubert" <corecode@fs.ei.tum.de>
17 years agoGenerate forwarding header files to mimic /usr/include -> /usr/include/sys
Matthew Dillon [Tue, 5 Dec 2006 17:53:09 +0000 (17:53 +0000)]
Generate forwarding header files to mimic /usr/include -> /usr/include/sys
linkages for the benefit of virtual kernel builds and virtual kernel driver
builds.  Certain header files, such as <fcntl.h>, have to be generated this
way to allow virtual kernel and virtual kernel driver source files to do
standard #include's.

17 years agoAdd a generic interrupt controller type that the virtual kernel build can use.
Matthew Dillon [Tue, 5 Dec 2006 17:06:15 +0000 (17:06 +0000)]
Add a generic interrupt controller type that the virtual kernel build can use.

17 years agoOrder ${_MACHINE_FWD}/include/machine and ${_FWDHDRS} so that intermittent
Sepherosa Ziehau [Tue, 5 Dec 2006 11:02:19 +0000 (11:02 +0000)]
Order ${_MACHINE_FWD}/include/machine and ${_FWDHDRS} so that intermittent
error messages bugging me during 'make -j N buildkernel' go away.

Rolution-from: y0netan1@

17 years agoClean up code.
Jeffrey Hsu [Tue, 5 Dec 2006 08:09:10 +0000 (08:09 +0000)]
Clean up code.

17 years agoMisc vkernel work.
Matthew Dillon [Mon, 4 Dec 2006 18:04:05 +0000 (18:04 +0000)]
Misc vkernel work.

17 years agoMake int bootverbose and int cold declarations machine independant.
Matthew Dillon [Mon, 4 Dec 2006 18:03:28 +0000 (18:03 +0000)]
Make int bootverbose and int cold declarations machine independant.

17 years agoNow that the objcache supports M_ZERO for objcache_get() in the case of
Thomas E. Spanjaard [Mon, 4 Dec 2006 15:15:54 +0000 (15:15 +0000)]
Now that the objcache supports M_ZERO for objcache_get() in the case of
simple object caches, use it.

17 years agoInitial import of the port of the new(er) FreeBSD ATA code.
Thomas E. Spanjaard [Mon, 4 Dec 2006 14:40:37 +0000 (14:40 +0000)]
Initial import of the port of the new(er) FreeBSD ATA code.

Note this code has not yet been hooked into the build as such, unless you (unwisely) specify the devices in your kernel config according to sys/conf/files. The modules are also excluded from the module build due to not having a SUBDIR entry in sys/dev/disk/Makefile. The PCI code isn't yet operation pending a patch for sys/bus/pci/pci.c I will send to kernel@ shortly. It short-circuits lazy resource allocation for PCI ATA controllers in legacy mode (i.e. on legacy ISA ATA addresses, which are not configured in the PCI BARs).

The userland utility used to control nata ('natacontrol') and documentation will follow later. Also, be aware only nata, natapci, natadisk and natapicd have seen testing on real hardware so far. nataraid, natausb and natacam are probably not compilable yet, I need to clean those up.

17 years agoHello, world!
Thomas E. Spanjaard [Sun, 3 Dec 2006 21:46:17 +0000 (21:46 +0000)]
Hello, world!

17 years agoQuick-fix some mdoc errors.
Sascha Wildner [Sun, 3 Dec 2006 21:15:27 +0000 (21:15 +0000)]
Quick-fix some mdoc errors.

I'll do a more thorough run over it within the next few days.

17 years agoMove the committer manpage (outlining the rules for committers) from man8
Sascha Wildner [Sun, 3 Dec 2006 21:04:23 +0000 (21:04 +0000)]
Move the committer manpage (outlining the rules for committers) from man8
to man7.

17 years agoAdd a manual page outlining the rules for committers.
Matthew Dillon [Sun, 3 Dec 2006 20:28:07 +0000 (20:28 +0000)]
Add a manual page outlining the rules for committers.

17 years agoCheck an additional special pattern to detect dangerously dedicated mode.
Matthew Dillon [Sun, 3 Dec 2006 04:52:25 +0000 (04:52 +0000)]
Check an additional special pattern to detect dangerously dedicated mode.

Submitted-by: "Thomas E. Spanjaard" <tgen@netphreax.net>
17 years agoApply FreeBSD rev 1.17:
Jeffrey Hsu [Sun, 3 Dec 2006 03:16:24 +0000 (03:16 +0000)]
Apply FreeBSD rev 1.17:
  date: 2004-09-25 19:01:27 -0700;  author: sam;  state: Exp;  lines: +0 -5;
  Correct handling of SADB_UPDATE and SADB_ADD requests.  key_align may split
  the mbuf due to use of m_pulldown.  Discarding the result because of this
  does not make sense as no subsequent code depends on the entire msg being
  linearized (only the individual pieces).  It's likely something else is wrong
  here but for now this appears to get things back to a working state.

  Submitted by:   Roselyn Lee

17 years agoApply FreeBSD rev 1.6:
Jeffrey Hsu [Sun, 3 Dec 2006 02:52:44 +0000 (02:52 +0000)]
Apply FreeBSD rev 1.6:
  date: 2003-06-29 16:58:38 -0700;  author: sam;  state: Exp;  lines: +13 -2;
  plug xform memory leaks:

  o add missing zeroize op when deleting an SA
  o don't re-initialize an xform for an SA that already has one

  Submitted by:   Doug Ambrisko <ambrisko@verniernetworks.com>

17 years agoApply FreeBSD rev 1.16:
Jeffrey Hsu [Sun, 3 Dec 2006 02:47:53 +0000 (02:47 +0000)]
Apply FreeBSD rev 1.16:
  date: 2004-06-22 10:17:44 -0700;  author: bms;  state: Exp;  lines: +2 -2;
  Fix a paste-o in key_cmpspidx_withmask().

  PR:             misc/67013
  Submitted by:   Zhenmin <zli4@cs.uiuc.edu>

17 years agoApply FreeBSD rev 1.15:
Jeffrey Hsu [Sun, 3 Dec 2006 02:45:42 +0000 (02:45 +0000)]
Apply FreeBSD rev 1.15:
  date: 2004-05-02 22:15:53 -0700;  author: sam;  state: Exp;  lines: +2 -2;
  use correct address for SADB_EXT_ADDRESS_DST in key_do_allocsa_policy
  (was using src instead of dst)

  Submitted by:   Bjoern A. Zeeb
  Obtained from:  KAME

17 years agoApply FreeBSD rev 1.9:
Jeffrey Hsu [Sun, 3 Dec 2006 02:29:02 +0000 (02:29 +0000)]
Apply FreeBSD rev 1.9:
  date: 2004-02-05 15:19:17 -0800;  author: sam;  state: Exp;  lines: +7 -1;
  must convert protocol to sa type when preparing a DELETE message

  Submitted by:   Roselyn Lee <rosel@verniernetworks.com>

17 years agoReplace the global VM page hash table with a per-VM-object RB tree. No
Matthew Dillon [Sat, 2 Dec 2006 23:13:46 +0000 (23:13 +0000)]
Replace the global VM page hash table with a per-VM-object RB tree.  No
performance degradation was observed (probably due to locality of reference
in the RB tree improving cache characteristics for searches).  This also
significantly reduces the kernel memory footprint (no global VM page hash
table) and reduces the size of the vm_page structure.  Future MP work
should benefit from this change.

Prior work in the VM tree guarenteed that VM pages only existed in the hash
table while also associated with a VM object, this commit uses that guarentee
to make the VM page lookup structures VM-object-centric.

17 years agoAllow M_ZERO to be specified when using simple object cache setups which
Matthew Dillon [Sat, 2 Dec 2006 22:17:22 +0000 (22:17 +0000)]
Allow M_ZERO to be specified when using simple object cache setups which
do not have a ctor or dtor function.  Panic the system if M_ZERO is used
with more complex object setups.

Suggested-by: Thomas E. Spanjaard
17 years agoIn rtw_pci_shutdown(), hold serializer before calling rtw_stop()
Sepherosa Ziehau [Fri, 1 Dec 2006 07:52:30 +0000 (07:52 +0000)]
In rtw_pci_shutdown(), hold serializer before calling rtw_stop()

17 years ago- Enable PBCC based rate 22Mbit/s
Sepherosa Ziehau [Fri, 1 Dec 2006 07:37:18 +0000 (07:37 +0000)]
- Enable PBCC based rate 22Mbit/s
- Finish incomplete acx_watchdog()
- Add acx_media_change(), which re-initialize NIC and returns 0 if
  ieee80211_media_change() returns ENETRESET.  Use acx_media_change()
  as change_callback for ifmedia instead of ieee80211_media_change().
  This unbreaks 'ifconfig acx0 list sta' in HOSTAP operation mode.
- Nuke no longer needed debug messages

17 years agoAdd PBCC modulation support in netproto/802_11:
Sepherosa Ziehau [Fri, 1 Dec 2006 04:42:53 +0000 (04:42 +0000)]
Add PBCC modulation support in netproto/802_11:
- Since ieee80211com.ic_caps is already crowded, add ieee80211com.ic_caps_ext
  to extend it.  Currently only IEEE80211_CEXT_PBCC, which should be set by
  the drivers capable of PBCC modulation, is defined for this field.
- Adapt SIOCG80211:IEEE80211_IOC_DRIVER_CAPS ioctl handling to expose the
  content of ieee80211com.ic_caps_ext.  Old semantic of this ioctl is not
  changed, given ieee80211req is zeroed out before the ioctl call.
- Add debug information about peer node's rate set (after negociation)
- Set PBCC bit in Capability ie base on the value of
  (ieee80211com.ic_caps_ext & IEEE80211_CEXT_PBCC).  This is only done for 2GHz
  channels.
- Teach ifconfig(8) to print ieee80211.ic_caps_ext upon "list caps" command.

17 years agoProperly set ifmedia_entry.ifm_data when nge(4) tries to camouflage an
Sepherosa Ziehau [Thu, 30 Nov 2006 01:38:54 +0000 (01:38 +0000)]
Properly set ifmedia_entry.ifm_data when nge(4) tries to camouflage an
isolation media entry, and restore it once media isolation is done.

Reported-by: Steve O'Hara-Smith <steve@sohara.org>
Tested-by: Steve O'Hara-Smith <steve@sohara.org>
Reviewed-by: dillon@
17 years agoDon't use unprocessed (e.g. negociated) peer node's rate set to fill
Sepherosa Ziehau [Wed, 29 Nov 2006 15:12:10 +0000 (15:12 +0000)]
Don't use unprocessed (e.g. negociated) peer node's rate set to fill
Supported rates ie of Association Request, instead, use own supported
rate set (i.e. ieee80211com.ic_sup_rates).

In the orginal way, following senario is broken:
- STA is 11b
- AP is 11g
STA will send out sorted AP's rate set in Association Request.  Obviously
STA will not be able to receive at any data rates > 11Mbit/s.  So this
breaks IEEE Std 802.11b subclause 10.3.3.1.2:
"... The STA must be able to receive at each of the data rates listed
 in the set. ...".

17 years agoAccording to IEEE Std 802.11b-1999 subclause 7.3.1.4:
Sepherosa Ziehau [Tue, 28 Nov 2006 15:17:36 +0000 (15:17 +0000)]
According to IEEE Std 802.11b-1999 subclause 7.3.1.4:
"... STAs shall set the Short Preamble subfield to 1 in transmitted
 Association Request and Reassociation Request MMPDUs when the MIB
 attribute dot11ShortPreambleOptionImplemented is true. ..."

For us, 'dot11ShortPreambleOptionImplemented' is
(ieee80211com.ic_caps & IEEE80211_C_SHPREAMBLE)

17 years agoM_NOWAIT -> MB_DONTWAIT
Sepherosa Ziehau [Tue, 28 Nov 2006 14:44:03 +0000 (14:44 +0000)]
M_NOWAIT -> MB_DONTWAIT

17 years agoSync zoneinfo database with tzdata2006p from elsie.
Sascha Wildner [Mon, 27 Nov 2006 14:22:26 +0000 (14:22 +0000)]
Sync zoneinfo database with tzdata2006p from elsie.

australasia:    8.3 -> 8.4
zone.tab:       8.5 -> 8.6

From Paul Eggert's comments:

Changes that affect near-future time stamps:

  * Western Australia starts DST on December 3.  (Thanks to
    Jesper Norgaard Welen for the initial warning, and to Christopher Hunt
    for letting us know it was official.)

    This patch migrates the WA DST idiosyncracies into Rule lines,
    where they probably belonged anyway.  I realize the official
    legislation specifies dates rather than "Mar lastSun", but we
    commonly reverse-engineer the underlying rules in other situations
    and might as well do so consistently here.

Changes affecting location data only:

  * The coordinates for Jersey and Podgorica were off.
    (Thanks to Andy McDonald for noting this.)

17 years agoWrong #undef
Sepherosa Ziehau [Mon, 27 Nov 2006 13:56:30 +0000 (13:56 +0000)]
Wrong #undef

17 years agoThe Problem [1]:
Sepherosa Ziehau [Mon, 27 Nov 2006 13:05:15 +0000 (13:05 +0000)]
The Problem [1]:
In em_process_receive_interrupts(), if em_get_buf() fails, which
may be a common case since it calls m_getcl() with MB_DONTWAIT,
then the rest of the RX ring are _not_ processed at all.  The RX
ring may contain many, or even worse is full of, ready RX descriptors.
RDT will not be updated too, in this case.  So hardware will take
this situation as there is _no_ free space in RX ring, and this
probably leads to following catastrophe:
too many RX engine overruns -> RX engine stalls -> interrupts stall [2]

The Fix:
If em_get_buf() fails then
- The current RX descriptor still will be reaped, but the frame,
  which belongs to the current RX descriptor, is not delivered to
  the upper layer.
- RX ring processing keeps going as if there is no failure happens.

Thank dillon@ to help diagnose the problem and give various hints [3]

Thank Mike Tancsa <mike@sentex.net> to provide enough information
to locate the problem.

Reviewed-by: dillon@
Reported-by: Mike Tancsa <mike@sentex.net>
Tested-by: Mike Tancsa <mike@sentex.net> (82571EB copper dual port)
           me (82540EM)

#
# [1] This problem unveiled itself when Mike tried to bench packet
#     forwarding performance.  The information he had provided that
#     is critical to locate the problem is:
#     1) Both polling(4) and normal mode (interrupt based) do not work.
#        This means that interrupt processing possibly not the root of
#        the problem (pointed out by dillon@)
#     2) One line in the output of sysctl hw.em0.debug_info=1:
#        ...
#        em0: Std mbuf cluster failed = 2
#        ...
#        This statistics is the value of adapter->mbuf_cluster_failed,
#        which is updated only when m_getcl() in em_get_buf() fails
#
# [2] This is just a guess from the output of 'vmstat -i' provided by Mike
#     Before his benching:
#     interrupt                   total       rate
#     ...
#     em0                            28          0
#     ...
#     After his benching (i.e. em0 choked):
#     interrupt                   total       rate
#     ...
#     em0                            62          0
#     ...
#     See, only 34 interrupts came o_O
#
# [3] There is still prossibility that RX engine gets confused by
#     the driver.  It is described by dillon@:
#     (I didn't find the URL in the archive, so it is pasted here)
#     "...
#      Clearly when that case occurs ALL the receive frames will be full.
#      Lets look at a degenerate case:
#
#      [0 ...................... N-1]
#      * RDH set to 0
#      * RDT set to N-1
#      * N frames come in  RDH is set to N-1 (??)
#      * We process N frames
#      * The frame at RING[N-1] is cleaned up
#      * i = N
#      * We set RDT to i-1 == N-1.  It's the same value it was set to before
#        we processed all N frames.  The receive engine will think that the
#        ring is still full when it is empty.
#
#      I Think what we need to do here is set RDT to N-2 (mod N of course) in
#      the case where we have processed ALL N frames.  I'll bet the firmware
#      is getting confused in the overrun case because we are setting RDT to
#      the same value it was set at before.
#      ..."
#

17 years agoA u_short cannot be greater than 0xffff, so remove those checks.
Peter Avalos [Sun, 26 Nov 2006 19:12:25 +0000 (19:12 +0000)]
A u_short cannot be greater than 0xffff, so remove those checks.

17 years agoUse LIST_FOREACH()
Sepherosa Ziehau [Sun, 26 Nov 2006 07:30:06 +0000 (07:30 +0000)]
Use LIST_FOREACH()

Submitted-by: Gary Stanley <gary@velocity-servers.net>
Obtained-from: OpenBSD

17 years ago- Factor out front part of ieee80211_set_shortpreamble() into
Sepherosa Ziehau [Sun, 26 Nov 2006 02:12:34 +0000 (02:12 +0000)]
- Factor out front part of ieee80211_set_shortpreamble() into
  ieee80211_update_shpreamble().  So that the former only turns
  on/off short preamble and informs driver about the changes,
  while the latter makes the decision whether short preamble
  should be turned on or off.
- Replace rest of the places where short preamble is turned on/off
  manually with ieee80211_set_shortpreamble()
- For associated STAs, update short preamble state only when related
  fields of ERP information or capability information in received
  beacons are changed

17 years agoAdd an error if the patch file doesn't actually exist.
Peter Avalos [Sat, 25 Nov 2006 17:23:21 +0000 (17:23 +0000)]
Add an error if the patch file doesn't actually exist.

Dragonfly-bug: <http://bugs.dragonflybsd.org/issue343>
Submitted-by: y0netan1
17 years agoAdd the directory created by the comma syntax to CLEANDIRS.
Peter Avalos [Sat, 25 Nov 2006 15:46:03 +0000 (15:46 +0000)]
Add the directory created by the comma syntax to CLEANDIRS.

Dragonfly-bug: <http://bugs.dragonflybsd.org/issue384>
Submitted-by: corecode

17 years agoCorrect short preamble support.
Sepherosa Ziehau [Sat, 25 Nov 2006 13:11:30 +0000 (13:11 +0000)]
Correct short preamble support.

Problems:
- The assumption that "Short Preamble" field in "Capability information"
  will not be changed, is not correct at least for a *BSD based HostAP
- "Barker Preamble mode" in "EPR information" is ignored

Fixes:
- Add a new function ieee80211_set_shortpreamble() (named after its relative
  ieee80211_set_shortslot()):
  1) For 11a mode, always turn on short preamble, though it is not used under
     11a mode
  2) For 11g mode (ERP), turn on short preamble iff all of the following
     conditions are met:
     o  "Short Preamble" field in "Capability information" is 1
     o  "Barker Preamble mode" in "ERP information" is 0 [*]
     o  ieee80211.ic_caps has IEEE80211_C_PREAMBLE set
  3) For the reset of the mode (11b?), turn on short preamble iff all of the
     following conditions are met:
     o  "Short Preamble" field in "Capability information" is 1
     o  ieee80211.ic_caps has IEEE80211_C_PREAMBLE set
- Add ieee80211com.ic_upadate_preamble.  This field could be set by drivers
  which want to be informed about the preamble changes

#
# [*]
# IEEE Std 802.11g-2003 subclause 7.3.2.13 page 10:
# ...
# ...
# ERP APs and ERP STAs shall use long preambles when transmitting Clause 15,
# Clause 18, and Clause 19 frames after transmission or reception of an ERP
# Information Element with a Barker_Preamble_Mode value of 1 in an MMPDU to
# or from the BSS that the ERP AP or ERP STA has joined or started, regardless
# of the value of the short preamble capability bit from the same received or
# transmitted MMPDU that contained the ERP Information Element ...
# ...
# ...
#

17 years agoMove conditional preprocessing out from the IEEE80211_DPRINTF macro
Sepherosa Ziehau [Sat, 25 Nov 2006 08:56:29 +0000 (08:56 +0000)]
Move conditional preprocessing out from the IEEE80211_DPRINTF macro
invocation.  Per C99 6.10.3 paragraph 11 preprocessing directives
appearing as macro arguments yield undefined behavior.

Obtained-from: FreeBSD (dss@freebsd.org)

17 years agoEnsure outbound data packets in hostap mode are delivered only to stations
Sepherosa Ziehau [Sat, 25 Nov 2006 07:37:38 +0000 (07:37 +0000)]
Ensure outbound data packets in hostap mode are delivered only to stations
that are associated by making ieee80211_find_txnode return NULL when a
unicast frame is to be delivered to an unassociated station.

Obtained-from: FreeBSD (sam@freebsd.org)

17 years agoAdd per-sta ucast/mcast stats
Sepherosa Ziehau [Sat, 25 Nov 2006 07:29:54 +0000 (07:29 +0000)]
Add per-sta ucast/mcast stats

Obtained-from: FreeBSD (sam@freebsd.org)

17 years agoNuke macros that are moved to ieee80211.h
Sepherosa Ziehau [Sat, 25 Nov 2006 07:17:06 +0000 (07:17 +0000)]
Nuke macros that are moved to ieee80211.h

17 years ago- Add some missing stats to the global ieee80211_stats
Sepherosa Ziehau [Sat, 25 Nov 2006 07:03:45 +0000 (07:03 +0000)]
- Add some missing stats to the global ieee80211_stats
- Move accounting work for data frame rx into ieee80211_deliver_data(),
  so L2 update frames are counted
- Add per-sta stats for rx ucast/mcast frames

Strip TABs on empty lines, while I'm here.

Obtained-from: FreeBSD (sam@freebsd.org)

# NOTE: mbuf.m_pkthdr.rcvif still need to be set before calling
#       ieee80211_deliver_data()

17 years ago- Add IEEE80211_IOC_BMISSTHRESHOLD for managing the beacon miss threshold
Sepherosa Ziehau [Sat, 25 Nov 2006 05:54:22 +0000 (05:54 +0000)]
- Add IEEE80211_IOC_BMISSTHRESHOLD for managing the beacon miss threshold
- Teach ifconfig(8) to get/set beacon miss threshold

Obtained-from: FreeBSD (sam@freebsd.org)
# It is submitted to FreeBSD by Henrik Brix Andersen <henrik@brixandersen.dk>

17 years ago- Add noise floor in ieee80211_nodestats; return it as zero until we can
Sepherosa Ziehau [Sat, 25 Nov 2006 05:04:23 +0000 (05:04 +0000)]
- Add noise floor in ieee80211_nodestats; return it as zero until we can
  update the api's so the driver can provide noise floor data
- Add a bandaid so IEEE80211_IOC_STA_STATS works for sta mode; when all
  nodes are in the station table this will no longer be needed
- Fix braino in IEEE80211_IOC_STA_INFO implementation; was supposed to
  take a MAC address and return info for that sta or all stations if
  ff:ff:ff:ff:ff was supplied -- but somehow this didn't get implemented;
  implement the intended semantics

Obtained-from: FreeBSD (sam@freebsd.org)

# NOTE: The RSSI statistics in ieee80211_nodestats is still unsigned

17 years agoIf power save mode changes, call ieee80211com.ic_reset instead of forcefully
Sepherosa Ziehau [Thu, 23 Nov 2006 13:43:05 +0000 (13:43 +0000)]
If power save mode changes, call ieee80211com.ic_reset instead of forcefully
changing (by returning ENETRESET) 802.11 state machine, so that driver has
the chance to intercept this change and possibly avoid changing 802.11 state
machine.

Obtained-from: FreeBSD (sam@freebsd.org)

17 years agoImplement set(IEEE80211_IOC_STA_STATS) for hostapd; for
Sepherosa Ziehau [Thu, 23 Nov 2006 12:57:56 +0000 (12:57 +0000)]
Implement set(IEEE80211_IOC_STA_STATS) for hostapd; for
now just make it clear station statistics (could read
a stat block and assign to caller can do partial changes)

Obtained-from: FreeBSD (sam@freebsd.org)

17 years ago- Tighten invariant on loops used to parse ie's; this ensures we never
Sepherosa Ziehau [Tue, 21 Nov 2006 12:07:21 +0000 (12:07 +0000)]
- Tighten invariant on loops used to parse ie's; this ensures we never
  touch data outside the packet (previously we might touch 1 byte); it
  also has the happy side effect of working around broken orinoco/agere
  firmware that sends malformed association response frames
- Correct ie length check; need to include fixed part of ie

Obtained-from: FreeBSD (sam@freebsd.org)

17 years agoUse spinlocks instead of tokens to interlock the objcache depot.
Matthew Dillon [Mon, 20 Nov 2006 22:19:54 +0000 (22:19 +0000)]
Use spinlocks instead of tokens to interlock the objcache depot.
The cpu-localized critical path is still lockless.

17 years agoFictitious VM pages must remain structurally stable after free.
Matthew Dillon [Mon, 20 Nov 2006 20:53:06 +0000 (20:53 +0000)]
Fictitious VM pages must remain structurally stable after free.

17 years agoAdd minimal umodem(4) manual page.
Sascha Wildner [Mon, 20 Nov 2006 19:57:03 +0000 (19:57 +0000)]
Add minimal umodem(4) manual page.

Taken-from: FreeBSD

17 years agoUpdate for OpenSSH-4.5p1, and add some upgrade notes.
Peter Avalos [Mon, 20 Nov 2006 17:25:35 +0000 (17:25 +0000)]
Update for OpenSSH-4.5p1, and add some upgrade notes.

17 years agoRemove files no longer in vendor's distribution.
Peter Avalos [Mon, 20 Nov 2006 17:22:14 +0000 (17:22 +0000)]
Remove files no longer in vendor's distribution.

17 years agoUpdate build for OpenSSH-4.5p1.
Peter Avalos [Mon, 20 Nov 2006 17:15:46 +0000 (17:15 +0000)]
Update build for OpenSSH-4.5p1.

17 years agoMerge from vendor branch OPENSSH:
Peter Avalos [Mon, 20 Nov 2006 17:11:41 +0000 (17:11 +0000)]
Merge from vendor branch OPENSSH:
Import OpenSSH 4.5p1.

17 years agoImport OpenSSH 4.5p1.
Peter Avalos [Mon, 20 Nov 2006 17:11:41 +0000 (17:11 +0000)]
Import OpenSSH 4.5p1.

17 years agoRework rt2661 TX interrupts processing
Sepherosa Ziehau [Mon, 20 Nov 2006 15:03:26 +0000 (15:03 +0000)]
Rework rt2661 TX interrupts processing

The Clues: [1]
"TX DMA Done Interrupt":
A frame has been DMAed to ASIC, probably stored in an ASIC internal
TX FIFO.  The TX descriptor and the resource in host memory are useless
to ASIC

"TX Done Interrupt":
The transfering of a frame, which probably is from ASIC internal TX
FIFO, is done by ASIC, and the information concerning this transfering
is available

The Problems:
- The original driver reduces TX ring occupation counter on "TX Done
  Interrupt", though TX descriptors and related resources are already
  reaped on "TX DMA Done Interrupt"
- For some (maybe all ;-) ASIC, "TX Done Interrupt" comes less frequent
  than "TX DMA Done Interrupt", probably due to the "ASIC internal TX
  FIFO", or just because it is not intended to be used in the original
  driver's way ;-)

So useless TX descriptors slowly occupy TX ring and result in an almost
full TX ring at the most of the time if new frames keep coming at high
rate (e.g. during a long time scp(1))

The Fixes:
- Move rate control context out of rt2661_tx_data, so it is not 1:1 mapping
  with TX descriptor.  This degenerates rt2661_tx_data to rt2661_rx_data,
  so merge them and rename the new structure rt2661_data
- Add a rate control context queue, which temporarily holds rate control
  contexts for each data transfering
- Allocate the rate control context on fly during rt2661_tx_data().  Since
  this context is allocated using M_NOWAIT, it is possible that the
  alloctation fails.  if this happens, later rate control information will
  not be gathered (I think this is acceptable :-) and the reference to the
  ieee80211_node is freed immediately at the end of rt2661_tx_data().

After above three changes reaping of TX descriptors and related resources no
longer needs to be synchronized with rate control information gathering.

- Change the meaning of rt2661_tx_desc.qid, it now indicates whether rate
  control information needs to be gathered (it is not necessary at all for
  control/management frames)
- On "TX DMA Done Interrupt" instead of on "TX Done Interrupt", if some TX
  descriptors and related resources are reaped, reduce TX ring occupation
  counter, and kick ifnet.if_start

As of this commit, my Edimax EW-7608PG can tranfer data stably [2] without
being choked half way.

#
# [1] These clues are infered from a comment concering TX descriptor
#     structure in Linux RT61 driver
# [2] Though data tranfering is quite stable, its performance is still
#     far from expectation.  In infrastructured mode, 3 meters away from
#     the AP, I only got 6Mbits/s - 7Mbits/s, but under the same conditions
#     receiving performance is quite OK (~20Mbits/s)
#

17 years agoWe aren't using the asm files so store this in the Attic.
Peter Avalos [Mon, 20 Nov 2006 06:26:44 +0000 (06:26 +0000)]
We aren't using the asm files so store this in the Attic.

17 years agoRemove files no longer used.
Peter Avalos [Mon, 20 Nov 2006 06:08:43 +0000 (06:08 +0000)]
Remove files no longer used.

17 years agoUpdate READMEs for latest import.
Peter Avalos [Mon, 20 Nov 2006 06:07:18 +0000 (06:07 +0000)]
Update READMEs for latest import.

17 years agoThe ":R" operator is never needed after ":S/./_/g", which replaces
YONETANI Tomokazu [Mon, 20 Nov 2006 06:00:40 +0000 (06:00 +0000)]
The ":R" operator is never needed after ":S/./_/g", which replaces
dots with underscores, removing any "suffixes" from the string.

17 years agoUpgrade to OpenSSL 0.9.8d
Peter Avalos [Mon, 20 Nov 2006 05:31:54 +0000 (05:31 +0000)]
Upgrade to OpenSSL 0.9.8d

17 years agoMerge from vendor branch OPENSSL:
Peter Avalos [Mon, 20 Nov 2006 05:16:00 +0000 (05:16 +0000)]
Merge from vendor branch OPENSSL:
Import OpenSSL 0.9.8d.

17 years agoImport OpenSSL 0.9.8d.
Peter Avalos [Mon, 20 Nov 2006 05:16:00 +0000 (05:16 +0000)]
Import OpenSSL 0.9.8d.

17 years agoDocument pentium-m support
Victor Balada Diaz [Sun, 19 Nov 2006 22:17:04 +0000 (22:17 +0000)]
Document pentium-m support

Reported-by: TGEN
17 years agoAdd support for pentium-m CPUs.
Victor Balada Diaz [Sun, 19 Nov 2006 22:04:19 +0000 (22:04 +0000)]
Add support for pentium-m CPUs.

17 years agoFix typo.
Sascha Wildner [Sun, 19 Nov 2006 20:24:04 +0000 (20:24 +0000)]
Fix typo.

Reported-by: Robin Carey <robin_carey5@yahoo.co.uk>
17 years agoifconfig manpage upgrade:
Sascha Wildner [Sun, 19 Nov 2006 16:45:05 +0000 (16:45 +0000)]
ifconfig manpage upgrade:

* Bring in all relevant changes from FreeBSD.

* Add tentative/-tentative and deprecated/-deprecated documentation from
  NetBSD.

* Document the autoconf/-autoconf, powersavemode, compress, normal and
  noicmp parameters.

* Add ifmedia(4) reference.

* mdoc(7) cleanup

Reviewed-and-helped-by: sephe
17 years agoNuke redundant declaration of 'nfs_diskless_valid'
Sepherosa Ziehau [Sun, 19 Nov 2006 14:40:00 +0000 (14:40 +0000)]
Nuke redundant declaration of 'nfs_diskless_valid'

17 years agoDon't append extra _H in forward headers' guardian, since
Sepherosa Ziehau [Sun, 19 Nov 2006 14:36:53 +0000 (14:36 +0000)]
Don't append extra _H in forward headers' guardian, since
sys/cpu/i386/misc/atomic.c depends on *exact* _MACHINE_ATMOIC_H_ to
create necessary atomic_*_*() symbols for modules to use.

17 years ago- Add kern.fwd.mk to generate forward headers for missing machine/*.h
Sepherosa Ziehau [Sun, 19 Nov 2006 07:49:34 +0000 (07:49 +0000)]
- Add kern.fwd.mk to generate forward headers for missing machine/*.h
  It avoids unnecessary regeneration of forward headers by default, thus
  quickkernel is speedy again :)
- Nuke no longer needed generate_forwarding_headers() in config(8)
- Add forward headers generation to the dependency list of "beforedepend"
  in kmod.mk.  This unbreaks module building which does not happen along
  with kernel building.

The original patch was submitted by y0netan1@, changes made to the original
patch are OKed by him too.

Reviewed-by: dillon@ corecode@
17 years agoAdd stge(4).
Sascha Wildner [Sat, 18 Nov 2006 10:01:04 +0000 (10:01 +0000)]
Add stge(4).

17 years agoan, awi, cue and kue don't use the miibus interface.
Sascha Wildner [Sat, 18 Nov 2006 10:00:19 +0000 (10:00 +0000)]
an, awi, cue and kue don't use the miibus interface.

17 years ago- Cleanup #includes
Sepherosa Ziehau [Sat, 18 Nov 2006 09:41:29 +0000 (09:41 +0000)]
- Cleanup #includes
- Add missing '\n'

17 years agoDon't turn on TX_BUSY (rt2560/rt2661) or TX_CIPHER_BUSY (rt2560) before TX
Sepherosa Ziehau [Sat, 18 Nov 2006 09:26:43 +0000 (09:26 +0000)]
Don't turn on TX_BUSY (rt2560/rt2661) or TX_CIPHER_BUSY (rt2560) before TX
descriptor is fully setup.

17 years agoCorrect layout of RT2661_TXRX_CSR4
Sepherosa Ziehau [Sat, 18 Nov 2006 06:46:19 +0000 (06:46 +0000)]
Correct layout of RT2661_TXRX_CSR4

Obtained-from: Linux RT61 driver

#
# Result of:
# ping -c 100 -i 0.1 -s 1300 192.168.3.2
#
# Before this commit
# --- 192.168.3.2 ping statistics ---
# 100 packets transmitted, 37 packets received, 63% packet loss
# round-trip min/avg/max/stddev = 1.578/1.844/3.113/0.310 ms
#
# After this commit
# --- 192.168.3.2 ping statistics ---
# 100 packets transmitted, 100 packets received, 0% packet loss
# round-trip min/avg/max/stddev = 2.043/2.894/4.514/0.529 ms
#
# Maybe "63% packet loss" should be taken as "this card works well" :-P
#

17 years agoProperly setup Link/Act LED for rt2x61 chips.
Sepherosa Ziehau [Sat, 18 Nov 2006 04:13:39 +0000 (04:13 +0000)]
Properly setup Link/Act LED for rt2x61 chips.

LED EEPROM configures and LED MCU data/command layout are obtained from
Linux RT61 driver (the reference driver?).

# This makes my Edimax EW-7608PG(rt2661d) LED shining as expected.

17 years agoReflect reality.
Sascha Wildner [Sat, 18 Nov 2006 01:06:34 +0000 (01:06 +0000)]
Reflect reality.

Taken-from: FreeBSD

17 years agoFix references.
Sascha Wildner [Fri, 17 Nov 2006 23:23:05 +0000 (23:23 +0000)]
Fix references.

17 years agoFix .Xr abuse.
Sascha Wildner [Fri, 17 Nov 2006 23:01:21 +0000 (23:01 +0000)]
Fix .Xr abuse.

17 years agounresolve the vnode associated with the namecache entry for a mount point
Matthew Dillon [Fri, 17 Nov 2006 22:20:31 +0000 (22:20 +0000)]
unresolve the vnode associated with the namecache entry for a mount point
before trying to set a new vnode.  This avoids a panic if you are CD'd into
a mount point before the mount occurs.

17 years agoDisable use of wide char functions for mkmagic.nx, a host tool. This
Simon Schubert [Thu, 16 Nov 2006 23:46:53 +0000 (23:46 +0000)]
Disable use of wide char functions for mkmagic.nx, a host tool.  This
unbreaks buildworld for pre-citrus machines (1.2-RELEASE).

Reported-by: Thomas E. Spanjaard
17 years agoChange to ${.CURDIR} before generating miidevs.h
Sepherosa Ziehau [Thu, 16 Nov 2006 14:02:13 +0000 (14:02 +0000)]
Change to ${.CURDIR} before generating miidevs.h

This unbreaks miidevs.h regeneration if sys/dev/netif/mii_layer has an
object directory.

Thank joerg@ to shed light on the obscure awk error.

17 years agoAdd manpage for stge(4)
Sepherosa Ziehau [Thu, 16 Nov 2006 13:50:05 +0000 (13:50 +0000)]
Add manpage for stge(4)

Obtained-from: NetBSD (with changes)
Reviewed-by: swildner@
17 years ago- Add stge(4) for Sundance/Tamarack TC9021 Gigabit Ethernet chip.
Sepherosa Ziehau [Thu, 16 Nov 2006 13:43:55 +0000 (13:43 +0000)]
- Add stge(4) for Sundance/Tamarack TC9021 Gigabit Ethernet chip.
  It supports following cards:
    o  Antares Microsystems Gigabit Ethernet
    o  ASUS NX1101 Gigabit Ethernet
    o  D-Link DGE-550T Gigabit Ethernet
    o  IC Plus IP1000A Gigabit Ethernet
    o  Sundance ST-2021 Gigabit Ethernet
    o  Sundance ST-2023 Gigabit Ethernet
    o  Sundance TC9021 Gigabit Ethernet
    o  Tamarack TC9021 Gigabit Ethernet
- Add PHY module for IC Plus IP1000A integrated PHY, which may be used
  by some on-board stge(4)
- Hook stge(4) into GENERIC and LINT

Obtained-from: FreeBSD (yongari@freebsd.org)

17 years agoregen
Sepherosa Ziehau [Thu, 16 Nov 2006 13:37:43 +0000 (13:37 +0000)]
regen

17 years agoAdd ids for Marvell 88e3082 and IC PLUS IP1000A
Sepherosa Ziehau [Thu, 16 Nov 2006 13:37:21 +0000 (13:37 +0000)]
Add ids for Marvell 88e3082 and IC PLUS IP1000A

17 years agoMake sure BBP is ready before writing to it.
Sepherosa Ziehau [Thu, 16 Nov 2006 13:16:46 +0000 (13:16 +0000)]
Make sure BBP is ready before writing to it.

17 years ago- Correct register name
Sepherosa Ziehau [Thu, 16 Nov 2006 12:24:35 +0000 (12:24 +0000)]
- Correct register name
- Add comment abount some registers

Taken-from: Linux rt2500 driver

17 years agoClean up #includes
Sepherosa Ziehau [Thu, 16 Nov 2006 12:22:49 +0000 (12:22 +0000)]
Clean up #includes

17 years agoUse the vendor-supplied man pages for file.1 and magic.5 instead of the
Peter Avalos [Wed, 15 Nov 2006 23:13:45 +0000 (23:13 +0000)]
Use the vendor-supplied man pages for file.1 and magic.5 instead of the
stale ones we have now.

Reviewed-by: vbd

17 years agoMerge from vendor branch FILE:
Peter Avalos [Wed, 15 Nov 2006 23:13:45 +0000 (23:13 +0000)]
Merge from vendor branch FILE:
Use the vendor-supplied man pages for file.1 and magic.5 instead of the
stale ones we have now.

Reviewed-by: vbd

17 years agoUse the vendor-supplied man pages for file.1 and magic.5 instead of the
Peter Avalos [Wed, 15 Nov 2006 23:13:45 +0000 (23:13 +0000)]
Use the vendor-supplied man pages for file.1 and magic.5 instead of the
stale ones we have now.

Reviewed-by: vbd

17 years agoDon't break buildworld for upgrading users: "i386" is no valid platorm
Simon Schubert [Wed, 15 Nov 2006 03:27:10 +0000 (03:27 +0000)]
Don't break buildworld for upgrading users:  "i386" is no valid platorm
name anymore, so we automatically convert it to "pc32".
Remove checks for build/installworld, as sys.mk deals with fixing now.

Discussed-with: pavalos
DragonFly-issue: http://bugs.dragonflybsd.org/issue379 (among others)

17 years agoFix for the latest developments in the kernel architecture reorganization.
Sascha Wildner [Tue, 14 Nov 2006 22:27:49 +0000 (22:27 +0000)]
Fix for the latest developments in the kernel architecture reorganization.

17 years agoUpdate re(4) manpage to reflect recent re(4) changes.
Sepherosa Ziehau [Tue, 14 Nov 2006 13:39:45 +0000 (13:39 +0000)]
Update re(4) manpage to reflect recent re(4) changes.

Reviewed-by: swildner@
17 years agoSync re(4) with FreeBSD:
Sepherosa Ziehau [Tue, 14 Nov 2006 13:35:49 +0000 (13:35 +0000)]
Sync re(4) with FreeBSD:
- Add support for RealTek 8169SC/8110SC and RTL8101E devices.  The latter
  is a PCIe 10/100 chip.
- Add support for RealTek RTL8168(B?)
- Fix EEPROM reading code
- Disable diagnostic code in re_attach() by default.  It is almost useless
  and has caused much trouble.
- Manually padding small IP datagrams to work arround hardware checksum
  offload bug [1].  Enable IP/TCP/UDP checksum offload after this fix.
- Work arround hardware TX bug in some PCIe re(4) devices:
  The TX command, which is issued when there is transmission in progress,
  will get lost [2].
  So at the end of re_txeof(), if there are still packets sitting in the
  TX ring, we kick the TX engine again.
- Add a sysctl hw.reX.tx_moderation to turn on/off TX moderation.  It is
  on by default.
- Move softc related structs from if_rereg.h into newly created if_revar.h

Thank Bill Paul (wpaul@freebsd.org) and many other people for their work
on this driver.

#
# [1] Detailed description of this bug is at:
#     FreeBSD dev/re/if_re.c rev1.70 by wpaul@freebsd.org
#
# [2] Detailed description of this bug is at:
#     FreeBSD dev/re/if_re.c rev1.71 by wpaul@freebsd.org
#