rsplib-3.0.1/ 0000775 0001750 0001750 00000000000 12065103176 010012 5 0000000 0000000 rsplib-3.0.1/BUGS 0000664 0001750 0001750 00000000234 11777021057 010422 0000000 0000000 1. Information:
Please report bugs to the author:
Thomas Dreibholz, dreibh@iem.uni-due.de
http://tdrwww.iem.uni-due.de/dreibholz/rserpool/
2. Known Bugs:
rsplib-3.0.1/NEWS 0000664 0001750 0001750 00000000006 11777021057 010433 0000000 0000000 News:
rsplib-3.0.1/docs/ 0000775 0001750 0001750 00000000000 12065103200 010726 5 0000000 0000000 rsplib-3.0.1/docs/Makefile.am 0000664 0001750 0001750 00000002440 11777020724 012724 0000000 0000000 # $Id: Makefile.am 2608 2011-11-23 07:52:38Z dreibh $
# --------------------------------------------------------------------------
#
# //===// //===== //===// // // //===//
# // // // // // // // // //
# //===// //===== //===// // // //===<<
# // \\ // // // // // //
# // \\ =====// // //===== // //===// Version II
#
# ------------- An Efficient RSerPool Prototype Implementation -------------
#
# Copyright (C) 2002-2012 by Thomas Dreibholz
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
#
# Contact: dreibh@iem.uni-due.de
EXTRA_DIST = Handbook.lyx Handbook.pdf
rsplib-3.0.1/docs/Makefile.in 0000664 0001750 0001750 00000026520 12065103163 012730 0000000 0000000 # Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
# $Id: Makefile.am 2608 2011-11-23 07:52:38Z dreibh $
# --------------------------------------------------------------------------
#
# //===// //===== //===// // // //===//
# // // // // // // // // //
# //===// //===== //===// // // //===<<
# // \\ // // // // // //
# // \\ =====// // //===== // //===// Version II
#
# ------------- An Efficient RSerPool Prototype Implementation -------------
#
# Copyright (C) 2002-2012 by Thomas Dreibholz
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
#
# Contact: dreibh@iem.uni-due.de
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = docs
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
COLORGCC = @COLORGCC@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
GLIB_LIBS = @GLIB_LIBS@
GLIB_MKENUMS = @GLIB_MKENUMS@
GOBJECT_QUERY = @GOBJECT_QUERY@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MOC = @MOC@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
QT_CXXFLAGS = @QT_CXXFLAGS@
QT_LDADD = @QT_LDADD@
RANLIB = @RANLIB@
RSPLIB_AGE = @RSPLIB_AGE@
RSPLIB_CURRENT = @RSPLIB_CURRENT@
RSPLIB_RELEASE = @RSPLIB_RELEASE@
RSPLIB_REVISION = @RSPLIB_REVISION@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
bz2_LIBS = @bz2_LIBS@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
glib_LIBS = @glib_LIBS@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sctplib_LIBS = @sctplib_LIBS@
sharedstatedir = @sharedstatedir@
socketapi_LIBS = @socketapi_LIBS@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
thread_LIBS = @thread_LIBS@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
EXTRA_DIST = Handbook.lyx Handbook.pdf
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu docs/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am:
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am:
.MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
rsplib-3.0.1/docs/Handbook.lyx 0000664 0001750 0001750 00000100024 12065074753 013152 0000000 0000000 #LyX 2.0 created this file. For more info see http://www.lyx.org/
\lyxformat 413
\begin_document
\begin_header
\textclass article
\begin_preamble
\usepackage{a4wide}
\usepackage{url}
\urlstyle{rm}
\usepackage[pdftex=true,
pdftitle={Evaluation of a Simple Load Balancing Improvement for Reliable Server Pooling with Heterogeneous Server Pools},
pdfauthor={Thomas Dreibholz},
pdfsubject={Reliable Server Pooling},
pdfkeywords={Reliable Server Pooling, Redundancy, Load Balancing, Heterogeneous Pools, Performance Evaluation},
pdfpagemode=UseOutlines,
plainpages=false,
hypertexnames=true,
pdfpagelabels=true,
hyperindex=true,
colorlinks=true]{hyperref}
\usepackage{color}
\definecolor{darkred}{rgb}{0.5,0,0}
\definecolor{darkgreen}{rgb}{0,0.5,0}
\definecolor{darkblue}{rgb}{0,0,0.5}
\definecolor{black}{rgb}{0,0,0}
\hypersetup{colorlinks
,linkcolor=darkblue
,urlcolor=blue
,citecolor=darkblue,
,filecolor=darkgreen}
\end_preamble
\use_default_options false
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding auto
\fontencoding global
\font_roman times
\font_sans default
\font_typewriter default
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize 11
\spacing single
\use_hyperref false
\papersize a4paper
\use_geometry false
\use_amsmath 1
\use_esint 0
\use_mhchem 1
\use_mathdots 1
\cite_engine basic
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\use_refstyle 0
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\paragraph_indentation default
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header
\begin_body
\begin_layout Title
The
\noun on
rsplib
\noun default
RSerPool Implementation Handbook
\end_layout
\begin_layout Author
Thomas Dreibholz
\begin_inset Newline newline
\end_inset
University of Duisburg-Essen
\begin_inset Newline newline
\end_inset
Institute for Experimental Mathematics
\begin_inset Newline newline
\end_inset
Ellernstraße 29, 45326 Essen, Germany
\begin_inset Newline newline
\end_inset
\begin_inset ERT
status collapsed
\begin_layout Plain Layout
\backslash
href{mailto:dreibh@iem.uni-due.de}{dreibh@iem.uni-due.de}
\end_layout
\end_inset
\end_layout
\begin_layout Date
December 21, 2012
\end_layout
\begin_layout Standard
\begin_inset CommandInset toc
LatexCommand tableofcontents
\end_inset
\end_layout
\begin_layout Section
Introduction
\end_layout
\begin_layout Standard
This is the documentation for the
\noun on
rsplib
\noun default
RSerPool package.
It contains information how to install and make use of
\noun on
rsplib
\noun default
.
For a detailed introduction to RSerPool and its concepts itself, see
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "Dre2006"
\end_inset
.
For questions about RSerPool and
\noun on
rsplib
\noun default
, see our mailing lists at
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "RSerPoolPage"
\end_inset
.
\end_layout
\begin_layout Section
What is RSerPool?
\end_layout
\begin_layout Standard
\begin_inset Float figure
wide false
sideways false
status collapsed
\begin_layout Plain Layout
\align center
\begin_inset Graphics
filename EN-RSerPool-Scenario-with-PPE.pdf
width 80col%
keepAspectRatio
\end_inset
\end_layout
\begin_layout Plain Layout
\begin_inset Caption
\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "cap:The-RSerPool-Architecture"
\end_inset
The RSerPool Architecture
\end_layout
\end_inset
\end_layout
\end_inset
\begin_inset Float figure
wide false
sideways false
status collapsed
\begin_layout Plain Layout
\align center
\begin_inset Graphics
filename EN-RSerPool-ProtocolStack.pdf
width 80col%
keepAspectRatio
\end_inset
\end_layout
\begin_layout Plain Layout
\begin_inset Caption
\begin_layout Plain Layout
\begin_inset CommandInset label
LatexCommand label
name "cap:The-RSerPool-Protocol-Stack"
\end_inset
The RSerPool Protocol Stack
\end_layout
\end_inset
\end_layout
\end_inset
Figure
\begin_inset space ~
\end_inset
\begin_inset CommandInset ref
LatexCommand ref
reference "cap:The-RSerPool-Architecture"
\end_inset
provides an illustration of the Reliable Server Pooling
\begin_inset space ~
\end_inset
(RSerPool) architecture as defined by the Internet Draft
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "rfc-rserpool-overview"
\end_inset
; the protocol stack of RSerPool is shown in figure
\begin_inset space ~
\end_inset
\begin_inset CommandInset ref
LatexCommand ref
reference "cap:The-RSerPool-Protocol-Stack"
\end_inset
.
An RSerPool scenario consists of three component classes
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "rfc-rserpool-overview"
\end_inset
: servers of a pool are called
\emph on
pool elements
\emph default
\begin_inset space ~
\end_inset
(PE).
Each pool is identified by a unique
\emph on
pool handle
\emph default
\begin_inset space ~
\end_inset
(PH) in the handlespace, which is the set of all pools.
The handlespace is managed by
\emph on
pool registrars
\emph default
(PR).
PRs of an
\emph on
operation scope
\emph default
(the domain which is covered by the handlespace, e.g.
\begin_inset space ~
\end_inset
an organization or building) synchronize their view of the handlespace using
the Endpoint haNdlespace Redundancy Protocol (ENRP
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "rfc-rserpool-enrp,draft-dreibholz-rserpool-enrp-takeover,rfc-rserpool-common-param"
\end_inset
), transported via SCTP
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "RFC4960,Jun2005,JST2000b,SCI2002a"
\end_inset
.
\end_layout
\begin_layout Standard
Unlike already available solutions in the area of GRID and high-performance
computing, the fundamental property of RSerPool is to be
\begin_inset Quotes eld
\end_inset
lightweight
\begin_inset Quotes erd
\end_inset
, i.e.
\begin_inset space ~
\end_inset
it must also be usable low-performance devices like telecommunications equipment
or routers.
This property restricts the RSerPool architecture to the management of
pools and sessions only, but on the other hand makes a very efficient realizati
on possible
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "IJHIT2008,FGCN2007-HsMgt,Contel2005"
\end_inset
.
In particular, an operation scope has a limited range, e.g.
\begin_inset space ~
\end_inset
a company or organization; RSerPool does not intend to scale to the whole
Internet.
Nevertheless, it is assumed that PEs can be distributed globally, for their
service to survive localized disasters
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "KiVS2007"
\end_inset
.
\end_layout
\begin_layout Standard
PEs choose an arbitrary PR to register into a pool by using the Aggregate
Server Access Protocol (ASAP
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "rfc-rserpool-asap,draft-dreibholz-rserpool-asap-hropt,rfc-rserpool-common-param"
\end_inset
), again transported via SCTP.
Upon registration at a PR, the chosen PR becomes the Home-PR
\begin_inset space ~
\end_inset
(PR-H) of the newly registered PE.
A PR-H is responsible for monitoring its PEs' availability by using ASAP
Endpoint Keep-Alive messages (to be acknowledged by the PE within a given
timeout) and propagates the information about its PEs to the other PRs
of the operation scope via ENRP Update messages.
\end_layout
\begin_layout Standard
A client is called
\emph on
pool user
\emph default
\begin_inset space ~
\end_inset
(PU) in RSerPool terminology.
To access the service of a pool given by its PH, a PE has to be selected.
This selection procedure -- called
\emph on
handle resolution
\emph default
-- is performed by an arbitrary PR of the operation scope.
A PU can request a handle resolution from a PR using the ASAP protocol.
The PR selects PE identities by using a pool-specific server selection
rule, denoted as
\emph on
pool policy
\emph default
.
A set of adaptive and non-adaptive pool policies is defined in
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "rfc-rserpool-policies,draft-dreibholz-rserpool-delay"
\end_inset
; for a detailed discussion of these policies, see
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "Dre2006,LCN2005,Tencon2005,Euromicro2007,ICDS2008-LUD,ICDS2008-Failover,ADCOM2007,AINTEC2007,FGCN2007-LoadBalancing"
\end_inset
.
\end_layout
\begin_layout Section
Installation
\end_layout
\begin_layout Standard
In this section, the installation of the
\emph on
\noun on
rsplib
\emph default
\noun default
package is described.
\end_layout
\begin_layout Subsection
Installation of the SCTP Protocol
\end_layout
\begin_layout Standard
The first step is to decide which SCTP implementation should be used.
You have the choice between kernel SCTP and userland SCTP.
In most cases, you probably want kernel SCTP.
It is most efficient and the implementation should be sufficiently stable.
\end_layout
\begin_layout Subsubsection
Installation of Kernel SCTP for Linux
\end_layout
\begin_layout Standard
A SCTP kernel module is already provided by all major Linux distributions.
To load it into the kernel, call:
\end_layout
\begin_layout Standard
\family typewriter
sudo modprobe sctp
\end_layout
\begin_layout Standard
\noindent
In order to load it permanently, add a line
\begin_inset Quotes eld
\end_inset
sctp
\begin_inset Quotes erd
\end_inset
to /etc/modules.
After that, the module will be loaded automatically at boot time.
Also make sure that the SCTP include files are installed (in particular:
/usr/include/netinet/sctp.h).
If they are not installed, install the package libsctp-dev (or similar
name).
For Debian/Ubuntu Linux, you can use:
\end_layout
\begin_layout Standard
\family typewriter
sudo apt-get install libsctp-dev
\end_layout
\begin_layout Subsubsection
Installation of Userland SCTP
\noun on
sctplib/socketapi
\end_layout
\begin_layout Standard
If you decide to use our userland SCTP implementation
\noun on
sctplib
\noun default
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "sctplib"
\end_inset
, the following steps have to be performed.
The
\noun on
sctplib
\noun default
userland SCTP implementation consists of two packages:
\noun on
sctplib
\noun default
containing the actual SCTP implementation and
\noun on
socketapi
\noun default
containing a BSD sockets API for
\noun on
sctplib
\noun default
.
You need both.
Get the latest versions from
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "RSerPoolPage"
\end_inset
(http://tdrwww.iem.uni-due.de/dreibholz/rserpool
\begin_inset Flex URL
status collapsed
\begin_layout Plain Layout
http://tdrwww.iem.uni-due.de/dreibholz/rserpool
\end_layout
\end_inset
).
First, unpack, configure and install
\noun on
sctplib
\noun default
:
\end_layout
\begin_layout Standard
\family typewriter
tar xzf sctplib-.tar.gz
\end_layout
\begin_layout Standard
cd
\family typewriter
sctplib-
\end_layout
\begin_layout Standard
\family typewriter
./configure
\end_layout
\begin_layout Standard
\family typewriter
make
\end_layout
\begin_layout Standard
\family typewriter
sudo make install
\end_layout
\begin_layout Standard
\noindent
Useful options are
\begin_inset Quotes eld
\end_inset
\family typewriter
--enable-static --disable-shared --enable-maintainer-mode
\family default
\begin_inset Quotes erd
\end_inset
to generate a static library with debug symbols.
This is useful for debugging purposes (e.g.
\begin_inset space ~
\end_inset
memory leak detection using Valgrind
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "Valgrind"
\end_inset
).
To use SCTP over UDP (defined in
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "draft-tuexen-sctp-udp-encaps"
\end_inset
), use
\begin_inset Quotes eld
\end_inset
\family typewriter
--enable-sctp-over-udp
\family default
\begin_inset Quotes erd
\end_inset
.
The next step is to install the socketapi package:
\end_layout
\begin_layout Standard
\family typewriter
tar xzf socketapi-.tar.gz
\end_layout
\begin_layout Standard
\family typewriter
cd socketapi-
\end_layout
\begin_layout Standard
\family typewriter
./configure
\end_layout
\begin_layout Standard
\family typewriter
make
\end_layout
\begin_layout Standard
\family typewriter
sudo make install
\end_layout
\begin_layout Standard
\noindent
Again, you can use
\begin_inset Quotes eld
\end_inset
\family typewriter
--enable-static --disable-shared --enable-maintainer-mode
\family default
\begin_inset Quotes erd
\end_inset
to generate a static library with debug symbols.
If you want to use kernel SCTP and SCTP over UDP simultaneously, add
\begin_inset Quotes eld
\end_inset
\family typewriter
--enable-sctp-over-udp
\family default
\begin_inset Quotes erd
\end_inset
.
In this case, the socketapi will not abort if it finds a loaded kernel
SCTP module.
\end_layout
\begin_layout Subsection
Installation of the
\noun on
rsplib
\noun default
Package
\end_layout
\begin_layout Standard
After installing SCTP support, the
\noun on
rsplib
\noun default
package can be installed.
\end_layout
\begin_layout Subsubsection
\begin_inset CommandInset label
LatexCommand label
name "sub:Preparation-Work"
\end_inset
Preparation Work
\end_layout
\begin_layout Standard
In order to prepare your system for the installation of the
\noun on
rsplib
\noun default
package, it is recommended to do the following tasks:
\end_layout
\begin_layout Itemize
Add the environment variable QTDIR, setting the path to the installation
of Qt.
Qt is a GUI library and required for the Fractal PU example.
Without Qt and properly set QTDIR, the client's compilation can be skipped.
The ./configure script expects the environment variable QTDIR set to the
Qt directory.
You may need to set it appropriately, e.g.
\begin_inset space ~
\end_inset
"export QTDIR=/usr/share/qt4" for Ubuntu Linux.
This setting depends on your distribution; use "locate qwidget.h" to find
out the directory.
\end_layout
\begin_layout Itemize
The Component Status Protocol
\begin_inset space ~
\end_inset
(CSP) can be used to send status messages of PRs, PEs and PUs to a central
monitoring program (cspmonitor, to be explained later).
This is a helpful feature to keep an overview of large, distributed test
setups.
You can set a default address and report interval for CSP by defining two
environment variables:
\begin_inset Newline newline
\end_inset
\family typewriter
CSP_SERVER=:
\begin_inset Newline newline
\end_inset
CSP_INTERVAL=
\family default
\begin_inset Newline newline
\end_inset
Useful settings are CSP_SERVER=127.0.0.1:2960 and CSP_INTERVAL=333.
\end_layout
\begin_layout Itemize
For debugging, it is useful to turn on the generation of core dumps.
Under the bash shell, this can be done by
\begin_inset Quotes eld
\end_inset
ulimit -c unlimited
\begin_inset Quotes erd
\end_inset
.
\end_layout
\begin_layout Standard
To make all settings above permanent, you can append them to your shell
configuration (usually ~/.bashrc).
Example (your settings may be different!):
\end_layout
\begin_layout Standard
\family typewriter
...
\end_layout
\begin_layout Standard
\family typewriter
export QTDIR=/usr/share/qt4
\end_layout
\begin_layout Standard
\family typewriter
export CSP_SERVER=127.0.0.1:2960
\end_layout
\begin_layout Standard
\family typewriter
export CSP_INTERVAL=333
\end_layout
\begin_layout Standard
\family typewriter
ulimit -c unlimited
\end_layout
\begin_layout Standard
In order to use RSerPool, your host needs at least one multicast-capable
network interface with at least a private IP address (i.e.
\begin_inset space ~
\end_inset
192.168.x.y; 10.a.b.c; 172.16.n.m - 172.31.i.j).
If your host is already connected to a network and has an IP address, everythin
g should be fine.
For testing with a non-connected host, you can just set up a dummy interface:
\end_layout
\begin_layout Standard
\family typewriter
sudo ifconfig dummy0 10.255.255.1 netmask 255.255.255.0 broadcast 10.255.255.255
up multicast
\end_layout
\begin_layout Standard
In order to permanently set up a dummy interface, you can add the following
lines to /etc/network/interfaces (Debian/Ubuntu Linux; may be different
for other distributions!):
\end_layout
\begin_layout Standard
\family typewriter
auto dummy0
\end_layout
\begin_layout Standard
\family typewriter
iface dummy0
\end_layout
\begin_layout Standard
\family typewriter
inet static address 172.31.249.1 netmask 255.255.255.252
\begin_inset space ~
\end_inset
\begin_inset space ~
\end_inset
\begin_inset space ~
\end_inset
\family default
(You may need to change this!)
\end_layout
\begin_layout Standard
\family typewriter
post-up ip link set dummy0 up multicast on
\end_layout
\begin_layout Standard
\family typewriter
pre-down ip link set dummy0 up multicast off
\end_layout
\begin_layout Standard
After appending these lines, they will be loaded automatically each time
a new bash shell is started.
Your system should now be ready to install the
\noun on
rsplib
\noun default
package.
\end_layout
\begin_layout Subsubsection
\begin_inset CommandInset label
LatexCommand label
name "sub:Configuration-and-Installation"
\end_inset
Configuration and Installation
\end_layout
\begin_layout Standard
In order to install
\noun on
rsplib
\noun default
, get the latest version from
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "RSerPoolPage"
\end_inset
(
\begin_inset Flex URL
status collapsed
\begin_layout Plain Layout
http://tdrwww.iem.uni-due.de/dreibholz/rserpool
\end_layout
\end_inset
), unpack, configure and compile it:
\end_layout
\begin_layout Standard
\family typewriter
tar xzf rsplib-.tar.gz
\end_layout
\begin_layout Standard
cd
\family typewriter
rsplib-
\end_layout
\begin_layout Standard
\family typewriter
./configure
\end_layout
\begin_layout Standard
\family typewriter
make
\end_layout
\begin_layout Standard
\family typewriter
sudo make install
\begin_inset space ~
\end_inset
\begin_inset space ~
\end_inset
\begin_inset space ~
\end_inset
\family default
(This step is optional and not needed to run the examples!)
\end_layout
\begin_layout Standard
\noindent
You may use the following options:
\end_layout
\begin_layout Description
\family typewriter
--enable-kernel-sctp
\family default
Enables usage of kernel SCTP (
\series bold
default
\series default
).
\end_layout
\begin_layout Description
\family typewriter
--disable-kernel-sctp
\family default
Use userland SCTP (i.e.
\begin_inset space ~
\end_inset
\noun on
sctplib
\noun default
/
\noun on
socketapi
\noun default
) instead of kernel SCTP.
\end_layout
\begin_layout Description
\family typewriter
--enable-qt
\family default
Enables Qt usage; this is necessary for the Fractal Generator client.
Without Qt, the client's compilation will be skipped.
The ./configure script expects the environment variable QTDIR set to the
Qt directory.
You may need to set it appropriately, e.g.
\begin_inset space ~
\end_inset
"export QTDIR=/usr/share/qt4" for Ubuntu Linux.
This setting depends on your distribution; use "locate qwidget.h" to find
out the directory.
It is recommended to add the setting of QTDIR to your shell configuration
(usually ~/.bashrc).
(
\series bold
default
\series default
)
\end_layout
\begin_layout Description
\family typewriter
--disable-qt
\family default
Disables Qt usage; the Fractal Generator client will
\series bold
not
\series default
be available.
\end_layout
\begin_layout Description
\family typewriter
--enable-shared
\family default
Create a shared library.
\end_layout
\begin_layout Description
\family typewriter
--disable-shared
\family default
Disable the creation of a shared library (recommended for debugging).
\end_layout
\begin_layout Description
\family typewriter
--enable-static
\family default
Create a static library (recommended for debugging).
\end_layout
\begin_layout Description
\family typewriter
--disable-static
\family default
Disable the creation of a static library.
\end_layout
\begin_layout Description
\family typewriter
--enable-maintainer-mode
\family default
Enable the creation of debug symbols (-g) and turn off compiler optimization.
Necessary for debugging, but makes programs much larger and slower.
(
\series bold
default
\series default
)
\end_layout
\begin_layout Description
\family typewriter
--disable-maintainer-mode
\family default
Disables maintainer mode.
The code will be optimized and without debugging symbols.
Node: Please turn on the maintainer mode if you discover any problems and
report bugs to us!
\end_layout
\begin_layout Description
\family typewriter
--with-max-loglevel
\family default
Allows for reduction of the maximum logging verbosity.
Setting a lower value here makes the programs smaller, at cost of reduces
logging capabilities (
\series bold
default: 9
\series default
).
\end_layout
\begin_layout Description
\family typewriter
--enable-registrar-statistics
\family default
Adds registrar option to write statistics file.
\end_layout
\begin_layout Description
\family typewriter
--disable-registrar-statistics
\family default
Do not compile in the statistics option.
In this case, the dependency on
\noun on
libbz2
\noun default
is removed.
\end_layout
\begin_layout Description
\family typewriter
--enable-hsmgtverify
\family default
Enable Handlespace Management verification.
This is useful for debugging only; it makes the very PR slow!
\end_layout
\begin_layout Description
\family typewriter
--disable-hsmgtverify
\family default
Turns off Handlespace Management verification.
(
\series bold
default
\series default
)
\end_layout
\begin_layout Description
\family typewriter
--enable-csp
\family default
Enable the Component Status Protocol support (strongly recommended!) (
\series bold
default
\series default
)
\end_layout
\begin_layout Description
\family typewriter
--disable-csp
\family default
Turns the Component Status Protocol support off.
\end_layout
\begin_layout Standard
For learning how to work with
\noun on
rsplib
\noun default
, the following options are highly recommended:
\end_layout
\begin_layout Standard
\family typewriter
--enable-kernel-sctp --disable-shared --enable-static --enable-qt --enable-csp
--enable-maintainer-mode
\end_layout
\begin_layout Standard
\noindent
The
\noun on
rsplib
\noun default
package also provides filter and coloring rules for
\noun on
Wireshark
\noun default
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "WiresharkUsersGuide"
\end_inset
.
You can find them in the rsplib/wireshark/ subdirectory.
Just copy the files
\begin_inset Quotes eld
\end_inset
dfilters
\begin_inset Quotes erd
\end_inset
and
\begin_inset Quotes eld
\end_inset
colorfilters
\begin_inset Quotes erd
\end_inset
to your
\noun on
Wireshark
\noun default
settings directory: ~/.wireshark (Ubuntu/Debian) or /root/.wireshark (you
need root permission to do so, i.e.
\begin_inset space ~
\end_inset
use
\begin_inset Quotes eld
\end_inset
sudo
\begin_inset Quotes erd
\end_inset
!).
Optionally, you can also copy the file
\begin_inset Quotes eld
\end_inset
preferences
\begin_inset Quotes erd
\end_inset
(if you do not have your own preferences configured yet, otherwise this
would overwrite them!).
You do
\series bold
not
\series default
need to install the provided dissectors, they have already contributed
to the
\noun on
Wireshark
\noun default
developers and are included already!
\end_layout
\begin_layout Subsection
\begin_inset CommandInset label
LatexCommand label
name "sub:Testing-the-Installation"
\end_inset
Testing the Installation
\end_layout
\begin_layout Standard
To perform a test of the installation, start the following programs in the
rsplib/ subdirectory of the
\noun on
rsplib
\noun default
package:
\end_layout
\begin_layout Enumerate
Start the CSP monitor, it will print out useful information about the components
started:
\family typewriter
\begin_inset Newline newline
\end_inset
./cspmonitor
\end_layout
\begin_layout Enumerate
First, start a registrar:
\family typewriter
\begin_inset Newline newline
\end_inset
./rspregistrar
\end_layout
\begin_layout Enumerate
Start a PE for the Fractal Generator service:
\family typewriter
\begin_inset Newline newline
\end_inset
./rspserver -fractal
\begin_inset Newline newline
\end_inset
\family default
The PE should find the PR and show its PE
\begin_inset space ~
\end_inset
ID upon startup.
When it shows the ID, it has successfully registered.
If something does not work, use the parameter -loglevel=5 to increase the
verbosity of the log output.
Also refer to subsection
\begin_inset space ~
\end_inset
\begin_inset CommandInset ref
LatexCommand ref
reference "sub:Preparation-Work"
\end_inset
to check your system configuration.
\begin_inset Newline newline
\end_inset
Have a look at the CSP monitor output.
It should show the PR and PE.
\end_layout
\begin_layout Enumerate
Start a PU for the Fractal Generator service:
\family typewriter
\begin_inset Newline newline
\end_inset
./fractalpooluser
\family default
\begin_inset Newline newline
\end_inset
You should now see the calculation progress in the PU's window.
Also have a look at the CSP monitor output; it should show the PU.
\end_layout
\begin_layout Enumerate
Start more PEs, PUs and PRs.
You can turn on the
\begin_inset Quotes eld
\end_inset
unreliable mode
\begin_inset Quotes erd
\end_inset
of the PE using the parameter -fgpfailureafter=20.
When all PEs are in unreliable mode, you should see the failovers.
You can also abort and restart the PRs.
Also have a look at the CSP monitor output.
\end_layout
\begin_layout Enumerate
Start
\noun on
Wireshark
\noun default
, sniff on the
\begin_inset Quotes eld
\end_inset
lo
\begin_inset Quotes erd
\end_inset
(loopback, only local traffic) or the
\begin_inset Quotes erd
\end_inset
any
\begin_inset Quotes erd
\end_inset
interface.
If you have set up the filter and coloring rules (see subsection
\begin_inset space ~
\end_inset
\begin_inset CommandInset ref
LatexCommand ref
reference "sub:Testing-the-Installation"
\end_inset
), you can select some useful filters and get the RSerPool traffic nicely
colorized.
\end_layout
\begin_layout Section
The Programs
\end_layout
\begin_layout Standard
All installable programs in the rsplib/ subdirectory also have a manual
page (suffix:
\begin_inset space ~
\end_inset
.8).
You can view the manual page in the rsplib/ directory using
\end_layout
\begin_layout Standard
\family typewriter
man ./.8
\end_layout
\begin_layout Standard
\noindent
After installation (make install, see subsection
\begin_inset space ~
\end_inset
\begin_inset CommandInset ref
LatexCommand ref
reference "sub:Configuration-and-Installation"
\end_inset
), the manual pages will also be available directly.
\end_layout
\begin_layout Standard
The programs included in rsplib/ subdirectory have the following purposes:
\end_layout
\begin_layout Description
rspregistrar The PR implementation.
\end_layout
\begin_layout Description
rspserver A PE which provides multiple services.
The actual service started is given by command-line parameter.
\end_layout
\begin_layout Description
rspterminal A simple PU for services like Echo, Discard, Daytime and CharGen.
\end_layout
\begin_layout Description
pingpongclient A simple PU for a request-response example service with cookie-ba
sed failover
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "LCN2002,IJAIT2009"
\end_inset
.
\end_layout
\begin_layout Description
calcappclient The PU for the CalcApp service used for performance measurements
(see
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "Dre2006,KiVS2007,Contel2009"
\end_inset
).
\end_layout
\begin_layout Description
fractalpooluser The PU for the FractalGenerator service.
\end_layout
\begin_layout Description
scriptingclient The PU for the scripting service (remote script execution
with input/output data transfer; see also
\begin_inset space ~
\end_inset
\begin_inset CommandInset citation
LatexCommand cite
key "OMNeT++Workshop2008"
\end_inset
).
\end_layout
\begin_layout Description
cspmonitor The CSP monitor program to view status information of running
components.
\end_layout
\begin_layout Description
hsdump A ENRP-based test utility to dump the handlespace of a PR.
\end_layout
\begin_layout Section
The
\noun on
rsplib
\noun default
API
\end_layout
\begin_layout Subsection
Initialization/Clean-Up
\end_layout
\begin_layout Subsubsection
rsp_initinfo()
\end_layout
\begin_layout Subsubsection
rsp_freeinfo()
\end_layout
\begin_layout Subsubsection
rsp_initarg()
\end_layout
\begin_layout Subsubsection
rsp_initialize()
\end_layout
\begin_layout Subsubsection
rsp_cleanup()
\end_layout
\begin_layout Subsection
Basic Mode API
\end_layout
\begin_layout Subsubsection
rsp_pe_registration()
\end_layout
\begin_layout Subsubsection
rsp_pe_deregistration()
\end_layout
\begin_layout Subsubsection
rsp_pe_failure()
\end_layout
\begin_layout Subsubsection
rsp_getaddrinfo()
\end_layout
\begin_layout Subsubsection
rsp_freeaddrinfo()
\end_layout
\begin_layout Subsection
Enhanced Mode API Socket Functions
\end_layout
\begin_layout Subsubsection
rsp_socket()
\end_layout
\begin_layout Subsubsection
rsp_update_session_parameters()
\end_layout
\begin_layout Subsubsection
rsp_bind()
\end_layout
\begin_layout Subsubsection
rsp_listen()
\end_layout
\begin_layout Subsubsection
rsp_getsockname()
\end_layout
\begin_layout Subsubsection
rsp_getpeername()
\end_layout
\begin_layout Subsubsection
rsp_close()
\end_layout
\begin_layout Subsubsection
rsp_poll()
\end_layout
\begin_layout Subsubsection
rsp_select()
\end_layout
\begin_layout Subsubsection
rsp_getsockopt()
\end_layout
\begin_layout Subsubsection
rsp_setsockopt()
\end_layout
\begin_layout Subsection
Enhanced Mode API Pool Element Functions
\end_layout
\begin_layout Subsubsection
rsp_register()
\end_layout
\begin_layout Subsubsection
rsp_deregister()
\end_layout
\begin_layout Subsubsection
rsp_accept()
\end_layout
\begin_layout Subsubsection
rsp_connect()
\end_layout
\begin_layout Subsection
Enhanced Mode API Pool User Functions
\end_layout
\begin_layout Subsubsection
rsp_has_cookie()
\end_layout
\begin_layout Subsubsection
rsp_forcefailover()
\end_layout
\begin_layout Subsubsection
rsp_sendmsg()
\end_layout
\begin_layout Subsubsection
rsp_send_cookie()
\end_layout
\begin_layout Subsubsection
rsp_recvmsg()
\end_layout
\begin_layout Subsubsection
rsp_recvfullmsg()
\end_layout
\begin_layout Subsubsection
rsp_read()
\end_layout
\begin_layout Subsubsection
rsp_recv()
\end_layout
\begin_layout Subsubsection
rsp_write()
\end_layout
\begin_layout Subsubsection
rsp_send()
\end_layout
\begin_layout Subsection
Enhanced Mode API Miscellaneous Functions
\end_layout
\begin_layout Subsubsection
rsp_mapsocket()
\end_layout
\begin_layout Subsubsection
rsp_unmapsocket()
\end_layout
\begin_layout Subsubsection
rsp_print_notification()
\end_layout
\begin_layout Subsubsection
rsp_getpolicybytype()
\end_layout
\begin_layout Subsubsection
rsp_getpolicybyname()
\end_layout
\begin_layout Subsubsection
rsp_csp_setstatus()
\end_layout
\begin_layout Standard
\begin_inset CommandInset bibtex
LatexCommand bibtex
bibfiles "Referenzarchiv"
options "bibtotoc,acm"
\end_inset
\end_layout
\end_body
\end_document
rsplib-3.0.1/docs/Handbook.pdf 0000664 0001750 0001750 00000737451 12065074763 013134 0000000 0000000 %PDF-1.4
%
1 0 obj
<< /S /GoTo /D (section.1) >>
endobj
4 0 obj
(Introduction)
endobj
5 0 obj
<< /S /GoTo /D (section.2) >>
endobj
8 0 obj
(What is RSerPool?)
endobj
9 0 obj
<< /S /GoTo /D (section.3) >>
endobj
12 0 obj
(Installation)
endobj
13 0 obj
<< /S /GoTo /D (subsection.3.1) >>
endobj
16 0 obj
(Installation of the SCTP Protocol)
endobj
17 0 obj
<< /S /GoTo /D (subsubsection.3.1.1) >>
endobj
20 0 obj
(Installation of Kernel SCTP for Linux)
endobj
21 0 obj
<< /S /GoTo /D (subsubsection.3.1.2) >>
endobj
24 0 obj
(Installation of Userland SCTP sctplib/socketapi)
endobj
25 0 obj
<< /S /GoTo /D (subsection.3.2) >>
endobj
28 0 obj
(Installation of the rsplib Package)
endobj
29 0 obj
<< /S /GoTo /D (subsubsection.3.2.1) >>
endobj
32 0 obj
(Preparation Work)
endobj
33 0 obj
<< /S /GoTo /D (subsubsection.3.2.2) >>
endobj
36 0 obj
(Configuration and Installation)
endobj
37 0 obj
<< /S /GoTo /D (subsection.3.3) >>
endobj
40 0 obj
(Testing the Installation)
endobj
41 0 obj
<< /S /GoTo /D (section.4) >>
endobj
44 0 obj
(The Programs)
endobj
45 0 obj
<< /S /GoTo /D (section.5) >>
endobj
48 0 obj
(The rsplib API)
endobj
49 0 obj
<< /S /GoTo /D (subsection.5.1) >>
endobj
52 0 obj
(Initialization/Clean-Up)
endobj
53 0 obj
<< /S /GoTo /D (subsubsection.5.1.1) >>
endobj
56 0 obj
(rsp\137initinfo\(\))
endobj
57 0 obj
<< /S /GoTo /D (subsubsection.5.1.2) >>
endobj
60 0 obj
(rsp\137freeinfo\(\))
endobj
61 0 obj
<< /S /GoTo /D (subsubsection.5.1.3) >>
endobj
64 0 obj
(rsp\137initarg\(\))
endobj
65 0 obj
<< /S /GoTo /D (subsubsection.5.1.4) >>
endobj
68 0 obj
(rsp\137initialize\(\))
endobj
69 0 obj
<< /S /GoTo /D (subsubsection.5.1.5) >>
endobj
72 0 obj
(rsp\137cleanup\(\))
endobj
73 0 obj
<< /S /GoTo /D (subsection.5.2) >>
endobj
76 0 obj
(Basic Mode API)
endobj
77 0 obj
<< /S /GoTo /D (subsubsection.5.2.1) >>
endobj
80 0 obj
(rsp\137pe\137registration\(\))
endobj
81 0 obj
<< /S /GoTo /D (subsubsection.5.2.2) >>
endobj
84 0 obj
(rsp\137pe\137deregistration\(\))
endobj
85 0 obj
<< /S /GoTo /D (subsubsection.5.2.3) >>
endobj
88 0 obj
(rsp\137pe\137failure\(\))
endobj
89 0 obj
<< /S /GoTo /D (subsubsection.5.2.4) >>
endobj
92 0 obj
(rsp\137getaddrinfo\(\))
endobj
93 0 obj
<< /S /GoTo /D (subsubsection.5.2.5) >>
endobj
96 0 obj
(rsp\137freeaddrinfo\(\))
endobj
97 0 obj
<< /S /GoTo /D (subsection.5.3) >>
endobj
100 0 obj
(Enhanced Mode API Socket Functions)
endobj
101 0 obj
<< /S /GoTo /D (subsubsection.5.3.1) >>
endobj
104 0 obj
(rsp\137socket\(\))
endobj
105 0 obj
<< /S /GoTo /D (subsubsection.5.3.2) >>
endobj
108 0 obj
(rsp\137update\137session\137parameters\(\))
endobj
109 0 obj
<< /S /GoTo /D (subsubsection.5.3.3) >>
endobj
112 0 obj
(rsp\137bind\(\))
endobj
113 0 obj
<< /S /GoTo /D (subsubsection.5.3.4) >>
endobj
116 0 obj
(rsp\137listen\(\))
endobj
117 0 obj
<< /S /GoTo /D (subsubsection.5.3.5) >>
endobj
120 0 obj
(rsp\137getsockname\(\))
endobj
121 0 obj
<< /S /GoTo /D (subsubsection.5.3.6) >>
endobj
124 0 obj
(rsp\137getpeername\(\))
endobj
125 0 obj
<< /S /GoTo /D (subsubsection.5.3.7) >>
endobj
128 0 obj
(rsp\137close\(\))
endobj
129 0 obj
<< /S /GoTo /D (subsubsection.5.3.8) >>
endobj
132 0 obj
(rsp\137poll\(\))
endobj
133 0 obj
<< /S /GoTo /D (subsubsection.5.3.9) >>
endobj
136 0 obj
(rsp\137select\(\))
endobj
137 0 obj
<< /S /GoTo /D (subsubsection.5.3.10) >>
endobj
140 0 obj
(rsp\137getsockopt\(\))
endobj
141 0 obj
<< /S /GoTo /D (subsubsection.5.3.11) >>
endobj
144 0 obj
(rsp\137setsockopt\(\))
endobj
145 0 obj
<< /S /GoTo /D (subsection.5.4) >>
endobj
148 0 obj
(Enhanced Mode API Pool Element Functions)
endobj
149 0 obj
<< /S /GoTo /D (subsubsection.5.4.1) >>
endobj
152 0 obj
(rsp\137register\(\))
endobj
153 0 obj
<< /S /GoTo /D (subsubsection.5.4.2) >>
endobj
156 0 obj
(rsp\137deregister\(\))
endobj
157 0 obj
<< /S /GoTo /D (subsubsection.5.4.3) >>
endobj
160 0 obj
(rsp\137accept\(\))
endobj
161 0 obj
<< /S /GoTo /D (subsubsection.5.4.4) >>
endobj
164 0 obj
(rsp\137connect\(\))
endobj
165 0 obj
<< /S /GoTo /D (subsection.5.5) >>
endobj
168 0 obj
(Enhanced Mode API Pool User Functions)
endobj
169 0 obj
<< /S /GoTo /D (subsubsection.5.5.1) >>
endobj
172 0 obj
(rsp\137has\137cookie\(\))
endobj
173 0 obj
<< /S /GoTo /D (subsubsection.5.5.2) >>
endobj
176 0 obj
(rsp\137forcefailover\(\))
endobj
177 0 obj
<< /S /GoTo /D (subsubsection.5.5.3) >>
endobj
180 0 obj
(rsp\137sendmsg\(\))
endobj
181 0 obj
<< /S /GoTo /D (subsubsection.5.5.4) >>
endobj
184 0 obj
(rsp\137send\137cookie\(\))
endobj
185 0 obj
<< /S /GoTo /D (subsubsection.5.5.5) >>
endobj
188 0 obj
(rsp\137recvmsg\(\))
endobj
189 0 obj
<< /S /GoTo /D (subsubsection.5.5.6) >>
endobj
192 0 obj
(rsp\137recvfullmsg\(\))
endobj
193 0 obj
<< /S /GoTo /D (subsubsection.5.5.7) >>
endobj
196 0 obj
(rsp\137read\(\))
endobj
197 0 obj
<< /S /GoTo /D (subsubsection.5.5.8) >>
endobj
200 0 obj
(rsp\137recv\(\))
endobj
201 0 obj
<< /S /GoTo /D (subsubsection.5.5.9) >>
endobj
204 0 obj
(rsp\137write\(\))
endobj
205 0 obj
<< /S /GoTo /D (subsubsection.5.5.10) >>
endobj
208 0 obj
(rsp\137send\(\))
endobj
209 0 obj
<< /S /GoTo /D (subsection.5.6) >>
endobj
212 0 obj
(Enhanced Mode API Miscellaneous Functions)
endobj
213 0 obj
<< /S /GoTo /D (subsubsection.5.6.1) >>
endobj
216 0 obj
(rsp\137mapsocket\(\))
endobj
217 0 obj
<< /S /GoTo /D (subsubsection.5.6.2) >>
endobj
220 0 obj
(rsp\137unmapsocket\(\))
endobj
221 0 obj
<< /S /GoTo /D (subsubsection.5.6.3) >>
endobj
224 0 obj
(rsp\137print\137notification\(\))
endobj
225 0 obj
<< /S /GoTo /D (subsubsection.5.6.4) >>
endobj
228 0 obj
(rsp\137getpolicybytype\(\))
endobj
229 0 obj
<< /S /GoTo /D (subsubsection.5.6.5) >>
endobj
232 0 obj
(rsp\137getpolicybyname\(\))
endobj
233 0 obj
<< /S /GoTo /D (subsubsection.5.6.6) >>
endobj
236 0 obj
(rsp\137csp\137setstatus\(\))
endobj
237 0 obj
<< /S /GoTo /D (subsubsection.5.6.6) >>
endobj
239 0 obj
(References)
endobj
240 0 obj
<< /S /GoTo /D [241 0 R /Fit ] >>
endobj
272 0 obj <<
/Length 1310
/Filter /FlateDecode
>>
stream
xZYoF~# I>n\Te.Z\Ʉ)RQ$݃IIiwofg>܂#drtcy #FBL=BId]ٓ;=ì%0Qk RI/c-kL'
18Z"gY⸘AlLBeXYj=L,Ѕ@rlf\ķwY]m\re84v0qE^75*u0A=wGE!ZQ(*>r#.E`;NZgDRc^:q(#WES7XfZUE|e{Gb UQ%@$jt@N)@3ދX܊:Jj0Dr1y0-z Qfi))Zo!`J=0@J^(@ :KYTMuFYSzx9^Xo;_וX_fdyBۃ"m@$ݎbR e1 4l`wdt268l*0fmLs~ رd
0oqnzdbCx5nEċdsH:a]"Oxӣ@ʨ92zFy5XZ^`G6OFKK>'>-d?4͡l}\K'u.0xƲ&aP$FM6:bҟQ0V31އsr|6]mb|}q|~hRb{NWn$=yŷma뱗߯1:Խd+$Nn%4diӚNdžrpQ@L }ou7Zc v B"Bn|J}L^5DYLe&w]ǧSr9=lMuu^,obt:ˮ%V kQf{"
WQgPP&Z
M@K^v~w.-6r x'S5&pć"~#fIXrl
>}(4hRBh꾽b} ?될Fb_X)~hE.l| uPwa::ad{3DCꇬ+7}(o(Z6Xp@z4ZFa)n
Q0oԳ(E^&R op@Ft&GҘh8
endstream
endobj
241 0 obj <<
/Type /Page
/Contents 272 0 R
/Resources 271 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 278 0 R
/Annots [ 242 0 R 243 0 R 244 0 R 245 0 R 246 0 R 247 0 R 248 0 R 249 0 R 250 0 R 251 0 R 252 0 R 253 0 R 254 0 R 255 0 R 256 0 R 257 0 R 258 0 R 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R 264 0 R 265 0 R 266 0 R 267 0 R 268 0 R 269 0 R ]
>> endobj
242 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
/Rect [243.867 587.05 359.133 602.991]
/Subtype/Link/A<>
>> endobj
243 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [80.004 494.999 157.563 504.639]
/A << /S /GoTo /D (section.1) >>
>> endobj
244 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [80.004 470.541 186.625 480.18]
/A << /S /GoTo /D (section.2) >>
>> endobj
245 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [80.004 446.082 151.704 455.722]
/A << /S /GoTo /D (section.3) >>
>> endobj
246 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [96.367 432.555 268.911 442.053]
/A << /S /GoTo /D (subsection.3.1) >>
>> endobj
247 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 419.006 324.438 428.504]
/A << /S /GoTo /D (subsubsection.3.1.1) >>
>> endobj
248 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 405.457 387.196 414.954]
/A << /S /GoTo /D (subsubsection.3.1.2) >>
>> endobj
249 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [96.367 389.655 274.867 401.405]
/A << /S /GoTo /D (subsection.3.2) >>
>> endobj
250 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 376.105 235.345 387.856]
/A << /S /GoTo /D (subsubsection.3.2.1) >>
>> endobj
251 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 362.556 289.267 374.307]
/A << /S /GoTo /D (subsubsection.3.2.2) >>
>> endobj
252 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [96.367 349.007 223.289 360.758]
/A << /S /GoTo /D (subsection.3.3) >>
>> endobj
253 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [80.004 324.696 165.123 336.419]
/A << /S /GoTo /D (section.4) >>
>> endobj
254 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [80.004 302.321 175.541 311.961]
/A << /S /GoTo /D (section.5) >>
>> endobj
255 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [96.367 286.541 224.653 298.292]
/A << /S /GoTo /D (subsection.5.1) >>
>> endobj
256 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 272.992 216.537 284.743]
/A << /S /GoTo /D (subsubsection.5.1.1) >>
>> endobj
257 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 259.443 218.937 271.193]
/A << /S /GoTo /D (subsubsection.5.1.2) >>
>> endobj
258 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 245.894 212.697 257.644]
/A << /S /GoTo /D (subsubsection.5.1.3) >>
>> endobj
259 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 232.345 222.591 244.095]
/A << /S /GoTo /D (subsubsection.5.1.4) >>
>> endobj
260 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 218.795 218.337 230.546]
/A << /S /GoTo /D (subsubsection.5.1.5) >>
>> endobj
261 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [96.367 207.499 196.17 216.997]
/A << /S /GoTo /D (subsection.5.2) >>
>> endobj
262 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 191.697 249.69 203.447]
/A << /S /GoTo /D (subsubsection.5.2.1) >>
>> endobj
263 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 178.148 259.988 189.898]
/A << /S /GoTo /D (subsubsection.5.2.2) >>
>> endobj
264 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 164.599 228.526 176.349]
/A << /S /GoTo /D (subsubsection.5.2.3) >>
>> endobj
265 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 151.049 234.701 162.8]
/A << /S /GoTo /D (subsubsection.5.2.4) >>
>> endobj
266 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 137.5 238.323 149.251]
/A << /S /GoTo /D (subsubsection.5.2.5) >>
>> endobj
267 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [96.367 126.204 293.02 135.701]
/A << /S /GoTo /D (subsection.5.3) >>
>> endobj
268 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 110.402 212.174 122.152]
/A << /S /GoTo /D (subsubsection.5.3.1) >>
>> endobj
269 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 96.853 303.776 108.603]
/A << /S /GoTo /D (subsubsection.5.3.2) >>
>> endobj
273 0 obj <<
/D [241 0 R /XYZ 80 770.89 null]
>> endobj
274 0 obj <<
/D [241 0 R /XYZ 81 733.028 null]
>> endobj
277 0 obj <<
/D [241 0 R /XYZ 81 509.503 null]
>> endobj
271 0 obj <<
/Font << /F62 275 0 R /F65 276 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
328 0 obj <<
/Length 1473
/Filter /FlateDecode
>>
stream
x[o6+(ʻahȰAaiQ(2mIO=)GR,iڥ- &%Qs
M4ys)|K|s Exr`B|$hr5\{ܧ>0AˋǛT#O?\mfr=ytơ/(:dfDxunasZ(".">~
jBe[ oG.Ӎ>#]L=Ҡ4t13DaFghŻLA랄^X7ӛAAtGэFMwFo$(hF@;UX%r>b{^]̅֙͝fr-Ui/*V-G#fs9[E>8%e0H1=mAoiFx\Þ*/<-
ۋfP1ę/o{'*MDfY3e~U`љMG!WtB6)s3=Qxu|y'śš'a1EmVS&ՕQ cgfp@sUֵyU\
ƨ(dͫU
3
3&-Wf:~5u~@Zb'B4=/.uο%t*ᅮq1Mn6^J-Cw
-WzJ RYfCsѵX:{U.;z0? O< HSt;3>`76Ks&`rө4rQ3SDfp NOwklrFOI,쌠 7r'FZ u'>^l!+ŷکZs* { hic!igҢhJ@Nqe˽D,v)KcjP,V6M*ʼ9(Q?22KL ۯOWmO_GVR&@]I줘K3UV~\BT8A QJƟypCJN| jjQ]A}b`
Rgk mxoMA磔L]ju؟e"^)PYh.]T[(9MZrLF+{\fqQHW3E&F^\:aCtkJ{,e/νcT(o_=UW3X?<:ob
endstream
endobj
327 0 obj <<
/Type /Page
/Contents 328 0 R
/Resources 326 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 278 0 R
/Annots [ 270 0 R 279 0 R 280 0 R 281 0 R 282 0 R 283 0 R 284 0 R 285 0 R 286 0 R 287 0 R 288 0 R 289 0 R 290 0 R 291 0 R 292 0 R 293 0 R 294 0 R 295 0 R 296 0 R 297 0 R 298 0 R 299 0 R 300 0 R 301 0 R 302 0 R 303 0 R 304 0 R 305 0 R 306 0 R 307 0 R 308 0 R 309 0 R 310 0 R 311 0 R 312 0 R 315 0 R 316 0 R 317 0 R 318 0 R ]
>> endobj
270 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 718.711 203.807 730.462]
/A << /S /GoTo /D (subsubsection.5.3.3) >>
>> endobj
279 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 705.162 208.05 716.912]
/A << /S /GoTo /D (subsubsection.5.3.4) >>
>> endobj
280 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 691.613 241.366 703.363]
/A << /S /GoTo /D (subsubsection.5.3.5) >>
>> endobj
281 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 678.064 240.144 689.814]
/A << /S /GoTo /D (subsubsection.5.3.6) >>
>> endobj
282 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 664.514 206.828 676.265]
/A << /S /GoTo /D (subsubsection.5.3.7) >>
>> endobj
283 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 650.965 201.385 662.716]
/A << /S /GoTo /D (subsubsection.5.3.8) >>
>> endobj
284 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 637.416 209.25 649.166]
/A << /S /GoTo /D (subsubsection.5.3.9) >>
>> endobj
285 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 623.867 231.57 635.617]
/A << /S /GoTo /D (subsubsection.5.3.10) >>
>> endobj
286 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 610.318 230.359 622.068]
/A << /S /GoTo /D (subsubsection.5.3.11) >>
>> endobj
287 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [96.367 599.021 322.529 608.519]
/A << /S /GoTo /D (subsection.5.4) >>
>> endobj
288 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 583.219 216.963 594.97]
/A << /S /GoTo /D (subsubsection.5.4.1) >>
>> endobj
289 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 569.67 227.261 581.42]
/A << /S /GoTo /D (subsubsection.5.4.2) >>
>> endobj
290 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 556.121 212.272 567.871]
/A << /S /GoTo /D (subsubsection.5.4.3) >>
>> endobj
291 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 542.572 218.337 554.322]
/A << /S /GoTo /D (subsubsection.5.4.4) >>
>> endobj
292 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [96.367 531.275 306.765 540.773]
/A << /S /GoTo /D (subsection.5.5) >>
>> endobj
293 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 515.473 233.49 527.224]
/A << /S /GoTo /D (subsubsection.5.5.1) >>
>> endobj
294 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 501.924 240.308 513.674]
/A << /S /GoTo /D (subsubsection.5.5.2) >>
>> endobj
295 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 488.375 222.592 500.125]
/A << /S /GoTo /D (subsubsection.5.5.3) >>
>> endobj
296 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 474.826 238.945 486.576]
/A << /S /GoTo /D (subsubsection.5.5.4) >>
>> endobj
297 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 461.276 221.37 473.027]
/A << /S /GoTo /D (subsubsection.5.5.5) >>
>> endobj
298 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 447.727 236.522 459.478]
/A << /S /GoTo /D (subsubsection.5.5.6) >>
>> endobj
299 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 434.178 203.185 445.928]
/A << /S /GoTo /D (subsubsection.5.5.7) >>
>> endobj
300 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 420.629 203.185 432.379]
/A << /S /GoTo /D (subsubsection.5.5.8) >>
>> endobj
301 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 407.08 206.828 418.83]
/A << /S /GoTo /D (subsubsection.5.5.9) >>
>> endobj
302 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 393.53 204.407 405.281]
/A << /S /GoTo /D (subsubsection.5.5.10) >>
>> endobj
303 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [96.367 382.234 326.456 391.732]
/A << /S /GoTo /D (subsection.5.6) >>
>> endobj
304 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 366.432 230.959 378.183]
/A << /S /GoTo /D (subsubsection.5.6.1) >>
>> endobj
305 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 352.883 241.868 364.633]
/A << /S /GoTo /D (subsubsection.5.6.2) >>
>> endobj
306 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 339.334 260.173 351.084]
/A << /S /GoTo /D (subsubsection.5.6.3) >>
>> endobj
307 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 325.784 254.544 337.535]
/A << /S /GoTo /D (subsubsection.5.6.4) >>
>> endobj
308 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 312.235 259.388 323.986]
/A << /S /GoTo /D (subsubsection.5.6.5) >>
>> endobj
309 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [121.458 298.686 241.377 310.437]
/A << /S /GoTo /D (subsubsection.5.6.6) >>
>> endobj
310 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [80.004 276.459 132.679 286.098]
/A << /S /GoTo /D (subsubsection.5.6.6) >>
>> endobj
311 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[0 1 0]
/Rect [490.292 203.086 497.74 212.474]
/A << /S /GoTo /D (cite.Dre2006) >>
>> endobj
312 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[0 1 0]
/Rect [356.753 189.536 364.2 198.925]
/A << /S /GoTo /D (cite.RSerPoolPage) >>
>> endobj
315 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [112.276 127.22 119.723 138.971]
/A << /S /GoTo /D (figure.1) >>
>> endobj
316 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[0 1 0]
/Rect [179.472 115.924 192.374 125.421]
/A << /S /GoTo /D (cite.rfc-rserpool-overview) >>
>> endobj
317 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [426.588 113.671 434.035 125.421]
/A << /S /GoTo /D (figure.2) >>
>> endobj
318 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[0 1 0]
/Rect [267.814 102.374 280.716 111.872]
/A << /S /GoTo /D (cite.rfc-rserpool-overview) >>
>> endobj
329 0 obj <<
/D [327 0 R /XYZ 80 770.89 null]
>> endobj
2 0 obj <<
/D [327 0 R /XYZ 81 260.273 null]
>> endobj
6 0 obj <<
/D [327 0 R /XYZ 81 170.989 null]
>> endobj
326 0 obj <<
/Font << /F62 275 0 R /F65 276 0 R /F71 330 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
338 0 obj <<
/Length 239
/Filter /FlateDecode
>>
stream
xڅMO0>vxv47i&(m)*RYa(Ro`D7k=TFc(8?<ʾ13\!Ss5U(Zz&Ae!\6m3SR3eʰ]~.۸uMO~B;ě0gɄl{6dq>?#٢8`P5繗mRU%F=/ky
endstream
endobj
337 0 obj <<
/Type /Page
/Contents 338 0 R
/Resources 336 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 278 0 R
>> endobj
313 0 obj <<
/Type /XObject
/Subtype /Form
/FormType 1
/PTEX.FileName (./0_home_dreibh_src_sctp-trunk_rsplib2_docs_EN-RSerPool-Scenario-with-PPE.pdf)
/PTEX.PageNumber 1
/PTEX.InfoDict 340 0 R
/BBox [0 0 421 256]
/Resources <<
/XObject <<
/Im1 341 0 R
>>/ProcSet [ /PDF ]
>>
/Length 38
/Filter /FlateDecode
>>
stream
x+2T0 BC]K]S3\.}\C|@. f
endstream
endobj
340 0 obj
<<
/Producer (pdfTeX-1.40.3)
/Creator (TeX)
/CreationDate (D:20090320100649+01'00')
/ModDate (D:20090320100649+01'00')
/Trapped /False
/PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.141592-1.40.3-2.2 \(Web2C 7.5.6\) kpathsea version 3.5.6)
>>
endobj
341 0 obj
<<
/Type /XObject
/Subtype /Form
/FormType 1
/PTEX.FileName (/tmp/tmp.cKaLA27345)
/PTEX.PageNumber 1
/PTEX.InfoDict 342 0 R
/BBox [ 0 0 595.275591 841.889764]
/Resources <<
/ExtGState <<
/a0 <<
/CA 1
/ca 1
>>
>>
/Font <<
/f-0-0 343 0 R
/f-1-0 344 0 R
>>
>>
/Length 345 0 R
/Filter /FlateDecode
>>
stream
xɎ.Iv&u6D-Т zA%A+Ԣ__}g?F13.`ՙqfg_uYޯ^zi^?oQ/oη:~oq<>=
G9#~?_qk,u9u}{3{o>^P{[ p~;:L`~3FЯxAO/[>oVQFz{\zogc/){9SF}uS?> _k
};~U^}VAze/bV }Zcﯰ?/mWE߁w2?le} Go.9ol~x XJY7l ]YG6
p3Ͼ.1Gv| 7I0ZO̅wU{oz}2?dceϗyoݑ7g[|Ŋ'cx\#ԲO|DYgJJ
r瀬-(_?غˇOg+(uQTV?qоVb2f`п?dz(~g_^>7jmaVt6_}دvޮhۀ-ö|j`|&ju!@ylۆ@_
-Y@:j[ɜiudݸ?>d=^O߄-ɶ^`[Eo= ߍN]}o ꍨP7m掍=o"þ!$f l߃ 7_?p lw1&]/ۿ^٧2zZij(d5ɏ?ެAu3}"ϥo@4Yd>Zk鱽UN+kO/?ZzZb,r?<}|jq-X|lZiaY3:hOh&6s[;z>N+r-'{uֻѦ
ވQIt^*5Ͷc2kQGϟ3]KsެtvMy|#{GrY ) #G< ЦveJƲu?,L+܄3_|3~"_Q@H=k;p/{eENLg[bAK6zMʉ9U{eeT畩/br:?M
r+~E:Km'h]"Ό s@2/Q&9Dk]IX 0F' ~!,d+=.0w.(}.L#LƇL8\pp]5;o:OpMg&4RЂi-uS?<בFF~WN宏\g;^w:\;߹V[#.`qaF 痷/iU!h-YNV\6>*rZhCL"y]v9!Jf)_YNQ`O˔<7YD*(!c̦SM2:n'a.g{WPDo%V^+
Ap7Sd{)625ҵT#ɉJȶz:`?~ 1oY_z_,aֺ&A")jԼ6dDm̽aMTPx5=*>%ۏ-\%-NH&U|)L~mFT^tYrY-68LWwQ#~;y/L aa^TD9A<7>n?g/n4>10?L'Ze$^:At(82{bJLq] Bw!H !Q<H<`mpo~59u[pR5:C,,ۍ-tpi3WbkH{ZW3oX"9 SGUy0,Z"E̖&.45)b)MHFgJs!cT!-n&&Kb}+ "Jxi4[K){)Weǔs'u=aN@* Jb*IcJU
Z_0)TACDmTƱ4icUWsC4EZtQUWA/) *S|T7&T|
*7Mڹ5z2U;۹eƃ⇛!.T1a Wvhv8ȶ#!1%r Ap\X0ن)iܱ}pb_pC`(Ø)^b0^T!3;69ά'@<3c8"ck
k@N%ǖ\.Ɏp ?gJ2\|oZz)sIndVQ gp vI5(N0B>^8mَUMp
c}*QE5#=
(4P