10#ifndef MPTCPD_NETWORK_MONITOR_H
11#define MPTCPD_NETWORK_MONITOR_H
129 struct sockaddr const *sa,
140 struct sockaddr const *sa,
157 void *callback_data);
mptcpd shared library symbol export/import macros.
MPTCPD_API void mptcpd_nm_foreach_interface(struct mptcpd_nm const *nm, mptcpd_nm_callback callback, void *data)
Iterate over all monitored network interfaces.
Definition network_monitor.c:1565
void(* mptcpd_nm_callback)(struct mptcpd_interface const *interface, void *callback_data)
Network monitor iteration function type.
Definition network_monitor.h:155
MPTCPD_API bool mptcpd_nm_monitor_loopback(struct mptcpd_nm *nm, bool enable)
Enable monitoring of the loopback network interface.
Definition network_monitor.c:1612
MPTCPD_API bool mptcpd_nm_register_ops(struct mptcpd_nm *nm, struct mptcpd_nm_ops const *ops, void *user_data)
Subscribe to mptcpd network monitor events.
Definition network_monitor.c:1582
Network interface-specific information.
Definition network_monitor.h:31
unsigned char family
Address family, e.g AF_UNSPEC.
Definition network_monitor.h:48
int index
Network interface (link) index.
Definition network_monitor.h:58
struct l_queue * addrs
Definition network_monitor.h:74
unsigned short type
Network device type, e.g. ARPHRD_ETHER.
Definition network_monitor.h:55
unsigned int flags
Network interface flags, e.g. IFF_UP.
Definition network_monitor.h:65
char name[IF_NAMESIZE]
Network interface name.
Definition network_monitor.h:68
Network monitor event tracking operations.
Definition network_monitor.h:87
void(* update_interface)(struct mptcpd_interface const *i, void *user_data)
Network interface flags were updated.
Definition network_monitor.h:109
void(* delete_interface)(struct mptcpd_interface const *i, void *user_data)
A network interface was removed.
Definition network_monitor.h:118
void(* new_interface)(struct mptcpd_interface const *i, void *user_data)
A new network interface is available.
Definition network_monitor.h:100
void(* new_address)(struct mptcpd_interface const *i, struct sockaddr const *sa, void *user_data)
A new network address is available.
Definition network_monitor.h:128
void(* delete_address)(struct mptcpd_interface const *i, struct sockaddr const *sa, void *user_data)
A network address was removed.
Definition network_monitor.h:139
Data needed to run the network monitor.
Definition network_monitor.c:64