Changeset 88d99508 in rtems


Ignore:
Timestamp:
Apr 18, 2005, 4:36:20 PM (15 years ago)
Author:
Ralf Corsepius <ralf.corsepius@…>
Branches:
4.10, 4.11, 4.8, 4.9, master
Children:
68f4e5f
Parents:
0383873
Message:

2005-04-18 Ralf Corsepius <ralf.corsepius@…>

  • libnetworking/net/if.h: Update from FreeBSD.
  • libnetworking/net/if_loop.c: Reflect updates.
  • libnetworking/net/if_ppp.c: Reflect updates.
  • libnetworking/net/if_types.h: Update from FreeBSD.
Location:
cpukit
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • cpukit/ChangeLog

    r0383873 r88d99508  
    112005-04-18      Ralf Corsepius <ralf.corsepius@rtems.org>
    22
     3        * libnetworking/net/if.h: Update from FreeBSD.
     4        * libnetworking/net/if_loop.c: Reflect updates.
     5        * libnetworking/net/if_ppp.c: Reflect updates.
     6        * libnetworking/net/if_types.h: Update from FreeBSD.
    37        * libnetworking/net/ethernet.h: Add RTEMS outdated either_input.
    48        * libnetworking/net/if.c: Partial update from FreeBSD.
  • cpukit/libnetworking/net/if.h

    r0383873 r88d99508  
    2828 *
    2929 *      @(#)if.h        8.1 (Berkeley) 6/10/93
    30  * $FreeBSD: src/sys/net/if.h,v 1.92 2004/09/08 04:50:55 brooks Exp $
     30 * $FreeBSD: src/sys/net/if.h,v 1.95 2005/02/25 19:46:41 brooks Exp $
    3131 */
    3232
     
    3838#define _NET_IF_H_
    3939
    40 /*
    41  * Structures defining a network interface, providing a packet
    42  * transport mechanism (ala level 0 of the PUP protocols).
    43  *
    44  * Each interface accepts output datagrams of a specified maximum
    45  * length, and provides higher level routines with input datagrams
    46  * received from its medium.
    47  *
    48  * Output occurs when the routine if_output is called, with three parameters:
    49  *      (*ifp->if_output)(ifp, m, dst, rt)
    50  * Here m is the mbuf chain to be sent and dst is the destination address.
    51  * The output routine encapsulates the supplied datagram if necessary,
    52  * and then transmits it on its medium.
    53  *
    54  * On input, each interface unwraps the data received by it, and either
    55  * places it on the input queue of a internetwork datagram routine
    56  * and posts the associated software interrupt, or passes the datagram to a raw
    57  * packet input routine.
    58  *
    59  * Routines exist for locating interfaces by their addresses
    60  * or for locating a interface on a certain network, as well as more general
    61  * routing and gateway routines maintaining information used to locate
    62  * interfaces.  These routines live in the files if.c and route.c
    63  */
    64 
    6540#include <sys/cdefs.h>
    6641
     
    8964
    9065struct ifnet;
    91 
    92 /*
    93  * Forward structure declarations for function prototypes [sic].
    94  */
    95 struct  mbuf;
    96 struct  proc;
    97 struct  rtentry;
    98 struct  socket;
    9966struct  ether_header;
    10067#endif
     
    153120};
    154121
    155 /*
    156  * Structure defining a queue for a network interface.
    157  */
    158 struct  ifqueue {
    159         struct  mbuf *ifq_head;
    160         struct  mbuf *ifq_tail;
    161         int     ifq_len;
    162         int     ifq_maxlen;
    163         int     ifq_drops;
    164 };
    165 
    166 /*
    167  * Structure defining a network interface.
    168  *
    169  * (Would like to call this struct ``if'', but C isn't PL/1.)
    170  */
    171 struct ifnet {
    172         void    *if_softc;              /* pointer to driver state */
    173         char    *if_name;               /* name, e.g. ``en'' or ``lo'' */
    174         struct  ifnet *if_next;         /* all struct ifnets are chained */
    175         struct  ifaddr *if_addrlist;    /* linked list of addresses per if */
    176         int     if_pcount;              /* number of promiscuous listeners */
    177         struct  bpf_if *if_bpf;         /* packet filter structure */
    178         u_short if_index;               /* numeric abbreviation for this if  */
    179         short   if_unit;                /* sub-unit for lower level driver */
    180         short   if_timer;               /* time 'til if_watchdog called */
    181         short   if_flags;               /* up/down, broadcast, etc. */
    182         int     if_ipending;            /* interrupts pending */
    183         void    *if_linkmib;            /* link-type-specific MIB data */
    184         size_t  if_linkmiblen;          /* length of above data */
    185         struct  if_data if_data;
    186 /* procedure handles */
    187         int     (*if_output)            /* output routine (enqueue) */
    188                 __P((struct ifnet *, struct mbuf *, struct sockaddr *,
    189                      struct rtentry *));
    190         void    (*if_start)             /* initiate output routine */
    191                 __P((struct ifnet *));
    192         int     (*if_done)              /* output complete routine */
    193                 __P((struct ifnet *));  /* (XXX not used; fake prototype) */
    194         int     (*if_ioctl)             /* ioctl routine */
    195                 __P((struct ifnet *, int, caddr_t));
    196         void    (*if_watchdog)          /* timer routine */
    197                 __P((struct ifnet *));
    198         int     (*if_poll_recv)         /* polled receive routine */
    199                 __P((struct ifnet *, int *));
    200         int     (*if_poll_xmit)         /* polled transmit routine */
    201                 __P((struct ifnet *, int *));
    202         void    (*if_poll_intren)       /* polled interrupt reenable routine */
    203                 __P((struct ifnet *));
    204         void    (*if_poll_slowinput)    /* input routine for slow devices */
    205                 __P((struct ifnet *, struct mbuf *));
    206         void    (*if_init)              /* Init routine */
    207                 __P((void *));
    208         int     (*if_tap)               /* Packet filter routine */
    209                 (struct ifnet *, struct ether_header *, struct mbuf *);
    210         struct  ifqueue if_snd;         /* output queue */
    211         struct  ifqueue *if_poll_slowq; /* input queue for slow devices */
    212 };
    213 typedef void if_init_f_t __P((void *));       
    214 
    215 #define if_mtu          if_data.ifi_mtu
    216 #define if_type         if_data.ifi_type
    217 #define if_physical     if_data.ifi_physical
    218 #define if_addrlen      if_data.ifi_addrlen
    219 #define if_hdrlen       if_data.ifi_hdrlen
    220 #define if_metric       if_data.ifi_metric
    221 #define if_baudrate     if_data.ifi_baudrate
    222 #define if_ipackets     if_data.ifi_ipackets
    223 #define if_ierrors      if_data.ifi_ierrors
    224 #define if_opackets     if_data.ifi_opackets
    225 #define if_oerrors      if_data.ifi_oerrors
    226 #define if_collisions   if_data.ifi_collisions
    227 #define if_ibytes       if_data.ifi_ibytes
    228 #define if_obytes       if_data.ifi_obytes
    229 #define if_imcasts      if_data.ifi_imcasts
    230 #define if_omcasts      if_data.ifi_omcasts
    231 #define if_iqdrops      if_data.ifi_iqdrops
    232 #define if_noproto      if_data.ifi_noproto
    233 #define if_lastchange   if_data.ifi_lastchange
    234 #define if_recvquota    if_data.ifi_recvquota
    235 #define if_xmitquota    if_data.ifi_xmitquota
    236 #define if_rawoutput(if, m, sa) if_output(if, m, sa, (struct rtentry *)0)
    237 
    238122#define IFF_UP          0x1             /* interface is up */
    239123#define IFF_BROADCAST   0x2             /* broadcast address valid */
     
    265149            IFF_POLLING)
    266150
    267 
    268 /*
    269  * These really don't belong here, but there's no other obviously appropriate
    270  * location.
    271  */
    272 #define IFP_AUI         0
    273 #define IFP_10BASE2     1
    274 #define IFP_10BASET     2
    275 /* etc. */
     151/*
     152 * Values for if_link_state.
     153 */
     154#define LINK_STATE_UNKNOWN      0       /* link invalid/unknown */
     155#define LINK_STATE_DOWN         1       /* link is down */
     156#define LINK_STATE_UP           2       /* link is up */
     157
     158/*
     159 * Some convenience macros used for setting ifi_baudrate.
     160 * XXX 1000 vs. 1024? --thorpej@netbsd.org
     161 */
     162#define IF_Kbps(x)      ((x) * 1000)            /* kilobits/sec. */
     163#define IF_Mbps(x)      (IF_Kbps((x) * 1000))   /* megabits/sec. */
     164#define IF_Gbps(x)      (IF_Mbps((x) * 1000))   /* gigabits/sec. */
    276165
    277166/*
     
    281170#define IFI_XMIT        2       /* I want to transmit */
    282171
    283 /*
    284  * Output queues (ifp->if_snd) and slow device input queues (*ifp->if_slowq)
    285  * are queues of messages stored on ifqueue structures
    286  * (defined above).  Entries are added to and deleted from these structures
    287  * by these macros, which should be called with ipl raised to splimp().
    288  */
    289 #define IF_QFULL(ifq)           ((ifq)->ifq_len >= (ifq)->ifq_maxlen)
    290 #define IF_DROP(ifq)            ((ifq)->ifq_drops++)
    291 #define IF_ENQUEUE(ifq, m) { \
    292 /* printf(" IF_ENQUEUE: %p %p\n", ifq, m ); */ \
    293         (m)->m_nextpkt = 0; \
    294         if ((ifq)->ifq_tail == 0) \
    295                 (ifq)->ifq_head = m; \
    296         else \
    297                 (ifq)->ifq_tail->m_nextpkt = m; \
    298         (ifq)->ifq_tail = m; \
    299         (ifq)->ifq_len++; \
    300 }
    301 #define IF_PREPEND(ifq, m) { \
    302 /* printf(" IF_PREPEND: %p %p\n", ifq, m ); */ \
    303         (m)->m_nextpkt = (ifq)->ifq_head; \
    304         if ((ifq)->ifq_tail == 0) \
    305                 (ifq)->ifq_tail = (m); \
    306         (ifq)->ifq_head = (m); \
    307         (ifq)->ifq_len++; \
    308 }
    309 #define IF_DEQUEUE(ifq, m) { \
    310         (m) = (ifq)->ifq_head; \
    311         if (m) { \
    312 /* printf(" IF_DEQUEUE: %p %p\n", ifq, m ); */ \
    313                 if (((ifq)->ifq_head = (m)->m_nextpkt) == 0) \
    314                         (ifq)->ifq_tail = 0; \
    315                 (m)->m_nextpkt = 0; \
    316                 (ifq)->ifq_len--; \
    317         } \
    318 }
    319 
    320 #ifdef _KERNEL
    321 #define IF_ENQ_DROP(ifq, m)     if_enq_drop(ifq, m)
    322 
    323 #if defined(__GNUC__) && defined(MT_HEADER)
    324 static inline int
    325 if_queue_drop(struct ifqueue *ifq, struct mbuf *m)
    326 {
    327         IF_DROP(ifq);
    328         return 0;
    329 }
    330 
    331 static inline int
    332 if_enq_drop(struct ifqueue *ifq, struct mbuf *m)
    333 {
    334         if (IF_QFULL(ifq) &&
    335             !if_queue_drop(ifq, m))
    336                 return 0;
    337         IF_ENQUEUE(ifq, m);
    338         return 1;
    339 }
    340 #else
    341 
    342 #ifdef MT_HEADER
    343 int     if_enq_drop __P((struct ifqueue *, struct mbuf *));
    344 #endif
    345 
    346 #endif
    347 #endif /* _KERNEL */
    348 
    349172#define IFQ_MAXLEN      50
    350173#define IFNET_SLOWHZ    1               /* granularity is 1 second */
    351 
    352 /*
    353  * The ifaddr structure contains information about one address
    354  * of an interface.  They are maintained by the different address families,
    355  * are allocated and attached when an address is set, and are linked
    356  * together so all addresses for an interface can be located.
    357  */
    358 struct ifaddr {
    359         struct  sockaddr *ifa_addr;     /* address of interface */
    360         struct  sockaddr *ifa_dstaddr;  /* other end of p-to-p link */
    361 #define ifa_broadaddr   ifa_dstaddr     /* broadcast address interface */
    362         struct  sockaddr *ifa_netmask;  /* used to determine subnet */
    363         struct  ifnet *ifa_ifp;         /* back-pointer to interface */
    364         struct  ifaddr *ifa_next;       /* next address for interface */
    365         void    (*ifa_rtrequest)        /* check or clean routes (+ or -)'d */
    366                 __P((int, struct rtentry *, struct sockaddr *));
    367         u_short ifa_flags;              /* mostly rt_flags for cloning */
    368         short   ifa_refcnt;             /* references to this structure */
    369         int     ifa_metric;             /* cost of going out this interface */
    370 #ifdef notdef
    371         struct  rtentry *ifa_rt;        /* XXXX for ROUTETOIF ????? */
    372 #endif
    373         int (*ifa_claim_addr)           /* check if an addr goes to this if */
    374                 __P((struct ifaddr *, struct sockaddr *));
    375 
    376 };
    377 #define IFA_ROUTE       RTF_UP          /* route installed */
    378174
    379175/*
     
    484280#endif /* __BSD_VISIBLE */
    485281
    486 #include <net/if_arp.h>
    487 
    488282#ifdef _KERNEL
    489 #define IFAFREE(ifa) \
    490         if ((ifa)->ifa_refcnt <= 0) \
    491                 ifafree(ifa); \
    492         else \
    493                 (ifa)->ifa_refcnt--;
    494 
    495 extern struct   ifnet   *ifnet;
    496 extern int      ifqmaxlen;
    497 extern struct   ifnet   loif[];
    498 extern int      if_index;
    499 extern struct   ifaddr  **ifnet_addrs;
    500 
    501 void    ether_ifattach __P((struct ifnet *));
    502 void    ether_input __P((struct ifnet *, struct ether_header *, struct mbuf *));
    503 int     ether_output __P((struct ifnet *,
    504            struct mbuf *, struct sockaddr *, struct rtentry *));
    505 int     ether_ioctl __P((struct ifnet *, int , caddr_t ));
    506 
    507 void    if_attach(struct ifnet *);
    508 void    if_down(struct ifnet *);
    509 void    if_up(struct ifnet *);
    510 
    511 /*void  ifinit __P((void));*/ /* declared in systm.h for main() */
    512 int     ifioctl(struct socket *, int, caddr_t, struct proc *);
    513 int     ifpromisc(struct ifnet *, int);
    514 
    515 struct  ifaddr *ifa_ifwithaddr(struct sockaddr *);
    516 struct  ifaddr *ifa_ifwithdstaddr(struct sockaddr *);
    517 struct  ifaddr *ifa_ifwithnet(struct sockaddr *);
    518 struct  ifaddr *ifa_ifwithroute(int, struct sockaddr *,
    519                                         struct sockaddr *);
    520 struct  ifaddr *ifaof_ifpforaddr __P((struct sockaddr *, struct ifnet *));
     283
     284/* XXX - this should go away soon. */
     285#include <net/if_var.h>
     286
    521287void    ifafree __P((struct ifaddr *));
    522288
    523289int     looutput __P((struct ifnet *,
    524290           struct mbuf *, struct sockaddr *, struct rtentry *));
    525 #endif /* _KERNEL */
     291#endif
    526292
    527293#endif /* !_NET_IF_H_ */
  • cpukit/libnetworking/net/if_loop.c

    r0383873 r88d99508  
    2828 *
    2929 *      @(#)if_loop.c   8.2 (Berkeley) 1/9/95
    30  * $FreeBSD: src/sys/net/if_loop.c,v 1.102 2004/08/27 18:33:07 andre Exp $
     30 * $FreeBSD: src/sys/net/if_loop.c,v 1.104 2005/02/24 01:34:01 sam Exp $
    3131 */
    3232
     
    8484#include <netatalk/at.h>
    8585#include <netatalk/at_var.h>
    86 #endif /* NETATALK */
    87 
    88 #include "bpfilter.h"
    89 
    90 static int loioctl __P((struct ifnet *, int, caddr_t));
    91 static void lortrequest __P((int, struct rtentry *, struct sockaddr *));
    92 
    93        void rtems_bsdnet_loopattach __P((void *));
     86#endif
     87
     88static int loioctl(struct ifnet *, u_long, caddr_t);
     89static void lortrequest(int, struct rtentry *, struct sockaddr *);
     90
     91       void rtems_bsdnet_loopattach(void *);
    9492PSEUDO_SET(loopattach, if_loop);
    9593
     
    247245loioctl(ifp, cmd, data)
    248246        register struct ifnet *ifp;
    249         int cmd;
     247        u_long cmd;
    250248        caddr_t data;
    251249{
     
    277275                        break;
    278276#endif
     277#ifdef INET6
     278                case AF_INET6:
     279                        break;
     280#endif
    279281
    280282                default:
     
    288290                break;
    289291
     292        case SIOCSIFFLAGS:
     293                break;
     294
    290295        default:
    291296                error = EINVAL;
  • cpukit/libnetworking/net/if_ppp.c

    r0383873 r88d99508  
    128128#endif
    129129
    130 static int      pppsioctl(struct ifnet *, int, caddr_t);
     130static int      pppsioctl(struct ifnet *ifp, u_long cmd, caddr_t data);
    131131static void     ppp_requeue(struct ppp_softc *);
    132132#ifdef PPP_COMPRESS
     
    834834 */
    835835static int
    836 pppsioctl(ifp, cmd, data)
    837     register struct ifnet *ifp;
    838     int cmd;
    839     caddr_t data;
     836pppsioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
    840837{
    841838    /*struct proc *p = curproc;*/       /* XXX */
  • cpukit/libnetworking/net/if_types.h

    r0383873 r88d99508  
    1111 *    notice, this list of conditions and the following disclaimer in the
    1212 *    documentation and/or other materials provided with the distribution.
    13  * 3. All advertising materials mentioning features or use of this software
    14  *    must display the following acknowledgement:
    15  *      This product includes software developed by the University of
    16  *      California, Berkeley and its contributors.
    1713 * 4. Neither the name of the University nor the names of its contributors
    1814 *    may be used to endorse or promote products derived from this software
     
    3127 * SUCH DAMAGE.
    3228 *
    33  *      @(#)if_types.h  8.2 (Berkeley) 4/20/94
     29 *      @(#)if_types.h  8.3 (Berkeley) 4/28/95
     30 * $FreeBSD: src/sys/net/if_types.h,v 1.18 2005/02/22 13:04:03 glebius Exp $
     31 * $NetBSD: if_types.h,v 1.16 2000/04/19 06:30:53 itojun Exp $
     32 */
     33
     34/*
    3435 * $Id$
    3536 */
     
    4041/*
    4142 * Interface types for benefit of parsing media address headers.
    42  * This list is derived from the SNMP list of ifTypes, currently
    43  * documented in RFC1573.
     43 * This list is derived from the SNMP list of ifTypes, originally
     44 * documented in RFC1573, now maintained as:
     45 *
     46 *      ftp.isi.edu/in-notes/iana/assignments/smi-numbers
    4447 */
    4548
     
    4952#define IFT_X25DDN      0x4             /* x25 to imp */
    5053#define IFT_X25         0x5             /* PDN X25 interface (RFC877) */
    51 #define IFT_ETHER       0x6             /* Ethernet CSMACD */
    52 #define IFT_ISO88023    0x7             /* CMSA CD */
     54#define IFT_ETHER       0x6             /* Ethernet CSMA/CD */
     55#define IFT_ISO88023    0x7             /* CMSA/CD */
    5356#define IFT_ISO88024    0x8             /* Token Bus */
    5457#define IFT_ISO88025    0x9             /* Token Ring */
     
    98101#define IFT_PROPVIRTUAL 0x35            /* Proprietary Virtual/internal */
    99102#define IFT_PROPMUX     0x36            /* Proprietary Multiplexing */
    100 
    101 #endif
     103#define IFT_IEEE80212              0x37 /* 100BaseVG */
     104#define IFT_FIBRECHANNEL           0x38 /* Fibre Channel */
     105#define IFT_HIPPIINTERFACE         0x39 /* HIPPI interfaces      */
     106#define IFT_FRAMERELAYINTERCONNECT 0x3a /* Obsolete, use either 0x20 or 0x2c */
     107#define IFT_AFLANE8023             0x3b /* ATM Emulated LAN for 802.3 */
     108#define IFT_AFLANE8025             0x3c /* ATM Emulated LAN for 802.5 */
     109#define IFT_CCTEMUL                0x3d /* ATM Emulated circuit           */
     110#define IFT_FASTETHER              0x3e /* Fast Ethernet (100BaseT) */
     111#define IFT_ISDN                   0x3f /* ISDN and X.25            */
     112#define IFT_V11                    0x40 /* CCITT V.11/X.21              */
     113#define IFT_V36                    0x41 /* CCITT V.36                   */
     114#define IFT_G703AT64K              0x42 /* CCITT G703 at 64Kbps */
     115#define IFT_G703AT2MB              0x43 /* Obsolete see DS1-MIB */
     116#define IFT_QLLC                   0x44 /* SNA QLLC                     */
     117#define IFT_FASTETHERFX            0x45 /* Fast Ethernet (100BaseFX)    */
     118#define IFT_CHANNEL                0x46 /* channel                      */
     119#define IFT_IEEE80211              0x47 /* radio spread spectrum        */
     120#define IFT_IBM370PARCHAN          0x48 /* IBM System 360/370 OEMI Channel */
     121#define IFT_ESCON                  0x49 /* IBM Enterprise Systems Connection */
     122#define IFT_DLSW                   0x4a /* Data Link Switching */
     123#define IFT_ISDNS                  0x4b /* ISDN S/T interface */
     124#define IFT_ISDNU                  0x4c /* ISDN U interface */
     125#define IFT_LAPD                   0x4d /* Link Access Protocol D */
     126#define IFT_IPSWITCH               0x4e /* IP Switching Objects */
     127#define IFT_RSRB                   0x4f /* Remote Source Route Bridging */
     128#define IFT_ATMLOGICAL             0x50 /* ATM Logical Port */
     129#define IFT_DS0                    0x51 /* Digital Signal Level 0 */
     130#define IFT_DS0BUNDLE              0x52 /* group of ds0s on the same ds1 */
     131#define IFT_BSC                    0x53 /* Bisynchronous Protocol */
     132#define IFT_ASYNC                  0x54 /* Asynchronous Protocol */
     133#define IFT_CNR                    0x55 /* Combat Net Radio */
     134#define IFT_ISO88025DTR            0x56 /* ISO 802.5r DTR */
     135#define IFT_EPLRS                  0x57 /* Ext Pos Loc Report Sys */
     136#define IFT_ARAP                   0x58 /* Appletalk Remote Access Protocol */
     137#define IFT_PROPCNLS               0x59 /* Proprietary Connectionless Protocol*/
     138#define IFT_HOSTPAD                0x5a /* CCITT-ITU X.29 PAD Protocol */
     139#define IFT_TERMPAD                0x5b /* CCITT-ITU X.3 PAD Facility */
     140#define IFT_FRAMERELAYMPI          0x5c /* Multiproto Interconnect over FR */
     141#define IFT_X213                   0x5d /* CCITT-ITU X213 */
     142#define IFT_ADSL                   0x5e /* Asymmetric Digital Subscriber Loop */
     143#define IFT_RADSL                  0x5f /* Rate-Adapt. Digital Subscriber Loop*/
     144#define IFT_SDSL                   0x60 /* Symmetric Digital Subscriber Loop */
     145#define IFT_VDSL                   0x61 /* Very H-Speed Digital Subscrib. Loop*/
     146#define IFT_ISO88025CRFPINT        0x62 /* ISO 802.5 CRFP */
     147#define IFT_MYRINET                0x63 /* Myricom Myrinet */
     148#define IFT_VOICEEM                0x64 /* voice recEive and transMit */
     149#define IFT_VOICEFXO               0x65 /* voice Foreign Exchange Office */
     150#define IFT_VOICEFXS               0x66 /* voice Foreign Exchange Station */
     151#define IFT_VOICEENCAP             0x67 /* voice encapsulation */
     152#define IFT_VOICEOVERIP            0x68 /* voice over IP encapsulation */
     153#define IFT_ATMDXI                 0x69 /* ATM DXI */
     154#define IFT_ATMFUNI                0x6a /* ATM FUNI */
     155#define IFT_ATMIMA                 0x6b /* ATM IMA                    */
     156#define IFT_PPPMULTILINKBUNDLE     0x6c /* PPP Multilink Bundle */
     157#define IFT_IPOVERCDLC             0x6d /* IBM ipOverCdlc */
     158#define IFT_IPOVERCLAW             0x6e /* IBM Common Link Access to Workstn */
     159#define IFT_STACKTOSTACK           0x6f /* IBM stackToStack */
     160#define IFT_VIRTUALIPADDRESS       0x70 /* IBM VIPA */
     161#define IFT_MPC                    0x71 /* IBM multi-protocol channel support */
     162#define IFT_IPOVERATM              0x72 /* IBM ipOverAtm */
     163#define IFT_ISO88025FIBER          0x73 /* ISO 802.5j Fiber Token Ring */
     164#define IFT_TDLC                   0x74 /* IBM twinaxial data link control */
     165#define IFT_GIGABITETHERNET        0x75 /* Gigabit Ethernet */
     166#define IFT_HDLC                   0x76 /* HDLC */
     167#define IFT_LAPF                   0x77 /* LAP F */
     168#define IFT_V37                    0x78 /* V.37 */
     169#define IFT_X25MLP                 0x79 /* Multi-Link Protocol */
     170#define IFT_X25HUNTGROUP           0x7a /* X25 Hunt Group */
     171#define IFT_TRANSPHDLC             0x7b /* Transp HDLC */
     172#define IFT_INTERLEAVE             0x7c /* Interleave channel */
     173#define IFT_FAST                   0x7d /* Fast channel */
     174#define IFT_IP                     0x7e /* IP (for APPN HPR in IP networks) */
     175#define IFT_DOCSCABLEMACLAYER      0x7f /* CATV Mac Layer */
     176#define IFT_DOCSCABLEDOWNSTREAM    0x80 /* CATV Downstream interface */
     177#define IFT_DOCSCABLEUPSTREAM      0x81 /* CATV Upstream interface */
     178#define IFT_A12MPPSWITCH           0x82 /* Avalon Parallel Processor */
     179#define IFT_TUNNEL                 0x83 /* Encapsulation interface */
     180#define IFT_COFFEE                 0x84 /* coffee pot */
     181#define IFT_CES                    0x85 /* Circiut Emulation Service */
     182#define IFT_ATMSUBINTERFACE        0x86 /* (x)  ATM Sub Interface */
     183#define IFT_L2VLAN                 0x87 /* Layer 2 Virtual LAN using 802.1Q */
     184#define IFT_L3IPVLAN               0x88 /* Layer 3 Virtual LAN - IP Protocol */
     185#define IFT_L3IPXVLAN              0x89 /* Layer 3 Virtual LAN - IPX Prot. */
     186#define IFT_DIGITALPOWERLINE       0x8a /* IP over Power Lines */
     187#define IFT_MEDIAMAILOVERIP        0x8b /* (xxx)  Multimedia Mail over IP */
     188#define IFT_DTM                    0x8c /* Dynamic synchronous Transfer Mode */
     189#define IFT_DCN                    0x8d /* Data Communications Network */
     190#define IFT_IPFORWARD              0x8e /* IP Forwarding Interface */
     191#define IFT_MSDSL                  0x8f /* Multi-rate Symmetric DSL */
     192#define IFT_IEEE1394               0x90 /* IEEE1394 High Performance SerialBus*/
     193#define IFT_IFGSN                  0x91 /* HIPPI-6400 */
     194#define IFT_DVBRCCMACLAYER         0x92 /* DVB-RCC MAC Layer */
     195#define IFT_DVBRCCDOWNSTREAM       0x93 /* DVB-RCC Downstream Channel */
     196#define IFT_DVBRCCUPSTREAM         0x94 /* DVB-RCC Upstream Channel */
     197#define IFT_ATMVIRTUAL             0x95 /* ATM Virtual Interface */
     198#define IFT_MPLSTUNNEL             0x96 /* MPLS Tunnel Virtual Interface */
     199#define IFT_SRP                    0x97 /* Spatial Reuse Protocol */
     200#define IFT_VOICEOVERATM           0x98 /* Voice over ATM */
     201#define IFT_VOICEOVERFRAMERELAY    0x99 /* Voice Over Frame Relay */
     202#define IFT_IDSL                   0x9a /* Digital Subscriber Loop over ISDN */
     203#define IFT_COMPOSITELINK          0x9b /* Avici Composite Link Interface */
     204#define IFT_SS7SIGLINK             0x9c /* SS7 Signaling Link */
     205#define IFT_PROPWIRELESSP2P        0x9d /* Prop. P2P wireless interface */
     206#define IFT_FRFORWARD              0x9e /* Frame forward Interface */
     207#define IFT_RFC1483                0x9f /* Multiprotocol over ATM AAL5 */
     208#define IFT_USB                    0xa0 /* USB Interface */
     209#define IFT_IEEE8023ADLAG          0xa1 /* IEEE 802.3ad Link Aggregate*/
     210#define IFT_BGPPOLICYACCOUNTING    0xa2 /* BGP Policy Accounting */
     211#define IFT_FRF16MFRBUNDLE         0xa3 /* FRF.16 Multilik Frame Relay*/
     212#define IFT_H323GATEKEEPER         0xa4 /* H323 Gatekeeper */
     213#define IFT_H323PROXY              0xa5 /* H323 Voice and Video Proxy */
     214#define IFT_MPLS                   0xa6 /* MPLS */
     215#define IFT_MFSIGLINK              0xa7 /* Multi-frequency signaling link */
     216#define IFT_HDSL2                  0xa8 /* High Bit-Rate DSL, 2nd gen. */
     217#define IFT_SHDSL                  0xa9 /* Multirate HDSL2 */
     218#define IFT_DS1FDL                 0xaa /* Facility Data Link (4Kbps) on a DS1*/
     219#define IFT_POS                    0xab /* Packet over SONET/SDH Interface */
     220#define IFT_DVBASILN               0xac /* DVB-ASI Input */
     221#define IFT_DVBASIOUT              0xad /* DVB-ASI Output */
     222#define IFT_PLC                    0xae /* Power Line Communications */
     223#define IFT_NFAS                   0xaf /* Non-Facility Associated Signaling */
     224#define IFT_TR008                  0xb0 /* TROO8 */
     225#define IFT_GR303RDT               0xb1 /* Remote Digital Terminal */
     226#define IFT_GR303IDT               0xb2 /* Integrated Digital Terminal */
     227#define IFT_ISUP                   0xb3 /* ISUP */
     228#define IFT_PROPDOCSWIRELESSMACLAYER       0xb4 /* prop/Wireless MAC Layer */
     229#define IFT_PROPDOCSWIRELESSDOWNSTREAM     0xb5 /* prop/Wireless Downstream */
     230#define IFT_PROPDOCSWIRELESSUPSTREAM       0xb6 /* prop/Wireless Upstream */
     231#define IFT_HIPERLAN2              0xb7 /* HIPERLAN Type 2 Radio Interface */
     232#define IFT_PROPBWAP2MP            0xb8 /* PropBroadbandWirelessAccess P2MP*/
     233#define IFT_SONETOVERHEADCHANNEL   0xb9 /* SONET Overhead Channel */
     234#define IFT_DIGITALWRAPPEROVERHEADCHANNEL  0xba /* Digital Wrapper Overhead */
     235#define IFT_AAL2                   0xbb /* ATM adaptation layer 2 */
     236#define IFT_RADIOMAC               0xbc /* MAC layer over radio links */
     237#define IFT_ATMRADIO               0xbd /* ATM over radio links */
     238#define IFT_IMT                    0xbe /* Inter-Machine Trunks */
     239#define IFT_MVL                    0xbf /* Multiple Virtual Lines DSL */
     240#define IFT_REACHDSL               0xc0 /* Long Reach DSL */
     241#define IFT_FRDLCIENDPT            0xc1 /* Frame Relay DLCI End Point */
     242#define IFT_ATMVCIENDPT            0xc2 /* ATM VCI End Point */
     243#define IFT_OPTICALCHANNEL         0xc3 /* Optical Channel */
     244#define IFT_OPTICALTRANSPORT       0xc4 /* Optical Transport */
     245
     246#define IFT_STF                    0xd7 /* 6to4 interface */
     247
     248/* not based on IANA assignments */
     249#define IFT_GIF         0xf0
     250#define IFT_PVC         0xf1
     251#define IFT_FAITH       0xf2
     252#define IFT_PFLOG       0xf6
     253#define IFT_PFSYNC      0xf7
     254#define IFT_CARP        0xf8    /* Common Address Redundancy Protocol */
     255#endif /* !_NET_IF_TYPES_H_ */
Note: See TracChangeset for help on using the changeset viewer.