On 2025-09-25 02:38, David Gibson wrote:
On Wed, Sep 24, 2025 at 07:32:43PM -0400, Jon Maloy wrote:
On 2025-09-24 18:18, Jon Maloy wrote:
On 2025-09-23 23:22, David Gibson wrote:
On Tue, Sep 23, 2025 at 09:13:30PM -0400, Jon Maloy wrote:
[...]
--- a/fwd.c +++ b/fwd.c @@ -26,6 +26,8 @@ #include "passt.h" #include "lineread.h" #include "flow_table.h" +#include "arp.h" +#include "ndp.h" /* Empheral port range: values from RFC 6335 */ static in_port_t fwd_ephemeral_min = (1 << 15) + (1 << 14); @@ -129,6 +131,15 @@ void fwd_neigh_mac_cache_alloc(const struct ctx *c, memcpy(&e->addr, addr, sizeof(*addr)); memcpy(e->mac, mac, ETH_ALEN); + + /* Send gratuitous ARP / unsolicited NA for the new mapping */
AFAICT this doesn't actually implement what the commit message describes - it seems to always send an ARP/NA when the neighbour table is updated.
No. Check the code again.
Still not seeing it, I'm going to need a more specific pointer to what I've missed.
Look in fwd_neigh_mac_cache_alloc(). If the entry already exists, the function updates the mac address just to be on the safe side, but then returns without sending any ARP/NA. Or do I misunderstand your question? /jon