totemudp.h File Reference
`#include <sys/types.h>`
`#include <sys/socket.h>`
`#include <qb/qbloop.h>`
`#include <corosync/totem/totem.h>`
Include dependency graph for totemudp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Functions

int

totemudp_initialize (qb_loop_t *poll_handle, void **udp_context, struct totem_config *totem_config, totemsrp_stats_t *stats, void *context, int(*deliver_fn)(void *context, const void *msg, unsigned int msg_len, const struct sockaddr_storage *system_from), int(*iface_change_fn)(void *context, const struct totem_ip_address *iface_address, unsigned int ring_no), void(*mtu_changed)(void *context, int net_mtu), void(*target_set_completed)(void *context))

| Create an instance.
void * | totemudp_buffer_alloc (void)
void | totemudp_buffer_release (void *ptr)
int | totemudp_processor_count_set (void *udp_context, int processor_count)
int | totemudp_token_send (void *udp_context, const void *msg, unsigned int msg_len)
int | totemudp_mcast_flush_send (void *udp_context, const void *msg, unsigned int msg_len)
int | totemudp_mcast_noflush_send (void *udp_context, const void *msg, unsigned int msg_len)
int | totemudp_nodestatus_get (void *net_context, unsigned int nodeid, struct totem_node_status *node_status)
int | totemudp_ifaces_get (void *net_context, char ***status, unsigned int *iface_count)
int | totemudp_recv_flush (void *udp_context)
int | totemudp_send_flush (void *udp_context)
int | totemudp_iface_set (void *net_context, const struct totem_ip_address *local_addr, unsigned short ip_port, unsigned int iface_no)
int | totemudp_iface_check (void *udp_context)
int | totemudp_finalize (void *udp_context)
void | totemudp_net_mtu_adjust (void *udp_context, struct totem_config *totem_config)
int | totemudp_token_target_set (void *udp_context, unsigned int nodeid)
int | totemudp_crypto_set (void *udp_context, const char *cipher_type, const char *hash_type)
int | totemudp_recv_mcast_empty (void *udp_context)
int | totemudp_member_add (void *udpu_context, const struct totem_ip_address *local, const struct totem_ip_address *member, int ring_no)
int | totemudp_member_remove (void *udpu_context, const struct totem_ip_address *member, int ring_no)
int | totemudp_reconfigure (void *udp_context, struct totem_config *totem_config)

## Function Documentation

## totemudp_buffer_alloc()

void * totemudp_buffer_alloc | ( | void |  | ) |

extern

Definition at line 1216 of file totemudp.c.

References FRAME_SIZE_MAX.

## totemudp_buffer_release()

void totemudp_buffer_release | ( | void * | ptr | ) |

extern

Definition at line 1221 of file totemudp.c.

## totemudp_crypto_set()

int totemudp_crypto_set | ( | void * | udp_context,
|  | const char * | cipher_type,
|  | const char * | hash_type )

extern

Definition at line 249 of file totemudp.c.

## totemudp_finalize()

int totemudp_finalize | ( | void * | udp_context | ) |

extern

Definition at line 383 of file totemudp.c.

References totemudp_socket::local_mcast_loop, totemudp_socket::mcast_recv, totemudp_socket::mcast_send, totemudp_socket::token, totemudp_instance::totemudp_poll_handle, totemudp_instance::totemudp_sockets, and totemudp_instance::udp_context.

## totemudp_iface_check()

int totemudp_iface_check | ( | void * | udp_context | ) |

extern

Definition at line 1327 of file totemudp.c.

References totemudp_instance::udp_context.

## totemudp_iface_set()

int totemudp_iface_set | ( | void * | net_context,
|  | const struct totem_ip_address * | local_addr,
|  | unsigned short | ip_port,
|  | unsigned int | iface_no )

extern

Definition at line 1534 of file totemudp.c.

## totemudp_ifaces_get()

int totemudp_ifaces_get | ( | void * | net_context,
|  | char *** | status,
|  | unsigned int * | iface_count )

extern

Definition at line 1366 of file totemudp.c.

References INTERFACE_MAX.

## totemudp_initialize()

int totemudp_initialize | ( | qb_loop_t * | poll_handle,
|  | void ** | udp_context,
|  | struct totem_config * | totem_config,
|  | totemsrp_stats_t * | stats,
|  | void * | context,
|  | int(* | deliver_fn )(void *context, const void *msg, unsigned int msg_len, const struct sockaddr_storage *system_from),
|  | int(* | iface_change_fn )(void *context, const struct totem_ip_address *iface_address, unsigned int ring_no),
|  | void(* | mtu_changed )(void *context, int net_mtu),
|  | void(* | target_set_completed )(void *context) )

extern

Create an instance.

Definition at line 1131 of file totemudp.c.

