summaryrefslogtreecommitdiffstats
path: root/src/vnet/l2/l2_arp_term.c
diff options
context:
space:
mode:
authorStanislav Zaikin <zstaseg@gmail.com>2022-05-10 20:50:36 +0200
committerJohn Lo <lojultra2020@outlook.com>2022-08-30 18:37:20 +0000
commit7dc351f6895d94eaee1fd04672368cc425e14103 (patch)
tree36d860e467e9b9ea081eb36a85f654d127db57f7 /src/vnet/l2/l2_arp_term.c
parentc37ce790763fac7ce890a28120db3b16425b1ceb (diff)
l2: skip arp term for locally originated packets
Mark arp packet as locally originated when probing/replying and don't apply any arp-term logic against it. Type: fix Signed-off-by: Stanislav Zaikin <zstaseg@gmail.com> Change-Id: I305ff5cac8cac456decf92f21b961aa4ce286079
Diffstat (limited to 'src/vnet/l2/l2_arp_term.c')
-rw-r--r--src/vnet/l2/l2_arp_term.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vnet/l2/l2_arp_term.c b/src/vnet/l2/l2_arp_term.c
index d0734328759..594ee8e3622 100644
--- a/src/vnet/l2/l2_arp_term.c
+++ b/src/vnet/l2/l2_arp_term.c
@@ -290,6 +290,9 @@ arp_term_l2bd (vlib_main_t * vm,
ethertype0 = clib_net_to_host_u16 (*(u16 *) (l3h0 - 2));
arp0 = (ethernet_arp_header_t *) l3h0;
+ if (p0->flags & VNET_BUFFER_F_LOCALLY_ORIGINATED)
+ goto next_l2_feature;
+
if (ethertype0 != ETHERNET_TYPE_ARP)
goto check_ip6_nd;