Loading...
Searching...
No Matches
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] | 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.

## 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] | token | MPTCP connection token.
  [in] | pm | Opaque 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] | 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.

## delete_interface

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

A network interface was removed.

Parameters

  [in] | i | Network 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] | i | Network interface information.
  [in] | sa | Network 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] | laddr | Local address information.
  [in] | pm | Opaque 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] | laddr | Local address information.
  [in] | pm | Opaque 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] | 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.

## 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] | 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.

## 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] | i | Network interface information.
  [in] | pm | Opaque 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] | i | Network interface information.
  [in] | sa | Network 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] | 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.

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] | 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.

## 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] | 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.

## update_interface

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

Network interface flags were updated.

Parameters

  [in] | i | Network interface information.

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

- include/mptcpd/plugin.h