On 28 October 2015 at 19:13, Laurent Vivier <laur...@vivier.eu> wrote: > in PACKET(7) : > > packet_socket = socket(AF_PACKET, int socket_type, int protocol); > [...] > protocol is the IEEE 802.3 protocol > number in network order. See the <linux/if_ether.h> include file for a > list of allowed protocols. When protocol is set to htons(ETH_P_ALL) > then all protocols are received. All incoming packets of that protocol > type will be passed to the packet socket before they are passed to the > protocols implemented in the kernel. > [...] > Compatibility > > In Linux 2.0, the only way to get a packet socket was by calling > socket(AF_INET, SOCK_PACKET, protocol). > > We need to tswap16() the protocol because on big-endian, the ABI is > waiting for, for instance for ETH_P_ALL, 0x0003 (big endian == > network order), whereas on little-endian it is waiting for 0x0300. > > Signed-off-by: Laurent Vivier <laur...@vivier.eu> > ---
Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> thanks -- PMM