References totem_interface::bindnet, totemudp_instance::context, totem_ip_address::family, totem_config::interfaces, totemudp_instance::iov_buffer, totem_logging_configuration::log_level_debug, totem_logging_configuration::log_level_error, totem_logging_configuration::log_level_notice, totem_logging_configuration::log_level_warning, totem_logging_configuration::log_printf, totem_logging_configuration::log_subsys_id, totem_interface::mcast_addr, totemudp_instance::mcast_address, totem_config::node_id, totem_ip_address::nodeid, totemudp_instance::stats, system_from, totemudp_instance::timer_netif_check_timeout, totemudp_instance::totem_config, totemudp_instance::totem_interface, totem_config::totem_logging_configuration, totemip_copy(), totemip_localhost(), totemudp_instance::totemudp_deliver_fn, totemudp_instance::totemudp_iface_change_fn, totemudp_instance::totemudp_log_level_debug, totemudp_instance::totemudp_log_level_error, totemudp_instance::totemudp_log_level_notice, totemudp_instance::totemudp_log_level_security, totemudp_instance::totemudp_log_level_warning, totemudp_instance::totemudp_log_printf, totemudp_instance::totemudp_poll_handle, totemudp_instance::totemudp_subsys_id, totemudp_instance::totemudp_target_set_completed, totemudp_instance::udp_context, and UDP_RECEIVE_FRAME_SIZE_MAX.

## totemudp_mcast_flush_send()

int totemudp_mcast_flush_send | ( | void * | udp_context,
|  | const void * | msg,
|  | unsigned int | msg_len )

extern

Definition at line 1301 of file totemudp.c.

References totemudp_instance::udp_context.

## totemudp_mcast_noflush_send()

int totemudp_mcast_noflush_send | ( | void * | udp_context,
|  | const void * | msg,
|  | unsigned int | msg_len )

extern

Definition at line 1314 of file totemudp.c.

References totemudp_instance::udp_context.

## totemudp_member_add()

int totemudp_member_add | ( | void * | udpu_context,
|  | const struct totem_ip_address * | local,
|  | const struct totem_ip_address * | member,
|  | int | ring_no )

extern

Definition at line 1476 of file totemudp.c.

References totemudp_member::list, totemudp_member::member, totemudp_instance::member_list, and totemudp_instance::udp_context.

## totemudp_member_remove()

int totemudp_member_remove | ( | void * | udpu_context,
|  | const struct totem_ip_address * | member,
|  | int | ring_no )

extern

Definition at line 1500 of file totemudp.c.

References totemudp_member::member, totemudp_instance::member_list, totemudp_instance::token_target, totemip_compare(), and totemudp_instance::udp_context.

## totemudp_net_mtu_adjust()

void totemudp_net_mtu_adjust | ( | void * | udp_context,
|  | struct totem_config * | totem_config )

extern

Definition at line 1381 of file totemudp.c.

References totem_interface::bindnet, totem_ip_address::family, totem_config::interfaces, totem_config::net_mtu, and totemip_udpip_header_size().

## totemudp_nodestatus_get()

int totemudp_nodestatus_get | ( | void * | net_context,
|  | unsigned int | nodeid,
|  | struct totem_node_status * | node_status )

extern

Definition at line 1337 of file totemudp.c.

References BIND_STATE_REGULAR, totem_node_status::link_status, totemudp_member::list, totemudp_member::member, totemudp_instance::member_list, totem_config::net_mtu, totemudp_instance::netif_bind_state, nodeid, totem_ip_address::nodeid, totem_node_status::nodeid, totem_node_status::reachable, totemudp_instance::totem_config, totemip_print(), and totemudp_instance::udp_context.

## totemudp_processor_count_set()

int totemudp_processor_count_set | ( | void * | udp_context,
|  | int | processor_count )

extern

Definition at line 1226 of file totemudp.c.

References totem_config::downcheck_timeout, totemudp_instance::my_memb_entries, totemudp_instance::timer_netif_check_timeout, totemudp_instance::totem_config, totemudp_instance::totemudp_poll_handle, and totemudp_instance::udp_context.

## totemudp_reconfigure()

int totemudp_reconfigure | ( | void * | udp_context,
|  | struct totem_config * | totem_config )

extern

Definition at line 1543 of file totemudp.c.

## totemudp_recv_flush()

int totemudp_recv_flush | ( | void * | udp_context | ) |

extern

Definition at line 1248 of file totemudp.c.

References totemudp_instance::flushing, totemudp_socket::local_mcast_loop, totemudp_socket::mcast_recv, totemudp_instance::totemudp_sockets, and totemudp_instance::udp_context.

## totemudp_recv_mcast_empty()

int totemudp_recv_mcast_empty | ( | void * | udp_context | ) |

extern

Definition at line 1411 of file totemudp.c.

References totemudp_socket::local_mcast_loop, totemudp_socket::mcast_recv, MSG_NOSIGNAL, system_from, totemudp_instance::totemudp_iov_recv_flush, totemudp_instance::totemudp_sockets, and totemudp_instance::udp_context.

## totemudp_send_flush()

int totemudp_send_flush | ( | void * | udp_context | ) |

extern

Definition at line 1284 of file totemudp.c.

## totemudp_token_send()

int totemudp_token_send | ( | void * | udp_context,
|  | const void * | msg,
|  | unsigned int | msg_len )

extern

Definition at line 1289 of file totemudp.c.

References totemudp_instance::token_target, and totemudp_instance::udp_context.

## totemudp_token_target_set()

int totemudp_token_target_set | ( | void * | udp_context,
|  | unsigned int | nodeid )

extern

Definition at line 1386 of file totemudp.c.

References totemudp_instance::context, totemudp_member::list, totemudp_member::member, totemudp_instance::member_list, nodeid, totem_ip_address::nodeid, totemudp_instance::token_target, totemudp_instance::totemudp_target_set_completed, and totemudp_instance::udp_context.