summaryrefslogtreecommitdiff
path: root/sys/conf
AgeCommit message (Collapse)Author
2021-06-29move some config lines to ensure drm.h is always createdJonathan Gray
ok deraadt@ kettenis@
2021-05-02Put -stable template into #if 0 section of current newvers.sh.Alexander Bluhm
OK deraadt@
2021-04-28Enable dt(4) on amd64, arm64, i386, and powerpc64 in GENERIC kernel.Alexander Bluhm
Support to skip frames is missing on arm64 and i386, but the stack traces are useful anyway. sparc64 should work, but I could not test it. Other architectures do not have stacktrace_save_at() and dynamic tracer does not link. from patrick@; OK semarie@
2021-04-22reenable POOL_DEBUGChristian Weisgerber
2021-04-18post 6.9 development continues...Theo de Raadt
2021-04-16Unhook ieee80211_mira.c from the build. All consumers have switched to RA.Stefan Sperling
Keeping files in CVS HEAD for now until we are certain we're not going back. ok deraadt@
2021-04-11bwfm(4) needs firmloadkn
Otherwise compiling a kernel witout any other wifi drivers fails. OK patrick deraadt
2021-04-07disable POOL_DEBUG for releaseJonathan Gray
ok deraadt@
2021-04-04leave -betaTheo de Raadt
2021-03-31Make ddb's dependency on libz explicit.Visa Hankala
OK deraadt@ mpi@
2021-03-12Add RA, a new 11n Tx rate adaptation module for net80211.Stefan Sperling
Written by Christian Ehrhardt and myself, based on ieee80211_mira.c but with significant changes. The main difference is that RA does not attempt to precisely measure actual throughput but simply deducts a loss percentage from the theoretical throughput which can be achieved by a given MCS. Unlike MiRa, RA does not use timeouts to trigger probing. Probing is triggered only by changes in measured throughput. Unlike MiRA, RA doesn't care whether a frame was part of an A-MPDU. RA simply collects statistics for individual subframes. This makes reporting very easy for drivers and seems to work well enough in practice. Another difference is that drivers can report multi-rate retries properly via ieee80211_ra_add_stats_ht(mcs, total, fail) which can be called several times before ieee80211_ra_choose() selects a new Tx rate. There is no reason any issues could not be fixed in ieee8011_mira.c but I felt it was a good moment to burn the house down and start over. And since this code diverges from how MiRA is described in the research paper applying the "MiRA" label becomes inappropriate.
2021-02-25enable veb(4), it's time for wider testing.David Gwynne
apart from the semantic differences between bridge(4) and veb(4), the only missing bits in veb(4) is the transparent ipsec interception support, and spanning tree.
2021-02-23add veb(4), a Virtual Ethernet Bridge driver.David Gwynne
my intention is to replace bridge(4), but the way it works is different enough from from bridge that a name change is justified to distinguish them. it also makes it easier to commit it to the tree and work on it in parallel to bridge, and allows a window of migration. the main difference between veb(4) and bridge(4) is how they use interfaces as ports. veb takes over interfaces completely and only uses them to receive and transmit ethernet packets. bridge also use each interface as a port to the ethernet segment it's connected to, but also tries to continue supporting the use of the interface as a way to talk to the network stack on the local system. supporting the use of interfaces for both external and local communication is where most of my confusion with bridge comes from, both when i'm trying to operate it and also understand the code. changing this semantic is where most of the simplification in veb comes from compared to bridge. because veb takes over interfaces, the ethernet network set up on a veb is isolated from the host network stack. by default veb does not interact with pf or the ip (and mpls) stacks. to enable pf for ip frames going over veb ports link1 on the veb interface must be set. to have the stack interact with a veb network, vport interfaces must be created and added as ports to a veb. the vport interface driver is provided as part of veb, and is handled specially by veb. veb usually prevents the use of ports by the stack for sending an receiving packets, but that's why vports exist, so veb has special handling for them. veb already supports a lot of the other features that bridge has, including bridge rules and protected domains, but i got tired of working out of the tree and stopped implementing them. the main outstanding features is better address table management, the blocknonip flag on ports, transparent ipsec interception, and spanning tree. i may not bother with spanning tree unless someone tells me that they actually use it. the core ethernet learning bridge functionality is provided by the etherbridge code that was factored out of nvgre and bpe. veb is already (a lot) faster than bridge, and is better prepared to operate in parallel on multiple CPUs concurrently. thanks to hrvoje popovski for testing some earlier versions of this. discussed with many ok patrick@ jmatthew@
2021-02-21cut nvgre(4) over to use common etherbridge code.David Gwynne
the "ports" that nvgre provides to etherbridge are ip addresses used in the underlay network. ok patrick@ jmatthew@
2021-02-21cut bpe(4) over to using the common etherbridge code.David Gwynne
it's pretty straightforward since etherbridge was mostly based on this code in the first place. the etherbridge_ops that bpe provides to etherbridge set entries up to point at mac addresses in the underlay network. ok patrick@ jmatthew@
2021-02-21add etherbridge, the guts of a learning bridge that can be reused.David Gwynne
this allows for the factoring out of the learning bridge code i wrote in bpe and nvme, and should be reusable for other drivers needing a mac learning bridge. the core data structures are an etherbridge struct to represent the learning bridge, eb_entry structs for each mac address entry that the bridge knows about, and an etherbridge_ops struct that drivers fill in so that they can use this code. eb_entry structs are stored in a hash table made up of SMR_TAILQs to support lookups of entries quickly and concurrently in the forwarding path. they are also stored in a locked red-black tree to help manage the uniqueness of the mac address in the table. the etherbridge_ops handlers mostly deal with comparing and testing the "ports" associated with mac address table entries. the "port" that a mac address entry is associated with is opaque to the etherbridge code, which allows for this code to be used by nvgre and bpe which map mac addresses inside the bridge to addresses in their underlay networks. it also supports traditional bridges where "ports" are actual interfaces. ok patrick@ jmatthew@
2021-02-08Add a RAID1C (raid1 + crypto) softraid(8) discipline.Stefan Sperling
The RAID1C discipline encrypts data like the CRYPTO discipline, and accepts multiple chunks during creation and assembly like the RAID1 discipline. To deal with failing disks a RAID1C volume may be assembled with a smaller number of chunks than the volume was created with. The volume will then come up in degraded state. If the volume is now detached and assembled again with the correct number of chunks, any re-added chunks will require a rebuild. Consequently, assembling RAID1C volumes requires careful attention to the chunks passed via 'bioctl -l'. If a chunk is accidentally omitted from the command line during volume assembly, then this chunk will need to be rebuilt. At least one known-good chunk is required in order to assemble the volume. Like CRYPTO, RAID1C supports passphrase and key-disk authentication. Key-disk based volumes are assembled automatically if the key disk is present while the system is booting up. Unlike CRYPTO and RAID1, there is no boot support for RAID1C yet. RAID1C largely reuses existing code of RAID1 and CRYPTO disciplines. At present RAID1C's discipline-specific data structure is shared with that of the CRYPTO discipline to allow re-use of existing CRYPTO code. A custom RAID1C data structure would require CRYPTO code to access struct sr_crypto via a pointer instead of via a member field of struct sr_discipline. ok jsing@
2021-02-066.9-betaTheo de Raadt
2021-01-28Drop tcp_trace() from SMALL_KERNEL builds to make room on amd64 floppyVisa Hankala
OK deraadt@
2021-01-13kernel, sysctl(8): remove dead variable: tickadjcheloha
The global "tickadj" variable is a remnant of the old NTP adjustment code we used in the kernel before the current timecounter subsystem was imported from FreeBSD circa 2004 or 2005. Fifteen years hence it is completely vestigial and we can remove it. We probably should have removed it long ago but I guess it slipped through the cracks. FreeBSD removed it in 2002: https://cgit.freebsd.org/src/commit/?id=e1d970f1811e5e1e9c912c032acdcec6521b2a6d NetBSD and DragonflyBSD can probably remove it, too. We export tickadj via the kern.clockrate sysctl(2), so update sysctl.2 and sysctl(8) accordingly. Hypothetically this change could break someone's sysctl(8) parsing script. I don't think that's very likely. ok mvs@
2020-11-17Split imxiic(4) into the FDT-attachment code and the i.MX I2C codePatrick Wildt
in preparation for upcoming ACPI-attachment. ok kettenis@
2020-09-30renable POOL_DEBUGJonathan Gray
ok deraadt@
2020-09-306.8-currentJonathan Gray
ok deraadt@
2020-09-25take us out of -betaTheo de Raadt
2020-09-22disable POOL_DEBUG in preparation for releaseSebastian Benoit
ok deraadt@
2020-08-31crank to 6.8-betaTheo de Raadt
2020-07-20__main() is no longer used by any of our toolchainsTheo de Raadt
this fell out of a discussion with mortimer ok kettenis
2020-07-06tell the kernel how to build kstatDavid Gwynne
it's like ksyms, but different
2020-06-23enable wg(4).David Gwynne
this will make testing easier for everyone. from Jason A. Donenfeld and Matt Dunwoodie ok deraadt@ tobhe@
2020-06-21add a commented out entry for wg(4).David Gwynne
i think ive tempted fate enough for one day.
2020-06-21tell config how to build wg(4)David Gwynne
2020-06-17wire intrmap into the buildDavid Gwynne
2020-06-16wire stoeplitz code into the tree.David Gwynne
2020-05-09reenable POOL_DEBUGChristian Weisgerber
2020-05-07post-6.7 development continuesTheo de Raadt
2020-05-04leave -beta.Theo de Raadt
2020-04-26disable POOL_DEBUG in preparation for releaseSebastian Benoit
ok deraadt@
2020-04-15Add bse(4) device to unbreak build.Patrick Wildt
noticed by tobhe@ diff from kettenis@ (who forgot to commit this bit)
2020-04-05crank to 6.7-betaTheo de Raadt
2020-03-02Add rkdwhdmi(4), a driver for the HDMI transmitter found on the RockchipMark Kettenis
RK3399 SoC. ok patrick@
2020-01-24cleanup unused headers generated by configJonathan Gray
ok tedu@ krw@ deraadt@
2020-01-24remove unreferenced ncr5380 driver filesTed Unangst
ok jsg
2020-01-24Nuke references to zaurus zombies.Kenneth R Westerback
ok tedu@ jsg@
2020-01-21Import dt(4) a driver and framework for Dynamic Profiling.Martin Pieuchot
The design is fairly simple: events, in the form of descriptors on a ring, are being produced in any kernel context and being consumed by a userland process reading /dev/dt. Code and hooks are all guarded under '#if NDT > 0' so this commit shouldn't introduce any change as long as dt(4) is disable in GENERIC. ok kettenis@, visa@, jasper@, deraadt@
2020-01-11remove sli(4)Jonathan Gray
This driver was never completed. It only mapped memory and established an interrupt. ok krw@ mlarkin@ dlg@
2020-01-10remove dpt(4) driver for DPT EATA SCSI RAIDJonathan Gray
Not built since 2006, and a mail from 2004 mentions no one having hardware. Unsurprisingly it does not build with clang. ok mlarkin@ krw@ deraadt@
2019-12-05Move uvmexp_print() to a better place.Martin Pieuchot
ok mlarkin@
2019-11-05Kill uvm_deallocate(9) and use uvm_unmap() directly.Martin Pieuchot
ok kettenis@, semarie@, deraadt@
2019-11-04remove mobileip(4)David Gwynne
noone seems to use it, and we should not encourage people to use it by having it available. it's been disabled for most of the last release and noones asked for it in 6.6, so i'm taking that as an ok for this removal.
2019-10-12renable POOL_DEBUGChristian Weisgerber