| /* |
| * DO NOT EDIT THIS FILE. It was generated from linux/if_tun.h. |
| * |
| * Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| /* |
| * Universal TUN/TAP device driver. |
| * Copyright (C) 1999-2000 Maxim Krasnyansky <max_mk@yahoo.com> |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2 of the License, or |
| * (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| */ |
| |
| #include <Python.h> |
| #include <sys/ioctl.h> |
| #include <netinet/in.h> |
| #include <linux/if.h> |
| #include <linux/if_tun.h> |
| |
| void _init_linux_if_tun_h(PyObject *m) { |
| /* Read queue size */ |
| PyModule_AddIntMacro(m, TUN_READQ_SIZE); |
| |
| /* TUN device flags */ |
| PyModule_AddIntMacro(m, TUN_TUN_DEV); |
| PyModule_AddIntMacro(m, TUN_TAP_DEV); |
| PyModule_AddIntMacro(m, TUN_TYPE_MASK); |
| |
| PyModule_AddIntMacro(m, TUN_FASYNC); |
| PyModule_AddIntMacro(m, TUN_NOCHECKSUM); |
| PyModule_AddIntMacro(m, TUN_NO_PI); |
| PyModule_AddIntMacro(m, TUN_ONE_QUEUE); |
| PyModule_AddIntMacro(m, TUN_PERSIST); |
| PyModule_AddIntMacro(m, TUN_VNET_HDR); |
| |
| /* Ioctl defines */ |
| PyModule_AddIntMacro(m, TUNSETNOCSUM); |
| PyModule_AddIntMacro(m, TUNSETDEBUG); |
| PyModule_AddIntMacro(m, TUNSETIFF); |
| PyModule_AddIntMacro(m, TUNSETPERSIST); |
| PyModule_AddIntMacro(m, TUNSETOWNER); |
| PyModule_AddIntMacro(m, TUNSETLINK); |
| PyModule_AddIntMacro(m, TUNSETGROUP); |
| PyModule_AddIntMacro(m, TUNGETFEATURES); |
| PyModule_AddIntMacro(m, TUNSETOFFLOAD); |
| PyModule_AddIntMacro(m, TUNSETTXFILTER); |
| PyModule_AddIntMacro(m, TUNGETIFF); |
| PyModule_AddIntMacro(m, TUNGETSNDBUF); |
| PyModule_AddIntMacro(m, TUNSETSNDBUF); |
| PyModule_AddIntMacro(m, TUNATTACHFILTER); |
| PyModule_AddIntMacro(m, TUNDETACHFILTER); |
| PyModule_AddIntMacro(m, TUNGETVNETHDRSZ); |
| PyModule_AddIntMacro(m, TUNSETVNETHDRSZ); |
| |
| /* TUNSETIFF ifr flags */ |
| PyModule_AddIntMacro(m, IFF_TUN); |
| PyModule_AddIntMacro(m, IFF_TAP); |
| PyModule_AddIntMacro(m, IFF_NO_PI); |
| PyModule_AddIntMacro(m, IFF_ONE_QUEUE); |
| PyModule_AddIntMacro(m, IFF_VNET_HDR); |
| PyModule_AddIntMacro(m, IFF_TUN_EXCL); |
| |
| /* Features for GSO (TUNSETOFFLOAD). */ |
| PyModule_AddIntMacro(m, TUN_F_CSUM); |
| PyModule_AddIntMacro(m, TUN_F_TSO4); |
| PyModule_AddIntMacro(m, TUN_F_TSO6); |
| PyModule_AddIntMacro(m, TUN_F_TSO_ECN); |
| PyModule_AddIntMacro(m, TUN_F_UFO); |
| |
| /* Protocol info prepended to the packets (when IFF_NO_PI is not set) */ |
| PyModule_AddIntMacro(m, TUN_PKT_STRIP); |
| } |