+struct netevent_handler_info {
+ struct interface *iface;
+ union {
+ struct {
+ union if_addr dst;
+ uint8_t dst_len;
+ union if_addr gateway;
+ } rt;
+ struct {
+ union if_addr dst;
+ uint16_t state;
+ uint8_t flags;
+ } neigh;
+ struct {
+ struct odhcpd_ipaddr *addrs;
+ size_t len;
+ } addrs_old;
+ union if_addr addr;
+ };
+};
+
+enum netevents {
+ NETEV_IFINDEX_CHANGE,
+ NETEV_ADDR_ADD,
+ NETEV_ADDR_DEL,
+ NETEV_ADDRLIST_CHANGE,
+ NETEV_ADDR6_ADD,
+ NETEV_ADDR6_DEL,
+ NETEV_ADDR6LIST_CHANGE,
+ NETEV_ROUTE6_ADD,
+ NETEV_ROUTE6_DEL,
+ NETEV_NEIGH6_ADD,
+ NETEV_NEIGH6_DEL,
+};
+
+struct netevent_handler {
+ struct list_head head;
+ void (*cb) (unsigned long event, struct netevent_handler_info *info);
+};
+