From 4779dfe12fd0aa6d94f9029e430d55f60f4c581f Mon Sep 17 00:00:00 2001 From: David Gibson Date: Thu, 29 Feb 2024 15:15:34 +1100 Subject: 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 Signed-off-by: Stefano Brivio --- icmp.h | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) (limited to 'icmp.h') diff --git a/icmp.h b/icmp.h index 4f695da..5ce22b5 100644 --- a/icmp.h +++ b/icmp.h @@ -11,23 +11,12 @@ struct ctx; struct icmp_ping_flow; -void icmp_sock_handler(const struct ctx *c, sa_family_t af, union epoll_ref ref); +void icmp_sock_handler(const struct ctx *c, union epoll_ref ref); int icmp_tap_handler(const struct ctx *c, uint8_t pif, sa_family_t af, const void *saddr, const void *daddr, const struct pool *p, const struct timespec *now); void icmp_init(void); -/** - * union icmp_epoll_ref - epoll reference portion for ICMP tracking - * @v6: Set for IPv6 sockets or connections - * @u32: Opaque u32 value of reference - * @id: Associated echo identifier, needed if bind() fails - */ -union icmp_epoll_ref { - uint16_t id; - uint32_t u32; -}; - /** * struct icmp_ctx - Execution context for ICMP routines * @timer_run: Timestamp of most recent timer run -- cgit v1.2.3