totemudpu.h
Go to the documentation of this file.
/*
* Copyright (c) 2005 MontaVista Software, Inc.
* Copyright (c) 2006-2011 Red Hat, Inc.
*
* All rights reserved.
*
* Author: Steven Dake (sdake@redhat.com)
*
* This software licensed under BSD license, the text of which follows:
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the MontaVista Software, Inc. nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef TOTEMUDPU_H_DEFINED
#define TOTEMUDPU_H_DEFINED
#include <sys/types.h>
#include <sys/socket.h>
#include <qb/qbloop.h>
#include <corosync/totem/totem.h>
extern int totemudpu_initialize (
qb_loop_t *poll_handle,
void **udpu_context,
struct totem_config *totem_config,
totemsrp_stats_t *stats,
void *context,
void (*deliver_fn) (
void *context,
const void *msg,
unsigned int msg_len,
const struct sockaddr_storage *system_from),
void (*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 void *totemudpu_buffer_alloc (void);
extern void totemudpu_buffer_release (void *ptr);
extern int totemudpu_processor_count_set (
void *udpu_context,
int processor_count);
extern int totemudpu_token_send (
void *udpu_context,
const void *msg,
unsigned int msg_len);
extern int totemudpu_mcast_flush_send (
void *udpu_context,
const void *msg,
unsigned int msg_len);
extern int totemudpu_mcast_noflush_send (
void *udpu_context,
const void *msg,
unsigned int msg_len);
extern int totemudpu_nodestatus_get (void *net_context, unsigned int nodeid,
struct totem_node_status *node_status);
extern int totemudpu_ifaces_get (void *net_context,
char ***status,
unsigned int *iface_count);
extern int totemudpu_recv_flush (void *udpu_context);
extern int totemudpu_send_flush (void *udpu_context);
extern int totemudpu_iface_set (void *net_context,
const struct totem_ip_address *local_addr,
unsigned short ip_port,
unsigned int iface_no);
extern int totemudpu_iface_check (void *udpu_context);
extern int totemudpu_finalize (void *udpu_context);
extern void totemudpu_net_mtu_adjust (void *udpu_context, struct totem_config *totem_config);
extern int totemudpu_token_target_set (
void *udpu_context,
unsigned int nodeid);
extern int totemudpu_crypto_set (
void *udpu_context,
const char *cipher_type,
const char *hash_type);
extern int totemudpu_recv_mcast_empty (
void *udpu_context);
extern int totemudpu_member_add (
void *udpu_context,
const struct totem_ip_address *local,
const struct totem_ip_address *member,
int ring_no);
extern int totemudpu_member_remove (
void *udpu_context,
const struct totem_ip_address *member,
int ring_no);
extern int totemudpu_reconfigure (
void *udpu_context,
struct totem_config *totem_config);
#endif /* TOTEMUDPU_H_DEFINED */
nodeid
unsigned int nodeid
Definition coroapi.h:0
totem_config
Definition totem.h:159
totem_ip_address
The totem_ip_address struct.
Definition coroapi.h:111
totem_node_status
Definition totem.h:265
totemsrp_stats_t
Definition totemstats.h:53
totem.h
system_from
struct srp_addr system_from
Definition totemsrp.c:1
totemudpu_buffer_release
void totemudpu_buffer_release(void *ptr)
Definition totemudpu.c:1054
totemudpu_ifaces_get
int totemudpu_ifaces_get(void *net_context, char ***status, unsigned int *iface_count)
Definition totemudpu.c:825
totemudpu_send_flush
int totemudpu_send_flush(void *udpu_context)
Definition totemudpu.c:1088
totemudpu_token_target_set
int totemudpu_token_target_set(void *udpu_context, unsigned int nodeid)
Definition totemudpu.c:1149
totemudpu_buffer_alloc
void * totemudpu_buffer_alloc(void)
Definition totemudpu.c:1049
totemudpu_recv_mcast_empty
int totemudpu_recv_mcast_empty(void *udpu_context)
Definition totemudpu.c:1175
totemudpu_processor_count_set
int totemudpu_processor_count_set(void *udpu_context, int processor_count)
Definition totemudpu.c:1059
totemudpu_token_send
int totemudpu_token_send(void *udpu_context, const void *msg, unsigned int msg_len)
Definition totemudpu.c:1095
totemudpu_iface_set
int totemudpu_iface_set(void *net_context, const struct totem_ip_address *local_addr, unsigned short ip_port, unsigned int iface_no)
Definition totemudpu.c:1301
totemudpu_initialize
int totemudpu_initialize(qb_loop_t *poll_handle, void **udpu_context, struct totem_config *totem_config, totemsrp_stats_t *stats, void *context, void(*deliver_fn)(void *context, const void *msg, unsigned int msg_len, const struct sockaddr_storage *system_from), void(*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.
Definition totemudpu.c:953
totemudpu_crypto_set
int totemudpu_crypto_set(void *udpu_context, const char *cipher_type, const char *hash_type)
Definition totemudpu.c:244
totemudpu_recv_flush
int totemudpu_recv_flush(void *udpu_context)
Definition totemudpu.c:1081
totemudpu_mcast_noflush_send
int totemudpu_mcast_noflush_send(void *udpu_context, const void *msg, unsigned int msg_len)
Definition totemudpu.c:1120
totemudpu_nodestatus_get
int totemudpu_nodestatus_get(void *net_context, unsigned int nodeid, struct totem_node_status *node_status)
Definition totemudpu.c:797
totemudpu_finalize
int totemudpu_finalize(void *udpu_context)
Definition totemudpu.c:423
totemudpu_mcast_flush_send
int totemudpu_mcast_flush_send(void *udpu_context, const void *msg, unsigned int msg_len)
Definition totemudpu.c:1107
totemudpu_iface_check
int totemudpu_iface_check(void *udpu_context)
Definition totemudpu.c:1133
totemudpu_reconfigure
int totemudpu_reconfigure(void *udpu_context, struct totem_config *totem_config)
Definition totemudpu.c:1447
totemudpu_net_mtu_adjust
void totemudpu_net_mtu_adjust(void *udpu_context, struct totem_config *totem_config)
Definition totemudpu.c:1143
totemudpu_member_remove
int totemudpu_member_remove(void *udpu_context, const struct totem_ip_address *member, int ring_no)
Definition totemudpu.c:1338
totemudpu_member_add
int totemudpu_member_add(void *udpu_context, const struct totem_ip_address *local, const struct totem_ip_address *member, int ring_no)
Definition totemudpu.c:1310