Loading...
Searching...
No Matches
mptcpd_pm_cmd_ops Struct Reference

MPTCP path management generic netlink command functions. More...

`#include <path_manager.h>`

## Private Attributes

int(* | add_addr )(struct mptcpd_pm *pm, struct sockaddr *addr, mptcpd_aid_t id, mptcpd_token_t token, bool listener)
| Advertise new network address to peers.
int(* | remove_addr )(struct mptcpd_pm *pm, struct sockaddr const *addr, mptcpd_aid_t id, mptcpd_token_t token)
| Stop advertising network address to peers.
int(* | add_subflow )(struct mptcpd_pm *pm, mptcpd_token_t token, mptcpd_aid_t local_address_id, mptcpd_aid_t remote_address_id, struct sockaddr const *local_addr, struct sockaddr const *remote_addr, bool backup)
| Create a new subflow.
int(* | remove_subflow )(struct mptcpd_pm *pm, mptcpd_token_t token, struct sockaddr const *local_addr, struct sockaddr const *remote_addr)
| Remove a subflow.
int(* | set_backup )(struct mptcpd_pm *pm, mptcpd_token_t token, struct sockaddr const *local_addr, struct sockaddr const *remote_addr, bool backup)
| Set priority of a subflow.

## Detailed Description

MPTCP path management generic netlink command functions.

The set of functions that implement client-oriented MPTCP path management generic netlink command calls where path management is performed in the user space.

## Member Data Documentation

## add_addr

int(* mptcpd_pm_cmd_ops::add_addr) (struct mptcpd_pm *pm, struct sockaddr *addr, mptcpd_aid_t id, mptcpd_token_t token, bool listener)

private

Advertise new network address to peers.

Parameters

  [in] | pm | The mptcpd path manager object.

  [in,out]

  addr

  Local IP address and port to be advertised through the MPTCP protocol `ADD_ADDR` option. If the port is zero an ephemeral port will be chosen, and assigned to the appropriate underlying address family-specific port member, e.g. `sin_port` or `sin6_port`. The port will be in network byte order. If listener is not created, port zero will cause no port specification at protocol level.

  [in] | id | MPTCP local address ID.
  [in] | token | MPTCP connection token.
  [in] | listener | Create listener.

Returns
  `0` if operation was successful. -1 or `errno` otherwise.

## add_subflow

int(* mptcpd_pm_cmd_ops::add_subflow) (struct mptcpd_pm *pm, mptcpd_token_t token, mptcpd_aid_t local_address_id, mptcpd_aid_t remote_address_id, struct sockaddr const *local_addr, struct sockaddr const *remote_addr, bool backup)

private

Create a new subflow.

Parameters

  [in] | pm | The mptcpd path manager object.
  [in] | token | MPTCP connection token.
  [in] | local_address_id | MPTCP local address ID.
  [in] | remote_address_id | MPTCP remote address ID.
  [in] | local_addr | MPTCP subflow local address information, including the port.
  [in] | remote_addr | MPTCP subflow remote address information, including the port.
  [in] | backup | Whether or not to set the MPTCP subflow backup priority flag.

Returns
  `0` if operation was successful. -1 or `errno` otherwise.

Todo
  There far too many parameters. Reduce.

## remove_addr

int(* mptcpd_pm_cmd_ops::remove_addr) (struct mptcpd_pm *pm, struct sockaddr const *addr, mptcpd_aid_t id, mptcpd_token_t token)

private

Stop advertising network address to peers.

Parameters

  [in] | pm | The mptcpd path manager object.
  [in] | addr | Local IP address and port that should no longer be advertised through MPTCP.
  [in] | id | MPTCP local address ID.
  [in] | token | MPTCP connection token.

Returns
  `0` if operation was successful. -1 or `errno` otherwise.

## remove_subflow

int(* mptcpd_pm_cmd_ops::remove_subflow) (struct mptcpd_pm *pm, mptcpd_token_t token, struct sockaddr const *local_addr, struct sockaddr const *remote_addr)

private

Remove a subflow.

Parameters

  [in] | pm | The mptcpd path manager object.
  [in] | token | MPTCP connection token.
  [in] | local_addr | MPTCP subflow local address information, including the port.
  [in] | remote_addr | MPTCP subflow remote address information, including the port.

Returns
  `0` if operation was successful. `errno` otherwise.

## set_backup

int(* mptcpd_pm_cmd_ops::set_backup) (struct mptcpd_pm *pm, mptcpd_token_t token, struct sockaddr const *local_addr, struct sockaddr const *remote_addr, bool backup)

private

Set priority of a subflow.

Parameters

  [in] | pm | The mptcpd path manager object.
  [in] | token | MPTCP connection token.
  [in] | local_addr | MPTCP subflow local address information, including the port.
  [in] | remote_addr | MPTCP subflow remote address information, including the port.
  [in] | backup | Whether or not to set the MPTCP subflow backup priority flag.

Returns
  `0` if operation was successful. `errno` otherwise.

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

- include/mptcpd/private/path_manager.h