Home | History | Annotate | Download | only in src
      1 /*
      2  * DO NOT EDIT THIS FILE. It was generated from linux/if_tun.h.
      3  *
      4  * Copyright (c) 2013 The Chromium Authors. All rights reserved.
      5  * Use of this source code is governed by a BSD-style license that can be
      6  * found in the LICENSE file.
      7  */
      8 
      9 /*
     10  *  Universal TUN/TAP device driver.
     11  *  Copyright (C) 1999-2000 Maxim Krasnyansky <max_mk (at) yahoo.com>
     12  *
     13  *  This program is free software; you can redistribute it and/or modify
     14  *  it under the terms of the GNU General Public License as published by
     15  *  the Free Software Foundation; either version 2 of the License, or
     16  *  (at your option) any later version.
     17  *
     18  *  This program is distributed in the hope that it will be useful,
     19  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     20  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     21  *  GNU General Public License for more details.
     22  */
     23 
     24 #include <Python.h>
     25 #include <sys/ioctl.h>
     26 #include <netinet/in.h>
     27 #include <net/if.h>
     28 #include <linux/if_tun.h>
     29 
     30 void _init_linux_if_tun_h(PyObject *m) {
     31   /* Read queue size */
     32   PyModule_AddIntMacro(m, TUN_READQ_SIZE);
     33   /* TUN device type flags: deprecated. Use IFF_TUN/IFF_TAP instead. */
     34   PyModule_AddIntMacro(m, TUN_TUN_DEV);
     35   PyModule_AddIntMacro(m, TUN_TAP_DEV);
     36   PyModule_AddIntMacro(m, TUN_TYPE_MASK);
     37 
     38   /* Ioctl defines */
     39   PyModule_AddIntMacro(m, TUNSETNOCSUM);
     40   PyModule_AddIntMacro(m, TUNSETDEBUG);
     41   PyModule_AddIntMacro(m, TUNSETIFF);
     42   PyModule_AddIntMacro(m, TUNSETPERSIST);
     43   PyModule_AddIntMacro(m, TUNSETOWNER);
     44   PyModule_AddIntMacro(m, TUNSETLINK);
     45   PyModule_AddIntMacro(m, TUNSETGROUP);
     46   PyModule_AddIntMacro(m, TUNGETFEATURES);
     47   PyModule_AddIntMacro(m, TUNSETOFFLOAD);
     48   PyModule_AddIntMacro(m, TUNSETTXFILTER);
     49   PyModule_AddIntMacro(m, TUNGETIFF);
     50   PyModule_AddIntMacro(m, TUNGETSNDBUF);
     51   PyModule_AddIntMacro(m, TUNSETSNDBUF);
     52   PyModule_AddIntMacro(m, TUNATTACHFILTER);
     53   PyModule_AddIntMacro(m, TUNDETACHFILTER);
     54   PyModule_AddIntMacro(m, TUNGETVNETHDRSZ);
     55   PyModule_AddIntMacro(m, TUNSETVNETHDRSZ);
     56   PyModule_AddIntMacro(m, TUNSETQUEUE);
     57   PyModule_AddIntMacro(m, TUNSETIFINDEX);
     58   PyModule_AddIntMacro(m, TUNGETFILTER);
     59   PyModule_AddIntMacro(m, TUNSETVNETLE);
     60   PyModule_AddIntMacro(m, TUNGETVNETLE);
     61 
     62   /* TUNSETIFF ifr flags */
     63   PyModule_AddIntMacro(m, IFF_TUN);
     64   PyModule_AddIntMacro(m, IFF_TAP);
     65   PyModule_AddIntMacro(m, IFF_NO_PI);
     66   /* This flag has no real effect */
     67   PyModule_AddIntMacro(m, IFF_ONE_QUEUE);
     68   PyModule_AddIntMacro(m, IFF_VNET_HDR);
     69   PyModule_AddIntMacro(m, IFF_TUN_EXCL);
     70   PyModule_AddIntMacro(m, IFF_MULTI_QUEUE);
     71   PyModule_AddIntMacro(m, IFF_ATTACH_QUEUE);
     72   PyModule_AddIntMacro(m, IFF_DETACH_QUEUE);
     73   /* read-only flag */
     74   PyModule_AddIntMacro(m, IFF_PERSIST);
     75   PyModule_AddIntMacro(m, IFF_NOFILTER);
     76 
     77   /* Socket options */
     78   PyModule_AddIntMacro(m, TUN_TX_TIMESTAMP);
     79 
     80   /* Features for GSO (TUNSETOFFLOAD). */
     81   PyModule_AddIntMacro(m, TUN_F_CSUM);
     82   PyModule_AddIntMacro(m, TUN_F_TSO4);
     83   PyModule_AddIntMacro(m, TUN_F_TSO6);
     84   PyModule_AddIntMacro(m, TUN_F_TSO_ECN);
     85   PyModule_AddIntMacro(m, TUN_F_UFO);
     86 
     87   /* Protocol info prepended to the packets (when IFF_NO_PI is not set) */
     88   PyModule_AddIntMacro(m, TUN_PKT_STRIP);
     89 }
     90