xref: /openbmc/linux/samples/bpf/xdp_tx_iptunnel_common.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1*25763b3cSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
212d8bb64SMartin KaFai Lau /* Copyright (c) 2016 Facebook
312d8bb64SMartin KaFai Lau  */
412d8bb64SMartin KaFai Lau #ifndef _SAMPLES_BPF_XDP_TX_IPTNL_COMMON_H
512d8bb64SMartin KaFai Lau #define _SAMPLES_BPF_XDP_TX_IPTNL_COMMON_H
612d8bb64SMartin KaFai Lau 
712d8bb64SMartin KaFai Lau #include <linux/types.h>
812d8bb64SMartin KaFai Lau 
912d8bb64SMartin KaFai Lau #define MAX_IPTNL_ENTRIES 256U
1012d8bb64SMartin KaFai Lau 
1112d8bb64SMartin KaFai Lau struct vip {
1212d8bb64SMartin KaFai Lau 	union {
1312d8bb64SMartin KaFai Lau 		__u32 v6[4];
1412d8bb64SMartin KaFai Lau 		__u32 v4;
1512d8bb64SMartin KaFai Lau 	} daddr;
1612d8bb64SMartin KaFai Lau 	__u16 dport;
1712d8bb64SMartin KaFai Lau 	__u16 family;
1812d8bb64SMartin KaFai Lau 	__u8 protocol;
1912d8bb64SMartin KaFai Lau };
2012d8bb64SMartin KaFai Lau 
2112d8bb64SMartin KaFai Lau struct iptnl_info {
2212d8bb64SMartin KaFai Lau 	union {
2312d8bb64SMartin KaFai Lau 		__u32 v6[4];
2412d8bb64SMartin KaFai Lau 		__u32 v4;
2512d8bb64SMartin KaFai Lau 	} saddr;
2612d8bb64SMartin KaFai Lau 	union {
2712d8bb64SMartin KaFai Lau 		__u32 v6[4];
2812d8bb64SMartin KaFai Lau 		__u32 v4;
2912d8bb64SMartin KaFai Lau 	} daddr;
3012d8bb64SMartin KaFai Lau 	__u16 family;
3112d8bb64SMartin KaFai Lau 	__u8 dmac[6];
3212d8bb64SMartin KaFai Lau };
3312d8bb64SMartin KaFai Lau 
3412d8bb64SMartin KaFai Lau #endif
35