mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2025-07-24 20:05:04 +00:00
(Logical change 1.65)
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@238 fd59a12c-fef9-0310-b244-a6a79926bd2f
This commit is contained in:
parent
1aeec797c7
commit
e9fc92be20
49
man/Makefile
49
man/Makefile
@ -0,0 +1,49 @@
|
||||
# Copyright (c) 2004 MontaVista Software, Inc.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# 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.
|
||||
|
||||
all: html
|
||||
# The index.html file must be hand edited when adding manual pages
|
||||
|
||||
html:
|
||||
mkdir html
|
||||
groff -mandoc -Thtml evs_overview.8 > html/evs_overview.html
|
||||
groff -mandoc -Thtml evs_initialize.3 > html/evs_initialize.html
|
||||
groff -mandoc -Thtml evs_finalize.3 > html/evs_finalize.html
|
||||
groff -mandoc -Thtml evs_fd_get.3 > html/evs_fd_get.html
|
||||
groff -mandoc -Thtml evs_dispatch.3 > html/evs_dispatch.html
|
||||
groff -mandoc -Thtml evs_join.3 > html/evs_join.html
|
||||
groff -mandoc -Thtml evs_leave.3 > html/evs_leave.html
|
||||
groff -mandoc -Thtml evs_mcast_groups.3 > html/evs_mcast_groups.html
|
||||
groff -mandoc -Thtml evs_mcast_joined.3 > html/evs_mcast_joined.html
|
||||
cp index.html html
|
||||
|
||||
clean:
|
||||
rm -rf html
|
||||
|
@ -0,0 +1,100 @@
|
||||
.\"/*
|
||||
.\" * Copyright (c) 2004 MontaVista Software, Inc.
|
||||
.\" *
|
||||
.\" * All rights reserved.
|
||||
.\" *
|
||||
.\" * Author: Steven Dake (sdake@mvista.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.
|
||||
.\" */
|
||||
.TH EVS_DISPATCH 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
evs_dispatch \- Dispatches callbacks from the EVS service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/evs.h>
|
||||
.sp
|
||||
.BI "int evs_dispatch(evs_handle_t *" handle ", evs_dispatch_t *" dispatch_types ");
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.B evs_dispatch
|
||||
function is used to dispatch configuration changes or messages from the
|
||||
extended virtual synchrony API.
|
||||
.PP
|
||||
Each application may have several connections to the EVS API. Each application
|
||||
uses the
|
||||
.I handle
|
||||
argument to uniquely identify the connection.
|
||||
.PP
|
||||
The
|
||||
.I dispatch_types
|
||||
argument is used to identify the type of dispatch to execute. The possible types are
|
||||
defined by the structure:
|
||||
|
||||
.IP
|
||||
.RS
|
||||
.ne 18
|
||||
.nf
|
||||
.ta 4n 30n 33n
|
||||
typedef enum {
|
||||
EVS_DISPATCH_ONE,
|
||||
EVS_DISPATCH_ALL,
|
||||
EVS_DISPATCH_BLOCKING
|
||||
} evs_dispatch_t;
|
||||
.ta
|
||||
.fi
|
||||
.RE
|
||||
.IP
|
||||
.PP
|
||||
.PP
|
||||
The dispatch values have the following meanings:
|
||||
.TP
|
||||
.B EVS_DISPATCH_ONE
|
||||
Dispatch atleast one callback, blocking until the callback is dispatched.
|
||||
.TP
|
||||
.B EVS_DISPATCH_ALL
|
||||
Dispatch all waiting callbacks without blocking to wait for any callbacks.
|
||||
.TP
|
||||
.B EVS_DISPATCH_BLOCKING
|
||||
Dispatch all callbacks blocking indefinately. This is used in a threaded
|
||||
program where a thread is created, and then evs_dispatch() is called immediately
|
||||
from the created thread to execute callbacks.
|
||||
|
||||
.SH RETURN VALUE
|
||||
This call returns the EVS_OK value if successful, otherwise an error is returned.
|
||||
.PP
|
||||
.SH ERRORS
|
||||
The errors are undocumented.
|
||||
.SH "SEE ALSO"
|
||||
.BR evs_overview (8),
|
||||
.BR evs_initialize (3),
|
||||
.BR evs_finalize (3),
|
||||
.BR evs_fd_get (3),
|
||||
.BR evs_join (3),
|
||||
.BR evs_leave (3),
|
||||
.BR evs_mcast_joined (3),
|
||||
.BR evs_mcast_groups (3)
|
||||
.PP
|
@ -0,0 +1,67 @@
|
||||
.\"/*
|
||||
.\" * Copyright (c) 2004 MontaVista Software, Inc.
|
||||
.\" *
|
||||
.\" * All rights reserved.
|
||||
.\" *
|
||||
.\" * Author: Steven Dake (sdake@mvista.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.
|
||||
.\" */
|
||||
.TH EVS_FD_GET 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
evs_fd_get \- Dispatches callbacks from the EVS service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/evs.h>
|
||||
.sp
|
||||
.BI "int evs_fd_get(evs_handle_t *" handle ", int *" fd ");
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.B evs_fd_get
|
||||
function is used to retrieve the file descriptor that may be used with the poll
|
||||
system call to determine when
|
||||
.B evs_dispatch(3)
|
||||
won't block. The
|
||||
.I handle
|
||||
argument may not be used directly with
|
||||
.B poll
|
||||
because it is not the file descriptor, but instead an internal identifier used
|
||||
by the EVS library.
|
||||
.SH RETURN VALUE
|
||||
This call returns the EVS_OK value if successful, otherwise an error is returned.
|
||||
.PP
|
||||
.SH ERRORS
|
||||
The errors are undocumented.
|
||||
.SH "SEE ALSO"
|
||||
.BR evs_overview (8),
|
||||
.BR evs_initialize (3),
|
||||
.BR evs_finalize (3),
|
||||
.BR evs_dispatch (3),
|
||||
.BR evs_join (3),
|
||||
.BR evs_leave (3),
|
||||
.BR evs_mcast_joined (3),
|
||||
.BR evs_mcast_groups (3)
|
||||
.PP
|
@ -0,0 +1,63 @@
|
||||
.\"/*
|
||||
.\" * Copyright (c) 2004 MontaVista Software, Inc.
|
||||
.\" *
|
||||
.\" * All rights reserved.
|
||||
.\" *
|
||||
.\" * Author: Steven Dake (sdake@mvista.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.
|
||||
.\" */
|
||||
.TH EVS_FINALIZE 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
evs_finalize \- Terminate a connection to the EVS service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/evs.h>
|
||||
.sp
|
||||
.BI "int evs_finalize(evs_handle_t *" handle ");
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.B evs_finalize
|
||||
function is used to close a connection to the extended virtual synchrony API.
|
||||
Once the connection is finalized, the handle may not be used again by applications.
|
||||
No more callbacks will be dispatched from the
|
||||
.B evs_dispatch function.
|
||||
.PP
|
||||
.SH RETURN VALUE
|
||||
This call returns the EVS_OK value if successful, otherwise an error is returned.
|
||||
.PP
|
||||
.SH ERRORS
|
||||
The errors are undocumented.
|
||||
.SH "SEE ALSO"
|
||||
.BR evs_overview (8),
|
||||
.BR evs_initialize (3),
|
||||
.BR evs_fd_get (3),
|
||||
.BR evs_dispatch (3),
|
||||
.BR evs_join (3),
|
||||
.BR evs_leave (3),
|
||||
.BR evs_mcast_joined (3),
|
||||
.BR evs_mcast_groups (3)
|
||||
.PP
|
@ -0,0 +1,118 @@
|
||||
.\"/*
|
||||
.\" * Copyright (c) 2004 MontaVista Software, Inc.
|
||||
.\" *
|
||||
.\" * All rights reserved.
|
||||
.\" *
|
||||
.\" * Author: Steven Dake (sdake@mvista.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.
|
||||
.\" */
|
||||
.TH EVS_INITIALIZE 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
evs_initialize \- Create a new connection to the EVS service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/evs.h>
|
||||
.sp
|
||||
.BI "int evs_initialize(evs_handle_t *" handle ", evs_callbacks_t *" callbacks ");
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.B evs_initialize
|
||||
function is used to initialize a connection to the extended virtual synchrony API.
|
||||
.PP
|
||||
Each application may have several connections to the EVS API. Each application
|
||||
uses the
|
||||
.I handle
|
||||
argument to uniquely identify the connection. The
|
||||
.I handle
|
||||
argument is then used in other function calls to identify the connection to be used
|
||||
for communication with the EVS service.
|
||||
.PP
|
||||
Every time an EVS event occurs, one of the callbacks specified by the argument
|
||||
.I callbacks
|
||||
is called. The callback functions are described by the following type definitions:
|
||||
.PP
|
||||
.IP
|
||||
.RS
|
||||
.ne 18
|
||||
.nf
|
||||
.ta 4n 20n 32n
|
||||
typedef void (*evs_deliver_fn_t) (
|
||||
struct in_addr source_addr,
|
||||
void *msg,
|
||||
int msg_len);
|
||||
|
||||
typedef void (*evs_confchg_fn_t) (
|
||||
struct in_addr *member_list, int member_list_entries,
|
||||
struct in_addr *left_list, int left_list_entries,
|
||||
struct in_addr *joined_list, int joined_list_entries);
|
||||
.ta
|
||||
.fi
|
||||
.RE
|
||||
.IP
|
||||
.PP
|
||||
.PP
|
||||
The
|
||||
.I callbacks
|
||||
argument is of the type:
|
||||
.IP
|
||||
.RS
|
||||
.ne 18
|
||||
.nf
|
||||
.PP
|
||||
typedef struct {
|
||||
evs_deliver_fn_t evs_deliver_fn;
|
||||
evs_confchg_fn_t evs_confchg_fn;
|
||||
} evs_callbacks_t;
|
||||
.ta
|
||||
.fi
|
||||
.RE
|
||||
.IP
|
||||
.PP
|
||||
When a configuration change occurs or a message is to be delivered one of the callbacks
|
||||
is called from the
|
||||
.B evs_dispatch()
|
||||
function. If a configuration change occurs,
|
||||
.I evs_confchg_fn
|
||||
is called. If a delivery of a message occurs,
|
||||
.I evs_deliver_fn
|
||||
is called.
|
||||
|
||||
.SH RETURN VALUE
|
||||
This call returns the EVS_OK value if successful, otherwise an error is returned.
|
||||
.PP
|
||||
.SH ERRORS
|
||||
The errors are undocumented.
|
||||
.SH "SEE ALSO"
|
||||
.BR evs_overview (8),
|
||||
.BR evs_finalize (3),
|
||||
.BR evs_fd_get (3),
|
||||
.BR evs_dispatch (3),
|
||||
.BR evs_join (3),
|
||||
.BR evs_leave (3),
|
||||
.BR evs_mcast_joined (3),
|
||||
.BR evs_mcast_groups (3)
|
||||
.PP
|
102
man/evs_join.3
102
man/evs_join.3
@ -0,0 +1,102 @@
|
||||
.\"/*
|
||||
.\" * Copyright (c) 2004 MontaVista Software, Inc.
|
||||
.\" *
|
||||
.\" * All rights reserved.
|
||||
.\" *
|
||||
.\" * Author: Steven Dake (sdake@mvista.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.
|
||||
.\" */
|
||||
.TH EVS_JOIN 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
evs_join \- Joins one or more groups in the EVS library
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/evs.h>
|
||||
.sp
|
||||
.BI "int evs_join(evs_handle_t *" handle ", evs_group_t *" groups ", int " group_entries ");
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.B evs_join
|
||||
function is used to join one or more groups. When a group is joined, using the
|
||||
.B evs_mcast_joined(3)
|
||||
function will multicast to the groups joined in the argument
|
||||
.I handle.
|
||||
Messages that are sent to any of the groups joined to the parameter
|
||||
.I handle
|
||||
will be delivered by
|
||||
.B evs_dispatch(3).
|
||||
.PP
|
||||
This call may be used more then once on a handle, in which case the joined groups will
|
||||
be all of the groups passed to the
|
||||
.B evs_join(3)
|
||||
function during the lifecycle of the parameter
|
||||
.I handle.
|
||||
.PP
|
||||
|
||||
The argument
|
||||
.I groups
|
||||
is used to specify the groups to join. A group is a 32 byte key. The key is
|
||||
not a string, hence, the entire key is used when joining the channel. For that reason
|
||||
the entire group should be initialized.
|
||||
.PP
|
||||
The argument
|
||||
.I group_entries
|
||||
specifies how many entries are located in the groups argument.
|
||||
|
||||
The
|
||||
.I groups
|
||||
argument is of the type evs_group_t which is defined by the structure:
|
||||
|
||||
.IP
|
||||
.RS
|
||||
.ne 18
|
||||
.nf
|
||||
.ta 4n 30n 33n
|
||||
typedef struct {
|
||||
char key[32];
|
||||
} evs_groups_t;
|
||||
.ta
|
||||
.fi
|
||||
.RE
|
||||
.IP
|
||||
.PP
|
||||
.PP
|
||||
.SH RETURN VALUE
|
||||
This call returns the EVS_OK value if successful, otherwise an error is returned.
|
||||
.PP
|
||||
.SH ERRORS
|
||||
The errors are undocumented.
|
||||
.SH "SEE ALSO"
|
||||
.BR evs_overview (8),
|
||||
.BR evs_initialize (3),
|
||||
.BR evs_finalize (3),
|
||||
.BR evs_fd_get (3),
|
||||
.BR evs_dispatch (3),
|
||||
.BR evs_leave (3),
|
||||
.BR evs_mcast_joined (3),
|
||||
.BR evs_mcast_groups (3)
|
||||
.PP
|
@ -0,0 +1,97 @@
|
||||
.\"/*
|
||||
.\" * Copyright (c) 2004 MontaVista Software, Inc.
|
||||
.\" *
|
||||
.\" * All rights reserved.
|
||||
.\" *
|
||||
.\" * Author: Steven Dake (sdake@mvista.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.
|
||||
.\" */
|
||||
.TH EVS_LEAVE 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
evs_leave \- Leave one or more groups in the EVS library
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/evs.h>
|
||||
.sp
|
||||
.BI "int evs_leave(evs_handle_t *" handle ", evs_group_t *" groups ", int group_entries);
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.B evs_leave
|
||||
function is used to leave one or more groups. The joined groups are used with
|
||||
.B evs_mcast_joined(3)
|
||||
function to multicast to the groups joined in the argument
|
||||
.I handle.
|
||||
Messages that are sent to any of the joined groups to the parameter
|
||||
.I handle
|
||||
will be delivered by
|
||||
.B evs_dispatch(3).
|
||||
.PP
|
||||
This call may be used more then once on a handle.
|
||||
.PP
|
||||
|
||||
The argument
|
||||
.I groups
|
||||
is used to specify the groups to leave. A group is a 32 byte key. The key is
|
||||
not a string, hence, the entire key is used when leaveing the channel. For that reason
|
||||
the entire group should be initialized.
|
||||
.PP
|
||||
The argument
|
||||
.I group_entries
|
||||
specifies how many entries are located in the groups argument.
|
||||
|
||||
The
|
||||
.I groups
|
||||
argument is of the type evs_group_t which is defined by the structure:
|
||||
|
||||
.IP
|
||||
.RS
|
||||
.ne 18
|
||||
.nf
|
||||
.ta 4n 30n 33n
|
||||
typedef struct {
|
||||
char key[32];
|
||||
} evs_groups_t;
|
||||
.ta
|
||||
.fi
|
||||
.RE
|
||||
.IP
|
||||
.PP
|
||||
.SH RETURN VALUE
|
||||
This call returns the EVS_OK value if successful, otherwise an error is returned.
|
||||
.PP
|
||||
.SH ERRORS
|
||||
The errors are undocumented.
|
||||
.SH "SEE ALSO"
|
||||
.BR evs_overview (8),
|
||||
.BR evs_initialize (3),
|
||||
.BR evs_finalize (3),
|
||||
.BR evs_fd_get (3),
|
||||
.BR evs_dispatch (3),
|
||||
.BR evs_join (3),
|
||||
.BR evs_mcast_joined (3),
|
||||
.BR evs_mcast_groups (3)
|
||||
.PP
|
@ -0,0 +1,202 @@
|
||||
.\"/*
|
||||
.\" * Copyright (c) 2004 MontaVista Software, Inc.
|
||||
.\" *
|
||||
.\" * All rights reserved.
|
||||
.\" *
|
||||
.\" * Author: Steven Dake (sdake@mvista.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.
|
||||
.\" */
|
||||
.TH EVS_MCAST_GROUPS 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
evs_join \- Multicast a message to selected groups
|
||||
.SH SYNOPSIS
|
||||
.B #include <sys/uio.h>
|
||||
.B #include <openais/evs.h>
|
||||
.sp
|
||||
.BI "int evs_mcast_gruops(evs_handle_t *" handle ", evs_guraantee_t " guarantee ", evs_priority_t " priority ", evs_group_t *" groups ", int group_entries, struct iovec *" iovec ", int " iov_len ");
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.B evs_mcast_groups(3)
|
||||
function multicasts a message to all the groups specified in the arguemnt
|
||||
.I groups.
|
||||
Messages are delivered to all processors in the system that are described by the current
|
||||
configuration.
|
||||
.PP
|
||||
The argument
|
||||
.I handle
|
||||
describes a handle created with
|
||||
.B evs_initialize(3).
|
||||
.PP
|
||||
The argument
|
||||
.I guarantee
|
||||
requests a delivery guarantee for the message to be sent. The evs_guarantee_t type is
|
||||
defined by:
|
||||
.IP
|
||||
.RS
|
||||
.ne 18
|
||||
.nf
|
||||
.ta 4n 30n 33n
|
||||
typedef enum {
|
||||
EVS_TYPE_UNORDERED, /* not implemented */
|
||||
EVS_TYPE_FIFO, /* same as agreed */
|
||||
EVS_TYPE_AGREED, /* implemented */
|
||||
EVS_TYPE_SAFE /* not implemented */
|
||||
} evs_guarantee_t;
|
||||
.ta
|
||||
.fi
|
||||
.RE
|
||||
.IP
|
||||
.PP
|
||||
.PP
|
||||
The meanings of the evs_gaurantee_t typedef are:
|
||||
.TP
|
||||
.B EVS_GUARANTEE_UNORDERED
|
||||
Messages are guaranteed to be delivered, but with no particular order. This
|
||||
mode is unimplemented in the EVS library.
|
||||
.TP
|
||||
.B EVS_GUARANTEE_FIFO
|
||||
Messages are guaranteed to be delivered in first sent first delivery order
|
||||
from one one. In fact, this guarantee is actually the AGREED guarantee.
|
||||
.TP
|
||||
.B EVS_GUARANTEE_AGREED
|
||||
All processors must agree on the order of delivery. If a message is sent
|
||||
from two or more processors at about the same time, the delivery will occur
|
||||
in the same order to all processors.
|
||||
.TP
|
||||
.B EVS_GUARANTEE_SAFE
|
||||
All processors must agree on the order of delivery. Further all processors
|
||||
must have a copy of the message before any delivery takes place. This mode is
|
||||
unimplemented in the EVS library.
|
||||
.PP
|
||||
The argument
|
||||
.I priority
|
||||
describes the priority at which a message will be sent. Messages will be sent with
|
||||
higher priorities before messages with lower priorities. This requirement only applies
|
||||
to the local processor. If two processors have two different priority messages, the
|
||||
messages may be sent from either priority depending on the algorithm of the EVS library.
|
||||
|
||||
The evs_priority_t typedef is described by:
|
||||
.IP
|
||||
.RS
|
||||
.ne 18
|
||||
.nf
|
||||
.ta 4n 30n 33n
|
||||
typedef enum {
|
||||
EVS_PRIO_RECOVERY,
|
||||
EVS_PRIO_HIGH,
|
||||
EVS_PRIO_MED,
|
||||
EVS_PRIO_LOW
|
||||
} evs_priority_t;
|
||||
.ta
|
||||
.fi
|
||||
.RE
|
||||
.IP
|
||||
.PP
|
||||
.PP
|
||||
The meanings of the evs_priority_t typedef are:
|
||||
.TP
|
||||
.B EVS_PRIO_RECOVERY
|
||||
Messages are sent from this priority level first. This priority level is used
|
||||
for recovery of state after a partition or merge occurs.
|
||||
.TP
|
||||
.B EVS_PRIO_HIGH
|
||||
Messages are sent from this priority level second.
|
||||
.TP
|
||||
.B EVS_PRIO_MED
|
||||
Messages are sent from this priority level third.
|
||||
.I groups
|
||||
.TP
|
||||
.B EVS_PRIO_LOW
|
||||
Messages are sent from this priority level fourth.
|
||||
.PP
|
||||
The
|
||||
.I groups
|
||||
argument is of the type evs_group_t which is defined by the structure:
|
||||
|
||||
.IP
|
||||
.RS
|
||||
.ne 18
|
||||
.nf
|
||||
.ta 4n 30n 33n
|
||||
typedef struct {
|
||||
char key[32];
|
||||
} evs_groups_t;
|
||||
.ta
|
||||
.fi
|
||||
.RE
|
||||
.IP
|
||||
.PP
|
||||
.PP
|
||||
The
|
||||
.I group_entries
|
||||
argument describes the number of entries in the
|
||||
.I group
|
||||
argument.
|
||||
.PP
|
||||
|
||||
The
|
||||
.I iovec
|
||||
argument describes the scatter/gather list which is used to transmit a message. This
|
||||
is a standard socket structure described by:
|
||||
.IP
|
||||
.RS
|
||||
.ne 18
|
||||
.nf
|
||||
.ta 4n 30n 33n
|
||||
struct iovec
|
||||
{
|
||||
void *iov_base; /* Pointer to data. */
|
||||
size_t iov_len; /* Length of data. */
|
||||
};
|
||||
.ta
|
||||
.fi
|
||||
.RE
|
||||
.IP
|
||||
.PP
|
||||
.PP
|
||||
The
|
||||
.I iovlen
|
||||
argument describes the number of entires in the
|
||||
.I iovec
|
||||
argument.
|
||||
|
||||
.SH RETURN VALUE
|
||||
This call returns the EVS_OK value if successful, otherwise an error is returned.
|
||||
.PP
|
||||
.SH ERRORS
|
||||
The errors are undocumented.
|
||||
.SH "SEE ALSO"
|
||||
.BR evs_overview (8),
|
||||
.BR evs_initialize (3),
|
||||
.BR evs_finalize (3),
|
||||
.BR evs_fd_get (3),
|
||||
.BR evs_dispatch (3),
|
||||
.BR evs_leave (3),
|
||||
.BR evs_join (3),
|
||||
.BR evs_mcast_joined (3)
|
||||
.PP
|
@ -0,0 +1,175 @@
|
||||
.\"/*
|
||||
.\" * Copyright (c) 2004 MontaVista Software, Inc.
|
||||
.\" *
|
||||
.\" * All rights reserved.
|
||||
.\" *
|
||||
.\" * Author: Steven Dake (sdake@mvista.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.
|
||||
.\" */
|
||||
.TH EVS_MCAST_JOINED 3 3004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
evs_join \- Multicasts to all groups joined to an handle
|
||||
.SH SYNOPSIS
|
||||
.B #include <sys/uio.h>
|
||||
.B #include <openais/evs.h>
|
||||
.sp
|
||||
.BI "int evs_mcast_joined(evs_handle_t *" handle ", evs_guraantee_t " guarantee ", evs_priority_t " priority ", struct iovec *" iovec ", int " iov_len ");
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.B evs_mcast_joined
|
||||
function is multicast a message to all the groups that have been joined with the
|
||||
.B evs_join(3)
|
||||
function for the argument
|
||||
.I handle.
|
||||
Messages that are sent to any of the groups joined to the parameter
|
||||
.I handle
|
||||
will be delivered to all processors in the system.
|
||||
.PP
|
||||
The argument
|
||||
.I guarantee
|
||||
requests a delivery guarantee for the message to be sent. The evs_guarantee_t type is
|
||||
defined by:
|
||||
.IP
|
||||
.RS
|
||||
.ne 18
|
||||
.nf
|
||||
.ta 4n 30n 33n
|
||||
typedef enum {
|
||||
EVS_TYPE_UNORDERED, /* not implemented */
|
||||
EVS_TYPE_FIFO, /* same as agreed */
|
||||
EVS_TYPE_AGREED, /* implemented */
|
||||
EVS_TYPE_SAFE /* not implemented */
|
||||
} evs_guarantee_t;
|
||||
.ta
|
||||
.fi
|
||||
.RE
|
||||
.IP
|
||||
.PP
|
||||
.PP
|
||||
The meanings of the evs_gaurantee_t typedef are:
|
||||
.TP
|
||||
.B EVS_GUARANTEE_UNORDERED
|
||||
Messages are guaranteed to be delivered, but with no particular order. This
|
||||
mode is unimplemented in the EVS library.
|
||||
.TP
|
||||
.B EVS_GUARANTEE_FIFO
|
||||
Messages are guaranteed to be delivered in first sent first delivery order
|
||||
from one one. In fact, this guarantee is actually the AGREED guarantee.
|
||||
.TP
|
||||
.B EVS_GUARANTEE_AGREED
|
||||
All processors must agree on the order of delivery. If a message is sent
|
||||
from two or more processors at about the same time, the delivery will occur
|
||||
in the same order to all processors.
|
||||
.TP
|
||||
.B EVS_GUARANTEE_SAFE
|
||||
All processors must agree on the order of delivery. Further all processors
|
||||
must have a copy of the message before any delivery takes place. This mode is
|
||||
unimplemented in the EVS library.
|
||||
.PP
|
||||
The argument
|
||||
.I priority
|
||||
describes the priority at which a message will be sent. Messages will be sent with
|
||||
higher priorities before messages with lower priorities. This requirement only applies
|
||||
to the local processor. If two processors have two different priority messages, the
|
||||
messages may be sent from either priority depending on the algorithm of the EVS library.
|
||||
|
||||
The evs_priority_t typedef is described by:
|
||||
.IP
|
||||
.RS
|
||||
.ne 18
|
||||
.nf
|
||||
.ta 4n 30n 33n
|
||||
typedef enum {
|
||||
EVS_PRIO_RECOVERY,
|
||||
EVS_PRIO_HIGH,
|
||||
EVS_PRIO_MED,
|
||||
EVS_PRIO_LOW
|
||||
} evs_priority_t;
|
||||
.ta
|
||||
.fi
|
||||
.RE
|
||||
.IP
|
||||
.PP
|
||||
.PP
|
||||
The meanings of the evs_priority_t typedef are:
|
||||
.TP
|
||||
.B EVS_PRIO_RECOVERY
|
||||
Messages are sent from this priority level first. This priority level is used
|
||||
for recovery of state after a partition or merge occurs.
|
||||
.TP
|
||||
.B EVS_PRIO_HIGH
|
||||
Messages are sent from this priority level second.
|
||||
.TP
|
||||
.B EVS_PRIO_MED
|
||||
Messages are sent from this priority level third.
|
||||
.I groups
|
||||
.TP
|
||||
.B EVS_PRIO_LOW
|
||||
Messages are sent from this priority level fourth.
|
||||
.PP
|
||||
The
|
||||
.I iovec
|
||||
argument describes the scatter/gather list which is used to transmit a message. This
|
||||
is a standard socket structure described by:
|
||||
.IP
|
||||
.RS
|
||||
.ne 18
|
||||
.nf
|
||||
.ta 4n 30n 33n
|
||||
struct iovec
|
||||
{
|
||||
void *iov_base; /* Pointer to data. */
|
||||
size_t iov_len; /* Length of data. */
|
||||
};
|
||||
.ta
|
||||
.fi
|
||||
.RE
|
||||
.IP
|
||||
.PP
|
||||
.PP
|
||||
The
|
||||
.I iovlen
|
||||
argument describes the number of entires in the
|
||||
.I iovec
|
||||
argument.
|
||||
|
||||
.SH RETURN VALUE
|
||||
This call returns the EVS_OK value if successful, otherwise an error is returned.
|
||||
.PP
|
||||
.SH ERRORS
|
||||
The errors are undocumented.
|
||||
.SH "SEE ALSO"
|
||||
.BR evs_overview (8),
|
||||
.BR evs_initialize (3),
|
||||
.BR evs_finalize (3),
|
||||
.BR evs_fd_get (3),
|
||||
.BR evs_dispatch (3),
|
||||
.BR evs_leave (3),
|
||||
.BR evs_join (3),
|
||||
.BR evs_mcast_groups (3)
|
||||
.PP
|
@ -0,0 +1,180 @@
|
||||
.\"/*
|
||||
.\" * Copyright (c) 2004 MontaVista Software, Inc.
|
||||
.\" *
|
||||
.\" * All rights reserved.
|
||||
.\" *
|
||||
.\" * Author: Steven Dake (sdake@mvista.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.
|
||||
.\" */
|
||||
.TH EVS_OVERVIEW 8 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.SH OVERVIEW
|
||||
The EVS library is delivered with the openais project. This library is used
|
||||
to create distributed applications that operate properly during partitions, merges,
|
||||
and faults.
|
||||
.PP
|
||||
The library provides a mechanism to:
|
||||
* handle abstraction for multiple instances of an EVS library in one application
|
||||
* Deliver messages
|
||||
* Deliver configuration changes
|
||||
* join one or more groups
|
||||
* leave one or more groups
|
||||
* send messages to one or more groups
|
||||
* send messages to currently joined groups
|
||||
.PP
|
||||
The EVS library implements a messaging model known as Extended Virtual Synchrony.
|
||||
This model allows one sender to transmit to many receivers using standard UDP/IP.
|
||||
UDP/IP is unreliable and unordered, so the EVS library applies ordering and reliability
|
||||
to messages. Hardware multicast is used to avoid duplicated packets with two or more
|
||||
receivers. Erroneous messages are corrected automatically by the library.
|
||||
.PP
|
||||
Certain gaurantees are provided by the EVS library. These guarantees are related to
|
||||
message delivery and configuration change delivery.
|
||||
.SH DEFINITIONS
|
||||
.TP
|
||||
.B multicast
|
||||
A multicast occurs when a network interface card sends a UDP packet to multiple
|
||||
receivers simulatenously.
|
||||
.TP
|
||||
.B processor
|
||||
A processor is the entity that executes the extended virtual synchrony algorithms.
|
||||
.TP
|
||||
.B configuration
|
||||
A configuration is the current description of the processors executing the extended
|
||||
virtual syncrhony algorithm.
|
||||
.TP
|
||||
.B configuration change
|
||||
A configuration change occurs when a new configuration is delivered.
|
||||
.TP
|
||||
.B partition
|
||||
A partition occurs when a configuration splits into two or more configurations, or
|
||||
a processor fails or is stopped and leaves the configuration.
|
||||
.TP
|
||||
.B merge
|
||||
A merge occurs when two or more configurations join into a larger new configuration. When
|
||||
a new processor starts up, it is treated as a configuration with only one processor
|
||||
and a merge occurs.
|
||||
.TP
|
||||
.B fifo ordering
|
||||
A message is FIFO ordered when one sender and one receiver agree on the order of the
|
||||
messages sent.
|
||||
.TP
|
||||
.B agreed ordering
|
||||
A message is AGREED ordered when all processors agree on the order of the messages sent.
|
||||
.TP
|
||||
.B safe ordering
|
||||
A message is SAFE ordered when all processors agree on the order of messages sent and
|
||||
those messages are not delivered until all processors have a copy of the message to
|
||||
deliver.
|
||||
.TP
|
||||
.B virtual syncrhony
|
||||
Virtual syncrhony is obtained when all processors agree on the order of messages
|
||||
sent and configuration changes sent for each new configuration.
|
||||
.SH USING VIRTUAL SYNCHRONY
|
||||
The virtual synchrony messaging model has many benefits for developing distributed
|
||||
applications. Applications designed using replication have the most benefits. Applications
|
||||
that must be able to partition and merge also benefit from the virtual synchrony messaging
|
||||
model.
|
||||
.PP
|
||||
All applications receive a copy of transmitted messages even if there are errors on the
|
||||
transmission media. This allows optimiziations when every processor must receive a copy
|
||||
of the message for replication.
|
||||
.PP
|
||||
All messages are ordered according to agreed ordering. This mechanism allows the avoidance
|
||||
of race conditions. Consider a lock service implemented over several processors. Two
|
||||
requests occur at the same time on two seperate processors. The requests are ordered for
|
||||
every processor in the same order and delivered to the processors. Then all processors
|
||||
will get request A before request B and can reject request B. Any type of creation or
|
||||
deletion of a shared data structure can benefit from this mechanism.
|
||||
.PP
|
||||
Self delivery ensures that messages that are sent by a processor are also delivered back
|
||||
to that processor. This allows the processor sending the message to execute logic when
|
||||
the message is self delivered according to agreed ordering and the virtual synchrony rules.
|
||||
It also permits all logic to be placed in one message handler instead of two seperate places.
|
||||
.PP
|
||||
Virtual Synchrony allows the current configuration to be used to make decisions in partitions
|
||||
and merges. Since the configuration is sent in the stream of messages to the application,
|
||||
the application can alter its behavior based upon the configuration changes.
|
||||
.SH ARCHITECTURE AND ALGORITHM
|
||||
The EVS library is a thin IPC interface to the openais executive. The openais executive
|
||||
provides services for the SA Forum AIS libraries as well as the EVS library.
|
||||
.PP
|
||||
The openais executive uses a ring protocol and membership protocol to send messages
|
||||
according to the semantics required by extended virtual synchrony. The ring protocol
|
||||
creates a virtual ring of processors. A token is rotated around the ring of processors.
|
||||
When the token is possessed by a processor, that processor may multicast messages to
|
||||
other processors in the system.
|
||||
.PP
|
||||
The token is called the ORF token (for ordering, reliability, flow control). The ORF
|
||||
token orders all messages by increasing a sequence number every time a message is
|
||||
multicasted. In this way, an ordering is placed on all messages that all processors
|
||||
agree to. The token also contains a retransmission list. If a token is received by
|
||||
a processor that has not yet received a message it should have, a message sequence
|
||||
number is added to the retransmission list. A processor that has a copy of the message
|
||||
then retransmits the message. The ORF token provides configuration-wide flow control
|
||||
by tracking the number of messages sent and limiting the number of messages that may
|
||||
be sent by one processor on each posession of the token.
|
||||
.PP
|
||||
The membership protocol is responsible for ring formation and detecting when a processor
|
||||
within a ring has failed. If the token fails to make a rotation within a timeout period
|
||||
known as the token rotation timeout, the membership protocol will form a new ring.
|
||||
If a new processor starts, it will also form a new ring. Two or more configurations
|
||||
may be used to form a new ring, allowing many partitions to merge together into one
|
||||
new configuration.
|
||||
.SH PERFORMANCE
|
||||
The EVS library obtains 8.5MB/sec throughput on 100 mbit network links with
|
||||
many processors. Larger messages obtain better throughput results because the
|
||||
time to access Ethernet is about the same for a small message as it is for a
|
||||
larger message. Smaller messages obtain better messages per second, because the
|
||||
time to send a message is not exactly the same.
|
||||
.PP
|
||||
80% of CPU utilization occurs because of encryption and authentication. The openais
|
||||
can be built without encryption and authentication for those with no security
|
||||
requirements and low CPU utilization requirements. Even without encryption or
|
||||
authentication, under heavy load, processor utilization can reach 25% on 1.5 GHZ
|
||||
CPU processors.
|
||||
.PP
|
||||
The current openais executive supports 16 processors, however, support for more processors is possible by changing defines in the openais executive. This is untested, however.
|
||||
.SH SECURITY
|
||||
The EVS library encrypts all messages sent over the network using the SOBER-128
|
||||
stream cipher. The EVS library uses HMAC and SHA1 to authenticate all messages.
|
||||
The EVS library uses SOBER-128 as a pseudo random number generator. The EVS
|
||||
library feeds the PRNG using the /dev/random Linux device.
|
||||
.SH BUGS
|
||||
This software is not yet production, so there may still be some bugs. But it appears
|
||||
there are very few since nobody reports any unknown bugs at this point.
|
||||
.SH "SEE ALSO"
|
||||
.BR evs_initialize (3),
|
||||
.BR evs_finalize (3),
|
||||
.BR evs_fd_get (3),
|
||||
.BR evs_dispatch (3),
|
||||
.BR evs_join (3),
|
||||
.BR evs_leave (3),
|
||||
.BR evs_mcast_joined (3),
|
||||
.BR evs_mcast_groups (3)
|
||||
|
||||
.PP
|
@ -0,0 +1,29 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>EVS Documentation</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<P>
|
||||
Welcome to the OpenAIS EVS (extended virtual synchrony) documentation.
|
||||
<P>
|
||||
<A HREF="evs_overview.html">evs_overview(8)</A>
|
||||
<BR>
|
||||
<A HREF="evs_initialize.html">evs_initialize(3)</A>
|
||||
<BR>
|
||||
<A HREF="evs_finalize.html">evs_finalize(3)</A>
|
||||
<BR>
|
||||
<A HREF="evs_dispatch.html">evs_dispatch(3)</A>
|
||||
<BR>
|
||||
<A HREF="evs_fd_get.html">evs_fd_get(3)</A>
|
||||
<BR>
|
||||
<A HREF="evs_join.html">evs_join(3)</A>
|
||||
<BR>
|
||||
<A HREF="evs_leave.html">evs_leave(3)</A>
|
||||
<BR>
|
||||
<A HREF="evs_mcast_groups.html">evs_mcast_groups(3)</A>
|
||||
<BR>
|
||||
<A HREF="evs_mcast_joined.html">evs_mcast_joined(3)</A>
|
||||
<P>
|
||||
</body>
|
Loading…
Reference in New Issue
Block a user