| /* |
| * DO NOT EDIT THIS FILE. It was generated from linux/if.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. |
| */ |
| |
| /* |
| * INET An implementation of the TCP/IP protocol suite for the LINUX |
| * operating system. INET is implemented using the BSD Socket |
| * interface as the means of communication with the user level. |
| * |
| * Global definitions for the INET interface module. |
| * |
| * Version: @(#)if.h 1.0.2 04/18/93 |
| * |
| * Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1982-1988 |
| * Ross Biro |
| * Fred N. van Kempen, <[email protected]> |
| * |
| * 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. |
| */ |
| |
| #include <Python.h> |
| #include <sys/ioctl.h> |
| #include <netinet/in.h> |
| #include <linux/if.h> |
| |
| void _init_linux_if_h(PyObject *m) { |
| PyModule_AddIntMacro(m, IFNAMSIZ); |
| PyModule_AddIntMacro(m, IFALIASZ); |
| |
| /** |
| * enum net_device_flags - &struct net_device flags |
| * |
| * These are the &struct net_device flags, they can be set by drivers, the |
| * kernel and some can be triggered by userspace. Userspace can query and |
| * set these flags using userspace utilities but there is also a sysfs |
| * entry available for all dev flags which can be queried and set. These flags |
| * are shared for all types of net_devices. The sysfs entries are available |
| * via /sys/class/net/<dev>/flags. Flags which can be toggled through sysfs |
| * are annotated below, note that only a few flags can be toggled and some |
| * other flags are always always preserved from the original net_device flags |
| * even if you try to set them via sysfs. Flags which are always preserved |
| * are kept under the flag grouping @IFF_VOLATILE. Flags which are __volatile__ |
| * are annotated below as such. |
| * |
| * You should have a pretty good reason to be extending these flags. |
| * |
| * @IFF_UP: interface is up. Can be toggled through sysfs. |
| * @IFF_BROADCAST: broadcast address valid. Volatile. |
| * @IFF_DEBUG: turn on debugging. Can be toggled through sysfs. |
| * @IFF_LOOPBACK: is a loopback net. Volatile. |
| * @IFF_POINTOPOINT: interface is has p-p link. Volatile. |
| * @IFF_NOTRAILERS: avoid use of trailers. Can be toggled through sysfs. |
| * Volatile. |
| * @IFF_RUNNING: interface RFC2863 OPER_UP. Volatile. |
| * @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile. |
| * @IFF_PROMISC: receive all packets. Can be toggled through sysfs. |
| * @IFF_ALLMULTI: receive all multicast packets. Can be toggled through |
| * sysfs. |
| * @IFF_MASTER: master of a load balancer. Volatile. |
| * @IFF_SLAVE: slave of a load balancer. Volatile. |
| * @IFF_MULTICAST: Supports multicast. Can be toggled through sysfs. |
| * @IFF_PORTSEL: can set media type. Can be toggled through sysfs. |
| * @IFF_AUTOMEDIA: auto media select active. Can be toggled through sysfs. |
| * @IFF_DYNAMIC: dialup device with changing addresses. Can be toggled |
| * through sysfs. |
| * @IFF_LOWER_UP: driver signals L1 up. Volatile. |
| * @IFF_DORMANT: driver signals dormant. Volatile. |
| * @IFF_ECHO: echo sent packets. Volatile. |
| */ |
| /* enum net_device_flags */ |
| PyModule_AddIntMacro(m, IFF_UP); |
| PyModule_AddIntMacro(m, IFF_BROADCAST); |
| PyModule_AddIntMacro(m, IFF_DEBUG); |
| PyModule_AddIntMacro(m, IFF_LOOPBACK); |
| PyModule_AddIntMacro(m, IFF_POINTOPOINT); |
| PyModule_AddIntMacro(m, IFF_NOTRAILERS); |
| PyModule_AddIntMacro(m, IFF_RUNNING); |
| PyModule_AddIntMacro(m, IFF_NOARP); |
| PyModule_AddIntMacro(m, IFF_PROMISC); |
| PyModule_AddIntMacro(m, IFF_ALLMULTI); |
| PyModule_AddIntMacro(m, IFF_MASTER); |
| PyModule_AddIntMacro(m, IFF_SLAVE); |
| PyModule_AddIntMacro(m, IFF_MULTICAST); |
| PyModule_AddIntMacro(m, IFF_PORTSEL); |
| PyModule_AddIntMacro(m, IFF_AUTOMEDIA); |
| PyModule_AddIntMacro(m, IFF_DYNAMIC); |
| PyModule_AddIntMacro(m, IFF_LOWER_UP); |
| PyModule_AddIntMacro(m, IFF_DORMANT); |
| PyModule_AddIntMacro(m, IFF_ECHO); |
| |
| PyModule_AddIntMacro(m, IFF_UP); |
| PyModule_AddIntMacro(m, IFF_BROADCAST); |
| PyModule_AddIntMacro(m, IFF_DEBUG); |
| PyModule_AddIntMacro(m, IFF_LOOPBACK); |
| PyModule_AddIntMacro(m, IFF_POINTOPOINT); |
| PyModule_AddIntMacro(m, IFF_NOTRAILERS); |
| PyModule_AddIntMacro(m, IFF_RUNNING); |
| PyModule_AddIntMacro(m, IFF_NOARP); |
| PyModule_AddIntMacro(m, IFF_PROMISC); |
| PyModule_AddIntMacro(m, IFF_ALLMULTI); |
| PyModule_AddIntMacro(m, IFF_MASTER); |
| PyModule_AddIntMacro(m, IFF_SLAVE); |
| PyModule_AddIntMacro(m, IFF_MULTICAST); |
| PyModule_AddIntMacro(m, IFF_PORTSEL); |
| PyModule_AddIntMacro(m, IFF_AUTOMEDIA); |
| PyModule_AddIntMacro(m, IFF_DYNAMIC); |
| PyModule_AddIntMacro(m, IFF_LOWER_UP); |
| PyModule_AddIntMacro(m, IFF_DORMANT); |
| PyModule_AddIntMacro(m, IFF_ECHO); |
| |
| PyModule_AddIntMacro(m, IFF_VOLATILE); |
| |
| PyModule_AddIntMacro(m, IF_GET_IFACE); |
| PyModule_AddIntMacro(m, IF_GET_PROTO); |
| |
| /* For definitions see hdlc.h */ |
| PyModule_AddIntMacro(m, IF_IFACE_V35); |
| PyModule_AddIntMacro(m, IF_IFACE_V24); |
| PyModule_AddIntMacro(m, IF_IFACE_X21); |
| PyModule_AddIntMacro(m, IF_IFACE_T1); |
| PyModule_AddIntMacro(m, IF_IFACE_E1); |
| PyModule_AddIntMacro(m, IF_IFACE_SYNC_SERIAL); |
| PyModule_AddIntMacro(m, IF_IFACE_X21D); |
| |
| /* For definitions see hdlc.h */ |
| PyModule_AddIntMacro(m, IF_PROTO_HDLC); |
| PyModule_AddIntMacro(m, IF_PROTO_PPP); |
| PyModule_AddIntMacro(m, IF_PROTO_CISCO); |
| PyModule_AddIntMacro(m, IF_PROTO_FR); |
| PyModule_AddIntMacro(m, IF_PROTO_FR_ADD_PVC); |
| PyModule_AddIntMacro(m, IF_PROTO_FR_DEL_PVC); |
| PyModule_AddIntMacro(m, IF_PROTO_X25); |
| PyModule_AddIntMacro(m, IF_PROTO_HDLC_ETH); |
| PyModule_AddIntMacro(m, IF_PROTO_FR_ADD_ETH_PVC); |
| PyModule_AddIntMacro(m, IF_PROTO_FR_DEL_ETH_PVC); |
| PyModule_AddIntMacro(m, IF_PROTO_FR_PVC); |
| PyModule_AddIntMacro(m, IF_PROTO_FR_ETH_PVC); |
| PyModule_AddIntMacro(m, IF_PROTO_RAW); |
| |
| /* RFC 2863 operational status */ |
| PyModule_AddIntMacro(m, IF_OPER_UNKNOWN); |
| PyModule_AddIntMacro(m, IF_OPER_NOTPRESENT); |
| PyModule_AddIntMacro(m, IF_OPER_DOWN); |
| PyModule_AddIntMacro(m, IF_OPER_LOWERLAYERDOWN); |
| PyModule_AddIntMacro(m, IF_OPER_TESTING); |
| PyModule_AddIntMacro(m, IF_OPER_DORMANT); |
| PyModule_AddIntMacro(m, IF_OPER_UP); |
| |
| /* link modes */ |
| PyModule_AddIntMacro(m, IF_LINK_MODE_DEFAULT); |
| PyModule_AddIntMacro(m, IF_LINK_MODE_DORMANT); |
| } |