mptcpd
Multipath TCP Daemon
Loading...
Searching...
No Matches
plugin.h
Go to the documentation of this file.
1// SPDX-License-Identifier: BSD-3-Clause
10#ifndef MPTCPD_PRIVATE_PLUGIN_H
11#define MPTCPD_PRIVATE_PLUGIN_H
12
13#include <stdbool.h>
14
15#include <mptcpd/export.h>
16#include <mptcpd/types.h>
17#include <ell/queue.h>
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23struct sockaddr;
24struct mptcpd_pm;
25struct mptcpd_interface;
26
31
43MPTCPD_API bool mptcpd_plugin_load(char const *dir,
44 char const *default_name,
45 struct l_queue const *plugins_to_load,
46 struct mptcpd_pm *pm);
47
53MPTCPD_API void mptcpd_plugin_unload(struct mptcpd_pm *pm);
54
66MPTCPD_API void mptcpd_plugin_new_connection(
67 char const *name,
68 mptcpd_token_t token,
69 struct sockaddr const *laddr,
70 struct sockaddr const *raddr,
71 bool server_side,
72 bool deny_join_id0,
73 struct mptcpd_pm *pm);
74
86 mptcpd_token_t token,
87 struct sockaddr const *laddr,
88 struct sockaddr const *raddr,
89 bool server_side,
90 bool deny_join_id0,
91 struct mptcpd_pm *pm);
92
100 mptcpd_token_t token,
101 struct mptcpd_pm *pm);
102
111MPTCPD_API void mptcpd_plugin_new_address(mptcpd_token_t token,
112 mptcpd_aid_t id,
113 struct sockaddr const *addr,
114 struct mptcpd_pm *pm);
115
124 mptcpd_aid_t id,
125 struct mptcpd_pm *pm);
126
136MPTCPD_API void mptcpd_plugin_new_subflow(
137 mptcpd_token_t token,
138 struct sockaddr const *laddr,
139 struct sockaddr const *raddr,
140 bool backup,
141 struct mptcpd_pm *pm);
142
154MPTCPD_API void mptcpd_plugin_subflow_closed(
155 mptcpd_token_t token,
156 struct sockaddr const *laddr,
157 struct sockaddr const *raddr,
158 bool backup,
159 uint8_t error,
160 struct mptcpd_pm *pm);
161
171MPTCPD_API void mptcpd_plugin_subflow_priority(
172 mptcpd_token_t token,
173 struct sockaddr const *laddr,
174 struct sockaddr const *raddr,
175 bool backup,
176 struct mptcpd_pm *pm);
177
184MPTCPD_API void mptcpd_plugin_listener_created(
185 char const *name,
186 struct sockaddr const *laddr,
187 struct mptcpd_pm *pm);
188
195MPTCPD_API void mptcpd_plugin_listener_closed(
196 char const *name,
197 struct sockaddr const *laddr,
198 struct mptcpd_pm *pm);
200
210
216MPTCPD_API void mptcpd_plugin_new_interface(
217 struct mptcpd_interface const *i,
218 void *pm);
219
226MPTCPD_API void mptcpd_plugin_update_interface(
227 struct mptcpd_interface const *i,
228 void *pm);
229
236MPTCPD_API void mptcpd_plugin_delete_interface(
237 struct mptcpd_interface const *i,
238 void *pm);
239
247MPTCPD_API void mptcpd_plugin_new_local_address(
248 struct mptcpd_interface const *i,
249 struct sockaddr const *sa,
250 void *pm);
251
260 struct mptcpd_interface const *i,
261 struct sockaddr const *sa,
262 void *pm);
264
265
266#ifdef __cplusplus
267}
268#endif
269
270#endif // MPTCPD_PRIVATE_PLUGIN_H
271
272
273/*
274 Local Variables:
275 c-file-style: "linux"
276 End:
277*/
mptcpd shared library symbol export/import macros.
MPTCPD_API void mptcpd_plugin_listener_closed(char const *name, struct sockaddr const *laddr, struct mptcpd_pm *pm)
Notify plugin of MPTCP listener closure.
Definition plugin.c:696
MPTCPD_API void mptcpd_plugin_new_connection(char const *name, mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, bool server_side, bool deny_join_id0, struct mptcpd_pm *pm)
Notify plugin of new MPTCP connection pending completion.
Definition plugin.c:573
MPTCPD_API void mptcpd_plugin_new_interface(struct mptcpd_interface const *i, void *pm)
Notify plugin of new network interface.
Definition plugin.c:815
MPTCPD_API void mptcpd_plugin_new_local_address(struct mptcpd_interface const *i, struct sockaddr const *sa, void *pm)
Notify plugin of new network address.
Definition plugin.c:848
MPTCPD_API void mptcpd_plugin_new_subflow(mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, bool backup, struct mptcpd_pm *pm)
Notify plugin that a peer has joined the MPTCP connection.
Definition plugin.c:646
MPTCPD_API void mptcpd_plugin_connection_established(mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, bool server_side, bool deny_join_id0, struct mptcpd_pm *pm)
Notify plugin of MPTCP connection completion.
Definition plugin.c:598
MPTCPD_API void mptcpd_plugin_subflow_priority(mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, bool backup, struct mptcpd_pm *pm)
Notify plugin of MPTCP subflow priority change.
Definition plugin.c:672
MPTCPD_API void mptcpd_plugin_delete_local_address(struct mptcpd_interface const *i, struct sockaddr const *sa, void *pm)
Notify plugin of removed network address.
Definition plugin.c:861
MPTCPD_API bool mptcpd_plugin_load(char const *dir, char const *default_name, struct l_queue const *plugins_to_load, struct mptcpd_pm *pm)
Load mptcpd plugins.
Definition plugin.c:430
MPTCPD_API void mptcpd_plugin_listener_created(char const *name, struct sockaddr const *laddr, struct mptcpd_pm *pm)
Notify plugin of MPTCP listener creation.
Definition plugin.c:685
MPTCPD_API void mptcpd_plugin_unload(struct mptcpd_pm *pm)
Unload mptcpd plugins.
Definition plugin.c:499
MPTCPD_API void mptcpd_plugin_update_interface(struct mptcpd_interface const *i, void *pm)
Notify plugin of updated network interface.
Definition plugin.c:826
MPTCPD_API void mptcpd_plugin_address_removed(mptcpd_token_t token, mptcpd_aid_t id, struct mptcpd_pm *pm)
Notify plugin of address no longer advertised by a peer.
Definition plugin.c:636
MPTCPD_API void mptcpd_plugin_delete_interface(struct mptcpd_interface const *i, void *pm)
Notify plugin of removed network interface.
Definition plugin.c:837
MPTCPD_API void mptcpd_plugin_subflow_closed(mptcpd_token_t token, struct sockaddr const *laddr, struct sockaddr const *raddr, bool backup, uint8_t error, struct mptcpd_pm *pm)
Notify plugin of MPTCP subflow closure.
Definition plugin.c:658
MPTCPD_API void mptcpd_plugin_new_address(mptcpd_token_t token, mptcpd_aid_t id, struct sockaddr const *addr, struct mptcpd_pm *pm)
Notify plugin of new address advertised by a peer.
Definition plugin.c:625
MPTCPD_API void mptcpd_plugin_connection_closed(mptcpd_token_t token, struct mptcpd_pm *pm)
Notify plugin of MPTCP connection closure.
Definition plugin.c:616
Network interface-specific information.
Definition network_monitor.h:31
char name[IF_NAMESIZE]
Network interface name.
Definition network_monitor.h:68
Data needed to run the path manager.
Definition path_manager.h:46
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