1dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* 2dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * INET An implementation of the TCP/IP protocol suite for the LINUX 3dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * operating system. INET is implemented using the BSD Socket 4dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * interface as the means of communication with the user level. 5dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * 6dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * Global definitions for the INET interface module. 7dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * 8dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * Version: @(#)if.h 1.0.2 04/18/93 9dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * 10dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1982-1988 11dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * Ross Biro 12dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> 13dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * 14dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * This program is free software; you can redistribute it and/or 15dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * modify it under the terms of the GNU General Public License 16dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * as published by the Free Software Foundation; either version 17dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * 2 of the License, or (at your option) any later version. 18dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat */ 19dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#ifndef _LINUX_IF_H 20dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define _LINUX_IF_H 21dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 22dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#include <linux/types.h> /* for "__kernel_caddr_t" et al */ 23dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#include <linux/socket.h> /* for "struct sockaddr" et al */ 24dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat /* for "__user" et al */ 25dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 26dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFNAMSIZ 16 27dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFALIASZ 256 28dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#include <linux/hdlc/ioctl.h> 29dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 30dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* Standard interface flags (netdevice->flags). */ 31dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_UP 0x1 /* interface is up */ 32dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_BROADCAST 0x2 /* broadcast address valid */ 33dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_DEBUG 0x4 /* turn on debugging */ 34dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_LOOPBACK 0x8 /* is a loopback net */ 35dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_POINTOPOINT 0x10 /* interface is has p-p link */ 36dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_NOTRAILERS 0x20 /* avoid use of trailers */ 37dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_RUNNING 0x40 /* interface RFC2863 OPER_UP */ 38dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_NOARP 0x80 /* no ARP protocol */ 39dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_PROMISC 0x100 /* receive all packets */ 40dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_ALLMULTI 0x200 /* receive all multicast packets*/ 41dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 42dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_MASTER 0x400 /* master of a load balancer */ 43dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_SLAVE 0x800 /* slave of a load balancer */ 44dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 45dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_MULTICAST 0x1000 /* Supports multicast */ 46dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 47dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_PORTSEL 0x2000 /* can set media type */ 48dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_AUTOMEDIA 0x4000 /* auto media select active */ 49dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_DYNAMIC 0x8000 /* dialup device with changing addresses*/ 50dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 51dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_LOWER_UP 0x10000 /* driver signals L1 up */ 52dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_DORMANT 0x20000 /* driver signals dormant */ 53dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 54dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_ECHO 0x40000 /* echo sent packets */ 55dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 56dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\ 57dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT) 58dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 59dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* Private (from user) interface flags (netdevice->priv_flags). */ 60dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_802_1Q_VLAN 0x1 /* 802.1Q VLAN device. */ 61dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_EBRIDGE 0x2 /* Ethernet bridging device. */ 62dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_SLAVE_INACTIVE 0x4 /* bonding slave not the curr. active */ 63dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_MASTER_8023AD 0x8 /* bonding master, 802.3ad. */ 64dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_MASTER_ALB 0x10 /* bonding master, balance-alb. */ 65dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_BONDING 0x20 /* bonding master or slave */ 66dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_SLAVE_NEEDARP 0x40 /* need ARPs for validation */ 67dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_ISATAP 0x80 /* ISATAP interface (RFC4214) */ 68dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_MASTER_ARPMON 0x100 /* bonding master, ARP mon in use */ 69dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_WAN_HDLC 0x200 /* WAN HDLC device */ 70dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFF_XMIT_DST_RELEASE 0x400 /* dev_hard_start_xmit() is allowed to 71dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * release skb->dst 72dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat */ 731a441f49ec87ef74b978d7ae17da2a9b2ca6e811Dmitry Shmidt#define IFF_DONT_BRIDGE 0x800 /* disallow bridging this ether dev */ 741a441f49ec87ef74b978d7ae17da2a9b2ca6e811Dmitry Shmidt#define IFF_IN_NETPOLL 0x1000 /* whether we are processing netpoll */ 751a441f49ec87ef74b978d7ae17da2a9b2ca6e811Dmitry Shmidt#define IFF_DISABLE_NETPOLL 0x2000 /* disable netpoll at run-time */ 76dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 77dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_GET_IFACE 0x0001 /* for querying only */ 78dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_GET_PROTO 0x0002 79dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 80dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* For definitions see hdlc.h */ 81dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_IFACE_V35 0x1000 /* V.35 serial interface */ 82dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_IFACE_V24 0x1001 /* V.24 serial interface */ 83dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_IFACE_X21 0x1002 /* X.21 serial interface */ 84dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_IFACE_T1 0x1003 /* T1 telco serial interface */ 85dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_IFACE_E1 0x1004 /* E1 telco serial interface */ 86dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_IFACE_SYNC_SERIAL 0x1005 /* can't be set by software */ 87dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_IFACE_X21D 0x1006 /* X.21 Dual Clocking (FarSite) */ 88dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 89dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* For definitions see hdlc.h */ 90dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_PROTO_HDLC 0x2000 /* raw HDLC protocol */ 91dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_PROTO_PPP 0x2001 /* PPP protocol */ 92dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_PROTO_CISCO 0x2002 /* Cisco HDLC protocol */ 93dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_PROTO_FR 0x2003 /* Frame Relay protocol */ 94dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_PROTO_FR_ADD_PVC 0x2004 /* Create FR PVC */ 95dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_PROTO_FR_DEL_PVC 0x2005 /* Delete FR PVC */ 96dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_PROTO_X25 0x2006 /* X.25 */ 97dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_PROTO_HDLC_ETH 0x2007 /* raw HDLC, Ethernet emulation */ 98dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_PROTO_FR_ADD_ETH_PVC 0x2008 /* Create FR Ethernet-bridged PVC */ 99dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_PROTO_FR_DEL_ETH_PVC 0x2009 /* Delete FR Ethernet-bridged PVC */ 100dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_PROTO_FR_PVC 0x200A /* for reading PVC status */ 101dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_PROTO_FR_ETH_PVC 0x200B 102dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IF_PROTO_RAW 0x200C /* RAW Socket */ 103dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 104dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* RFC 2863 operational status */ 105dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehatenum { 106dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat IF_OPER_UNKNOWN, 107dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat IF_OPER_NOTPRESENT, 108dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat IF_OPER_DOWN, 109dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat IF_OPER_LOWERLAYERDOWN, 110dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat IF_OPER_TESTING, 111dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat IF_OPER_DORMANT, 112dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat IF_OPER_UP, 113dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat}; 114dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 115dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* link modes */ 116dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehatenum { 117dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat IF_LINK_MODE_DEFAULT, 118dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat IF_LINK_MODE_DORMANT, /* limit upward transition to dormant */ 119dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat}; 120dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 121dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* 122dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * Device mapping structure. I'd just gone off and designed a 123dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * beautiful scheme using only loadable modules with arguments 124dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * for driver options and along come the PCMCIA people 8) 125dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * 126dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * Ah well. The get() side of this is good for WDSETUP, and it'll 127dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * be handy for debugging things. The set side is fine for now and 128dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * being very small might be worth keeping for clean configuration. 129dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat */ 130dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 1311a441f49ec87ef74b978d7ae17da2a9b2ca6e811Dmitry Shmidtstruct ifmap { 132dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat unsigned long mem_start; 133dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat unsigned long mem_end; 134dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat unsigned short base_addr; 135dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat unsigned char irq; 136dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat unsigned char dma; 137dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat unsigned char port; 138dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat /* 3 bytes spare */ 139dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat}; 140dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 1411a441f49ec87ef74b978d7ae17da2a9b2ca6e811Dmitry Shmidtstruct if_settings { 142dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat unsigned int type; /* Type of physical device or protocol */ 143dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat unsigned int size; /* Size of the data allocated by the caller */ 144dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat union { 145dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat /* {atm/eth/dsl}_settings anyone ? */ 146dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat raw_hdlc_proto *raw_hdlc; 147dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat cisco_proto *cisco; 148dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat fr_proto *fr; 149dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat fr_proto_pvc *fr_pvc; 150dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat fr_proto_pvc_info *fr_pvc_info; 151dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 152dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat /* interface settings */ 153dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat sync_serial_settings *sync; 154dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat te1_settings *te1; 155dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat } ifs_ifsu; 156dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat}; 157dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 158dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* 159dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * Interface request structure used for socket 160dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * ioctl's. All interface ioctl's must have parameter 161dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * definitions which begin with ifr_name. The 162dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * remainder may be interface specific. 163dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat */ 164dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 1651a441f49ec87ef74b978d7ae17da2a9b2ca6e811Dmitry Shmidtstruct ifreq { 166dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define IFHWADDRLEN 6 167dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat union 168dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat { 169dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat char ifrn_name[IFNAMSIZ]; /* if name, e.g. "en0" */ 170dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat } ifr_ifrn; 171dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 172dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat union { 173dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat struct sockaddr ifru_addr; 174dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat struct sockaddr ifru_dstaddr; 175dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat struct sockaddr ifru_broadaddr; 176dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat struct sockaddr ifru_netmask; 177dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat struct sockaddr ifru_hwaddr; 178dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat short ifru_flags; 179dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat int ifru_ivalue; 180dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat int ifru_mtu; 181dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat struct ifmap ifru_map; 182dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat char ifru_slave[IFNAMSIZ]; /* Just fits the size */ 183dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat char ifru_newname[IFNAMSIZ]; 184dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat void * ifru_data; 185dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat struct if_settings ifru_settings; 186dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat } ifr_ifru; 187dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat}; 188dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 189dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_name ifr_ifrn.ifrn_name /* interface name */ 190dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_hwaddr ifr_ifru.ifru_hwaddr /* MAC address */ 191dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_addr ifr_ifru.ifru_addr /* address */ 192dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-p lnk */ 193dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */ 194dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_netmask ifr_ifru.ifru_netmask /* interface net mask */ 195dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_flags ifr_ifru.ifru_flags /* flags */ 196dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_metric ifr_ifru.ifru_ivalue /* metric */ 197dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_mtu ifr_ifru.ifru_mtu /* mtu */ 198dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_map ifr_ifru.ifru_map /* device map */ 199dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_slave ifr_ifru.ifru_slave /* slave device */ 200dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_data ifr_ifru.ifru_data /* for use by interface */ 201dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_ifindex ifr_ifru.ifru_ivalue /* interface index */ 202dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_bandwidth ifr_ifru.ifru_ivalue /* link bandwidth */ 203dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_qlen ifr_ifru.ifru_ivalue /* Queue length */ 204dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_newname ifr_ifru.ifru_newname /* New name */ 205dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifr_settings ifr_ifru.ifru_settings /* Device/proto settings*/ 206dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 207dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* 208dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * Structure used in SIOCGIFCONF request. 209dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * Used to retrieve interface configuration 210dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * for machine (useful for programs which 211dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * must know all networks accessible). 212dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat */ 213dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 2141a441f49ec87ef74b978d7ae17da2a9b2ca6e811Dmitry Shmidtstruct ifconf { 215dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat int ifc_len; /* size of buffer */ 2161a441f49ec87ef74b978d7ae17da2a9b2ca6e811Dmitry Shmidt union { 217dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat char *ifcu_buf; 218dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat struct ifreq *ifcu_req; 219dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat } ifc_ifcu; 220dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat}; 221dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */ 222dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define ifc_req ifc_ifcu.ifcu_req /* array of structures */ 223dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 224dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#endif /* _LINUX_IF_H */ 225