]> git.sur5r.net Git - ngadmin/blob - lib/src/lib.h
Added support for creating and deleting a 802.1q VLAN.
[ngadmin] / lib / src / lib.h
1
2 #ifndef DEF_LIB
3 #define DEF_LIB
4
5
6 #include <stdlib.h>
7 #include <string.h>
8 #include <errno.h>
9 #include <net/if.h>
10
11 #include <ngadmin.h>
12
13
14 #define PASSWORD_MAX    32
15
16
17 #define CLIENT_PORT             63321
18 #define SWITCH_PORT             63322
19
20 #define CODE_READ_REQ           1
21 #define CODE_READ_REP           2
22 #define CODE_WRITE_REQ          3
23 #define CODE_WRITE_REP          4
24
25 #define ERROR_READONLY          3
26 #define ERROR_INVALID_VALUE     5
27 #define ERROR_INVALID_PASSWORD  7
28
29 #define ATTR_PRODUCT            0x0001
30 #define ATTR_UNK_0002           0x0002
31 #define ATTR_NAME               0x0003
32 #define ATTR_MAC                0x0004
33 #define ATTR_UNK_0005           0x0005
34 #define ATTR_IP                 0x0006
35 #define ATTR_NETMASK            0x0007
36 #define ATTR_GATEWAY            0x0008
37 #define ATTR_NEW_PASSWORD       0x0009
38 #define ATTR_PASSWORD           0x000A
39 #define ATTR_DHCP               0x000B
40 #define ATTR_UNK_000C           0x000C
41 #define ATTR_FIRM_VER           0x000D
42 #define ATTR_UNK_000E           0x000E
43 #define ATTR_UNK_000F           0x000F
44 #define ATTR_FIRM_UPGRADE       0x0010
45 #define ATTR_RESTART            0x0013
46 #define ATTR_DEFAULTS           0x0400
47 #define ATTR_PORT_STATUS        0x0C00
48 #define ATTR_PORT_STATISTICS    0x1000
49 #define ATTR_STATS_RESET        0x1400
50 #define ATTR_CABLETEST_DO       0x1800
51 #define ATTR_CABLETEST_RESULT   0x1C00
52 #define ATTR_VLAN_TYPE          0x2000
53 #define ATTR_VLAN_PORT_CONF     0x2400
54 #define ATTR_VLAN_DOT_CONF      0x2800
55 #define ATTR_VLAN_DESTROY       0x2C00
56 #define ATTR_VLAN_PVID          0x3000
57 #define ATTR_QOS_TYPE           0x3400
58 #define ATTR_QOS_CONFIG         0x3800
59 #define ATTR_BITRATE_INPUT      0x4C00
60 #define ATTR_BITRATE_OUTPUT     0x5000
61 #define ATTR_STORM_ENABLE       0x5400
62 #define ATTR_STORM_BITRATE      0x5800
63 #define ATTR_MIRROR             0x5C00
64 #define ATTR_PORTS_COUNT        0x6000
65 #define ATTR_UNK_6400           0x6400
66 #define ATTR_IGMP_ENABLE_VLAN   0x6800
67 #define ATTR_IGMP_BLOCK_UNK     0x6C00
68 #define ATTR_IGMP_VALID_V3      0x7000
69 #define ATTR_UNK_7400           0x7400
70 #define ATTR_END                0xFFFF
71
72
73
74 struct ngadmin {
75  // network
76  int sock;                      // socket
77  struct sockaddr_in local;
78  char iface[IFNAMSIZ];          // interface
79  struct timeval timeout;        // timeout
80  struct ether_addr localmac;    // local MAC address
81  bool keepbroad;                // keep broadcasting
82  // 
83  char password[PASSWORD_MAX];   // password to use to login on switches
84  struct swi_attr *swi_tab;      // array of detected switches
85  int swi_count;                 // number of detected switches
86  struct swi_attr *current;      // administred switch
87  int seq;                       // sequence number for packets
88 };
89
90
91
92 #endif
93