Statistics
| Branch: | Revision:

root / net / tap-linux.h @ a9899996

History | View | Annotate | Download (1.8 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
#ifdef __linux__
21

    
22
#include <linux/ioctl.h>
23

    
24
/* Ioctl defines */
25
#define TUNSETIFF     _IOW('T', 202, int)
26
#define TUNGETFEATURES _IOR('T', 207, unsigned int)
27
#define TUNSETOFFLOAD  _IOW('T', 208, unsigned int)
28
#define TUNGETIFF      _IOR('T', 210, unsigned int)
29
#define TUNSETSNDBUF   _IOW('T', 212, int)
30
#define TUNGETVNETHDRSZ _IOR('T', 215, int)
31
#define TUNSETVNETHDRSZ _IOW('T', 216, int)
32

    
33
#endif
34

    
35
/* TUNSETIFF ifr flags */
36
#define IFF_TAP                0x0002
37
#define IFF_NO_PI        0x1000
38
#define IFF_VNET_HDR        0x4000
39

    
40
/* Features for GSO (TUNSETOFFLOAD). */
41
#define TUN_F_CSUM        0x01        /* You can hand me unchecksummed packets. */
42
#define TUN_F_TSO4        0x02        /* I can handle TSO for IPv4 packets */
43
#define TUN_F_TSO6        0x04        /* I can handle TSO for IPv6 packets */
44
#define TUN_F_TSO_ECN        0x08        /* I can handle TSO with ECN bits. */
45
#define TUN_F_UFO        0x10        /* I can handle UFO packets */
46

    
47
struct virtio_net_hdr
48
{
49
    uint8_t flags;
50
    uint8_t gso_type;
51
    uint16_t hdr_len;
52
    uint16_t gso_size;
53
    uint16_t csum_start;
54
    uint16_t csum_offset;
55
};
56

    
57
struct virtio_net_hdr_mrg_rxbuf
58
{
59
    struct virtio_net_hdr hdr;
60
    uint16_t num_buffers;   /* Number of merged rx buffers */
61
};
62

    
63
#endif /* QEMU_TAP_H */