f-stack/dpdk/drivers/net/virtio/virtio_user/vhost_kernel_tap.h

46 lines
1.4 KiB
C
Raw Normal View History

2019-06-25 11:12:58 +00:00
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2016 Intel Corporation
2017-04-21 10:43:26 +00:00
*/
2020-06-18 16:55:50 +00:00
#ifndef _VHOST_KERNEL_TAP_H
#define _VHOST_KERNEL_TAP_H
#include <stdbool.h>
#include <sys/ioctl.h>
2017-04-21 10:43:26 +00:00
/* TUN ioctls */
#define TUNSETIFF _IOW('T', 202, int)
#define TUNGETFEATURES _IOR('T', 207, unsigned int)
#define TUNSETOFFLOAD _IOW('T', 208, unsigned int)
#define TUNGETIFF _IOR('T', 210, unsigned int)
#define TUNSETSNDBUF _IOW('T', 212, int)
#define TUNGETVNETHDRSZ _IOR('T', 215, int)
#define TUNSETVNETHDRSZ _IOW('T', 216, int)
2017-04-21 10:43:26 +00:00
/* TUNSETIFF ifr flags */
#define IFF_TAP 0x0002
#define IFF_NO_PI 0x1000
#define IFF_VNET_HDR 0x4000
#define IFF_MULTI_QUEUE 0x0100
2023-09-13 12:21:49 +00:00
#define IFF_NAPI 0x0010
2017-04-21 10:43:26 +00:00
/* Features for GSO (TUNSETOFFLOAD). */
#define TUN_F_CSUM 0x01 /* You can hand me unchecksummed packets. */
#define TUN_F_TSO4 0x02 /* I can handle TSO for IPv4 packets */
#define TUN_F_TSO6 0x04 /* I can handle TSO for IPv6 packets */
#define TUN_F_TSO_ECN 0x08 /* I can handle TSO with ECN bits. */
#define TUN_F_UFO 0x10 /* I can handle UFO packets */
2017-04-21 10:43:26 +00:00
/* Constants */
#define PATH_NET_TUN "/dev/net/tun"
2017-04-21 10:43:26 +00:00
2022-09-06 04:00:10 +00:00
int vhost_kernel_tap_setup(int tapfd, int hdr_size, uint64_t features);
int tap_support_features(unsigned int *tap_features);
2023-09-13 12:21:49 +00:00
int tap_open(const char *ifname, unsigned int r_flags, bool multi_queue);
2022-09-06 04:00:10 +00:00
int tap_get_name(int tapfd, char **ifname);
int tap_get_flags(int tapfd, unsigned int *tap_flags);
int tap_set_mac(int tapfd, uint8_t *mac);
2020-06-18 16:55:50 +00:00
#endif