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