You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.7 KiB

2 years ago
  1. #ifndef __IFUTILS_H__
  2. #define __IFUTILS_H__
  3. typedef union {
  4. in_addr_t ip;
  5. struct in6_addr ip6;
  6. } addr_t;
  7. #define MAX_IP_NUM 32
  8. struct addrinfo_t
  9. {
  10. int iface;
  11. int num;
  12. struct
  13. {
  14. int prefix;
  15. addr_t address;
  16. } addrs[MAX_IP_NUM];
  17. };
  18. const char *ipaddr_to_string_v4(in_addr_t ipaddr);
  19. const char *ipaddr_to_string_v6(uint8_t *ipaddr);
  20. int mask_to_prefix_v4(in_addr_t mask);
  21. int if_get_hwaddr(const char *name, void *ptr);
  22. int if_link_down(const char *ifname);
  23. int if_link_up(const char *ifname);
  24. int if_set_mtu(const char *ifname, uint32_t mtu);
  25. int if_set_addr_v4(const char *name, in_addr_t address, uint32_t prefixlen);
  26. int if_del_addr_v4(const char *name, in_addr_t address, uint32_t prefixlen);
  27. int if_set_addr_v6(const char *name, uint8_t *address, uint32_t prefixlen);
  28. int if_del_addr_v6(const char *name, uint8_t *address, uint32_t prefixlen);
  29. int if_flush_v4_addr(const char *ifname);
  30. int if_flush_v6_addr(const char *ifname);
  31. int if_set_route_gw_v4(const char *ifname, in_addr_t gwaddr);
  32. int if_del_route_gw_v4(const char *ifname, in_addr_t gwaddr);
  33. int if_set_default_route_v4(const char *ifname);
  34. int if_del_default_route_v4(const char *ifname);
  35. int if_set_route_gw_v6(const char *ifname, uint8_t *gwaddr);
  36. int if_del_route_gw_v6(const char *ifname, uint8_t *gwaddr);
  37. int if_set_default_route_v6(const char *ifname);
  38. int if_del_default_route_v6(const char *ifname);
  39. int if_set_network_v4(const char *ifname, in_addr_t ipaddr, uint32_t prefix,
  40. in_addr_t gwaddr, in_addr_t dns1, in_addr_t dns2);
  41. int if_set_network_v6(const char *ifname, uint8_t *ipaddr, uint32_t prefix,
  42. uint8_t *gwaddr, uint8_t *dns1, uint8_t *dns2);
  43. #endif //__IFUTILS_H__