projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
610cd93
)
sample: bpf: xdp_router_ipv4: Allow the kernel to send arp requests
author
Lorenzo Bianconi
<lorenzo@kernel.org>
Wed, 25 May 2022 09:44:27 +0000
(11:44 +0200)
committer
Andrii Nakryiko
<andrii@kernel.org>
Thu, 2 Jun 2022 23:26:54 +0000
(16:26 -0700)
Forward the packet to the kernel if the gw router mac address is missing
in to trigger ARP discovery.
Fixes: 85bf1f51691c ("samples: bpf: Convert xdp_router_ipv4 to XDP samples helper")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link:
https://lore.kernel.org/bpf/60bde5496d108089080504f58199bcf1143ea938.1653471558.git.lorenzo@kernel.org
samples/bpf/xdp_router_ipv4.bpf.c
patch
|
blob
|
history
diff --git
a/samples/bpf/xdp_router_ipv4.bpf.c
b/samples/bpf/xdp_router_ipv4.bpf.c
index 248119ca79387027cd41fdd7672e0f5ad5c51bbe..0643330d1d2e5e0191173e5c5120dbd5ec1d2d4c 100644
(file)
--- a/
samples/bpf/xdp_router_ipv4.bpf.c
+++ b/
samples/bpf/xdp_router_ipv4.bpf.c
@@
-150,6
+150,15
@@
int xdp_router_ipv4_prog(struct xdp_md *ctx)
dest_mac = bpf_map_lookup_elem(&arp_table,
&prefix_value->gw);
+ if (!dest_mac) {
+ /* Forward the packet to the kernel in
+ * order to trigger ARP discovery for
+ * the default gw.
+ */
+ if (rec)
+ NO_TEAR_INC(rec->xdp_pass);
+ return XDP_PASS;
+ }
}
}