Methods and apparatus for providing linear erasure codes. In one aspect, a method is provided for encoding a set of data values into a code symbol. The method includes determining an index sequence that defines selected data values to be used to generate the code symbol, and determining a value sequence that defines factors to be multiplied by the selected data values to generate the code symbol. The method also includes generating a packet header that describes the index sequence and the value sequence.