8 #include <netinet/ether.h>
12 #define EXPORT __attribute__((visibility("default")))
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
26 #define PRODUCT_SIZE 64
28 #define FIRMWARE_SIZE 64
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
45 #define VLAN_UNTAGGED 1
53 #define PRIO_UNSPEC -1
59 #define BITRATE_UNSPEC -1
60 #define BITRATE_NOLIMIT 0
61 #define BITRATE_512K 1
69 #define BITRATE_128M 9
70 #define BITRATE_256M 10
71 #define BITRATE_512M 11
76 // opaque type to clients
81 struct in_addr ip; // IP
82 struct in_addr netmask; // netmask
83 struct in_addr gw; // gateway IP
84 bool dhcp; // DHCP enabled
89 char product[PRODUCT_SIZE]; // product name (eg. GS108EV1)
90 char name[NAME_SIZE]; // custom name
91 char firmware[FIRMWARE_SIZE]; // firmware version string
92 unsigned char ports; // number of ports
93 struct ether_addr mac; // MAC address
94 struct net_conf nc; // network configuration
99 unsigned long long recv;
100 unsigned long long sent;
101 unsigned long long crc;
121 // initialize NgAdmin lib
122 struct ngadmin* ngadmin_init (const char *iface) EXPORT;
125 int ngadmin_close (struct ngadmin *nga) EXPORT;
129 int ngadmin_forceInterface (struct ngadmin *nga) EXPORT;
133 int ngadmin_setKeepBroadcasting (struct ngadmin *nga, bool value) EXPORT;
136 // specify password to use for authenticating on switches
137 int ngadmin_setPassword (struct ngadmin *nga, const char *pass) EXPORT;
141 int ngadmin_setTimeout (struct ngadmin *nga, const struct timeval *tv) EXPORT;
145 int ngadmin_scan (struct ngadmin *nga) EXPORT;
149 const struct swi_attr* ngadmin_getSwitchTab (struct ngadmin *nga, int *nb) EXPORT;
153 const struct swi_attr* ngadmin_getCurrentSwitch (struct ngadmin *nga) EXPORT;
157 int ngadmin_login (struct ngadmin *nga, int id) EXPORT;
161 int ngadmin_getPortsStatus (struct ngadmin *nga, unsigned char *ports) EXPORT;
165 int ngadmin_setName (struct ngadmin *nga, const char *name) EXPORT;
169 int ngadmin_getPortsStatistics (struct ngadmin *nga, struct port_stats *ps) EXPORT;
173 int ngadmin_resetPortsStatistics (struct ngadmin *nga) EXPORT;
177 int ngadmin_changePassword (struct ngadmin *nga, const char* pass) EXPORT;
181 int ngadmin_getStormFilterState (struct ngadmin *nga, int *s) EXPORT;
185 int ngadmin_setStormFilterState (struct ngadmin *nga, int s) EXPORT;
189 int ngadmin_getStormFilterValues (struct ngadmin *nga, int *ports) EXPORT;
193 int ngadmin_setStormFilterValues (struct ngadmin *nga, const int *ports) EXPORT;
197 int ngadmin_getBitrateLimits (struct ngadmin *nga, int *ports) EXPORT;
201 int ngadmin_setBitrateLimits (struct ngadmin *nga, const int *ports) EXPORT;
205 int ngadmin_getQOSMode (struct ngadmin *nga, int *s) EXPORT;
209 int ngadmin_setQOSMode (struct ngadmin *nga, int s) EXPORT;
213 int ngadmin_getQOSValues (struct ngadmin *nga, char *ports) EXPORT;
217 int ngadmin_setQOSValues (struct ngadmin *nga, const char *ports) EXPORT;
221 int ngadmin_restart (struct ngadmin *nga) EXPORT;
225 int ngadmin_defaults (struct ngadmin *nga) EXPORT;
229 int ngadmin_getMirror (struct ngadmin *nga, char *ports) EXPORT;
233 int ngadmin_setMirror (struct ngadmin *nga, const char *ports) EXPORT;
237 int ngadmin_getIGMPConf (struct ngadmin *nga, struct igmp_conf *ic) EXPORT;
241 int ngadmin_setIGMPConf (struct ngadmin *nga, const struct igmp_conf *ic) EXPORT;
245 int ngadmin_cabletest (struct ngadmin *nga, struct cabletest *ct, int nb) EXPORT;
249 int ngadmin_setNetConf (struct ngadmin *nga, const struct net_conf *nc) EXPORT;
253 int ngadmin_getVLANType (struct ngadmin *nga, int *t) EXPORT;
257 int ngadmin_setVLANType (struct ngadmin *nga, int t) EXPORT;
261 int ngadmin_getVLANDotAllConf (struct ngadmin *nga, unsigned short *vlans, unsigned char *ports, int *nb) EXPORT;
265 int ngadmin_getVLANDotConf (struct ngadmin *nga, unsigned short vlan, unsigned char *ports) EXPORT;
269 int ngadmin_setVLANDotConf (struct ngadmin *nga, unsigned short vlan, const unsigned char *ports) EXPORT;
273 int ngadmin_VLANDestroy (struct ngadmin *nga, unsigned short vlan) EXPORT;
277 int ngadmin_getAllPVID (struct ngadmin *nga, unsigned short *ports) EXPORT;
281 int ngadmin_setPVID (struct ngadmin *nga, unsigned char port, unsigned short vlan) EXPORT;