mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 05:48:40 +00:00
![Martin KaFai Lau](/assets/img/avatar_default.png)
The XDP prog checks if the incoming packet matches any VIP:PORT combination in the BPF hashmap. If it is, it will encapsulate the packet with a IPv4/v6 header as instructed by the value of the BPF hashmap and then XDP_TX it out. The VIP:PORT -> IP-Encap-Info can be specified by the cmd args of the user prog. Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Martin KaFai Lau <kafai@fb.com> Signed-off-by: David S. Miller <davem@davemloft.net>
37 lines
634 B
C
37 lines
634 B
C
/* Copyright (c) 2016 Facebook
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of version 2 of the GNU General Public
|
|
* License as published by the Free Software Foundation.
|
|
*/
|
|
#ifndef _SAMPLES_BPF_XDP_TX_IPTNL_COMMON_H
|
|
#define _SAMPLES_BPF_XDP_TX_IPTNL_COMMON_H
|
|
|
|
#include <linux/types.h>
|
|
|
|
#define MAX_IPTNL_ENTRIES 256U
|
|
|
|
struct vip {
|
|
union {
|
|
__u32 v6[4];
|
|
__u32 v4;
|
|
} daddr;
|
|
__u16 dport;
|
|
__u16 family;
|
|
__u8 protocol;
|
|
};
|
|
|
|
struct iptnl_info {
|
|
union {
|
|
__u32 v6[4];
|
|
__u32 v4;
|
|
} saddr;
|
|
union {
|
|
__u32 v6[4];
|
|
__u32 v4;
|
|
} daddr;
|
|
__u16 family;
|
|
__u8 dmac[6];
|
|
};
|
|
|
|
#endif
|