Statistics
| Branch: | Revision:

root / tap-linux.h @ 6c9f58ba

History | View | Annotate | Download (1.6 kB)

1
/*
2
 *  Universal TUN/TAP device driver.
3
 *  Copyright (C) 1999-2000 Maxim Krasnyansky <max_mk@yahoo.com>
4
 *
5
 *  This program is free software; you can redistribute it and/or modify
6
 *  it under the terms of the GNU General Public License as published by
7
 *  the Free Software Foundation; either version 2 of the License, or
8
 *  (at your option) any later version.
9
 *
10
 *  This program is distributed in the hope that it will be useful,
11
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
 *  GNU General Public License for more details.
14
 */
15

    
16
#ifndef QEMU_TAP_H
17
#define QEMU_TAP_H
18

    
19
#include <stdint.h>
20
#include <linux/ioctl.h>
21

    
22
/* Ioctl defines */
23
#define TUNSETIFF     _IOW('T', 202, int)
24
#define TUNGETFEATURES _IOR('T', 207, unsigned int)
25
#define TUNSETOFFLOAD  _IOW('T', 208, unsigned int)
26
#define TUNGETIFF      _IOR('T', 210, unsigned int)
27
#define TUNSETSNDBUF   _IOW('T', 212, int)
28

    
29
/* TUNSETIFF ifr flags */
30
#define IFF_TAP                0x0002
31
#define IFF_NO_PI        0x1000
32
#define IFF_VNET_HDR        0x4000
33

    
34
/* Features for GSO (TUNSETOFFLOAD). */
35
#define TUN_F_CSUM        0x01        /* You can hand me unchecksummed packets. */
36
#define TUN_F_TSO4        0x02        /* I can handle TSO for IPv4 packets */
37
#define TUN_F_TSO6        0x04        /* I can handle TSO for IPv6 packets */
38
#define TUN_F_TSO_ECN        0x08        /* I can handle TSO with ECN bits. */
39
#define TUN_F_UFO        0x10        /* I can handle UFO packets */
40

    
41
struct virtio_net_hdr
42
{
43
    uint8_t flags;
44
    uint8_t gso_type;
45
    uint16_t hdr_len;
46
    uint16_t gso_size;
47
    uint16_t csum_start;
48
    uint16_t csum_offset;
49
};
50

    
51
#endif /* QEMU_TAP_H */