Revert "Revert "and added files""
[bcm963xx.git] / userapps / opensource / net-snmp / agent / mibgroup / mibII / interfaces.h
1 /*
2  *  Interfaces MIB group interface - interfaces.h
3  *
4  */
5 #ifndef _MIBGROUP_INTERFACES_H
6 #define _MIBGROUP_INTERFACES_H
7
8 config_require(util_funcs)
9     config_arch_require(solaris2, kernel_sunos5)
10 #ifdef hpux11
11 #include <sys/mib.h>
12 #else
13      struct in_ifaddr;
14      struct ifnet;
15 #endif
16
17      int             Interface_Scan_Get_Count(void);
18      int             Interface_Index_By_Name(char *, int);
19      void            Interface_Scan_Init(void);
20 #if defined(linux) || defined(sunV3)
21      struct in_ifaddr {
22          int             dummy;
23      };
24 #endif
25 #if defined(hpux11)
26      int             Interface_Scan_Next(short *, char *, nmapi_phystat *);
27 #else
28      int             Interface_Scan_Next(short *, char *, struct ifnet *,
29                                          struct in_ifaddr *);
30 #endif
31
32      void            init_interfaces(void);
33      extern FindVarMethod var_interfaces;
34      extern FindVarMethod var_ifEntry;
35
36 extern int getAtmIntfAdminStatus(void);
37 extern int setAtmIntfAdminStatus(int status);
38 extern int getAtmIntfOperStatus(void);
39 extern int getAdslOperStatus(void);
40 extern int getAdslAdminStatus(void);
41 extern int setAdslAdminStatus(int status);
42 extern unsigned long getAdslIfSpeed(void);
43
44 #define IFNUMBER        0
45 #define IFINDEX         1
46 #define IFDESCR         2
47 #define IFTYPE          3
48 #define IFMTU           4
49 #define IFSPEED         5
50 #define IFPHYSADDRESS   6
51 #define IFADMINSTATUS   7
52 #define IFOPERSTATUS    8
53 #define IFLASTCHANGE    9
54 #define IFINOCTETS      10
55 #define IFINUCASTPKTS   11
56 #define IFINNUCASTPKTS  12
57 #define IFINDISCARDS    13
58 #define IFINERRORS      14
59 #define IFINUNKNOWNPROTOS 15
60 #define IFOUTOCTETS     16
61 #define IFOUTUCASTPKTS  17
62 #define IFOUTNUCASTPKTS 18
63 #define IFOUTDISCARDS   19
64 #define IFOUTERRORS     20
65 #define IFOUTQLEN       21
66 #define IFSPECIFIC      22
67
68 /* brcm: some definitions IANAifType */
69 #define IF_IANAIFTYPE_ETHERNETCSMACD    6
70 #define IF_IANAIFTYPE_TOKENRING         9
71 #define IF_IANAIFTYPE_FDDI              15
72 #define IF_IANAIFTYPE_PPP               23
73 #define IF_IANAIFTYPE_SOFTWARELOOPBACK  24
74 #define IF_IANAIFTYPE_SLIP              28
75 #define IF_IANAIFTYPE_ARCNETPLUS        35
76 #define IF_IANAIFTYPE_ATM               37
77 #define IF_IANAIFTYPE_LOCALTALK         42
78 #define IF_IANAIFTYPE_HIPPI             47
79 #define IF_IANAIFTYPE_AAL5              49
80 #define IF_IANAIFTYPE_ADSL              94
81 #define IF_IANAIFTYPE_TUNNEL            131
82 /* some status definition */
83 #define IF_ADMIN_STATUS_UP              1
84 #define IF_ADMIN_STATUS_DOWN            2
85 #define IF_ADMIN_STATUS_TESTING         3
86 #define IF_OPER_STATUS_UP               1
87 #define IF_OPER_STATUS_DOWN             2
88 #define IF_OPER_STATUS_TESTING          3
89 #define IF_OPER_STATUS_UNKNOWN          4
90 #define IF_OPER_STATUS_DORMANT          5
91 #define IF_OPER_STATUS_NOTPRESENT       6
92 #define IF_OPER_STATUS_LOWER_LAYER_DOWN 7
93 /* some private device names */
94 #define IF_BRCM_DSL_DEV_NAME            "dsl0"
95 #define IF_BRCM_ATM_DEV_NAME            "atm0"
96 #define IF_BRCM_ATM_CPCS_DEV_NAME       "cpcs0"
97
98 #ifdef linux
99 /*
100  * this struct ifnet is cloned from the generic type and somewhat modified.
101  * it will not work for other un*x'es...
102  */
103
104      struct ifnet {
105          char           *if_name;       /* name, e.g. ``en'' or ``lo'' */
106          char           *if_unit;       /* sub-unit for lower level driver */
107        //brcm if_mtu should be 32 bits not 16
108        //short           if_mtu;        /* maximum transmission unit */
109          int             if_mtu;        /* maximum transmission unit */
110          short           if_flags;      /* up/down, broadcast, etc. */
111          int             if_metric;     /* routing metric (external only) */
112          char            if_hwaddr[6];  /* ethernet address */
113          int             if_type;       /* interface type: 1=generic,
114                                          * 28=slip, ether=6, loopback=24 */
115          u_long          if_speed;      /* interface speed: in bits/sec */
116
117          struct sockaddr if_addr;       /* interface's address */
118          struct sockaddr ifu_broadaddr; /* broadcast address */
119          struct sockaddr ia_subnetmask; /* interface's mask */
120
121          struct ifqueue {
122              int             ifq_len;
123              int             ifq_drops;
124          } if_snd;              /* output queue */
125          u_long          if_ibytes;     /* octets received on interface */
126          u_long          if_ipackets;   /* packets received on interface */
127          u_long          if_ierrors;    /* input errors on interface */
128          u_long          if_iqdrops;    /* input queue overruns */
129          u_long          if_obytes;     /* octets sent on interface */
130          u_long          if_opackets;   /* packets sent on interface */
131          u_long          if_oerrors;    /* output errors on interface */
132          u_long          if_collisions; /* collisions on csma interfaces */
133          u_long          if_lastchange; /* TimeTicks (1/100ths of a second since last change) */
134          /*
135           * end statistics 
136           */
137          struct ifnet   *if_next;
138      };
139 #endif
140 #endif                          /* _MIBGROUP_INTERFACES_H */