On Wed, Aug 09, 2023 at 09:59:10PM +0200, Stefano Brivio wrote: > On Mon, 7 Aug 2023 23:46:23 +1000 > David Gibson wrote: > > > The epoll_ref type includes fields for the IP protocol of a socket, and the > > socket fd. However, we already have a few things in the epoll which aren't > > protocol sockets, and we may have more in future. Rename these fields to > > an abstract "fd type" and file descriptor for more generality. > > > > Similarly, rather than using existing IP protocol numbers for the type, > > introduce our own number space. For now these just correspond to the > > supported protocols, but we'll expand on that in future. > > > > Signed-off-by: David Gibson > > --- > > icmp.c | 6 +++--- > > passt.c | 25 ++++++++++++------------- > > passt.h | 40 +++++++++++++++++++++++++++++----------- > > tcp.c | 22 +++++++++++----------- > > tcp_conn.h | 4 ++-- > > tcp_splice.c | 4 ++-- > > udp.c | 14 +++++++------- > > util.c | 27 ++++++++++++++++++++------- > > 8 files changed, 86 insertions(+), 56 deletions(-) > > > > diff --git a/icmp.c b/icmp.c > > index 676fa64..a4b6a47 100644 > > --- a/icmp.c > > +++ b/icmp.c > > @@ -79,7 +79,7 @@ void icmp_sock_handler(const struct ctx *c, union epoll_ref ref, > > (void)events; > > (void)now; > > > > - n = recvfrom(ref.s, buf, sizeof(buf), 0, (struct sockaddr *)&sr, &sl); > > + n = recvfrom(ref.fd, buf, sizeof(buf), 0, (struct sockaddr *)&sr, &sl); > > if (n < 0) > > return; > > > > @@ -182,7 +182,7 @@ int icmp_tap_handler(const struct ctx *c, int af, const void *addr, > > bind_if, id, iref.u32); > > if (s < 0) > > goto fail_sock; > > - if (s > SOCKET_MAX) { > > + if (s > FD_REF_MAX) { > > close(s); > > return 1; > > } > > @@ -236,7 +236,7 @@ int icmp_tap_handler(const struct ctx *c, int af, const void *addr, > > bind_if, id, iref.u32); > > if (s < 0) > > goto fail_sock; > > - if (s > SOCKET_MAX) { > > + if (s > FD_REF_MAX) { > > close(s); > > return 1; > > } > > diff --git a/passt.c b/passt.c > > index 9123868..b42f42d 100644 > > --- a/passt.c > > +++ b/passt.c > > @@ -55,12 +55,11 @@ > > > > char pkt_buf[PKT_BUF_BYTES] __attribute__ ((aligned(PAGE_SIZE))); > > > > -char *ip_proto_str[IPPROTO_SCTP + 1] = { > > - [IPPROTO_ICMP] = "ICMP", > > - [IPPROTO_TCP] = "TCP", > > - [IPPROTO_UDP] = "UDP", > > - [IPPROTO_ICMPV6] = "ICMPV6", > > - [IPPROTO_SCTP] = "SCTP", > > +char *epoll_type_str[EPOLL_TYPE_MAX+1] = { > > For consistency, given you're respinning anyway: [EPOLL_TYPE_MAX + 1] Done, thanks. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson