Reading the text alone, this could be confusing because it says:
1. it's a 31-bit integer, and
2. the most significant bit is reserved
...which implies a 2^30-1 maximum.

The range is 0 to 2^31-1, not 1 to 2^31-1.

s/bytes//