public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
* [PATCH v2 00/13] Clean up to tap errors and epoll dispatch
@ 2023-08-10  2:33 David Gibson
  2023-08-10  2:33 ` [PATCH v2 01/13] tap: Clean up tap reset path David Gibson
                   ` (12 more replies)
  0 siblings, 13 replies; 18+ messages in thread
From: David Gibson @ 2023-08-10  2:33 UTC (permalink / raw)
  To: passt-dev, Stefano Brivio; +Cc: David Gibson

Getting from an epoll event to the relevant handler function is
currently several levels of functions and tests.  This series
simplifies this to be pretty close to a single switch on a value in
the epoll ref dispatching directly to the appropriate handler.

Doing this requires some preliminary cleaning up of the handling of
errors or disconnects on the tap device.

Changes since v1:
 * Give listening TCP sockets their own reference type
 * Fold "tap reset" series into this one

Changes since v2 of tap reset series:
 * More thorough cleanup of handling error events on the listening
   Unix socket.
Changes since v1 of the tap reset series:
 * Two extra patches that further clean up the reset path

David Gibson (13):
  tap: Clean up tap reset path
  tap: Clean up behaviour for errors on listening Unix socket
  tap: Fold reset handling into tap_handler_pasta()
  tap: Fold reset handling into tap_handler_passt()
  epoll: Generalize epoll_ref to cover things other than sockets
  epoll: Always use epoll_ref for the epoll data variable
  epoll: Fold sock_handler into general switch on epoll event fd
  epoll: Split handling of ICMP and ICMPv6 sockets
  epoll: Tiny cleanup to udp_sock_handler()
  epoll: Split handling of TCP timerfds into its own handler function
  epoll: Split handling of listening TCP sockets into their own handler
  epoll: Split listening Unix domain socket into its own type
  epoll: Use different epoll types for passt and pasta tap fds

 icmp.c       | 118 +++++++++++++++++++++++++--------------------
 icmp.h       |   9 ++--
 passt.c      |  90 ++++++++++++++++++++--------------
 passt.h      |  56 +++++++++++++++++-----
 pasta.c      |   8 +++-
 tap.c        | 133 ++++++++++++++++++++++++++-------------------------
 tap.h        |   7 ++-
 tcp.c        |  84 ++++++++++++++------------------
 tcp.h        |  28 +++++++----
 tcp_conn.h   |   4 +-
 tcp_splice.c |   8 ++--
 tcp_splice.h |   2 +-
 udp.c        |  16 +++----
 util.c       |  27 ++++++++---
 14 files changed, 334 insertions(+), 256 deletions(-)

-- 
2.41.0


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2023-08-11  3:20 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-10  2:33 [PATCH v2 00/13] Clean up to tap errors and epoll dispatch David Gibson
2023-08-10  2:33 ` [PATCH v2 01/13] tap: Clean up tap reset path David Gibson
2023-08-10  2:33 ` [PATCH v2 02/13] tap: Clean up behaviour for errors on listening Unix socket David Gibson
2023-08-10  2:33 ` [PATCH v2 03/13] tap: Fold reset handling into tap_handler_pasta() David Gibson
2023-08-10  2:33 ` [PATCH v2 04/13] tap: Fold reset handling into tap_handler_passt() David Gibson
2023-08-10 19:49   ` Stefano Brivio
2023-08-11  3:07     ` David Gibson
2023-08-10  2:33 ` [PATCH v2 05/13] epoll: Generalize epoll_ref to cover things other than sockets David Gibson
2023-08-10  2:33 ` [PATCH v2 06/13] epoll: Always use epoll_ref for the epoll data variable David Gibson
2023-08-10  2:33 ` [PATCH v2 07/13] epoll: Fold sock_handler into general switch on epoll event fd David Gibson
2023-08-10 19:49   ` Stefano Brivio
2023-08-11  3:11     ` David Gibson
2023-08-10  2:33 ` [PATCH v2 08/13] epoll: Split handling of ICMP and ICMPv6 sockets David Gibson
2023-08-10  2:33 ` [PATCH v2 09/13] epoll: Tiny cleanup to udp_sock_handler() David Gibson
2023-08-10  2:33 ` [PATCH v2 10/13] epoll: Split handling of TCP timerfds into its own handler function David Gibson
2023-08-10  2:33 ` [PATCH v2 11/13] epoll: Split handling of listening TCP sockets into their own handler David Gibson
2023-08-10  2:33 ` [PATCH v2 12/13] epoll: Split listening Unix domain socket into its own type David Gibson
2023-08-10  2:33 ` [PATCH v2 13/13] epoll: Use different epoll types for passt and pasta tap fds David Gibson

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).