aboutgitcodebugslistschat
path: root/passt.c
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2024-02-29 15:15:34 +1100
committerStefano Brivio <sbrivio@redhat.com>2024-03-12 01:49:05 +0100
commit4779dfe12fd0aa6d94f9029e430d55f60f4c581f (patch)
treed22ce88dd4b322cbf6ce793d58e7e3edfcadc717 /passt.c
parent02cbdb0b86fb8b03026bc542606333ebfc819f0f (diff)
downloadpasst-4779dfe12fd0aa6d94f9029e430d55f60f4c581f.tar
passt-4779dfe12fd0aa6d94f9029e430d55f60f4c581f.tar.gz
passt-4779dfe12fd0aa6d94f9029e430d55f60f4c581f.tar.bz2
passt-4779dfe12fd0aa6d94f9029e430d55f60f4c581f.tar.lz
passt-4779dfe12fd0aa6d94f9029e430d55f60f4c581f.tar.xz
passt-4779dfe12fd0aa6d94f9029e430d55f60f4c581f.tar.zst
passt-4779dfe12fd0aa6d94f9029e430d55f60f4c581f.zip
icmp: Use 'flowside' epoll references for ping sockets
Currently ping sockets use a custom epoll reference type which includes the ICMP id. However, now that we have entries in the flow table for ping flows, finding that is sufficient to get everything else we want, including the id. Therefore remove the icmp_epoll_ref type and use the general 'flowside' field for ping sockets. Having done this we no longer need separate EPOLL_TYPE_ICMP and EPOLL_TYPE_ICMPV6 reference types, because we can easily determine which case we have from the flow type. Merge both types into EPOLL_TYPE_PING. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'passt.c')
-rw-r--r--passt.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/passt.c b/passt.c
index 0f79492..f430648 100644
--- a/passt.c
+++ b/passt.c
@@ -66,8 +66,7 @@ char *epoll_type_str[] = {
[EPOLL_TYPE_TCP_LISTEN] = "listening TCP socket",
[EPOLL_TYPE_TCP_TIMER] = "TCP timer",
[EPOLL_TYPE_UDP] = "UDP socket",
- [EPOLL_TYPE_ICMP] = "ICMP socket",
- [EPOLL_TYPE_ICMPV6] = "ICMPv6 socket",
+ [EPOLL_TYPE_PING] = "ICMP/ICMPv6 ping socket",
[EPOLL_TYPE_NSQUIT_INOTIFY] = "namespace inotify watch",
[EPOLL_TYPE_NSQUIT_TIMER] = "namespace timer watch",
[EPOLL_TYPE_TAP_PASTA] = "/dev/net/tun device",
@@ -377,11 +376,8 @@ loop:
case EPOLL_TYPE_UDP:
udp_sock_handler(&c, ref, eventmask, &now);
break;
- case EPOLL_TYPE_ICMP:
- icmp_sock_handler(&c, AF_INET, ref);
- break;
- case EPOLL_TYPE_ICMPV6:
- icmp_sock_handler(&c, AF_INET6, ref);
+ case EPOLL_TYPE_PING:
+ icmp_sock_handler(&c, ref);
break;
default:
/* Can't happen */