aboutgitcodebugslistschat
path: root/passt.c
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2024-02-29 15:15:32 +1100
committerStefano Brivio <sbrivio@redhat.com>2024-03-12 01:34:45 +0100
commit3af5e9fdba4cbff1389e507489578f81d21a5181 (patch)
treec06a9e3bb3ed2a9c72dc08d0d4c51121e4eb8efa /passt.c
parent383a6f67e50bbaf63427c9a2dddfd0c22a886160 (diff)
downloadpasst-3af5e9fdba4cbff1389e507489578f81d21a5181.tar
passt-3af5e9fdba4cbff1389e507489578f81d21a5181.tar.gz
passt-3af5e9fdba4cbff1389e507489578f81d21a5181.tar.bz2
passt-3af5e9fdba4cbff1389e507489578f81d21a5181.tar.lz
passt-3af5e9fdba4cbff1389e507489578f81d21a5181.tar.xz
passt-3af5e9fdba4cbff1389e507489578f81d21a5181.tar.zst
passt-3af5e9fdba4cbff1389e507489578f81d21a5181.zip
icmp: Store ping socket information in flow table
Currently icmp_id_map[][] stores information about ping sockets in a bespoke structure. Move the same information into new types of flow in the flow table. To match that change, replace the existing ICMP timer with a flow-based timer for expiring ping sockets. This has the advantage that we only need to scan the active flows, not all possible ids. We convert icmp_id_map[][] to point to the flow table entries, rather than containing its own information. We do still use that array for locating the right ping flows, rather than using a "flow native" form of lookup for the time being. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> [sbrivio: Update id_sock description in comment to icmp_ping_new()] Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'passt.c')
-rw-r--r--passt.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/passt.c b/passt.c
index a061f2b..0f79492 100644
--- a/passt.c
+++ b/passt.c
@@ -106,8 +106,6 @@ static void post_handler(struct ctx *c, const struct timespec *now)
CALL_PROTO_HANDLER(c, now, tcp, TCP);
/* NOLINTNEXTLINE(bugprone-branch-clone): intervals can be the same */
CALL_PROTO_HANDLER(c, now, udp, UDP);
- /* NOLINTNEXTLINE(bugprone-branch-clone): intervals can be the same */
- CALL_PROTO_HANDLER(c, now, icmp, ICMP);
flow_defer_handler(c, now);
#undef CALL_PROTO_HANDLER
@@ -288,9 +286,6 @@ int main(int argc, char **argv)
if ((!c.no_udp && udp_init(&c)) || (!c.no_tcp && tcp_init(&c)))
exit(EXIT_FAILURE);
- if (!c.no_icmp)
- icmp_init();
-
proto_update_l2_buf(c.mac_guest, c.mac);
if (c.ifi4 && !c.no_dhcp)