It turns the last 3 bits to zero and keeps the rest as is. It makes an explicit assumption that the `int` has more than 3 bits and an implicit assumption that it has more than 4 bits. Other than that, there is an explicit assumption that packets will be smaller than 0x100(+lots of zeroes). If we should support packets larger than 2^16 bytes, we'd had to change a lot of other stuff as well (like adding TCP jumbo frame support).