summaryrefslogtreecommitdiff
path: root/sys/conf
AgeCommit message (Collapse)Author
2022-04-05re-enable POOL_DEBUGChristian Weisgerber
2022-04-05back to working on 7.1-currentTheo de Raadt
2022-04-05disable pool debug for releaseTheo de Raadt
2022-03-29close enough to release, we drop -betaTheo de Raadt
2022-03-19Add 11ac/VHT Tx rate adaptation support to net80211.Stefan Sperling
Based on our existing RA module for 11n. The main difference is in dealing with 11ac-specific ratesets. Tx rate selection heuristics remain identical. Only supports 80MHz channels, for now. 160MHz is left for future work. ok sthen@
2022-03-08remove files used by isa radio drivers removed in 2016Jonathan Gray
lm700x: az, rt tc921x: sfr pt2254a: sfr, sf2r
2022-03-07remove WD33C93 SCSI codeJonathan Gray
used by wdsc on sgi (removed in 2021) ok krw@
2022-03-06remove unused usbdev and btbus attributesJonathan Gray
2022-02-20we should be 7.1-beta not 7.1-currentStuart Henderson
2022-02-20move to 7.1-betaTheo de Raadt
2022-02-16rewrite vxlan to better fit the current kernel infrastructure.David Gwynne
the big change is removing the integration with and reliance on bridge(4) for learning vxlan endpoints. we have the etherbridge layer now (which is used by veb, nvgre, bpe, etc) so vxlan can operate independently of bridge(4) (or any other driver) while still dynamically learning about other endpoints. vxlan now uses the udp socket upcall mechanism to receive packets. this means it actually creates and binds udp sockets to use rather adding code in the udp layer for stealing packets from the udp layer. i think it's also important to note that this adds loop prevention to the code. this stops a vxlan interface being used to transmit a packet that was encapsulated in itself. i want to clear this out of my tree where it's been sitting for nearly a year. noone seems too concerned with the change either way. ok claudio@
2022-02-08The suspend/resume code is a sticky mess of MI, MD, and ACPI sequencing.Theo de Raadt
This splits out the MI sequencing, backing it with per-architecture helper functions. Further steps will be neccesary because ACPI and MD are too tightly coupled, but soon we'll be able to use this code for more architectures (which depends on figuring out the lowest-level cpu sleeping method) ok kettenis
2022-01-09Add attribute for indicating sdhc dependency.Visa Hankala
OK deraadt@ phessler@
2022-01-04remove the last part of driver for aic-6250 scsi on aviionJonathan Gray
2021-12-23Template for option WITNESS is in the architecture GENERIC.MP fileAlexander Bluhm
if it is supported. Remove it from the global GENERIC config. OK visa@ claudio@
2021-11-11Retire switch(4) it never really was production ready and the OpenFlowClaudio Jeker
API implemented is a deadend. OK akoshibe@ yasuoka@ deraadt@ kn@ patrick@ sthen@
2021-11-08remove reference to ieee80211_mira.c which has been sent to the AtticStefan Sperling
2021-09-22enable POOL_DEBUG again.Sebastian Benoit
2021-09-22we are now working on 7.0-currentTheo de Raadt
2021-09-19disable pool debug for releaseSebastian Benoit
ok deraadt@
2021-09-13take us out of betaTheo de Raadt
2021-09-03add kprobes provider for dtJasper Lievisse Adriaanse
this allows us to dynamically trace function boundaries with btrace by patching prologues and epilogues with a breakpoint upon which the handler records the data, sends it back to userland for btrace to consume. currently it's hidden behind DDBPROF, and there is still a lot to cleanup and improve, but basic scripts that observe return codes from a probed function work. from Tom Rollet, with various changes by me feedback and ok mpi@
2021-08-177.0-betaTheo de Raadt
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