53 lines
1.7 KiB
C
53 lines
1.7 KiB
C
#ifndef __IFUTILS_H__
|
|
#define __IFUTILS_H__
|
|
|
|
typedef union {
|
|
in_addr_t ip;
|
|
struct in6_addr ip6;
|
|
} addr_t;
|
|
|
|
#define MAX_IP_NUM 32
|
|
struct addrinfo_t
|
|
{
|
|
int iface;
|
|
int num;
|
|
struct
|
|
{
|
|
int prefix;
|
|
addr_t address;
|
|
} addrs[MAX_IP_NUM];
|
|
};
|
|
|
|
const char *ipaddr_to_string_v4(in_addr_t ipaddr);
|
|
const char *ipaddr_to_string_v6(uint8_t *ipaddr);
|
|
int mask_to_prefix_v4(in_addr_t mask);
|
|
|
|
int if_get_hwaddr(const char *name, void *ptr);
|
|
|
|
int if_link_down(const char *ifname);
|
|
int if_link_up(const char *ifname);
|
|
int if_set_mtu(const char *ifname, uint32_t mtu);
|
|
|
|
int if_set_addr_v4(const char *name, in_addr_t address, uint32_t prefixlen);
|
|
int if_del_addr_v4(const char *name, in_addr_t address, uint32_t prefixlen);
|
|
int if_set_addr_v6(const char *name, uint8_t *address, uint32_t prefixlen);
|
|
int if_del_addr_v6(const char *name, uint8_t *address, uint32_t prefixlen);
|
|
int if_flush_v4_addr(const char *ifname);
|
|
int if_flush_v6_addr(const char *ifname);
|
|
|
|
int if_set_route_gw_v4(const char *ifname, in_addr_t gwaddr);
|
|
int if_del_route_gw_v4(const char *ifname, in_addr_t gwaddr);
|
|
int if_set_default_route_v4(const char *ifname);
|
|
int if_del_default_route_v4(const char *ifname);
|
|
|
|
int if_set_route_gw_v6(const char *ifname, uint8_t *gwaddr);
|
|
int if_del_route_gw_v6(const char *ifname, uint8_t *gwaddr);
|
|
int if_set_default_route_v6(const char *ifname);
|
|
int if_del_default_route_v6(const char *ifname);
|
|
|
|
int if_set_network_v4(const char *ifname, in_addr_t ipaddr, uint32_t prefix,
|
|
in_addr_t gwaddr, in_addr_t dns1, in_addr_t dns2);
|
|
int if_set_network_v6(const char *ifname, uint8_t *ipaddr, uint32_t prefix,
|
|
uint8_t *gwaddr, uint8_t *dns1, uint8_t *dns2);
|
|
|
|
#endif //__IFUTILS_H__
|