Files | |
| file | na-control.c |
| Padico control channel. | |
| file | na-group.c |
| Padico PadicoControl group control. | |
| file | PadicoControl-internals.h |
| Internal definitions for PadicoControl. | |
| file | PadicoControl.h |
Data Structures | |
| struct | padico_control_event_s |
| struct | padico_control_driver_s |
| Interface: "PadicoControl". More... | |
| struct | puk_receptacle_PadicoControl_s |
| struct | padico_control_connector_driver_s |
| Interface: "PadicoConnector" Connection for PadicoControl with explicit address transfer. More... | |
| struct | puk_receptacle_PadicoConnector_s |
| struct | padico_bootstrap_driver_s |
| Interface: "PadicoBootstrap" Connection for PadicoControl with implicit address More... | |
| struct | puk_receptacle_PadicoBootstrap_s |
| struct | padico_control_selector_driver_s |
| Interface: "ControlSelector". More... | |
| struct | puk_receptacle_ControlSelector_s |
Macros | |
| #define | padico_control_msg_add_cmd(MSG, TEXT, ...) padico_string_catf(padico_control_msg_get_cmd(MSG), (TEXT), ##__VA_ARGS__ ) |
Typedefs | |
| typedef struct padico_control_msg_s * | padico_control_msg_t |
| typedef struct padico_control_event_s * | padico_control_event_t |
Detailed Description
Macro Definition Documentation
◆ padico_control_msg_add_cmd
| #define padico_control_msg_add_cmd | ( | MSG, | |
| TEXT, | |||
| ... | |||
| ) | padico_string_catf(padico_control_msg_get_cmd(MSG), (TEXT), ##__VA_ARGS__ ) |
Definition at line 65 of file PadicoControl.h.
Typedef Documentation
◆ padico_control_event_t
Definition at line 213 of file PadicoControl.h.
◆ padico_control_msg_t
Definition at line 54 of file PadicoControl.h.
Function Documentation
◆ padico_control_delete_node()
|
inlinestatic |
Definition at line 319 of file PadicoControl.h.
References padico_control_event_s::controler, done, event, node, NULL, padico_control_event_s::PADICO_CONTROL_EVENT_DELETE_NODE, padico_control_get_event_channel(), and padico_tasklet_schedule().
Referenced by cascade_delete_end_handler(), disappear_end_handler(), ssh2_control_connection_lost(), and sysio_control_connection_lost().
◆ padico_control_deliver_message()
| void padico_control_deliver_message | ( | puk_instance_t | controler, |
| padico_topo_node_t | from, | ||
| char * | cmd, | ||
| size_t | size | ||
| ) |
deliver a message from a Controler
deliver a message from a Controler
- Note
- this function takes ownership of data pointed to by 'msg'
Definition at line 388 of file na-control.c.
References assert(), padico_control_event_s::cmd, done, event, NULL, padico_control_event_s::PADICO_CONTROL_EVENT_PROCESSING, padico_control_get_event_channel(), padico_tasklet_schedule(), and size.
Referenced by padico_control_send_ext(), router_message_process(), ssh2_control_read_callback(), and sysio_control_read_callback().
◆ padico_control_event_disable()
Definition at line 223 of file PadicoControl.h.
References padico_control_get_event_channel(), and padico_tasklet_acquire().
Referenced by cascade_delete_end_handler(), control_bootstrap_finalize(), control_bootstrap_pmi2_component_init(), control_router_disappeared(), control_router_event_listener(), control_select_controler(), control_simpleselector_finalize(), control_twostep_select_controler(), padico_control_event_subscribe(), padico_control_event_sync(), padico_control_event_unsubscribe(), padico_control_send_msg(), router_announce_end_handler(), router_message_process(), router_update_end_handler(), ssh2_control_start(), and sysio_control_start().
◆ padico_control_event_enable()
Definition at line 219 of file PadicoControl.h.
References padico_control_get_event_channel(), and padico_tasklet_release().
Referenced by cascade_delete_end_handler(), control_bootstrap_finalize(), control_bootstrap_pmi2_component_init(), control_router_disappeared(), control_router_event_listener(), control_select_controler(), control_simpleselector_finalize(), control_twostep_select_controler(), padico_control_event_subscribe(), padico_control_event_sync(), padico_control_event_unsubscribe(), padico_control_send_msg(), router_announce_end_handler(), router_message_process(), router_update_end_handler(), ssh2_control_start(), and sysio_control_start().
◆ padico_control_event_flush()
Definition at line 227 of file PadicoControl.h.
References padico_control_get_event_channel(), and padico_tasklet_flush().
Referenced by control_select_controler(), control_simpleselector_finalize(), na_control_request_handler(), padico_control_event_subscribe(), padico_control_event_sync(), padico_control_event_unsubscribe(), padico_control_send_msg(), router_message_process(), router_update_end_handler(), ssh2_control_start(), and sysio_control_start().
◆ padico_control_event_subscribe()
|
inlinestatic |
Definition at line 237 of file PadicoControl.h.
References l, padico_control_event_disable(), padico_control_event_enable(), padico_control_event_flush(), padico_control_gen_init_events(), padico_control_get_event_channel(), and padico_tasklet_subscribe().
Referenced by control_bootstrap_init(), control_router_init(), control_simpleselector_init(), control_twostep_selector_init(), padico_vlink_packet_init(), psp_control_module_init(), and remote_control_connector().
◆ padico_control_event_sync()
Definition at line 231 of file PadicoControl.h.
References padico_control_event_disable(), padico_control_event_enable(), and padico_control_event_flush().
Referenced by control_bootstrap_init(), control_router_event_listener(), control_router_finalize(), control_ssh2_init(), and control_sysio_init().
◆ padico_control_event_unsubscribe()
|
inlinestatic |
Definition at line 245 of file PadicoControl.h.
References l, padico_control_event_disable(), padico_control_event_enable(), padico_control_event_flush(), padico_control_get_event_channel(), and padico_tasklet_unsubscribe().
Referenced by control_bootstrap_finalize(), control_router_finalize(), control_simpleselector_finalize(), control_twostep_selector_finalize(), padico_vlink_packet_finalize(), and psp_control_module_finalize().
◆ padico_control_gen_init_events()
| void padico_control_gen_init_events | ( | padico_event_listener_t | l | ) |
Generates initial events for new subscribers to get the current state.
- Precondition
- event channel disabled
Definition at line 414 of file na-control.c.
References padico_control_event_s::controler, done, e, event, padico_control_event_s::kind, na_control, nodes, NULL, padico_control_event_s::PADICO_CONTROL_EVENT_INIT_CONTROLER, and padico_topo_node_vect_t.
Referenced by padico_control_event_subscribe().
◆ padico_control_get_event_channel()
| padico_tasklet_t padico_control_get_event_channel | ( | void | ) |
Definition at line 402 of file na-control.c.
References done, na_control, and NULL.
Referenced by padico_control_delete_node(), padico_control_deliver_message(), padico_control_event_disable(), padico_control_event_enable(), padico_control_event_flush(), padico_control_event_subscribe(), padico_control_event_unsubscribe(), padico_control_new_node(), padico_control_plug_connector(), padico_control_plug_controler(), padico_control_plug_selector(), padico_control_unplug_connector(), padico_control_unplug_controler(), and padico_control_unplug_selector().
◆ padico_control_getnetwork()
|
inlinestatic |
Get the control channel as a network.
Definition at line 124 of file PadicoControl.h.
References done, NULL, and padico_topo_network_getbyid().
◆ padico_control_msg_add_part()
|
extern |
add an attached binary part to a control message
Definition at line 189 of file na-control.c.
References padico_control_msg_s::content, done, len, padico_control_msg_s::offset, and padico_control_msg_add_cmd.
Referenced by bench_control_send(), psp_control_pack(), and router_message_process().
◆ padico_control_msg_destroy()
|
extern |
destroy a control message
Definition at line 173 of file na-control.c.
References padico_control_msg_s::content, done, i, NULL, and padico_control_msg_s::v.
Referenced by padico_control_send_ext(), and padico_control_send_msg().
◆ padico_control_msg_get_bytes()
|
extern |
get a (contiguous) copy of the content of the control message; caller takes ownership of the copy
Definition at line 229 of file na-control.c.
References done, NULL, padico_control_msg_get_iovec(), padico_control_msg_get_size(), size, and v.
Referenced by padico_control_send_ext(), and router_control_send_common().
◆ padico_control_msg_get_cmd()
|
extern |
get a pointer to the cmd part
Definition at line 244 of file na-control.c.
References padico_control_msg_s::content, and done.
◆ padico_control_msg_get_iovec()
|
extern |
get an iovec from the control message content; caller takes ownership of iovec and must free it
Definition at line 205 of file na-control.c.
References padico_control_msg_s::content, done, i, n, NULL, s, padico_control_msg_s::size, v, and padico_control_msg_s::v.
Referenced by padico_control_msg_get_bytes(), ssh2_control_send_common(), and sysio_control_send_common().
◆ padico_control_msg_get_iovec_size()
|
extern |
get the number of iovec entries in the control message
Definition at line 199 of file na-control.c.
References assert(), padico_control_msg_s::content, done, NULL, and padico_control_msg_s::v.
Referenced by ssh2_control_send_common(), and sysio_control_send_common().
◆ padico_control_msg_get_size()
|
extern |
get the total number of bytes in the control message
Definition at line 223 of file na-control.c.
References assert(), NULL, padico_control_msg_s::size, and padico_control_msg_s::v.
Referenced by padico_control_msg_get_bytes(), ssh2_control_send_common(), and sysio_control_send_common().
◆ padico_control_msg_new()
|
extern |
create a new empty control message
Definition at line 161 of file na-control.c.
References padico_control_msg_s::content, done, NULL, padico_control_msg_s::offset, padico_control_msg_s::size, and padico_control_msg_s::v.
Referenced by bench_control_send(), padico_control_send_ext(), psp_control_new_message(), and router_message_process().
◆ padico_control_new_node()
|
inlinestatic |
Definition at line 254 of file PadicoControl.h.
References padico_control_event_s::controler, done, event, node, padico_control_event_s::PADICO_CONTROL_EVENT_NEW_NODE, padico_control_get_event_channel(), and padico_tasklet_schedule().
Referenced by padico_control_new_node_vect(), router_new_node(), ssh2_control_start(), and sysio_control_start().
◆ padico_control_new_node_vect()
|
inlinestatic |
Definition at line 263 of file PadicoControl.h.
References padico_control_event_s::controler, done, i, nodes, and padico_control_new_node().
◆ padico_control_plug_connector()
|
inlinestatic |
Definition at line 281 of file PadicoControl.h.
References padico_control_event_s::connector, done, event, padico_control_event_s::PADICO_CONTROL_EVENT_PLUG_CONNECTOR, padico_control_get_event_channel(), and padico_tasklet_schedule().
◆ padico_control_plug_controler()
|
inlinestatic |
Definition at line 272 of file PadicoControl.h.
References padico_control_event_s::controler, done, event, padico_control_event_s::PADICO_CONTROL_EVENT_PLUG_CONTROLER, padico_control_get_event_channel(), padico_tasklet_schedule(), and server().
Referenced by control_router_init(), ssh2_control_bootstrap_connect(), sysio_control_bootstrap_acceptor(), and sysio_control_bootstrap_connector().
◆ padico_control_plug_selector()
|
inlinestatic |
Definition at line 289 of file PadicoControl.h.
References done, event, padico_control_event_s::PADICO_CONTROL_EVENT_PLUG_SELECTOR, padico_control_get_event_channel(), padico_tasklet_schedule(), and selector.
Referenced by control_simpleselector_init(), and control_twostep_selector_init().
◆ padico_control_send()
|
inlinestatic |
Send a blocking request on the control channel.
Definition at line 116 of file PadicoControl.h.
References done, node, NULL, padico_control_send_ext(), padico_tm_req_new(), and req.
Referenced by na_control_ping_handler(), padico_group_send_to_all(), sfsrtun_launch_server(), sr_bench_init(), vlink_control_resolve(), vlink_fwd_connect(), vlink_fwd_connect_handler(), vlink_fwd_listen(), and vlink_selector_assembly_request().
◆ padico_control_send_async()
|
inlinestatic |
Send an async request on the control channel.
Definition at line 108 of file PadicoControl.h.
References done, key, node, notify, padico_control_send_ext(), padico_tm_req_new(), and req.
Referenced by control_twostep_select_controler(), remote_control_node_send(), and sfrfw_launch_gateway().
◆ padico_control_send_ext()
| void padico_control_send_ext | ( | padico_topo_node_t | node, |
| const char * | cmd, | ||
| uint32_t | req_id | ||
| ) |
Definition at line 321 of file na-control.c.
References done, na_control, node, NULL, padico_control_deliver_message(), padico_control_msg_add_cmd, padico_control_msg_destroy(), padico_control_msg_get_bytes(), padico_control_msg_new(), padico_control_send_msg(), PADICO_REQ_ID_NONE, padico_tm_req_notify(), padico_topo_getlocalnode(), padico_topo_node_getname(), padico_topo_node_getuuid(), rc, req_id, and v.
Referenced by padico_control_send(), padico_control_send_async(), and padico_control_send_oneway().
◆ padico_control_send_msg()
| int padico_control_send_msg | ( | padico_topo_node_t | node, |
| padico_control_msg_t | msg | ||
| ) |
the real function to send a message on control channel- most of the time, we use a wraper, however.
Definition at line 252 of file na-control.c.
References assert(), done, puk_receptacle_PadicoControl_s::driver, na_control, name, node, NULL, padico_control_event_disable(), padico_control_event_enable(), padico_control_event_flush(), padico_control_msg_destroy(), padico_module_attr_selector_getvalue(), padico_topo_node_getname(), puk_component_get_driver_ControlSelector(), puk_instance_indirect_PadicoControl(), r, and selector.
Referenced by bench_control_send(), padico_control_send_ext(), psp_control_end_message(), and router_message_process().
◆ padico_control_send_oneway()
|
inlinestatic |
Send a "one way" message on the control channel.
Definition at line 102 of file PadicoControl.h.
References node, padico_control_send_ext(), and PADICO_REQ_ID_NONE.
Referenced by control_bootstrap_init(), control_bootstrap_pmi2_init(), control_router_broadcast(), control_router_disappeared(), control_router_event_listener(), na_control_notify(), padico_addrdb_publish(), padico_group_barrier(), padico_group_kill(), padico_ibv_request_connect(), sfrfw_close(), sfsplice_connect(), and sfsrtun_close().
◆ padico_control_unplug_connector()
|
inlinestatic |
Definition at line 303 of file PadicoControl.h.
References padico_control_event_s::connector, done, event, padico_control_event_s::PADICO_CONTROL_EVENT_UNPLUG_CONNECTOR, padico_control_get_event_channel(), and padico_tasklet_schedule().
◆ padico_control_unplug_controler()
|
inlinestatic |
Definition at line 296 of file PadicoControl.h.
References padico_control_event_s::controler, done, event, padico_control_event_s::PADICO_CONTROL_EVENT_UNPLUG_CONTROLER, padico_control_get_event_channel(), and padico_tasklet_schedule().
Referenced by control_router_finalize(), control_sysio_finalize(), and sysio_control_destroy().
◆ padico_control_unplug_selector()
|
inlinestatic |
Definition at line 311 of file PadicoControl.h.
References done, event, padico_control_event_s::PADICO_CONTROL_EVENT_UNPLUG_SELECTOR, padico_control_get_event_channel(), padico_tasklet_schedule(), and selector.
Referenced by control_simpleselector_finalize(), and control_twostep_selector_finalize().
◆ puk_component_get_driver_ControlSelector()
|
inlinestatic |
Definition at line 389 of file PadicoControl.h.
Referenced by padico_control_send_msg().
◆ puk_component_get_driver_PadicoBootstrap()
|
inlinestatic |
Definition at line 378 of file PadicoControl.h.
Referenced by padico_bootstrap_indirect().
◆ puk_component_get_driver_PadicoConnector()
|
inlinestatic |
Definition at line 364 of file PadicoControl.h.
Referenced by control_bootstrap_pmi2_component_init(), and control_bootstrap_pmi2_finalize().
◆ puk_component_get_driver_PadicoControl()
|
inlinestatic |
Definition at line 342 of file PadicoControl.h.
Referenced by control_bootstrap_pmi2_component_init(), control_twostep_connector_new_handler(), and padico_bootstrap_indirect().
◆ puk_component_get_facet_ControlSelector()
|
inlinestatic |
Definition at line 389 of file PadicoControl.h.
◆ puk_component_get_facet_PadicoBootstrap()
|
inlinestatic |
Definition at line 378 of file PadicoControl.h.
◆ puk_component_get_facet_PadicoConnector()
|
inlinestatic |
Definition at line 364 of file PadicoControl.h.
◆ puk_component_get_facet_PadicoControl()
|
inlinestatic |
Definition at line 342 of file PadicoControl.h.
◆ puk_component_indirect_ControlSelector()
|
inlinestatic |
Definition at line 389 of file PadicoControl.h.
◆ puk_component_indirect_PadicoBootstrap()
|
inlinestatic |
Definition at line 378 of file PadicoControl.h.
◆ puk_component_indirect_PadicoConnector()
|
inlinestatic |
Definition at line 364 of file PadicoControl.h.
◆ puk_component_indirect_PadicoControl()
|
inlinestatic |
Definition at line 342 of file PadicoControl.h.
◆ puk_context_indirect_ControlSelector()
|
inlinestatic |
Definition at line 389 of file PadicoControl.h.
◆ puk_context_indirect_PadicoBootstrap()
|
inlinestatic |
Definition at line 378 of file PadicoControl.h.
◆ puk_context_indirect_PadicoConnector()
|
inlinestatic |
Definition at line 364 of file PadicoControl.h.
◆ puk_context_indirect_PadicoControl()
|
inlinestatic |
Definition at line 342 of file PadicoControl.h.
◆ puk_iface_ControlSelector()
|
inlinestatic |
Definition at line 389 of file PadicoControl.h.
◆ puk_iface_PadicoBootstrap()
|
inlinestatic |
Definition at line 378 of file PadicoControl.h.
Referenced by ns_inet_default_selector_host(), and padico_bootstrap_indirect().
◆ puk_iface_PadicoConnector()
|
inlinestatic |
Definition at line 364 of file PadicoControl.h.
Referenced by control_bootstrap_pmi2_component_init(), control_bootstrap_pmi2_finalize(), control_twostep_connector_new_handler(), control_twostep_select_controler(), ns_inet_default_selector_host(), padico_control_connector_connect(), and padico_control_connector_new().
◆ puk_iface_PadicoControl()
|
inlinestatic |
Definition at line 342 of file PadicoControl.h.
◆ puk_instance_context_indirect_ControlSelector()
|
inlinestatic |
Definition at line 389 of file PadicoControl.h.
◆ puk_instance_context_indirect_PadicoBootstrap()
|
inlinestatic |
Definition at line 378 of file PadicoControl.h.
Referenced by secondary_connector_instantiate().
◆ puk_instance_context_indirect_PadicoConnector()
|
inlinestatic |
Definition at line 364 of file PadicoControl.h.
◆ puk_instance_context_indirect_PadicoControl()
|
inlinestatic |
Definition at line 342 of file PadicoControl.h.
◆ puk_instance_indirect_ControlSelector()
|
inlinestatic |
Definition at line 389 of file PadicoControl.h.
◆ puk_instance_indirect_PadicoBootstrap()
|
inlinestatic |
Definition at line 378 of file PadicoControl.h.
Referenced by padico_bootstrap_indirect().
◆ puk_instance_indirect_PadicoConnector()
|
inlinestatic |
Definition at line 364 of file PadicoControl.h.
Referenced by control_bootstrap_pmi2_instance_connect(), control_bootstrap_pmi2_instance_init(), control_twostep_connector_new_handler(), control_twostep_select_controler(), padico_control_connector_connect(), and padico_control_connector_new().
◆ puk_instance_indirect_PadicoControl()
|
inlinestatic |
Definition at line 342 of file PadicoControl.h.
Referenced by padico_control_send_msg(), and sysio_control_bootstrap_acceptor().
◆ puk_receptacle_ControlSelector_null()
|
inlinestatic |
Definition at line 389 of file PadicoControl.h.
◆ puk_receptacle_PadicoBootstrap_null()
|
inlinestatic |
Definition at line 378 of file PadicoControl.h.
◆ puk_receptacle_PadicoConnector_null()
|
inlinestatic |
Definition at line 364 of file PadicoControl.h.
◆ puk_receptacle_PadicoControl_null()
|
inlinestatic |
Definition at line 342 of file PadicoControl.h.