1
0
Fork 0
mirror of https://passt.top/passt synced 2025-06-02 06:15:33 +02:00

epoll: Use different epoll types for passt and pasta tap fds

Currently we have a single epoll event type for the "tap" fd, which could
be either a handle on a /dev/net/tun device (pasta) or a connected Unix
socket (passt).  However for the two modes we call different handler
functions.  Simplify this a little by using different epoll types and
dispatching directly to the correct handler function.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
David Gibson 2023-08-11 15:12:29 +10:00 committed by Stefano Brivio
parent eda4f1997e
commit ae5f6c8e1b
4 changed files with 30 additions and 30 deletions

5
tap.h
View file

@ -77,7 +77,10 @@ void tap_send_frames(struct ctx *c, const struct iovec *iov, size_t n);
void tap_update_mac(struct tap_hdr *taph,
const unsigned char *eth_d, const unsigned char *eth_s);
void tap_listen_handler(struct ctx *c, uint32_t events);
void tap_handler(struct ctx *c, uint32_t events, const struct timespec *now);
void tap_handler_pasta(struct ctx *c, uint32_t events,
const struct timespec *now);
void tap_handler_passt(struct ctx *c, uint32_t events,
const struct timespec *now);
void tap_sock_init(struct ctx *c);
#endif /* TAP_H */