/* WINE ipifcons.h
 * Copyright (C) 2003 Juan Lang
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */
#ifndef WINE_IPIFCONS_H__
#define WINE_IPIFCONS_H__

#define IF_TYPE_OTHER                            1
#define IF_TYPE_REGULAR_1822                     2
#define IF_TYPE_HDH_1822                         3
#define IF_TYPE_DDN_X25                          4
#define IF_TYPE_RFC877_X25                       5
#define IF_TYPE_ETHERNET_CSMACD                  6
#define IF_TYPE_IS088023_CSMACD                  7
#define IF_TYPE_ISO88024_TOKENBUS                8
#define IF_TYPE_ISO88025_TOKENRING               9
#define IF_TYPE_ISO88026_MAN                     10
#define IF_TYPE_STARLAN                          11
#define IF_TYPE_PROTEON_10MBIT                   12
#define IF_TYPE_PROTEON_80MBIT                   13
#define IF_TYPE_HYPERCHANNEL                     14
#define IF_TYPE_FDDI                             15
#define IF_TYPE_LAP_B                            16
#define IF_TYPE_SDLC                             17
#define IF_TYPE_DS1                              18
#define IF_TYPE_E1                               19
#define IF_TYPE_BASIC_ISDN                       20
#define IF_TYPE_PRIMARY_ISDN                     21
#define IF_TYPE_PROP_POINT2POINT_SERIAL          22
#define IF_TYPE_PPP                              23
#define IF_TYPE_SOFTWARE_LOOPBACK                24
#define IF_TYPE_EON                              25
#define IF_TYPE_ETHERNET_3MBIT                   26
#define IF_TYPE_NSIP                             27
#define IF_TYPE_SLIP                             28
#define IF_TYPE_ULTRA                            29
#define IF_TYPE_DS3                              30
#define IF_TYPE_SIP                              31
#define IF_TYPE_FRAMERELAY                       32
#define IF_TYPE_RS232                            33
#define IF_TYPE_PARA                             34
#define IF_TYPE_ARCNET                           35
#define IF_TYPE_ARCNET_PLUS                      36
#define IF_TYPE_ATM                              37
#define IF_TYPE_MIO_X25                          38
#define IF_TYPE_SONET                            39
#define IF_TYPE_X25_PLE                          40
#define IF_TYPE_ISO88022_LLC                     41
#define IF_TYPE_LOCALTALK                        42
#define IF_TYPE_SMDS_DXI                         43
#define IF_TYPE_FRAMERELAY_SERVICE               44
#define IF_TYPE_V35                              45
#define IF_TYPE_HSSI                             46
#define IF_TYPE_HIPPI                            47
#define IF_TYPE_MODEM                            48
#define IF_TYPE_AAL5                             49
#define IF_TYPE_SONET_PATH                       50
#define IF_TYPE_SONET_VT                         51
#define IF_TYPE_SMDS_ICIP                        52
#define IF_TYPE_PROP_VIRTUAL                     53
#define IF_TYPE_PROP_MULTIPLEXOR                 54
#define IF_TYPE_IEEE80212                        55
#define IF_TYPE_FIBRECHANNEL                     56
#define IF_TYPE_HIPPIINTERFACE                   57
#define IF_TYPE_FRAMERELAY_INTERCONNECT          58
#define IF_TYPE_AFLANE_8023                      59
#define IF_TYPE_AFLANE_8025                      60
#define IF_TYPE_CCTEMUL                          61
#define IF_TYPE_FASTETHER                        62
#define IF_TYPE_ISDN                             63
#define IF_TYPE_V11                              64
#define IF_TYPE_V36                              65
#define IF_TYPE_G703_64K                         66
#define IF_TYPE_G703_2MB                         67
#define IF_TYPE_QLLC                             68
#define IF_TYPE_FASTETHER_FX                     69
#define IF_TYPE_CHANNEL                          70
#define IF_TYPE_IEEE80211                        71
#define IF_TYPE_IBM370PARCHAN                    72
#define IF_TYPE_ESCON                            73
#define IF_TYPE_DLSW                             74
#define IF_TYPE_ISDN_S                           75
#define IF_TYPE_ISDN_U                           76
#define IF_TYPE_LAP_D                            77
#define IF_TYPE_IPSWITCH                         78
#define IF_TYPE_RSRB                             79
#define IF_TYPE_ATM_LOGICAL                      80
#define IF_TYPE_DS0                              81
#define IF_TYPE_DS0_BUNDLE                       82
#define IF_TYPE_BSC                              83
#define IF_TYPE_ASYNC                            84
#define IF_TYPE_CNR                              85
#define IF_TYPE_ISO88025R_DTR                    86
#define IF_TYPE_EPLRS                            87
#define IF_TYPE_ARAP                             88
#define IF_TYPE_PROP_CNLS                        89
#define IF_TYPE_HOSTPAD                          90
#define IF_TYPE_TERMPAD                          91
#define IF_TYPE_FRAMERELAY_MPI                   92
#define IF_TYPE_X213                             93
#define IF_TYPE_ADSL                             94
#define IF_TYPE_RADSL                            95
#define IF_TYPE_SDSL                             96
#define IF_TYPE_VDSL                             97
#define IF_TYPE_ISO88025_CRFPRINT                98
#define IF_TYPE_MYRINET                          99
#define IF_TYPE_VOICE_EM                         100
#define IF_TYPE_VOICE_FXO                        101
#define IF_TYPE_VOICE_FXS                        102
#define IF_TYPE_VOICE_ENCAP                      103
#define IF_TYPE_VOICE_OVERIP                     104
#define IF_TYPE_ATM_DXI                          105
#define IF_TYPE_ATM_FUNI                         106
#define IF_TYPE_ATM_IMA                          107
#define IF_TYPE_PPPMULTILINKBUNDLE               108
#define IF_TYPE_IPOVER_CDLC                      109
#define IF_TYPE_IPOVER_CLAW                      110
#define IF_TYPE_STACKTOSTACK                     111
#define IF_TYPE_VIRTUALIPADDRESS                 112
#define IF_TYPE_MPC                              113
#define IF_TYPE_IPOVER_ATM                       114
#define IF_TYPE_ISO88025_FIBER                   115
#define IF_TYPE_TDLC                             116
#define IF_TYPE_GIGABITETHERNET                  117
#define IF_TYPE_HDLC                             118
#define IF_TYPE_LAP_F                            119
#define IF_TYPE_V37                              120
#define IF_TYPE_X25_MLP                          121
#define IF_TYPE_X25_HUNTGROUP                    122
#define IF_TYPE_TRANSPHDLC                       123
#define IF_TYPE_INTERLEAVE                       124
#define IF_TYPE_FAST                             125
#define IF_TYPE_IP                               126
#define IF_TYPE_DOCSCABLE_MACLAYER               127
#define IF_TYPE_DOCSCABLE_DOWNSTREAM             128
#define IF_TYPE_DOCSCABLE_UPSTREAM               129
#define IF_TYPE_A12MPPSWITCH                     130
#define IF_TYPE_TUNNEL                           131
#define IF_TYPE_COFFEE                           132
#define IF_TYPE_CES                              133
#define IF_TYPE_ATM_SUBINTERFACE                 134
#define IF_TYPE_L2_VLAN                          135
#define IF_TYPE_L3_IPVLAN                        136
#define IF_TYPE_L3_IPXVLAN                       137
#define IF_TYPE_DIGITALPOWERLINE                 138
#define IF_TYPE_MEDIAMAILOVERIP                  139
#define IF_TYPE_DTM                              140
#define IF_TYPE_DCN                              141
#define IF_TYPE_IPFORWARD                        142
#define IF_TYPE_MSDSL                            143
#define IF_TYPE_IEEE1394                         144
#define IF_TYPE_IF_GSN                           145
#define IF_TYPE_DVBRCC_MACLAYER                  146
#define IF_TYPE_DVBRCC_DOWNSTREAM                147
#define IF_TYPE_DVBRCC_UPSTREAM                  148
#define IF_TYPE_ATM_VIRTUAL                      149
#define IF_TYPE_MPLS_TUNNEL                      150
#define IF_TYPE_SRP                              151
#define IF_TYPE_VOICEOVERATM                     152
#define IF_TYPE_VOICEOVERFRAMERELAY              153
#define IF_TYPE_IDSL                             154
#define IF_TYPE_COMPOSITELINK                    155
#define IF_TYPE_SS7_SIGLINK                      156
#define IF_TYPE_PROP_WIRELESS_P2P                157
#define IF_TYPE_FR_FORWARD                       158
#define IF_TYPE_RFC1483                          159
#define IF_TYPE_USB                              160
#define IF_TYPE_IEEE8023AD_LAG                   161
#define IF_TYPE_BGP_POLICY_ACCOUNTING            162
#define IF_TYPE_FRF16_MFR_BUNDLE                 163
#define IF_TYPE_H323_GATEKEEPER                  164
#define IF_TYPE_H323_PROXY                       165
#define IF_TYPE_MPLS                             166
#define IF_TYPE_MF_SIGLINK                       167
#define IF_TYPE_HDSL2                            168
#define IF_TYPE_SHDSL                            169
#define IF_TYPE_DS1_FDL                          170
#define IF_TYPE_POS                              171
#define IF_TYPE_DVB_ASI_IN                       172
#define IF_TYPE_DVB_ASI_OUT                      173
#define IF_TYPE_PLC                              175
#define IF_TYPE_NFAS                             175
#define IF_TYPE_TR008                            176
#define IF_TYPE_GR303_RDT                        177
#define IF_TYPE_GR303_IDT                        178
#define IF_TYPE_ISUP                             179
#define IF_TYPE_PROP_DOCS_WIRELESS_MACLAYER      180
#define IF_TYPE_PROP_DOCS_WIRELESS_DOWNSTREAM    181
#define IF_TYPE_PROP_DOCS_WIRELESS_UPSTREAM      182
#define IF_TYPE_HIPERLAN2                        183
#define IF_TYPE_PROP_BWA_P2MP                    184
#define IF_TYPE_SONET_OVERHEAD_CHANNEL           185
#define IF_TYPE_DIGITAL_WRAPPER_OVERHEAD_CHANNEL 186
#define IF_TYPE_AAL2                             187
#define IF_TYPE_RADIO_MAC                        188
#define IF_TYPE_ATM_RADIO                        189
#define IF_TYPE_IMT                              190
#define IF_TYPE_MVL                              191
#define IF_TYPE_REACH_DSL                        192
#define IF_TYPE_FR_DLCI_ENDPT                    193
#define IF_TYPE_ATM_VCI_ENDPT                    194
#define IF_TYPE_OPTICAL_CHANNEL                  195
#define IF_TYPE_OPTICAL_TRANSPORT                196
#define IF_TYPE_IEEE80216_WANN                   237
#define IF_TYPE_WWANPP                           243
#define IF_TYPE_WWANPP2                          244
#define MAX_IF_TYPE                              244

#define MIB_IF_TYPE_OTHER               1
#define MIB_IF_TYPE_ETHERNET            6
#define MIB_IF_TYPE_TOKENRING           9
#define MIB_IF_TYPE_FDDI                15
#define MIB_IF_TYPE_PPP                 23
#define MIB_IF_TYPE_LOOPBACK            24
#define MIB_IF_TYPE_SLIP                28

typedef ULONG IFTYPE;

#define MIB_IF_ADMIN_STATUS_UP          1
#define MIB_IF_ADMIN_STATUS_DOWN        2
#define MIB_IF_ADMIN_STATUS_TESTING     3

typedef enum _INTERNAL_IF_OPER_STATUS
{
    MIB_IF_OPER_STATUS_NON_OPERATIONAL = 0,
    MIB_IF_OPER_STATUS_UNREACHABLE = 1,
    MIB_IF_OPER_STATUS_DISCONNECTED = 2,
    MIB_IF_OPER_STATUS_CONNECTING = 3,
    MIB_IF_OPER_STATUS_CONNECTED = 4,
    MIB_IF_OPER_STATUS_OPERATIONAL = 5,
} INTERNAL_IF_OPER_STATUS;

#endif /* WINE_IPIFCONS_H__ */
