]> git.sur5r.net Git - ngadmin/blob - lib/ngadmin.h
Added a dissector plugin for Wireshark.
[ngadmin] / lib / ngadmin.h
1
2 #ifndef DEF_NGADMIN
3 #define DEF_NGADMIN
4
5
6 #include <stdbool.h>
7 #include <arpa/inet.h>
8 #include <netinet/ether.h>
9
10
11 #ifdef BUILD_LIB
12 #define EXPORT  __attribute__((visibility("default")))
13 #else
14 #define EXPORT  
15 #endif
16
17
18 #define ERR_OK          0       // no error
19 #define ERR_NET         -1      // network
20 #define ERR_NOTLOG      -2      // not logged on a switch
21 #define ERR_BADPASS     -3      // bad password
22 #define ERR_BADID       -4      // bad switch id
23 #define ERR_INVARG      -5      // invalid argument
24 #define ERR_TIMEOUT     -6      // timeout
25
26 #define PRODUCT_SIZE    64
27 #define NAME_SIZE       64
28 #define FIRMWARE_SIZE   64
29
30
31
32
33 #define SPEED_DOWN              0
34 #define SPEED_10                1
35 #define SPEED_100               4
36 #define SPEED_1000              5
37
38 #define VLAN_DISABLED           0
39 #define VLAN_PORT_BASIC         1
40 #define VLAN_PORT_ADV           2
41 #define VLAN_DOT_BASIC          3
42 #define VLAN_DOT_ADV            4
43
44 #define VLAN_NO                 0
45 #define VLAN_UNTAGGED           1
46 #define VLAN_TAGGED             2
47
48 #define QOS_PORT                1
49 #define QOS_DOT                 2
50
51 #define PRIO_UNSPEC             -1
52 #define PRIO_HIGH               1
53 #define PRIO_MED                2
54 #define PRIO_NORM               3
55 #define PRIO_LOW                4
56
57 #define BITRATE_UNSPEC          -1
58 #define BITRATE_NOLIMIT         0
59 #define BITRATE_512K            1
60 #define BITRATE_1M              2
61 #define BITRATE_2M              3
62 #define BITRATE_4M              4
63 #define BITRATE_8M              5
64 #define BITRATE_16M             6
65 #define BITRATE_32M             7
66 #define BITRATE_64M             8
67 #define BITRATE_128M            9
68 #define BITRATE_256M            10
69 #define BITRATE_512M            11
70
71
72
73
74 // opaque type to clients
75 struct ngadmin;
76
77
78 struct net_conf {
79  struct in_addr ip;             // IP
80  struct in_addr netmask;        // netmask
81  struct in_addr gw;             // gateway IP
82  bool dhcp;                     // DHCP enabled
83 };
84
85
86 struct swi_attr {
87  char product[PRODUCT_SIZE];    // product name (eg. GS108EV1)
88  char name[NAME_SIZE];          // custom name
89  char firmware[FIRMWARE_SIZE];  // firmware version string
90  unsigned char ports;           // number of ports
91  struct ether_addr mac;         // MAC address
92  struct net_conf nc;            // network configuration
93 };
94
95
96 struct port_stats {
97  unsigned long long recv;
98  unsigned long long sent;
99  unsigned long long crc;
100 };
101
102
103 struct igmp_conf {
104  bool enable;
105  unsigned short vlan;
106  bool validate;
107  bool block;
108 };
109
110
111 struct cabletest {
112  char port;
113  int v1;
114  int v2;
115 };
116
117
118
119 // initialize NgAdmin lib
120 struct ngadmin* ngadmin_init (const char *iface) EXPORT;
121
122 // 
123 int ngadmin_close (struct ngadmin *nga) EXPORT;
124
125
126 // 
127 int ngadmin_forceInterface (struct ngadmin *nga) EXPORT;
128
129
130 // 
131 int ngadmin_setKeepBroadcasting (struct ngadmin *nga, bool value) EXPORT;
132
133
134 // specify password to use for authenticating on switches
135 int ngadmin_setPassword (struct ngadmin *nga, const char *pass) EXPORT;
136
137
138 // 
139 int ngadmin_setTimeout (struct ngadmin *nga, const struct timeval *tv) EXPORT;
140
141
142 // 
143 int ngadmin_scan (struct ngadmin *nga) EXPORT;
144
145
146 // 
147 const struct swi_attr* ngadmin_getSwitchTab (struct ngadmin *nga, int *nb) EXPORT;
148
149
150 // 
151 const struct swi_attr* ngadmin_getCurrentSwitch (struct ngadmin *nga) EXPORT;
152
153
154 // 
155 int ngadmin_login (struct ngadmin *nga, int id) EXPORT;
156
157
158 // 
159 int ngadmin_getPortsStatus (struct ngadmin *nga, unsigned char *ports) EXPORT;
160
161
162 // 
163 int ngadmin_setName (struct ngadmin *nga, const char *name) EXPORT;
164
165
166 // 
167 int ngadmin_getPortsStatistics (struct ngadmin *nga, struct port_stats *ps) EXPORT;
168
169
170 // 
171 int ngadmin_resetPortsStatistics (struct ngadmin *nga) EXPORT;
172
173
174 // 
175 int ngadmin_changePassword (struct ngadmin *nga, const char* pass) EXPORT;
176
177
178 // 
179 int ngadmin_getStormFilterState (struct ngadmin *nga, int *s) EXPORT;
180
181
182 // 
183 int ngadmin_setStormFilterState (struct ngadmin *nga, int s) EXPORT;
184
185
186 // 
187 int ngadmin_getStormFilterValues (struct ngadmin *nga, int *ports) EXPORT;
188
189
190 // 
191 int ngadmin_setStormFilterValues (struct ngadmin *nga, const int *ports) EXPORT;
192
193
194 // 
195 int ngadmin_getBitrateLimits (struct ngadmin *nga, int *ports) EXPORT;
196
197
198 // 
199 int ngadmin_setBitrateLimits (struct ngadmin *nga, const int *ports) EXPORT;
200
201
202 // 
203 int ngadmin_getQOSMode (struct ngadmin *nga, int *s) EXPORT;
204
205
206 // 
207 int ngadmin_setQOSMode (struct ngadmin *nga, int s) EXPORT;
208
209
210 // 
211 int ngadmin_getQOSValues (struct ngadmin *nga, char *ports) EXPORT;
212
213
214 // 
215 int ngadmin_setQOSValues (struct ngadmin *nga, const char *ports) EXPORT;
216
217
218 // 
219 int ngadmin_restart (struct ngadmin *nga) EXPORT;
220
221
222 // 
223 int ngadmin_defaults (struct ngadmin *nga) EXPORT;
224
225
226 // 
227 int ngadmin_getMirror (struct ngadmin *nga, char *ports) EXPORT;
228
229
230 // 
231 int ngadmin_setMirror (struct ngadmin *nga, const char *ports) EXPORT;
232
233
234 // 
235 int ngadmin_getIGMPConf (struct ngadmin *nga, struct igmp_conf *ic) EXPORT;
236
237
238 // 
239 int ngadmin_setIGMPConf (struct ngadmin *nga, const struct igmp_conf *ic) EXPORT;
240
241
242 // 
243 int ngadmin_cabletest (struct ngadmin *nga, struct cabletest *ct, int nb) EXPORT;
244
245
246 // 
247 int ngadmin_setNetConf (struct ngadmin *nga, const struct net_conf *nc) EXPORT;
248
249
250 // 
251 int ngadmin_getVLANType (struct ngadmin *nga, int *t) EXPORT;
252
253
254 // 
255 int ngadmin_getVLANDotConf (struct ngadmin *nga, char *buf, int *len) EXPORT;
256
257
258 // 
259 int ngadmin_getPVID (struct ngadmin *nga, unsigned short *ports) EXPORT;
260
261
262
263 #endif
264