10 #ifndef MPTCPD_PLUGIN_H
11 #define MPTCPD_PLUGIN_H
32 #define MPTCPD_PLUGIN_SYM _mptcpd_plugin
55 #define MPTCPD_PLUGIN_DEFINE(name, description, priority, init, exit) \
56 extern struct mptcpd_plugin_desc const MPTCPD_PLUGIN_SYM \
57 __attribute__((visibility("default"))); \
58 struct mptcpd_plugin_desc const MPTCPD_PLUGIN_SYM = { \
68 #define MPTCPD_PLUGIN_PRIORITY_LOW 19
71 #define MPTCPD_PLUGIN_PRIORITY_DEFAULT 0
74 #define MPTCPD_PLUGIN_PRIORITY_HIGH -20
149 struct sockaddr const *laddr,
150 struct sockaddr const *raddr,
163 struct sockaddr const *laddr,
164 struct sockaddr const *raddr,
191 struct sockaddr const *addr,
222 struct sockaddr const *laddr,
223 struct sockaddr const *raddr,
238 struct sockaddr const *laddr,
239 struct sockaddr const *raddr,
254 struct sockaddr const *laddr,
255 struct sockaddr const *raddr,
310 struct sockaddr const *sa,
320 struct sockaddr const *sa,
mptcpd shared library symbol export/import macros.
MPTCPD_API bool mptcpd_plugin_register_ops(char const *name, struct mptcpd_plugin_ops const *ops)
Register path manager operations.
Definition: plugin.c:521
Network interface-specific information.
Definition: network_monitor.h:30
Plugin-specific characteristics / descriptor.
Definition: plugin.h:82
char const *const name
Plugin name.
Definition: plugin.h:87
char const *const version
mptcpd version against which the plugin was compiled.
Definition: plugin.h:93
int(* init)(struct mptcpd_pm *)
Plugin initialization function.
Definition: plugin.h:109
int const priority
Plugin priority.
Definition: plugin.h:106
char const *const description
Plugin description.
Definition: plugin.h:90
void(* exit)(struct mptcpd_pm *)
Plugin finalization function.
Definition: plugin.h:112
Mptcpd plugin interface.
Definition: plugin.h:125
void(* new_local_address)(struct mptcpd_interface const *i, struct sockaddr const *sa, struct mptcpd_pm *pm)
A new local network address is available.
Definition: plugin.h:309
void(* update_interface)(struct mptcpd_interface const *i, struct mptcpd_pm *pm)
Network interface flags were updated.
Definition: plugin.h:292
void(* subflow_priority)(mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, bool backup, struct mptcpd_pm *pm)
MPTCP subflow priority changed.
Definition: plugin.h:253
void(* subflow_closed)(mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, bool backup, struct mptcpd_pm *pm)
A single MPTCP subflow was closed.
Definition: plugin.h:237
void(* connection_established)(mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, struct mptcpd_pm *pm)
New MPTCP-capable connection has been established.
Definition: plugin.h:162
void(* new_connection)(mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, struct mptcpd_pm *pm)
New MPTCP-capable connection has been created.
Definition: plugin.h:148
void(* connection_closed)(mptcpd_token_t token, struct mptcpd_pm *pm)
MPTCP connection as a whole was closed.
Definition: plugin.h:174
void(* delete_interface)(struct mptcpd_interface const *i, struct mptcpd_pm *pm)
A network interface was removed.
Definition: plugin.h:300
void(* new_subflow)(mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, bool backup, struct mptcpd_pm *pm)
A peer has joined the MPTCP connection.
Definition: plugin.h:221
void(* delete_local_address)(struct mptcpd_interface const *i, struct sockaddr const *sa, struct mptcpd_pm *pm)
A local network address was removed.
Definition: plugin.h:319
void(* address_removed)(mptcpd_token_t token, mptcpd_aid_t id, struct mptcpd_pm *pm)
Address is no longer advertised by a peer.
Definition: plugin.h:205
void(* new_address)(mptcpd_token_t token, mptcpd_aid_t id, struct sockaddr const *addr, struct mptcpd_pm *pm)
New address has been advertised by a peer.
Definition: plugin.h:189
void(* new_interface)(struct mptcpd_interface const *i, struct mptcpd_pm *pm)
A new network interface is available.
Definition: plugin.h:284
Data needed to run the path manager.
Definition: path_manager.h:43
unsigned int id
MPTCP generic netlink multicast notification ID.
Definition: path_manager.h:57
mptcpd user space path manager attribute types.
uint32_t mptcpd_token_t
MPTCP connection token type.
Definition: types.h:26
uint8_t mptcpd_aid_t
MPTCP address ID type.
Definition: types.h:29