From: Jon Maloy <jmaloy@redhat.com>
To: sbrivio@redhat.com, dgibson@redhat.com,
david@gibson.dropbear.id.au, jmaloy@redhat.com,
passt-dev@passt.top
Subject: [PATCH v12 0/9] Use true MAC address of LAN local remote hosts
Date: Thu, 2 Oct 2025 20:34:03 -0400 [thread overview]
Message-ID: <20251003003412.588801-1-jmaloy@redhat.com> (raw)
Bug #120 asks us to use the true MAC addresses of LAN local
remote hosts, since some programs need this information.
These commits introduces this for ARP, NDP, UDP, TCP and
ICMP.
---
v3: Updated according to feedback from Stefano and David:
- Made the ARP/NDP lookup call filter out the requested address
by itself, qualified by the index if the template interface
- Moved the flow specific MAC address from struct flowside to
struct flow_common.
v4: - Updated according to feedback from David and Stefan
- Added a cache table for ARP/NDP table contents
v5: - Updated according to feedback from David and Stefan
- Added cache table entries to FIFO/LRU queue
- New criteria for when to consult ARP/NDP
v6: - Simplified and merged mac cache table commits
- Other changes after feedback from David.
v7: - Fixes in patch #2 based on feedback from David
and Stefano.
v8: - Redesigned netlink and cache table part to be based
on a subscription model.
v8: - Small fix to patch #2 so that we cover the case
when a MAC addess for a host has changed.
- Added a commit where we send a gratuitous ARP/
unsolicitated NA to the guest when a new host is
added to the neighbour cache table.
v10: - Some fixes after feedback from David Gibson
- Reordered: Moved patch #9 to position #3.
- Added synchronization step between ARP/NDP
table contents and the neigbour table at
initialization. This reduces the number of
"false" ARP/NDP replies drastically, but not
completly.
- (Next step could be to scan over the flow table
and update affeced entries when we receive
a MAC address update.)
v11: - Corrected the gratuitous ARP implementation to use
the "ARP Announcement" model instead of the
"Gratuitous ARP reply" model.
v12: - Updated based on feedback from David and Stefano
- Added special handling of default GW and loopback
addresses.
Jon Maloy (8):
netlink: add subsciption on changes in NDP/ARP table
fwd: Add cache table for ARP/NDP contents
arp/ndp: respond with true MAC address of LAN local remote hosts
flow: add MAC address of LAN local remote hosts to flow
udp: forward external source MAC address through tap interface
tcp: forward external source MAC address through tap interface
tap: change signature of function tap_push_l2h()
icmp: let icmp use mac address from flowside structure
arp.c | 9 ++-
conf.c | 1 +
epoll_type.h | 2 +
flow.c | 2 +
flow.h | 2 +
fwd.c | 167 +++++++++++++++++++++++++++++++++++++++++++++++--
fwd.h | 9 +++
icmp.c | 8 ++-
inany.c | 1 +
ndp.c | 10 ++-
netlink.c | 119 +++++++++++++++++++++++++++++++++++
netlink.h | 4 ++
passt.c | 17 +++--
passt.h | 3 +-
pasta.c | 2 +-
tap.c | 24 ++++---
tap.h | 7 ++-
tcp.c | 18 ++++--
tcp.h | 2 +-
tcp_buf.c | 37 +++++------
tcp_internal.h | 4 +-
tcp_vu.c | 5 +-
udp.c | 57 ++++++++++-------
udp.h | 2 +-
24 files changed, 429 insertions(+), 83 deletions(-)
--
2.50.1
next reply other threads:[~2025-10-03 0:34 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-03 0:34 Jon Maloy [this message]
2025-10-03 0:34 ` [PATCH v12 1/9] netlink: add subsciption on changes in NDP/ARP table Jon Maloy
2025-10-03 4:01 ` David Gibson
2025-10-06 22:33 ` Stefano Brivio
2025-10-03 0:34 ` [PATCH v12 2/9] fwd: Add cache table for ARP/NDP contents Jon Maloy
2025-10-03 1:03 ` Jon Maloy
2025-10-03 4:31 ` David Gibson
2025-10-05 15:52 ` Jon Maloy
2025-10-06 22:33 ` Stefano Brivio
2025-10-07 3:33 ` David Gibson
2025-10-06 22:40 ` Stefano Brivio
2025-10-03 0:34 ` [PATCH v12 3/9] arp/ndp: send ARP announcement / unsolicited NA when neigbour entry added Jon Maloy
2025-10-03 4:41 ` David Gibson
2025-10-07 10:10 ` Stefano Brivio
2025-10-06 22:51 ` Stefano Brivio
2025-10-03 0:34 ` [PATCH v12 4/9] arp/ndp: respond with true MAC address of LAN local remote hosts Jon Maloy
2025-10-03 4:48 ` David Gibson
2025-10-03 0:34 ` [PATCH v12 5/9] flow: add MAC address of LAN local remote hosts to flow Jon Maloy
2025-10-03 0:34 ` [PATCH v12 6/9] udp: forward external source MAC address through tap interface Jon Maloy
2025-10-03 4:52 ` David Gibson
2025-10-03 0:34 ` [PATCH v12 7/9] tcp: " Jon Maloy
2025-10-03 4:54 ` David Gibson
2025-10-03 0:34 ` [PATCH v12 8/9] tap: change signature of function tap_push_l2h() Jon Maloy
2025-10-03 0:34 ` [PATCH v12 9/9] icmp: let icmp use mac address from flowside structure Jon Maloy
2025-10-03 4:57 ` David Gibson
2025-10-03 5:33 ` [PATCH v12 0/9] Use true MAC address of LAN local remote hosts David Gibson
2025-10-05 13:39 ` Jon Maloy
2025-10-07 0:56 ` David Gibson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251003003412.588801-1-jmaloy@redhat.com \
--to=jmaloy@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=dgibson@redhat.com \
--cc=passt-dev@passt.top \
--cc=sbrivio@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://passt.top/passt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).