/* * 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, <waltje@uWalt.NL.Mugnet.ORG> * * 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); }