There are 3 ways to implement raid-6: 1. Using “Diagonal Parity” – this is patented, patent held by NetApp. 2. Using “Even-Odd”, similar to “Diagonal Parity” – this is patented, patent held by IBM. 3a. Using Reed-Solomon to generate Q.  This is not patented and is the algorithm used by linux stock md-layer (and probably btrfs though I haven’t looked at their source). 3b. Using "Liberation Codes" to generate Q.  Not sure if anyone's implemented this. https://www.usenix.org/legacy/events