mptcpd
Multipath TCP Daemon
|
Mptcpd plugin interface. More...
#include <mptcpd/plugin.h>
Public Attributes | |
Path Manager Event Handlers | |
Mptcpd plugin path management event tracking operations. A set of functions to be called when MPTCP path management related events occur. | |
void(* | new_connection )(mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, bool server_side, struct mptcpd_pm *pm) |
New MPTCP-capable connection has been created. | |
void(* | connection_established )(mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, bool server_side, struct mptcpd_pm *pm) |
New MPTCP-capable connection has been established. | |
void(* | connection_closed )(mptcpd_token_t token, struct mptcpd_pm *pm) |
MPTCP connection as a whole was closed. | |
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. | |
void(* | address_removed )(mptcpd_token_t token, mptcpd_aid_t id, struct mptcpd_pm *pm) |
Address is no longer advertised by a peer. | |
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. | |
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. | |
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. | |
void(* | listener_created )(struct sockaddr const *laddr, struct mptcpd_pm *pm) |
New MPTCP listener socket has been created. | |
void(* | listener_closed )(struct sockaddr const *laddr, struct mptcpd_pm *pm) |
MPTCP listener socket has been closed. | |
Network Monitor Event Handlers | |
Mptcpd plugin network event tracking operations. A set of functions to be called when changes in network interfaces and addresses occur. | |
void(* | new_interface )(struct mptcpd_interface const *i, struct mptcpd_pm *pm) |
A new network interface is available. | |
void(* | update_interface )(struct mptcpd_interface const *i, struct mptcpd_pm *pm) |
Network interface flags were updated. | |
void(* | delete_interface )(struct mptcpd_interface const *i, struct mptcpd_pm *pm) |
A network interface was removed. | |
void(* | new_local_address )(struct mptcpd_interface const *i, struct sockaddr const *sa, struct mptcpd_pm *pm) |
A new local network address is available. | |
void(* | delete_local_address )(struct mptcpd_interface const *i, struct sockaddr const *sa, struct mptcpd_pm *pm) |
A local network address was removed. | |
Mptcpd plugin interface.
This is a set of event handler callbacks that comprise the mptcpd plugin API. Mptcpd plugins should implement these event handlers as needed. Unused event handler fields may be NULL
.
void(* mptcpd_plugin_ops::address_removed) (mptcpd_token_t token, mptcpd_aid_t id, struct mptcpd_pm *pm) |
Address is no longer advertised by a peer.
[in] | token | MPTCP connection token. |
[in] | id | Remote address identifier. |
[in] | pm | Opaque pointer to mptcpd path manager object. |
Called when an address is no longer advertised by a peer through an REMOVE_ADDR
MPTCP option.
void(* mptcpd_plugin_ops::connection_closed) (mptcpd_token_t token, struct mptcpd_pm *pm) |
MPTCP connection as a whole was closed.
[in] | token | MPTCP connection token. |
[in] | pm | Opaque pointer to mptcpd path manager object. |
void(* mptcpd_plugin_ops::connection_established) (mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, bool server_side, struct mptcpd_pm *pm) |
New MPTCP-capable connection has been established.
[in] | token | MPTCP connection token. |
[in] | laddr | Local address information. |
[in] | raddr | Remote address information. |
[in] | server_side | true if this peer was the listener (server), false if this peer initiated the connection. |
[in] | pm | Opaque pointer to mptcpd path manager object. |
void(* mptcpd_plugin_ops::delete_interface) (struct mptcpd_interface const *i, struct mptcpd_pm *pm) |
A network interface was removed.
[in] | i | Network interface information. |
void(* mptcpd_plugin_ops::delete_local_address) (struct mptcpd_interface const *i, struct sockaddr const *sa, struct mptcpd_pm *pm) |
A local network address was removed.
[in] | i | Network interface information. |
[in] | sa | Network address information. |
void(* mptcpd_plugin_ops::listener_closed) (struct sockaddr const *laddr, struct mptcpd_pm *pm) |
MPTCP listener socket has been closed.
[in] | laddr | Local address information. |
[in] | pm | Opaque pointer to mptcpd path manager object. |
void(* mptcpd_plugin_ops::listener_created) (struct sockaddr const *laddr, struct mptcpd_pm *pm) |
New MPTCP listener socket has been created.
[in] | laddr | Local address information. |
[in] | pm | Opaque pointer to mptcpd path manager object. |
void(* mptcpd_plugin_ops::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.
[in] | token | MPTCP connection token. |
[in] | id | Remote address identifier. |
[in] | addr | Remote address information. |
[in] | pm | Opaque pointer to mptcpd path manager object. |
Called when an address has been advertised by a peer through an ADD_ADDR
MPTCP option.
void(* mptcpd_plugin_ops::new_connection) (mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, bool server_side, struct mptcpd_pm *pm) |
New MPTCP-capable connection has been created.
A new MPTCP connection has been created, and pending completion.
[in] | token | MPTCP connection token. |
[in] | laddr | Local address information. |
[in] | raddr | Remote address information. |
[in] | server_side | true if this peer was the listener (server), false if this peer initiated the connection. |
[in] | pm | Opaque pointer to mptcpd path manager object. |
void(* mptcpd_plugin_ops::new_interface) (struct mptcpd_interface const *i, struct mptcpd_pm *pm) |
A new network interface is available.
[in] | i | Network interface information. |
[in] | pm | Opaque pointer to mptcpd path manager object. |
new_address
callback to be notified when new network addresses become available. Network addresses on a given network interface may be retrieved through the new_address
callback below. void(* mptcpd_plugin_ops::new_local_address) (struct mptcpd_interface const *i, struct sockaddr const *sa, struct mptcpd_pm *pm) |
A new local network address is available.
[in] | i | Network interface information. |
[in] | sa | Network address information. |
void(* mptcpd_plugin_ops::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.
[in] | token | MPTCP connection token. |
[in] | laddr | Local address information. |
[in] | raddr | Remote address information. |
[in] | backup | Backup priority flag. |
[in] | pm | Opaque pointer to mptcpd path manager object. |
MP_JOIN
ACK
has been ACKed
. void(* mptcpd_plugin_ops::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.
[in] | token | MPTCP connection token. |
[in] | laddr | Local address information. |
[in] | raddr | Remote address information. |
[in] | backup | Backup priority flag. |
[in] | pm | Opaque pointer to mptcpd path manager object. |
void(* mptcpd_plugin_ops::subflow_priority) (mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, bool backup, struct mptcpd_pm *pm) |
MPTCP subflow priority changed.
[in] | token | MPTCP connection token. |
[in] | laddr | Local address information. |
[in] | raddr | Remote address information |
[in] | backup | Backup priority flag. |
[in] | pm | Opaque pointer to mptcpd path manager object. |
void(* mptcpd_plugin_ops::update_interface) (struct mptcpd_interface const *i, struct mptcpd_pm *pm) |
Network interface flags were updated.
[in] | i | Network interface information. |