summaryrefslogtreecommitdiff
path: root/agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.h
blob: f2b7847a111dc5a96f0097bf740a9633792e6b42 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#ifdef __cplusplus
extern          "C" {
#endif

/*
 * struct for netlink extras
 */
struct address_flag_info {
    int bcastflg;
    int anycastflg;
    in_addr_t addr;
};
 
#define IS_APIPA(a)  (((in_addr_t)(a << 16)) == 0xFEA90000)

int
_netsnmp_ioctl_ipaddress_container_load_v4(netsnmp_container *container,
                                                  int idx_offset);
int
_netsnmp_ioctl_ipaddress_set_v4(netsnmp_ipaddress_entry * entry);
int
_netsnmp_ioctl_ipaddress_remove_v4(netsnmp_ipaddress_entry * entry);

int
_netsnmp_ioctl_ipaddress_set_v6(netsnmp_ipaddress_entry * entry);
int
_netsnmp_ioctl_ipaddress_remove_v6(netsnmp_ipaddress_entry * entry);

int
netsnmp_access_ipaddress_ioctl_get_interface_count(int sd, struct ifconf * ifc);

struct address_flag_info
netsnmp_access_other_info_get(int index, int family);

/*
 * struct ioctl for arch_data
 */
typedef struct _ioctl_extras {
   u_int            flags;
   u_char           name[IFNAMSIZ];
} _ioctl_extras;



_ioctl_extras *
netsnmp_ioctl_ipaddress_entry_init(netsnmp_ipaddress_entry *entry);
void
netsnmp_ioctl_ipaddress_entry_cleanup(netsnmp_ipaddress_entry *entry);
int
netsnmp_ioctl_ipaddress_entry_copy(netsnmp_ipaddress_entry *lhs,
                                   netsnmp_ipaddress_entry *rhs);

_ioctl_extras *
netsnmp_ioctl_ipaddress_extras_get(netsnmp_ipaddress_entry *entry);

int
_netsnmp_ioctl_ipaddress_delete_v4(netsnmp_ipaddress_entry * entry);
int
_netsnmp_ioctl_ipaddress_delete_v6(netsnmp_ipaddress_entry * entry);

#ifdef __cplusplus
}
#endif