1f54c7bdcSMark McLoughlin /* 2f54c7bdcSMark McLoughlin * Universal TUN/TAP device driver. 3f54c7bdcSMark McLoughlin * Copyright (C) 1999-2000 Maxim Krasnyansky <max_mk@yahoo.com> 4f54c7bdcSMark McLoughlin * 5f54c7bdcSMark McLoughlin * This program is free software; you can redistribute it and/or modify 6f54c7bdcSMark McLoughlin * it under the terms of the GNU General Public License as published by 7f54c7bdcSMark McLoughlin * the Free Software Foundation; either version 2 of the License, or 8f54c7bdcSMark McLoughlin * (at your option) any later version. 9f54c7bdcSMark McLoughlin * 10f54c7bdcSMark McLoughlin * This program is distributed in the hope that it will be useful, 11f54c7bdcSMark McLoughlin * but WITHOUT ANY WARRANTY; without even the implied warranty of 12f54c7bdcSMark McLoughlin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13f54c7bdcSMark McLoughlin * GNU General Public License for more details. 14f54c7bdcSMark McLoughlin */ 15f54c7bdcSMark McLoughlin 161422e32dSPaolo Bonzini #ifndef QEMU_TAP_LINUX_H 171422e32dSPaolo Bonzini #define QEMU_TAP_LINUX_H 18f54c7bdcSMark McLoughlin 19ed7193ecSAnthony Liguori #ifdef __linux__ 2071f4effcSAlexander Graf 21f54c7bdcSMark McLoughlin #include <linux/ioctl.h> 22f54c7bdcSMark McLoughlin 23f54c7bdcSMark McLoughlin /* Ioctl defines */ 24f54c7bdcSMark McLoughlin #define TUNSETIFF _IOW('T', 202, int) 25f54c7bdcSMark McLoughlin #define TUNGETFEATURES _IOR('T', 207, unsigned int) 26f54c7bdcSMark McLoughlin #define TUNSETOFFLOAD _IOW('T', 208, unsigned int) 27f54c7bdcSMark McLoughlin #define TUNGETIFF _IOR('T', 210, unsigned int) 28f54c7bdcSMark McLoughlin #define TUNSETSNDBUF _IOW('T', 212, int) 29445d892fSMichael S. Tsirkin #define TUNGETVNETHDRSZ _IOR('T', 215, int) 30445d892fSMichael S. Tsirkin #define TUNSETVNETHDRSZ _IOW('T', 216, int) 314e4f9ae7SJason Wang #define TUNSETQUEUE _IOW('T', 217, int) 32c80cd6bbSGreg Kurz #define TUNSETVNETLE _IOW('T', 220, int) 33c80cd6bbSGreg Kurz #define TUNSETVNETBE _IOW('T', 222, int) 3478258debSAndrew Melnychenko #define TUNSETSTEERINGEBPF _IOR('T', 224, int) 35f54c7bdcSMark McLoughlin 3671f4effcSAlexander Graf #endif 3771f4effcSAlexander Graf 38f54c7bdcSMark McLoughlin /* TUNSETIFF ifr flags */ 39f54c7bdcSMark McLoughlin #define IFF_TAP 0x0002 40f54c7bdcSMark McLoughlin #define IFF_NO_PI 0x1000 41d26e445cSPeter Lieven #define IFF_ONE_QUEUE 0x2000 42f54c7bdcSMark McLoughlin #define IFF_VNET_HDR 0x4000 434e4f9ae7SJason Wang #define IFF_MULTI_QUEUE 0x0100 444e4f9ae7SJason Wang #define IFF_ATTACH_QUEUE 0x0200 454e4f9ae7SJason Wang #define IFF_DETACH_QUEUE 0x0400 46f54c7bdcSMark McLoughlin 47f54c7bdcSMark McLoughlin /* Features for GSO (TUNSETOFFLOAD). */ 48f54c7bdcSMark McLoughlin #define TUN_F_CSUM 0x01 /* You can hand me unchecksummed packets. */ 49f54c7bdcSMark McLoughlin #define TUN_F_TSO4 0x02 /* I can handle TSO for IPv4 packets */ 50f54c7bdcSMark McLoughlin #define TUN_F_TSO6 0x04 /* I can handle TSO for IPv6 packets */ 51f54c7bdcSMark McLoughlin #define TUN_F_TSO_ECN 0x08 /* I can handle TSO with ECN bits. */ 52f54c7bdcSMark McLoughlin #define TUN_F_UFO 0x10 /* I can handle UFO packets */ 53*2ab0ec31SAndrew Melnychenko #define TUN_F_USO4 0x20 /* I can handle USO for IPv4 packets */ 54*2ab0ec31SAndrew Melnychenko #define TUN_F_USO6 0x40 /* I can handle USO for IPv6 packets */ 55f54c7bdcSMark McLoughlin 56175de524SMarkus Armbruster #endif /* QEMU_TAP_LINUX_H */ 57