2024-07-05 10:43:59 +00:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
* Copyright Red Hat
|
|
|
|
* Author: David Gibson <david@gibson.dropbear.id.au>
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef EPOLL_TYPE_H
|
|
|
|
#define EPOLL_TYPE_H
|
|
|
|
|
|
|
|
/**
|
|
|
|
* enum epoll_type - Different types of fds we poll over
|
|
|
|
*/
|
|
|
|
enum epoll_type {
|
|
|
|
/* Special value to indicate an invalid type */
|
|
|
|
EPOLL_TYPE_NONE = 0,
|
|
|
|
/* Connected TCP sockets */
|
|
|
|
EPOLL_TYPE_TCP,
|
|
|
|
/* Connected TCP sockets (spliced) */
|
|
|
|
EPOLL_TYPE_TCP_SPLICE,
|
|
|
|
/* Listening TCP sockets */
|
|
|
|
EPOLL_TYPE_TCP_LISTEN,
|
|
|
|
/* timerfds used for TCP timers */
|
|
|
|
EPOLL_TYPE_TCP_TIMER,
|
2024-07-18 05:26:53 +00:00
|
|
|
/* UDP "listening" sockets */
|
|
|
|
EPOLL_TYPE_UDP_LISTEN,
|
2024-07-18 05:26:47 +00:00
|
|
|
/* UDP socket for replies on a specific flow */
|
|
|
|
EPOLL_TYPE_UDP_REPLY,
|
2024-07-05 10:43:59 +00:00
|
|
|
/* ICMP/ICMPv6 ping sockets */
|
|
|
|
EPOLL_TYPE_PING,
|
|
|
|
/* inotify fd watching for end of netns (pasta) */
|
|
|
|
EPOLL_TYPE_NSQUIT_INOTIFY,
|
|
|
|
/* timer fd watching for end of netns, fallback for inotify (pasta) */
|
|
|
|
EPOLL_TYPE_NSQUIT_TIMER,
|
|
|
|
/* tuntap character device */
|
|
|
|
EPOLL_TYPE_TAP_PASTA,
|
|
|
|
/* socket connected to qemu */
|
|
|
|
EPOLL_TYPE_TAP_PASST,
|
|
|
|
/* socket listening for qemu socket connections */
|
|
|
|
EPOLL_TYPE_TAP_LISTEN,
|
vhost-user: add vhost-user
add virtio and vhost-user functions to connect with QEMU.
$ ./passt --vhost-user
and
# qemu-system-x86_64 ... -m 4G \
-object memory-backend-memfd,id=memfd0,share=on,size=4G \
-numa node,memdev=memfd0 \
-chardev socket,id=chr0,path=/tmp/passt_1.socket \
-netdev vhost-user,id=netdev0,chardev=chr0 \
-device virtio-net,mac=9a:2b:2c:2d:2e:2f,netdev=netdev0 \
...
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
[sbrivio: as suggested by lvivier, include <netinet/if_ether.h>
before including <linux/if_ether.h> as C libraries such as musl
__UAPI_DEF_ETHHDR in <netinet/if_ether.h> if they already have
a definition of struct ethhdr]
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
2024-11-22 16:43:34 +00:00
|
|
|
/* vhost-user command socket */
|
|
|
|
EPOLL_TYPE_VHOST_CMD,
|
|
|
|
/* vhost-user kick event socket */
|
|
|
|
EPOLL_TYPE_VHOST_KICK,
|
2024-07-05 10:43:59 +00:00
|
|
|
|
|
|
|
EPOLL_NUM_TYPES,
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* EPOLL_TYPE_H */
|