summaryrefslogtreecommitdiff
path: root/sys/dev/softraidvar.h
AgeCommit message (Collapse)Author
2008-11-25Add generic sr_scsi_done function that does the spl danceMarco Peereboom
2008-11-23softraid support for ata over ethernet (aoe). this includes a client andTed Unangst
part of a server. there's no configuration yet, and several other drawbacks, but it can be hammered into shape. i haven't moved the code forward in a year, and marco wants it in the tree to hack on.
2008-07-29Add rebuild mark so that we can restart a rebuild upon clean shutdown.Marco Peereboom
Fix a typo while here. The rebuild field was appended to the metadata so that we can automatically update from v2 to v3. The only visible difference will be that in the dmesg the SCSI version number will go from 002 to 003. ok deraad.
2008-07-20fill in variant and version components of the UUIDDamien Miller
pretty-print the UUID in RFC4122 form
2008-07-19Full rewrite of metadata handling. This fixes power failures and crashesMarco Peereboom
that caused illegal checksums. The new metadata code is more or less ready to deal with other vendor's metadata formats. While here clean up the name space. Fix thib's pool mess by adding removing bad flags in interrupt context. tested on macppc, amd64, i386, sparc64 & hppa sparc64 has issues with crypto however those do not seem to be softraid specific. help from okan@ ckuethe@ Will Backman and others
2008-06-25use pools for the uio and iovec allocations in sr_crypto_getcryptop()Thordur I. Bjornsson
instead of malloc; OK hshoexer@ and macro@
2008-06-14Use multiple crypto keys per volume. Each key is used to encrypt atDamien Miller
most 0.5TB of disk. This is well below P1619-2007's recommendation for AES-XTS of 1TB/key, but small enough so we can test that we actually use multiple keys with inexpensive hardware. We allocate 32 keys, so this will do for volumes up to 16TB. Fix a crypto session leak in sr_crypto_free_resources() much debugging help mshoexer@; ok hshoexer@ marco@
2008-06-14remove duplicate #defines; ok hshoexer@Damien Miller
2008-06-14implement a check code to determine whether the disk keys haveDamien Miller
been correctly decrypted using the masking key. The check code is a HMAC-SHA1 over the disk keys using a hash of the masking key. It should be slow enough to provide no useful brute force success oracle and should not leak significant data about the masking key or disk keys. ok hshoexer@ marco@
2008-06-13make the disk key masking algorithm a parameter and add some extraDamien Miller
reserved space in case we ever want to support a different scheme ok hshoexer@ marco@
2008-06-13Implement pbkdf2 in in bioctl to derive master key from a passphrase.Hans-Joerg Hoexer
ok marco djm
2008-06-13rearrange on-disk structures to the top of the file, wrap kernel-onlyDamien Miller
parts in #ifdef _KERNEL; makes softraidvar.h usable from userland ok hshoexer@
2008-06-12wrap definitions for softraid crypto "ifdef CRYPTO". Suggested by djmHans-Joerg Hoexer
2008-06-12Get mask keying for on-disk keys from user space and keep a "hint" for keyHans-Joerg Hoexer
generation used by user space in the meta data. Actually use the masking key for encryption and decryption of on-disk key at run time. ok djm marco
2008-06-12Add delete volume functionality.Marco Peereboom
discussed with krw, kettenis & drahn ok hshoexer
2008-06-11Move first pieces of crypto softraid into the tree. Still totallyHans-Joerg Hoexer
disabled, of course, and still work in progress. help by djm@, ok marco@
2008-02-22Propper encryption of on-disk-keys, prodded/suggest by tedu@ and djm@Hans-Joerg Hoexer
also use aes to generate proppper IVs ok marco@
2008-02-17Add "in blocks" to disk size discriptors so that I don't have to readMarco Peereboom
code single time I look at it.
2008-02-17Add propper key encryption.Hans-Joerg Hoexer
ok marco@
2008-02-15Add myself to the copyrights, ok marco@Chris Kuethe
2008-02-14Actually implement the crypto.Chris Kuethe
ok tedu@ marco@
2008-02-07Add optional metadata memebers.Marco Peereboom
Randomize Crypto password and add salt array. Add mock key encryption functions.
2008-02-05Shave off a few more bytes by moving IO collision detection into a genericMarco Peereboom
fucntion. Fix bug in the crypto code that could casuse data corruption as a bonus, bad cut & past tedu!
2008-02-05Create a generic function to validate IO instead of copying and pastingMarco Peereboom
same code in all disciplines. This shaves of a few bytes. crypto 3185 -> 2690 raid 0 2843 -> 2378 raid 1 3474 -> 2689
2008-02-03There is no such thing as RAIDCRYPTO so rename to CRYPTOMarco Peereboom
2008-01-29Improve performance dramatically by preventing severeal context switches.Marco Peereboom
Decrypt only once on entry or exit instead of on in and out regardless of direction. There is still room for improvement but this is the first stab. Tested by many ok tedu
2008-01-26Remove duplicate protosMarco Peereboom
2008-01-24Create chunk and state transition functions for RAID 0.Marco Peereboom
Move RAID 1 chunk and state transition functions into proper file. Let Crypto use RAID 1 chunk and state transition functions for now but this needs fixing.
2008-01-24Add IO path to RAID 0 discipline.Marco Peereboom
2008-01-19Add initial scaffold for RAID 0. No IO just yet.Marco Peereboom
Much prodding todd
2007-11-27also move softraid raid1 into own file, ok marcoTed Unangst
2007-11-27split crypto functions out into their own file, so softraid.c is not suchTed Unangst
a jungle. ok deraadt marco
2007-11-26rename RAID C to RAID CRYPTO. makes marco happierTed Unangst
2007-06-06correct format strings for large types; ok marcoTheo de Raadt
2007-06-06now that all partition size/offsets are potentially 64-bit, change theTheo de Raadt
type of all variables to daddr64_t. this includes the APIs for XXsize() and XXdump(), all range checks inside bio drivers, internal variables for disklabel handling, and even uvm's swap offsets. re-read numerous times by otto, miod, krw, thib to look for errors
2007-06-02Add optional metadata element. This will be needed in the future forMarco Peereboom
certain disciplines.
2007-06-01Add additional flag to indicate that we have a metdadata io pending; thisMarco Peereboom
way if we shut down the system we can make sure that it makes it onto disk before scsibus detach. ok dlg
2007-05-31Fix redundancy for RAID 1. Now one can pull a disk and continue running.Marco Peereboom
help from drahn
2007-05-31correct misspelled mail address in copyright statement, marco@ okAlexander von Gernler
2007-05-30Sync after the metadata is saved.Marco Peereboom
2007-05-30add basic support for a crypto(9) backed raid C disciplineTed Unangst
ok marco
2007-05-29Add dirty bit for volumesMarco Peereboom
2007-05-29Add shutdownhook for all disciplinesMarco Peereboom
2007-05-29Re-add sync.Marco Peereboom
ok tedu
2007-05-28Make disk assembly smarter and add two qualifiers to it:Marco Peereboom
1) noautoassemble; when set the softraid volume will not be assembled during autoconf. 2) force; when set it will overwrite metadata on disk While writing this I ran into 3 bugs that were fixed along the way 1) bcopy in sr_read_meta was copying data to the wrong pointer 2) in sr_read_meta the wrong metadata was coppied into the chunk 3) sr_free_discipline was freing a pointer that wasn't malloc'd ok dlg
2007-05-26Assemble disks at boot time. This is not complete yet since it does notMarco Peereboom
order and roams volumes yet but is useful enough in most environments.
2007-05-24create separate function to validate metadata.Marco Peereboom
remove seeding of checksums.
2007-05-23Remove all vnode dependencies so that we can bootstrap softraid volumes.Marco Peereboom
Code from tedu. Replace all kernel string magic with dev_t passed in from bioctl. Suggestion from beck and tedu. Help from miod. Fix chunk crc. ok tedu
2007-05-08Assemble disk from user supplied metadata.Marco Peereboom
Verify all metada to make sure it is correct; this includes sorting the chunks Add 2 new functions for printing uuid and metadata.
2007-05-01Refactor metadata code; this is the first step to be able to bringupMarco Peereboom
devices at boot time. Reset the metadata versions to 1 until this solidifies we wont change these.