1/* 2 * DO NOT EDIT THIS FILE. It was generated from linux/if.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 * INET An implementation of the TCP/IP protocol suite for the LINUX 11 * operating system. INET is implemented using the BSD Socket 12 * interface as the means of communication with the user level. 13 * 14 * Global definitions for the INET interface module. 15 * 16 * Version: @(#)if.h 1.0.2 04/18/93 17 * 18 * Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1982-1988 19 * Ross Biro 20 * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> 21 * 22 * This program is free software; you can redistribute it and/or 23 * modify it under the terms of the GNU General Public License 24 * as published by the Free Software Foundation; either version 25 * 2 of the License, or (at your option) any later version. 26 */ 27 28#include <Python.h> 29#include <sys/ioctl.h> 30#include <netinet/in.h> 31#include <linux/if.h> 32 33void _init_linux_if_h(PyObject *m) { 34 PyModule_AddIntMacro(m, IFNAMSIZ); 35 PyModule_AddIntMacro(m, IFALIASZ); 36 37 /** 38 * enum net_device_flags - &struct net_device flags 39 * 40 * These are the &struct net_device flags, they can be set by drivers, the 41 * kernel and some can be triggered by userspace. Userspace can query and 42 * set these flags using userspace utilities but there is also a sysfs 43 * entry available for all dev flags which can be queried and set. These flags 44 * are shared for all types of net_devices. The sysfs entries are available 45 * via /sys/class/net/<dev>/flags. Flags which can be toggled through sysfs 46 * are annotated below, note that only a few flags can be toggled and some 47 * other flags are always always preserved from the original net_device flags 48 * even if you try to set them via sysfs. Flags which are always preserved 49 * are kept under the flag grouping @IFF_VOLATILE. Flags which are __volatile__ 50 * are annotated below as such. 51 * 52 * You should have a pretty good reason to be extending these flags. 53 * 54 * @IFF_UP: interface is up. Can be toggled through sysfs. 55 * @IFF_BROADCAST: broadcast address valid. Volatile. 56 * @IFF_DEBUG: turn on debugging. Can be toggled through sysfs. 57 * @IFF_LOOPBACK: is a loopback net. Volatile. 58 * @IFF_POINTOPOINT: interface is has p-p link. Volatile. 59 * @IFF_NOTRAILERS: avoid use of trailers. Can be toggled through sysfs. 60 * Volatile. 61 * @IFF_RUNNING: interface RFC2863 OPER_UP. Volatile. 62 * @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile. 63 * @IFF_PROMISC: receive all packets. Can be toggled through sysfs. 64 * @IFF_ALLMULTI: receive all multicast packets. Can be toggled through 65 * sysfs. 66 * @IFF_MASTER: master of a load balancer. Volatile. 67 * @IFF_SLAVE: slave of a load balancer. Volatile. 68 * @IFF_MULTICAST: Supports multicast. Can be toggled through sysfs. 69 * @IFF_PORTSEL: can set media type. Can be toggled through sysfs. 70 * @IFF_AUTOMEDIA: auto media select active. Can be toggled through sysfs. 71 * @IFF_DYNAMIC: dialup device with changing addresses. Can be toggled 72 * through sysfs. 73 * @IFF_LOWER_UP: driver signals L1 up. Volatile. 74 * @IFF_DORMANT: driver signals dormant. Volatile. 75 * @IFF_ECHO: echo sent packets. Volatile. 76 */ 77 /* enum net_device_flags */ 78 PyModule_AddIntMacro(m, IFF_UP); 79 PyModule_AddIntMacro(m, IFF_BROADCAST); 80 PyModule_AddIntMacro(m, IFF_DEBUG); 81 PyModule_AddIntMacro(m, IFF_LOOPBACK); 82 PyModule_AddIntMacro(m, IFF_POINTOPOINT); 83 PyModule_AddIntMacro(m, IFF_NOTRAILERS); 84 PyModule_AddIntMacro(m, IFF_RUNNING); 85 PyModule_AddIntMacro(m, IFF_NOARP); 86 PyModule_AddIntMacro(m, IFF_PROMISC); 87 PyModule_AddIntMacro(m, IFF_ALLMULTI); 88 PyModule_AddIntMacro(m, IFF_MASTER); 89 PyModule_AddIntMacro(m, IFF_SLAVE); 90 PyModule_AddIntMacro(m, IFF_MULTICAST); 91 PyModule_AddIntMacro(m, IFF_PORTSEL); 92 PyModule_AddIntMacro(m, IFF_AUTOMEDIA); 93 PyModule_AddIntMacro(m, IFF_DYNAMIC); 94 PyModule_AddIntMacro(m, IFF_LOWER_UP); 95 PyModule_AddIntMacro(m, IFF_DORMANT); 96 PyModule_AddIntMacro(m, IFF_ECHO); 97 98 PyModule_AddIntMacro(m, IFF_UP); 99 PyModule_AddIntMacro(m, IFF_BROADCAST); 100 PyModule_AddIntMacro(m, IFF_DEBUG); 101 PyModule_AddIntMacro(m, IFF_LOOPBACK); 102 PyModule_AddIntMacro(m, IFF_POINTOPOINT); 103 PyModule_AddIntMacro(m, IFF_NOTRAILERS); 104 PyModule_AddIntMacro(m, IFF_RUNNING); 105 PyModule_AddIntMacro(m, IFF_NOARP); 106 PyModule_AddIntMacro(m, IFF_PROMISC); 107 PyModule_AddIntMacro(m, IFF_ALLMULTI); 108 PyModule_AddIntMacro(m, IFF_MASTER); 109 PyModule_AddIntMacro(m, IFF_SLAVE); 110 PyModule_AddIntMacro(m, IFF_MULTICAST); 111 PyModule_AddIntMacro(m, IFF_PORTSEL); 112 PyModule_AddIntMacro(m, IFF_AUTOMEDIA); 113 PyModule_AddIntMacro(m, IFF_DYNAMIC); 114 PyModule_AddIntMacro(m, IFF_LOWER_UP); 115 PyModule_AddIntMacro(m, IFF_DORMANT); 116 PyModule_AddIntMacro(m, IFF_ECHO); 117 118 PyModule_AddIntMacro(m, IFF_VOLATILE); 119 120 PyModule_AddIntMacro(m, IF_GET_IFACE); 121 PyModule_AddIntMacro(m, IF_GET_PROTO); 122 123 /* For definitions see hdlc.h */ 124 PyModule_AddIntMacro(m, IF_IFACE_V35); 125 PyModule_AddIntMacro(m, IF_IFACE_V24); 126 PyModule_AddIntMacro(m, IF_IFACE_X21); 127 PyModule_AddIntMacro(m, IF_IFACE_T1); 128 PyModule_AddIntMacro(m, IF_IFACE_E1); 129 PyModule_AddIntMacro(m, IF_IFACE_SYNC_SERIAL); 130 PyModule_AddIntMacro(m, IF_IFACE_X21D); 131 132 /* For definitions see hdlc.h */ 133 PyModule_AddIntMacro(m, IF_PROTO_HDLC); 134 PyModule_AddIntMacro(m, IF_PROTO_PPP); 135 PyModule_AddIntMacro(m, IF_PROTO_CISCO); 136 PyModule_AddIntMacro(m, IF_PROTO_FR); 137 PyModule_AddIntMacro(m, IF_PROTO_FR_ADD_PVC); 138 PyModule_AddIntMacro(m, IF_PROTO_FR_DEL_PVC); 139 PyModule_AddIntMacro(m, IF_PROTO_X25); 140 PyModule_AddIntMacro(m, IF_PROTO_HDLC_ETH); 141 PyModule_AddIntMacro(m, IF_PROTO_FR_ADD_ETH_PVC); 142 PyModule_AddIntMacro(m, IF_PROTO_FR_DEL_ETH_PVC); 143 PyModule_AddIntMacro(m, IF_PROTO_FR_PVC); 144 PyModule_AddIntMacro(m, IF_PROTO_FR_ETH_PVC); 145 PyModule_AddIntMacro(m, IF_PROTO_RAW); 146 147 /* RFC 2863 operational status */ 148 PyModule_AddIntMacro(m, IF_OPER_UNKNOWN); 149 PyModule_AddIntMacro(m, IF_OPER_NOTPRESENT); 150 PyModule_AddIntMacro(m, IF_OPER_DOWN); 151 PyModule_AddIntMacro(m, IF_OPER_LOWERLAYERDOWN); 152 PyModule_AddIntMacro(m, IF_OPER_TESTING); 153 PyModule_AddIntMacro(m, IF_OPER_DORMANT); 154 PyModule_AddIntMacro(m, IF_OPER_UP); 155 156 /* link modes */ 157 PyModule_AddIntMacro(m, IF_LINK_MODE_DEFAULT); 158 PyModule_AddIntMacro(m, IF_LINK_MODE_DORMANT); 159} 160