
Hi ML,
I'm working on a mips target and I used qemu_mips target to simulate my target (that I hope to have in the next week...)
Following my activities I noticed that IP_t structure is no defined with attribute "packed". I noticed this issue because using a self-made toolchain (gcc4.2.4+binutils2.8+uclibc0.9.30) the compiler has aligned all bytes to 32bit boundary. This is not ok, because the packets IP_t can be non aligned (see the /net/net.c PingSend function, for an example).
The dirty solution is to define the structure with the __attribute__((__packed__))... but, from my point of view, a better packet forging mechanism should be implemented into the net.c stack.
I attached a trivial patch that solved the issue on my target.
Any comments is welcome.
best regards,
luigi