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_PORT_BASIC 1
39 #define VLAN_PORT_ADV 2
40 #define VLAN_DOT_BASIC 3
41 #define VLAN_DOT_ADV 4
51 #define BITRATE_NOLIMIT 0
52 #define BITRATE_512K 1
60 #define BITRATE_128M 9
61 #define BITRATE_256M 10
62 #define BITRATE_512M 11
67 // opaque type to clients
72 struct in_addr ip; // IP
73 struct in_addr netmask; // netmask
74 struct in_addr gw; // gateway IP
75 bool dhcp; // DHCP enabled
80 char product[PRODUCT_SIZE]; // product name (eg. GS108E)
81 char name[NAME_SIZE]; // custom name
82 char firmware[FIRMWARE_SIZE]; // firmware version string
83 unsigned char ports; // number of ports
84 struct ether_addr mac; // MAC address
85 struct net_conf nc; // network configuration
90 unsigned long long recv;
91 unsigned long long sent;
92 unsigned long long crc;
98 // initialize NgAdmin lib
99 struct ngadmin* ngadmin_init (const char *iface) EXPORT;
102 int ngadmin_close (struct ngadmin *nga) EXPORT;
105 // specify password to use for authenticating on switches
106 int ngadmin_setPassword (struct ngadmin *nga, const char *pass) EXPORT;
110 int ngadmin_setTimeout (struct ngadmin *nga, const struct timeval *tv) EXPORT;
114 int ngadmin_scan (struct ngadmin *nga) EXPORT;
118 const struct swi_attr* ngadmin_getSwitchTab (struct ngadmin *nga, int *nb) EXPORT;
122 const struct swi_attr* ngadmin_getCurrentSwitch (struct ngadmin *nga) EXPORT;
126 int ngadmin_login (struct ngadmin *nga, int id) EXPORT;
130 int ngadmin_getPortsStatus (struct ngadmin *nga, unsigned char *ports) EXPORT;
134 int ngadmin_setName (struct ngadmin *nga, const char *name) EXPORT;
138 int ngadmin_getPortsStatistics (struct ngadmin *nga, struct port_stats *ps) EXPORT;
142 int ngadmin_resetPortsStatistics (struct ngadmin *nga) EXPORT;
146 int ngadmin_changePassword (struct ngadmin *nga, const char* pass) EXPORT;