188091ff5SToshiaki Makita // SPDX-License-Identifier: GPL-2.0
288091ff5SToshiaki Makita 
388091ff5SToshiaki Makita #include <linux/bpf.h>
43e689141SToke Høiland-Jørgensen #include <bpf/bpf_helpers.h>
588091ff5SToshiaki Makita 
61639b17cSAndrii Nakryiko struct {
71639b17cSAndrii Nakryiko 	__uint(type, BPF_MAP_TYPE_DEVMAP);
81639b17cSAndrii Nakryiko 	__uint(max_entries, 8);
91639b17cSAndrii Nakryiko 	__uint(key_size, sizeof(int));
101639b17cSAndrii Nakryiko 	__uint(value_size, sizeof(int));
111639b17cSAndrii Nakryiko } tx_port SEC(".maps");
1288091ff5SToshiaki Makita 
1388091ff5SToshiaki Makita SEC("redirect_map_0")
xdp_redirect_map_0(struct xdp_md * xdp)1488091ff5SToshiaki Makita int xdp_redirect_map_0(struct xdp_md *xdp)
1588091ff5SToshiaki Makita {
1688091ff5SToshiaki Makita 	return bpf_redirect_map(&tx_port, 0, 0);
1788091ff5SToshiaki Makita }
1888091ff5SToshiaki Makita 
1988091ff5SToshiaki Makita SEC("redirect_map_1")
xdp_redirect_map_1(struct xdp_md * xdp)2088091ff5SToshiaki Makita int xdp_redirect_map_1(struct xdp_md *xdp)
2188091ff5SToshiaki Makita {
2288091ff5SToshiaki Makita 	return bpf_redirect_map(&tx_port, 1, 0);
2388091ff5SToshiaki Makita }
2488091ff5SToshiaki Makita 
2588091ff5SToshiaki Makita SEC("redirect_map_2")
xdp_redirect_map_2(struct xdp_md * xdp)2688091ff5SToshiaki Makita int xdp_redirect_map_2(struct xdp_md *xdp)
2788091ff5SToshiaki Makita {
2888091ff5SToshiaki Makita 	return bpf_redirect_map(&tx_port, 2, 0);
2988091ff5SToshiaki Makita }
3088091ff5SToshiaki Makita 
3188091ff5SToshiaki Makita char _license[] SEC("license") = "GPL";
32