xref: /openbmc/linux/samples/bpf/net_shared.h (revision e7e6c774)
1e69fe845SDaniel T. Lee // SPDX-License-Identifier: GPL-2.0
2e69fe845SDaniel T. Lee #ifndef _NET_SHARED_H
3e69fe845SDaniel T. Lee #define _NET_SHARED_H
4e69fe845SDaniel T. Lee 
5c2f4f559SDaniel T. Lee #define AF_INET		2
6c2f4f559SDaniel T. Lee #define AF_INET6	10
7c2f4f559SDaniel T. Lee 
8e69fe845SDaniel T. Lee #define ETH_ALEN 6
9e69fe845SDaniel T. Lee #define ETH_P_802_3_MIN 0x0600
10e69fe845SDaniel T. Lee #define ETH_P_8021Q 0x8100
11e69fe845SDaniel T. Lee #define ETH_P_8021AD 0x88A8
12e69fe845SDaniel T. Lee #define ETH_P_IP 0x0800
13e69fe845SDaniel T. Lee #define ETH_P_IPV6 0x86DD
14e69fe845SDaniel T. Lee #define ETH_P_ARP 0x0806
15e69fe845SDaniel T. Lee #define IPPROTO_ICMPV6 58
16e69fe845SDaniel T. Lee 
17c2f4f559SDaniel T. Lee #define TC_ACT_OK		0
18c2f4f559SDaniel T. Lee #define TC_ACT_SHOT		2
19c2f4f559SDaniel T. Lee 
20*e7e6c774SDaniel T. Lee #define IFNAMSIZ 16
21*e7e6c774SDaniel T. Lee 
22e69fe845SDaniel T. Lee #if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && \
23e69fe845SDaniel T. Lee 	__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
24e69fe845SDaniel T. Lee #define bpf_ntohs(x)		__builtin_bswap16(x)
25e69fe845SDaniel T. Lee #define bpf_htons(x)		__builtin_bswap16(x)
26e69fe845SDaniel T. Lee #elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && \
27e69fe845SDaniel T. Lee 	__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
28e69fe845SDaniel T. Lee #define bpf_ntohs(x)		(x)
29e69fe845SDaniel T. Lee #define bpf_htons(x)		(x)
30e69fe845SDaniel T. Lee #else
31e69fe845SDaniel T. Lee # error "Endianness detection needs to be set up for your compiler?!"
32e69fe845SDaniel T. Lee #endif
33e69fe845SDaniel T. Lee 
34e69fe845SDaniel T. Lee #endif
35