On Fri, Oct 30, 2020 at 9:31 AM Willem de Bruijn <willemdebruijn.ker...@gmail.com> wrote: > > > Add an fh->ea2 check to the initial checks in fr_rx. fh->ea2 == 1 means > > the second address byte is the final address byte. We only support the > > case where the address length is 2 bytes. > > Can you elaborate a bit for readers not intimately familiar with the codebase? > > Is there something in the following code that has this implicit > assumption on 2-byte address lengths?
Yes, the address length must be 2 bytes, otherwise the 3rd and 4th bytes would not be the control and protocol fields as we assumed in the code. The frame format is specified in RFC 2427 (https://tools.ietf.org/html/rfc2427). We can see the overall frame format on Page 3. If the address length is longer than 2 bytes, all the following fields will be shifted behind.