mptcpd
Multipath TCP Daemon
Loading...
Searching...
No Matches
List of all members
mptcpd_plugin_ops Struct Reference

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.
 

Detailed Description

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.

Member Data Documentation

◆ address_removed

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.

Parameters
[in]tokenMPTCP connection token.
[in]idRemote address identifier.
[in]pmOpaque pointer to mptcpd path manager object.

Called when an address is no longer advertised by a peer through an REMOVE_ADDR MPTCP option.

◆ connection_closed

void(* mptcpd_plugin_ops::connection_closed) (mptcpd_token_t token, struct mptcpd_pm *pm)

MPTCP connection as a whole was closed.

Parameters
[in]tokenMPTCP connection token.
[in]pmOpaque pointer to mptcpd path manager object.

◆ connection_established

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.

Parameters
[in]tokenMPTCP connection token.
[in]laddrLocal address information.
[in]raddrRemote address information.
[in]server_sidetrue if this peer was the listener (server), false if this peer initiated the connection.
[in]pmOpaque pointer to mptcpd path manager object.

◆ delete_interface

void(* mptcpd_plugin_ops::delete_interface) (struct mptcpd_interface const *i, struct mptcpd_pm *pm)

A network interface was removed.

Parameters
[in]iNetwork interface information.

◆ delete_local_address

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.

Parameters
[in]iNetwork interface information.
[in]saNetwork address information.

◆ listener_closed

void(* mptcpd_plugin_ops::listener_closed) (struct sockaddr const *laddr, struct mptcpd_pm *pm)

MPTCP listener socket has been closed.

Parameters
[in]laddrLocal address information.
[in]pmOpaque pointer to mptcpd path manager object.

◆ listener_created

void(* mptcpd_plugin_ops::listener_created) (struct sockaddr const *laddr, struct mptcpd_pm *pm)

New MPTCP listener socket has been created.

Parameters
[in]laddrLocal address information.
[in]pmOpaque pointer to mptcpd path manager object.

◆ new_address

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.

Parameters
[in]tokenMPTCP connection token.
[in]idRemote address identifier.
[in]addrRemote address information.
[in]pmOpaque pointer to mptcpd path manager object.

Called when an address has been advertised by a peer through an ADD_ADDR MPTCP option.

◆ new_connection

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.

Parameters
[in]tokenMPTCP connection token.
[in]laddrLocal address information.
[in]raddrRemote address information.
[in]server_sidetrue if this peer was the listener (server), false if this peer initiated the connection.
[in]pmOpaque pointer to mptcpd path manager object.

◆ new_interface

void(* mptcpd_plugin_ops::new_interface) (struct mptcpd_interface const *i, struct mptcpd_pm *pm)

A new network interface is available.

Parameters
[in]iNetwork interface information.
[in]pmOpaque pointer to mptcpd path manager object.
Note
The network address list may be empty. Set a 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.

◆ new_local_address

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.

Parameters
[in]iNetwork interface information.
[in]saNetwork address information.

◆ new_subflow

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.

Parameters
[in]tokenMPTCP connection token.
[in]laddrLocal address information.
[in]raddrRemote address information.
[in]backupBackup priority flag.
[in]pmOpaque pointer to mptcpd path manager object.
Note
Called after a MP_JOIN ACK has been ACKed.

◆ subflow_closed

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.

Parameters
[in]tokenMPTCP connection token.
[in]laddrLocal address information.
[in]raddrRemote address information.
[in]backupBackup priority flag.
[in]pmOpaque pointer to mptcpd path manager object.

◆ subflow_priority

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.

Parameters
[in]tokenMPTCP connection token.
[in]laddrLocal address information.
[in]raddrRemote address information
[in]backupBackup priority flag.
[in]pmOpaque pointer to mptcpd path manager object.

◆ update_interface

void(* mptcpd_plugin_ops::update_interface) (struct mptcpd_interface const *i, struct mptcpd_pm *pm)

Network interface flags were updated.

Parameters
[in]iNetwork interface information.

The documentation for this struct was generated from the following file: