summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* - Rename proto_descriptor_{send,recv}() functions topjd2011-02-027-166/+200
| | | | | | | | | | | proto_connection_{send,recv} and change them to return proto_conn structure. We don't operate directly on descriptors, but on proto_conns. - Add wrap method to wrap descriptor with proto_conn. - Remove methods to send and receive descriptors and implement this functionality as additional argument to send and receive methods. MFC after: 1 week
* Add proto_connect_wait() to wait for connection to finish.pjd2011-02-025-11/+84
| | | | | | | | | | | | | If timeout argument to proto_connect() is -1, then the caller needs to use this new function to wait for connection. This change is in preparation for capsicum, where sandboxed worker wants to ask main process to connect in worker's behalf and pass descriptor to the worker. Because we don't want the main process to wait for the connection, it will start async connection and pass descriptor to the worker who will be responsible for waiting for the connection to finish. MFC after: 1 week
* Allow to specify connection timeout by the caller.pjd2011-02-026-9/+12
| | | | MFC after: 1 week
* Move protocol allocation and deallocation to separate functions.pjd2011-02-021-17/+48
| | | | MFC after: 1 week
* Fix build with DIAGNOSTIC enabled.jhb2011-02-021-4/+4
| | | | Pointy hat to: jhb
* Remove OpenSolaris include path referring to a non-existing directorypluknet2011-02-021-3/+0
| | | | | | | | | | never committed from p4 dtrace branch. [The correct include path is referenced from every opensolaris compat consumer's module Makefile, so it doesn't serve any purpose anyway.] Reported by: arundel on freebsd-hackers@ via clang Approved by: kib (mentor) MFC after: 1 week
* 1) Allow a chunk to track the cwnd it was at when sent.rrs2011-02-0214-29/+120
| | | | | | | | | | | | | | | | | | | 2) Add separate max-bursts for retransmit and hb. These are set to sysctlable values but not settable via the socket api. This makes sure we don't blast out HB's or fast-retransmits. 3) Determine on the first data transmission on a net if its local-lan (by being under or over a RTT). This can later be used to think about different algorithms based on locallan vs big-i (experimental) 4) The cwnd should NOT be allowed to grow when an ECNEcho is seen (TCP has this same bug). We fix this in SCTP so an ECNe being seen prevents an advance of cwnd. 5) CWR's should not be sent multiple times to the same network, instead just updating the TSN being transmitted if needed. MFC after: 1 Month
* Be prepared that hp_client or hp_server might be NULL now.pjd2011-02-021-4/+11
| | | | MFC after: 1 week
* Rename INTR_VEC to MAP_IRQ. From the OFW or FDT we obtain amarcel2011-02-0211-23/+23
| | | | | PIC handle with interrupt pin. This we map to the resource called SYS_RES_IRQ.
* Call the correct ANI Attach routine.adrian2011-02-023-3/+3
|
* Make the generated files depend on the Makefile so new platforms are easierimp2011-02-021-2/+2
| | | | to add than mipsn32 was when I was working on it...
* Revert last change now that the reason for it is no more...imp2011-02-021-2/+1
| | | | MACHINE_ARCH is now always mipsel when building mips/mips.
* Recommit r218169, enclosing with #ifdef _KERNELmm2011-02-011-0/+6
| | | | | | | This change is sufficient for the ZFS kernel module. Discussed with: pjd MFC after: 1 week
* Whitespace nitimp2011-02-011-1/+1
|
* New ID for the Novatel MC547n_hibma2011-02-012-0/+2
| | | | | | PR: 154127 Submitted by: Mike Tancsa MFC after: 1 day
* Revert r218169 until it can be tested and fixed properly.kan2011-02-011-4/+0
|
* Some cosmetic fixes and remove a duplicate constant.jhb2011-02-013-10/+7
| | | | Submitted by: Pedro F. Giffuni giffunip at yahoo
* - Set the next_alloc fields for an i-node after allocating a new blockjhb2011-02-011-14/+58
| | | | | | | | | | | | | | so that future allocations start with most recently allocated block rather than the beginning of the filesystem. - Fix ext2_alloccg() to properly scan for 8 block chunks that are not aligned on 8-bit boundaries. Previously this was causing new blocks to be allocated in a highly fragmented fashion (block 0 of a file at lbn N, block 1 at lbn N + 8, block 2 at lbn N + 16, etc.). - Cosmetic tweaks to the currently-disabled fancy realloc sysctls. PR: kern/153584 Discussed with: bde Tested by: Pedro F. Giffuni giffunip at yahoo, Zheng Liu (lz)
* Output an appropriate amount of padding to line up per-CPU state columnsjhb2011-02-011-7/+11
| | | | | | | | rather than using a terminal sequence to move the cursor when drawing the initial screen. Requested by: arundel MFC after: 3 days
* Just to be sure, make sure the MCS rates are allowed for TX.adrian2011-02-011-2/+4
| | | | Approved by: rpaulo@
* For ZFS, change the type of clock_t to int64_t.mm2011-02-011-0/+4
| | | | | | | | | | | | | | The clock_t type in OpenSolaris is long (int64_t on amd64). On FreeBSD clock_t is int32_t. The clock_t type is used in several places in the ZFS code to store system uptime in milliseconds ("seconds * hz"). With hz=1000 we have a 32-bit integer overflow in 24 days, 20 hours, 31 minutes and 23.648 seconds. This has a user reported negative impact on l2arc_feed_thread() and may cause unexpected results from other functions using clock_t. Reported by: Artem Belevich <fbsdlist@src.cx> on freebsd-fs@ MFC after: 1 week
* The unp_gc() function drops and reaquires lock between scan andkib2011-02-011-12/+16
| | | | | | | | | | | | | | | | | | | | | | collect phases. The unp_discard() function executes unp_externalize_fp(), which might make the socket eligible for gc-ing, and then, later, taskqueue will close the socket. Since unp_gc() dropped the list lock to do the malloc, close might happen after the mark step but before the collection step, causing collection to not find the socket and miss one array element. I believe that the race was there before r216158, but the stated revision made the window much wider by postponing the close to taskqueue sometimes. Only process as much array elements as we find the sockets during second phase of gc [1]. Take linkage lock and recheck the eligibility of the socket for gc, as well as call fhold() under the linkage lock. Reported and tested by: jmallett Submitted by: jmallett [1] Reviewed by: rwatson, jeff (possibly) MFC after: 1 week
* Algorithm modules can define their own private congestion signal types in thelstewart2011-02-012-4/+10
| | | | | | | | | | | | | | | | | | | | | | | top 8 bits of the 32 bit signal bit field space for internal use. These private signals should not be leaked outside of a module. Given that many algorithm modules use the NewReno hook functions to simplify their implementation, the obvious place such a leak would show up is in the NewReno cong_signal hook function. - Show the full number of significant bits in the signal type definitions in <netinet/cc.h>. - Add a bitmask to simplify figuring out if a given signal is in the private or public bit range. - Add a sanity check in newreno_cong_signal() to ensure private signals are not being leaked into the hook function. Sponsored by: FreeBSD Foundation Discussed with: David Hayes <dahayes at swin edu au> MFC after: 1 week X-MFC with: r215166
* Reintroduce bugfix from r210103 and fix xz on strong-aligned architectures.mm2011-02-011-1/+0
| | | | | | | | This fix was accidentially reverted with the 5.0.0 update in r215187. PR: bin/154310 Submitted by: Michael Moll <kvedulv@kvedulv.de> MFC after: 3 days
* Use correct kernel types for all fields in USB PF code and headers.hselasky2011-02-012-15/+15
| | | | Approved by: thompsa (mentor)
* Add a new method to the rate control modules which extract out theadrian2011-02-014-0/+77
| | | | | | | three other rates and try counts. The 11n rate scenario path wants to take a list of rate and tries, rather than calling setupxtxdesc().
* Include some preliminary TX HT rate scenario setup code.adrian2011-02-014-1/+246
| | | | | | | | | | | | | | | | The AR5416 and later TX descriptors have new fields for supporting 11n bits (eg 20/40mhz mode, short/long GI) and enabling/disabling RTS/CTS protection per rate. These functions will be responsible for initialising the TX descriptors for the AR5416 and later chips for both HT and legacy frames. Beacon frames will remain using the non-11n TX descriptor setup for now; Linux ath9k does much the same. Note that these functions aren't yet used anywhere; a few more framework changes are needed before all of the right rate information is available for TX.
* Do not set socket send and receive buffer. It will be auto-tuned.pjd2011-02-011-14/+4
| | | | | Confirmed by: rwatson MFC after: 1 week
* Refator the common code which calculates the 802.11g protection duration.adrian2011-02-011-51/+51
|
* Fix typo in comment: "course" -> "coarse"lstewart2011-02-011-1/+1
| | | | | | | Sponsored by: FreeBSD Foundation Submitted by: jmallett MFC after: 3 months X-MFC with: r218152
* Import an implementation of the CAIA-Hamilton-Delay (CHD) congestion controllstewart2011-02-013-1/+508
| | | | | | | | | | | | | | | | | | | | | | algorithm described in the paper "Improved coexistence and loss tolerance for delay based TCP congestion control" by Hayes and Armitage. It is implemented as a kernel module compatible with the recently committed modular congestion control framework. CHD enhances the approach taken by the Hamilton-Delay (HD) algorithm to provide tolerance to non-congestion related packet loss and improvements to coexistence with loss-based congestion control algorithms. A key idea in improving coexistence with loss-based congestion control algorithms is the use of a shadow window, which attempts to track how NewReno's congestion window (cwnd) would evolve. At the next packet loss congestion event, CHD uses the shadow window to correct cwnd in a way that reduces the amount of unfairness CHD experiences when competing with loss-based algorithms. In collaboration with: David Hayes <dahayes at swin edu au> and Grenville Armitage <garmitage at swin edu au> Sponsored by: FreeBSD Foundation Reviewed by: bz and others along the way MFC after: 3 months
* * Add a rather hacky "does this speak the 11n TX descriptor format"adrian2011-02-011-94/+86
| | | | | | | | | | | | function; which will be later used by the TX path to determine whether to use the extended features or not. * Break out the descriptor chaining logic into a separate function; again so it can be switched out later on for the 11n version when needed. * Refactor out the encryption-swizzling code that's common in the raw and normal TX path.
* Import a clean-room implementation of the Hamilton-Delay (HD) congestion controllstewart2011-02-013-0/+264
| | | | | | | | | | | | | | | | | | | | | | algorithm based on the paper "A strategy for fair coexistence of loss and delay-based congestion control algorithms" by Budzisz, Stanojevic, Shorten and Baker. It is implemented as a kernel module compatible with the recently committed modular congestion control framework. HD uses a probabilistic approach to reacting to delay-based congestion. The probability of reducing cwnd is zero when the queuing delay is very small, increasing to a maximum at a set threshold, then back down to zero again when the queuing delay is high. Normal operation keeps the queuing delay below the set threshold. However, since loss-based congestion control algorithms push the queuing delay high when probing for bandwidth, having the probability of reducing cwnd drop back to zero for high delays allows HD to compete with loss-based algorithms. In collaboration with: David Hayes <dahayes at swin edu au> and Grenville Armitage <garmitage at swin edu au> Sponsored by: FreeBSD Foundation Reviewed by: bz and others along the way MFC after: 3 months
* Import a clean-room implementation of the VEGAS congestion control algorithmlstewart2011-02-013-1/+319
| | | | | | | | | | | | | | | | | based on the paper "TCP Vegas: end to end congestion avoidance on a global internet" by Brakmo and Peterson. It is implemented as a kernel module compatible with the recently committed modular congestion control framework. VEGAS uses network delay as a congestion indicator and unlike regular loss-based algorithms, attempts to keep the network operating with stable queuing delays and no congestion losses. By keeping network buffers used along the path within a set range, queuing delays are kept low while maintaining high throughput. In collaboration with: David Hayes <dahayes at swin edu au> and Grenville Armitage <garmitage at swin edu au> Sponsored by: FreeBSD Foundation Reviewed by: bz and others along the way MFC after: 3 months
* Add TX/RX chainmask info to if_ath - this is needed for the 11n TX rate series.adrian2011-02-011-0/+6
|
* Add a new capability which reports the number of spatial streams a device ↵adrian2011-02-017-0/+29
| | | | | | | | | | | | | | | | supports. The higher levels (net80211, if_ath, ath_rate) need this to make correct choices about what MCS capabilities to advertise and what MCS rates are able to be TXed. In summary: * AR5416 - 2/3 antennas, 2x2 streams * AR9160 - 2/3 antennas, 2x2 streams * AR9220 - 2 antennas, 2x2 sstraems * AR9280 - 2 antennas, 2x2 streams * AR9285 - 2 antennas but with antenna diversity, 1x1 stream
* Support for the new Patsburg PCH chipset:jfv2011-02-017-3/+29
| | | | | | | | | | | - SMBus Controller - SATA Controller - HD Audio Controller - Watchdog Controller Thanks to Seth Heasley (seth.heasley@intel.com) for providing us code. MFC after 3 days
* Fix build on ia64.pjd2011-01-311-9/+7
| | | | | | | I found no way how to use CMSG_NXTHDR() macro on ia64 without alignment warnings. MFC after: 1 week
* Until I fix the build on ia64 comment out problematic lines.pjd2011-01-311-2/+2
| | | | Those lines are part of the (for now) unused functions.
* Remove the now unneeded XXX.adrian2011-01-311-1/+0
|
* Enable AMPDU reorder processing and receiving BAR frames when doing 802.11n.adrian2011-01-311-0/+6
| | | | Obtained from: rpaulo@
* Let rpcbind clean up after itselfdougb2011-01-311-0/+2
|
* alc_rev was used without initialization such that it failed toyongari2011-01-311-1/+1
| | | | | | | apply AR8152 v1.0 specific initialization code. Fix this bug by explicitly reading PCI device revision id via PCI accessor. Reported by: Gabriel Linder ( linder.gabriel <> gmail dot com )
* Support for the new DH89xxCC PCH chipset including:jfv2011-01-316-0/+9
| | | | | | - SATA controller - Watchdog timer - SMBus controller
* Implement two new functions for sending descriptor and receving descriptorpjd2011-01-316-8/+173
| | | | | | | over UNIX domain sockets and socket pairs. This is in preparation for capsicum. MFC after: 1 week
* - Use pjdlog for assertions and aborts as this will log assert/abort messagepjd2011-01-319-241/+197
| | | | | | | | | to syslog if we run in background. - Asserts in proto.c that method we want to call is implemented and remove dummy methods from protocols implementation that are only there to abort the program with nice message. MFC after: 1 week
* Rename pjdlog_verify() to pjdlog_abort() as it better describes what thepjd2011-01-312-7/+7
| | | | | | the function does and mark it with __dead2. MFC after: 1 week
* Don't incorrectly set the burst duration setting in the TX descriptor.adrian2011-01-311-2/+0
| | | | | | | | | | | | | | | | After inspecting the ath9k source, it seems the AR5416 and later MACs don't take an explicit RTS/CTS duration. A per-scenario (ie, what multi- rate retry became) rts/cts control flag and packet duration is provided; the hardware then apparently fills in whatever details are required. The per-rate sp/lpack duration calculation just isn't used anywhere in the ath9k TX packet length calculations. The burst duration register controls something different; it seems to be involved with RTS/CTS protection of 11n aggregate frames and is set via a call to ar5416Set11nBurstDuration(). I've done some light testing with rts/cts protected frames and nothing seems to break; but this may break said RTS/CTS and CTS-to-self protection.
* Move the architecture guessing from Makefile.inc1 to Makefile. Weimp2011-01-312-28/+33
| | | | | | | | | | need to do this because variables specified on the command line override those specified in the Makefile. This is why we also moved from TARGET to _TARGET in Makefile, and then set TARGET on the command line when we fork a submake with Makefile.inc1. This makes mips/mips work again, even without the workaround committed to lib/libc/Makefile.
* More ECN fixes:rrs2011-01-3113-486/+86
| | | | | | | | | | | 1) We now remove ECN-Nonce since it will no longer continue as a I-D 2) Eliminate last_tsn_echo, this tied us to an assoc not the net and thus we were not doing m-homing on the ECN-Echo senders side right. 3) Increment the count going out even if the TSN in lower in the pending ECN-Echo, this way the receiver knows exactly how many packets were marked even with network re-ordering 4) Fix so we DO NOT stop doing delayed sack if a ECN Echo is in queue MFC after: 1 month
OpenPOWER on IntegriCloud