1/* 2 * Copyright 2007-2012 Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _NET_IF_MEDIA_H 6#define _NET_IF_MEDIA_H 7 8 9/* bits usage 10 * ---- ----- 11 * 0-4 Media subtype 12 * 5-7 Media type 13 * 8-15 Type specific options 14 * 16-31 General options 15 */ 16 17/* Media types */ 18 19#define IFM_ETHER 0x00000020 /* Ethernet */ 20#define IFM_TOKEN 0x00000040 /* Token Ring */ 21#define IFM_FDDI 0x00000060 /* Fiber Distributed Data Interface */ 22#define IFM_IEEE80211 0x00000080 /* Wireless IEEE 802.11 */ 23#define IFM_ATM 0x000000a0 24#define IFM_CARP 0x000000c0 /* Common Address Redundancy Protocol */ 25 26/* Media subtypes */ 27 28/* Ethernet */ 29#define IFM_AUTO 0 30#define IFM_10_T 3 /* 10Base-T - RJ45 */ 31#define IFM_100_TX 6 /* 100Base-TX - RJ45 */ 32#define IFM_1000_T 16 /* 1000Base-T - RJ45 */ 33#define IFM_1000_SX 18 /* 1000Base-SX - Fiber Optic */ 34 35/* General options */ 36 37#define IFM_FULL_DUPLEX 0x00100000 /* Full duplex */ 38#define IFM_HALF_DUPLEX 0x00200000 /* Half duplex */ 39#define IFM_LOOP 0x00400000 /* hardware in loopback */ 40#define IFM_ACTIVE 0x00800000 /* Media link is active */ 41 42/* Masks */ 43 44#define IFM_NMASK 0x000000e0 /* Media type */ 45#define IFM_TMASK 0x0000001f /* Media subtype */ 46#define IFM_OMASK 0x0000ff00 /* Type specific options */ 47#define IFM_GMASK 0x0ff00000 /* Generic options */ 48 49/* Macros for the masks */ 50 51#define IFM_TYPE(x) ((x) & IFM_NMASK) 52#define IFM_SUBTYPE(x) ((x) & IFM_TMASK) 53#define IFM_TYPE_OPTIONS(x) \ 54 ((x) & IFM_OMASK) 55#define IFM_OPTIONS(x) ((x) & (IFM_OMASK | IFM_GMASK)) 56 57#endif /* _NET_IF_MEDIA_H */ 58