Commit f4ac8d7a authored by Martin Sustrik's avatar Martin Sustrik

OpenPGM v1 support removed

parent 73b765e4
......@@ -9,13 +9,11 @@ endif
SUBDIRS = src $(DIR_MAN) $(DIR_PERF) devices bindings examples
DIST_SUBDIRS = src man perf devices bindings examples
EXTRA_DIST = $(top_srcdir)/foreign/openpgm/@pgm1_basename@.tar.bz2 \
EXTRA_DIST = \
$(top_srcdir)/foreign/openpgm/@pgm2_basename@.tar.bz2 \
$(top_srcdir)/foreign/openpgm/lost_data_tsi.patch \
$(top_srcdir)/foreign/openpgm/create_custom_gsi_1.patch \
$(top_srcdir)/foreign/xmlParser/xmlParser.cpp \
$(top_srcdir)/foreign/xmlParser/xmlParser.hpp
dist-hook:
-rm -rf $(distdir)/foreign/openpgm/@pgm1_basename@
-rm -rf $(distdir)/foreign/openpgm/@pgm2_basename@
......@@ -407,33 +407,22 @@ if test "x$clzmq" = "xyes"; then
fi
# PGM extension
pgm1_ext="no"
pgm2_ext="no"
pgm1_basename="libpgm-1.2.14"
pgm2_basename="libpgm-2.0.17rc2"
AC_SUBST(pgm1_basename)
AC_SUBST(pgm2_basename)
pgm_basename=""
AC_ARG_WITH([pgm], [AS_HELP_STRING([--with-pgm],
[build libzmq with PGM v1 extension [default=no]])],
[with_pgm1_ext=yes], [with_pgm1_ext=no])
AC_ARG_WITH([pgm2], [AS_HELP_STRING([--with-pgm2],
[build libzmq with PGM v2 extension [default=no]])],
[build libzmq with PGM extension [default=no]])],
[with_pgm2_ext=yes], [with_pgm2_ext=no])
AC_ARG_WITH([pgm2-examples], [AS_HELP_STRING([--with-pgm2-examples],
[build PGM v2 examples [default=no]])],
AC_ARG_WITH([pgm-examples], [AS_HELP_STRING([--with-pgm-examples],
[build PGM examples [default=no]])],
[with_pgm2_examples=yes], [with_pgm2_examples=no])
if test "x$with_pgm1_ext" != "xno" -a "x$with_pgm2_ext" != "xno"; then
AC_MSG_ERROR([Can not configure --with-pgm and --with-pgm2.]);
fi
if test "x$with_pgm2_ext" = "xno" -a "x$with_pgm2_examples" = "xyes"; then
AC_MSG_ERROR([Can not configure --with-pgm2-examples without --with-pgm2.]);
fi
......@@ -442,98 +431,6 @@ if test "x$c" = "xno" -a "x$with_pgm2_examples" = "xyes"; then
AC_MSG_ERROR([Can not configure --with-pgm2-examples without --with-c.]);
fi
if test "x$with_pgm1_ext" != "xno"; then
pgm_basename=${pgm1_basename}
# Test if we have pkg-config
if test "x$have_pkg_config" != "xyes"; then
AC_MSG_ERROR([To run configure with --with-pgm option, pkg-config has to be installed.]);
fi
case "${host_os}" in
*linux*)
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Wno-variadic-macros -Wno-long-long "
;;
*)
AC_MSG_ERROR([PGM extesion is not supported on this platform $host.])
;;
esac
AC_CHECK_PROG(have_tar, tar, yes, no)
if test "x$have_tar" != "xyes"; then
AC_MSG_ERROR([Could not find tar.])
fi
AC_CHECK_PROG(have_patch, patch, yes, no)
if test "x$have_patch" != "xyes"; then
AC_MSG_ERROR([Could not find patch.])
fi
AC_CHECK_PROG(have_bunzip2, bunzip2, yes, no)
if test "x$have_bunzip2" != "xyes"; then
AC_MSG_ERROR([Could not find bunzip2.])
fi
AC_CHECK_PROG(have_perl, perl, yes, no)
if test "x$have_perl" != "xyes"; then
AC_MSG_ERROR([Could not find perl.])
fi
if test "x$pyzmq" != "xyes"; then
AC_CHECK_PROG(have_python, python, yes, no)
if test "x$have_python" != "xyes"; then
AC_MSG_ERROR([Could not find python.])
fi
fi
# Unpack libpgm1
AC_MSG_CHECKING([Unpacking ${pgm_basename}.tar.bz2])
if tar -xjf foreign/openpgm/${pgm_basename}.tar.bz2 -C foreign/openpgm/; then
AC_MSG_RESULT([yes])
else
AC_MSG_ERROR([Could not unpack foreign/openpgm/${pgm_basename}.tar.bz2 file.])
fi
AC_MSG_CHECKING([Patching ${pgm_basename}])
if patch --silent -p0 < foreign/openpgm/lost_data_tsi.patch; then
AC_MSG_RESULT([yes])
else
AC_MSG_ERROR([Could not apply foreign/openpgm/lost_data_tsi.patch file.])
fi
AC_MSG_CHECKING([Patching ${pgm_basename}])
if patch --silent -p0 < foreign/openpgm/create_custom_gsi_1.patch; then
AC_MSG_RESULT([yes])
else
AC_MSG_ERROR([Could not apply foreign/openpgm/create_custom_gsi_1.patch file.])
fi
# Generate galois_tables.c
AC_CONFIG_COMMANDS([galois_tables.c],
[perl foreign/openpgm/libpgm-1.2.14/openpgm/pgm/galois_generator.pl > \
foreign/openpgm/libpgm-1.2.14/openpgm/pgm/galois_tables.c])
# Generate version.c
AC_CONFIG_COMMANDS([version.c],
[python foreign/openpgm/libpgm-1.2.14/openpgm/pgm/version_generator.py > \
foreign/openpgm/libpgm-1.2.14/openpgm/pgm/version.c])
# Check for OpenPGM nedded libraries.
PKG_CHECK_MODULES([GLIB], [glib-2.0 gthread-2.0])
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} ${GLIB_CFLAGS} "
LIBZMQ_EXTRA_LDFLAFS="${LIBZMQ_EXTRA_LDFLAFS} ${GLIB_LIBS}"
AC_DEFINE(ZMQ_HAVE_OPENPGM, 1, [Have OpenPGM v1 or v2 extension.])
AC_DEFINE(ZMQ_HAVE_OPENPGM1, 1, [Have OpenPGM v1 extension.])
pgm1_ext="yes"
fi
if test "x$with_pgm2_ext" != "xno"; then
pgm_basename=${pgm2_basename}
......@@ -596,12 +493,12 @@ fi
AC_SUBST(pgm_basename)
# If not on QNX nor OSX nor PGM add -pedantic into LIBZMQ_EXTRA_CXXFLAGS.
if test "x$pedantic" = "xyes" -a "x$pgm1_ext" = "xno" -a "x$pgm2_ext" = "xno"; then
if test "x$pedantic" = "xyes" -a "x$pgm2_ext" = "xno"; then
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -pedantic"
fi
# If not on QNX nor --with-pgm/2add -Werror into LIBZMQ_EXTRA_CXXFLAGS.
if test "x$werror" = "xyes" -a "x$pgm1_ext" = "xno" -a "x$pgm2_ext" = "xno"; then
# If not on QNX nor --with-pgm2 add -Werror into LIBZMQ_EXTRA_CXXFLAGS.
if test "x$werror" = "xyes" -a "x$pgm2_ext" = "xno"; then
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Werror"
fi
......@@ -655,9 +552,8 @@ AM_CONDITIONAL(BUILD_RUBY, test "x$rbzmq" = "xyes")
AM_CONDITIONAL(BUILD_C, test "x$czmq" = "xyes")
AM_CONDITIONAL(BUILD_CL, test "x$clzmq" = "xyes")
AM_CONDITIONAL(BUILD_CPP, test "x$cppzmq" = "xyes")
AM_CONDITIONAL(BUILD_PGM1, test "x$pgm1_ext" = "xyes")
AM_CONDITIONAL(BUILD_PGM2, test "x$pgm2_ext" = "xyes")
AM_CONDITIONAL(BUILD_NO_PGM, test "x$pgm2_ext" = "xno" -a "x$pgm1_ext" = "xno")
AM_CONDITIONAL(BUILD_NO_PGM, test "x$pgm2_ext" = "xno")
AM_CONDITIONAL(BUILD_FORWARDER, test "x$forwarder" = "xyes")
AM_CONDITIONAL(BUILD_STREAMER, test "x$streamer" = "xyes")
AM_CONDITIONAL(BUILD_PERF, test "x$perf" = "xyes")
......@@ -712,17 +608,11 @@ AC_MSG_RESULT([ Ruby: $rbzmq])
if test "x$rbzmq" = "xyes"; then
AC_MSG_RESULT([ Ruby library install dir: $rubydir])
fi
AC_MSG_RESULT([ Network protocols:])
AC_MSG_RESULT([ TCP: yes])
if test "x$pgm1_ext" = "xyes"; then
AC_MSG_RESULT([ PGM: $pgm1_ext ($pgm_basename)])
fi
if test "x$pgm2_ext" = "xyes"; then
AC_MSG_RESULT([ PGM: $pgm2_ext ($pgm_basename)])
fi
if test "x$pgm1_ext" = "xno" -a "x$pgm2_ext" = "xno"; then
AC_MSG_RESULT([ PGM: no])
fi
AC_MSG_RESULT([ Transports:])
AC_MSG_RESULT([ tcp: yes])
AC_MSG_RESULT([ udp: $pgm2_ext])
AC_MSG_RESULT([ pgm: $pgm2_ext])
AC_MSG_RESULT([ inproc: yes])
AC_MSG_RESULT([ Devices:])
AC_MSG_RESULT([ Forwarder: $forwarder])
AC_MSG_RESULT([ Streamer: $streamer])
......
--- foreign/openpgm/libpgm-1.2.14/openpgm/pgm/transport.c 2009-08-27 04:54:04.000000000 +0200
+++ foreign/openpgm/libpgm-1.2.14/openpgm/pgm/transport.c 2009-09-22 14:36:07.713124619 +0200
@@ -2342,6 +2342,7 @@
if (waiting_rxw->ack_cumulative_losses != waiting_rxw->cumulative_losses)
{
transport->has_lost_data = TRUE;
+ memcpy (&(transport->lost_data_tsi), waiting_rxw->identifier, sizeof (pgm_tsi_t));
waiting_rxw->pgm_sock_err.lost_count = waiting_rxw->cumulative_losses - waiting_rxw->ack_cumulative_losses;
waiting_rxw->ack_cumulative_losses = waiting_rxw->cumulative_losses;
}
@@ -2705,6 +2706,7 @@
if (waiting_rxw->ack_cumulative_losses != waiting_rxw->cumulative_losses)
{
transport->has_lost_data = TRUE;
+ memcpy (&(transport->lost_data_tsi), waiting_rxw->identifier, sizeof (pgm_tsi_t));
waiting_rxw->pgm_sock_err.lost_count = waiting_rxw->cumulative_losses - waiting_rxw->ack_cumulative_losses;
waiting_rxw->ack_cumulative_losses = waiting_rxw->cumulative_losses;
}
@@ -3407,6 +3409,7 @@
!sender_rxw->waiting_link.data)
{
transport->has_lost_data = TRUE;
+ memcpy (&(transport->lost_data_tsi), sender_rxw->identifier, sizeof (pgm_tsi_t));
sender_rxw->pgm_sock_err.lost_count = sender_rxw->cumulative_losses - sender_rxw->ack_cumulative_losses;
sender_rxw->ack_cumulative_losses = sender_rxw->cumulative_losses;
@@ -3823,6 +3826,7 @@
!peer_rxw->waiting_link.data)
{
transport->has_lost_data = TRUE;
+ memcpy (&(transport->lost_data_tsi), peer_rxw->identifier, sizeof (pgm_tsi_t));
peer_rxw->pgm_sock_err.lost_count = peer_rxw->cumulative_losses - peer_rxw->ack_cumulative_losses;
peer_rxw->ack_cumulative_losses = peer_rxw->cumulative_losses;
@@ -3952,6 +3956,7 @@
!peer_rxw->waiting_link.data)
{
transport->has_lost_data = TRUE;
+ memcpy (&(transport->lost_data_tsi), peer_rxw->identifier, sizeof (pgm_tsi_t));
peer_rxw->pgm_sock_err.lost_count = peer_rxw->cumulative_losses - peer_rxw->ack_cumulative_losses;
peer_rxw->ack_cumulative_losses = peer_rxw->cumulative_losses;
@@ -4849,6 +4854,7 @@
!rxw->waiting_link.data)
{
transport->has_lost_data = TRUE;
+ memcpy (&(transport->lost_data_tsi), rxw->identifier, sizeof (pgm_tsi_t));
rxw->pgm_sock_err.lost_count = rxw->cumulative_losses - rxw->ack_cumulative_losses;
rxw->ack_cumulative_losses = rxw->cumulative_losses;
@@ -5166,6 +5172,7 @@
!rxw->waiting_link.data)
{
transport->has_lost_data = TRUE;
+ memcpy (&(transport->lost_data_tsi), rxw->identifier, sizeof (pgm_tsi_t));
rxw->pgm_sock_err.lost_count = rxw->cumulative_losses - rxw->ack_cumulative_losses;
rxw->ack_cumulative_losses = rxw->cumulative_losses;
@@ -5303,6 +5310,7 @@
!rxw->waiting_link.data)
{
transport->has_lost_data = TRUE;
+ memcpy (&(transport->lost_data_tsi), rxw->identifier, sizeof (pgm_tsi_t));
rxw->pgm_sock_err.lost_count = rxw->cumulative_losses - rxw->ack_cumulative_losses;
rxw->ack_cumulative_losses = rxw->cumulative_losses;
--- foreign/openpgm/libpgm-1.2.14/openpgm/pgm/include/pgm/transport.h 2009-08-27 04:53:23.000000000 +0200
+++ foreign/openpgm/libpgm-1.2.14/openpgm/pgm/include/pgm/transport.h 2009-09-21 15:49:36.000000000 +0200
@@ -205,6 +205,7 @@
gboolean is_bound;
gboolean is_open;
gboolean has_lost_data;
+ pgm_tsi_t lost_data_tsi;
gboolean will_close_on_failure;
gboolean can_send_data; /* and SPMs */
......@@ -15,23 +15,6 @@ include_HEADERS = ../bindings/c/zmq.h
endif
endif
if BUILD_PGM1
pgm_sources = ../foreign/openpgm/@pgm_basename@/openpgm/pgm/packet.c \
../foreign/openpgm/@pgm_basename@/openpgm/pgm/timer.c \
../foreign/openpgm/@pgm_basename@/openpgm/pgm/if.c \
../foreign/openpgm/@pgm_basename@/openpgm/pgm/gsi.c \
../foreign/openpgm/@pgm_basename@/openpgm/pgm/signal.c \
../foreign/openpgm/@pgm_basename@/openpgm/pgm/txwi.c \
../foreign/openpgm/@pgm_basename@/openpgm/pgm/rxwi.c \
../foreign/openpgm/@pgm_basename@/openpgm/pgm/transport.c \
../foreign/openpgm/@pgm_basename@/openpgm/pgm/rate_control.c \
../foreign/openpgm/@pgm_basename@/openpgm/pgm/async.c \
../foreign/openpgm/@pgm_basename@/openpgm/pgm/checksum.c \
../foreign/openpgm/@pgm_basename@/openpgm/pgm/reed_solomon.c \
../foreign/openpgm/@pgm_basename@/openpgm/pgm/version.c \
../foreign/openpgm/@pgm_basename@/openpgm/pgm/galois_tables.c
endif
if BUILD_PGM2
pgm_sources = ../foreign/openpgm/@pgm_basename@/openpgm/pgm/packet.c \
../foreign/openpgm/@pgm_basename@/openpgm/pgm/time.c \
......@@ -179,48 +162,6 @@ libzmq_la_SOURCES = app_thread.hpp \
libzmq_la_LDFLAGS = -version-info @LTVER@ @LIBZMQ_EXTRA_LDFLAFS@
if BUILD_PGM1
libzmq_la_CXXFLAGS = -I$(top_srcdir)/foreign/openpgm/@pgm_basename@/openpgm/pgm/include/ -Wall @LIBZMQ_EXTRA_CXXFLAGS@
libzmq_la_CFLAGS = -I$(top_srcdir)/foreign/openpgm/@pgm_basename@/openpgm/pgm/include/ @LIBZMQ_EXTRA_CXXFLAGS@ \
-pipe \
-Wall \
-Wextra \
-Wfloat-equal \
-Wshadow \
-Wunsafe-loop-optimizations \
-Wpointer-arith \
-Wbad-function-cast \
-Wcast-qual \
-Wcast-align \
-Wwrite-strings \
-Waggregate-return \
-Wstrict-prototypes \
-Wold-style-definition \
-Wmissing-prototypes \
-Wmissing-declarations \
-Wmissing-noreturn \
-Wmissing-format-attribute \
-Wredundant-decls \
-Wnested-externs \
-Winline \
-pedantic \
-std=gnu99 \
--param max-inline-insns-single=600 \
-D_REENTRANT \
-D_GNU_SOURCE \
-D__need_IOV_MAX \
-DCONFIG_HAVE_EPOLL \
-DCONFIG_HAVE_RTC \
-DCONFIG_HAVE_TSC \
-DCONFIG_HAVE_IFR_NETMASK \
-DCONFIG_HAVE_GETIFADDRS \
-DCONFIG_HAVE_GETHOSTBYNAME2 \
-DCONFIG_HAVE_GETPROTOBYNAME_R \
-DCONFIG_HAVE_SIGHANDLER_T \
-DCONFIG_BIND_INADDR_ANY \
-DCONFIG_GALOIS_MUL_LUT
endif
if BUILD_PGM2
libzmq_la_CXXFLAGS = -I$(top_srcdir)/foreign/openpgm/@pgm_basename@/openpgm/pgm/include/ -Wall @LIBZMQ_EXTRA_CXXFLAGS@
......
......@@ -165,13 +165,8 @@ void zmq::pgm_receiver_t::in_event ()
peer_info_t peer_info = {false, NULL};
it = peers.insert (std::make_pair (*tsi, peer_info)).first;
#ifdef ZMQ_HAVE_OPENPGM1
zmq_log (1, "New peer TSI: %s, %s(%i).\n", pgm_print_tsi (tsi),
__FILE__, __LINE__);
#elif ZMQ_HAVE_OPENPGM2
zmq_log (1, "New peer TSI: %s, %s(%i).\n", pgm_tsi_print (tsi),
__FILE__, __LINE__);
#endif
}
// There is not beginning of the message in current APDU and we
......@@ -197,13 +192,8 @@ void zmq::pgm_receiver_t::in_event ()
it->second.decoder = new zmq_decoder_t (0);
it->second.decoder->set_inout (inout);
#ifdef ZMQ_HAVE_OPENPGM1
zmq_log (1, "Peer %s joined into the stream, %s(%i)\n",
pgm_print_tsi (tsi), __FILE__, __LINE__);
#elif ZMQ_HAVE_OPENPGM2
zmq_log (1, "Peer %s joined into the stream, %s(%i)\n",
pgm_tsi_print (tsi), __FILE__, __LINE__);
#endif
}
if (nbytes > 0) {
......
......@@ -74,19 +74,13 @@ void zmq::pgm_sender_t::plug (i_inout *inout_)
// Alocate 2 fds for PGM socket.
int downlink_socket_fd = 0;
int uplink_socket_fd = 0;
#ifdef ZMQ_HAVE_OPENPGM2
int rdata_notify_fd = 0;
#endif
encoder.set_inout (inout_);
// Fill fds from PGM transport.
#ifdef ZMQ_HAVE_OPENPGM1
pgm_socket.get_sender_fds (&downlink_socket_fd, &uplink_socket_fd);
#elif ZMQ_HAVE_OPENPGM2
pgm_socket.get_sender_fds
(&downlink_socket_fd, &uplink_socket_fd, &rdata_notify_fd);
#endif
// Add downlink_socket_fd into poller.
handle = add_fd (downlink_socket_fd);
......@@ -95,16 +89,12 @@ void zmq::pgm_sender_t::plug (i_inout *inout_)
uplink_handle = add_fd (uplink_socket_fd);
// Add rdata_notify_fd into the poller.
#ifdef ZMQ_HAVE_OPENPGM2
rdata_notify_handle = add_fd (rdata_notify_fd);
#endif
// Set POLLIN. We wont never want to stop polling for uplink = we never
// want to stop porocess NAKs.
set_pollin (uplink_handle);
#ifdef ZMQ_HAVE_OPENPGM2
set_pollin (rdata_notify_handle);
#endif
// Set POLLOUT for downlink_socket_handle.
set_pollout (handle);
......@@ -116,9 +106,7 @@ void zmq::pgm_sender_t::unplug ()
{
rm_fd (handle);
rm_fd (uplink_handle);
#ifdef ZMQ_HAVE_OPENPGM2
rm_fd (rdata_notify_handle);
#endif
encoder.set_inout (NULL);
inout = NULL;
}
......@@ -195,12 +183,6 @@ void zmq::pgm_sender_t::out_event ()
zmq_log (1, "pgm rate limit reached, %s(%i)\n", __FILE__, __LINE__);
}
#ifdef ZMQ_HAVE_OPENPGM1
// After sending data slice is owned by tx window.
if (nbytes) {
out_buffer = NULL;
}
#endif
write_pos += nbytes;
}
......
......@@ -80,9 +80,7 @@ namespace zmq
// Poll handle associated with PGM socket.
handle_t handle;
handle_t uplink_handle;
#ifdef ZMQ_HAVE_OPENPGM2
handle_t rdata_notify_handle;
#endif
// Parent session.
i_inout *inout;
......
This diff is collapsed.
......@@ -114,35 +114,19 @@ namespace zmq
pgm_msgv_t *pgm_msgv;
// How many bytes were read from pgm socket.
#ifdef ZMQ_HAVE_OPENPGM1
ssize_t nbytes_rec;
#elif defined ZMQ_HAVE_OPENPGM2
size_t nbytes_rec;
#endif
// How many bytes were processed from last pgm socket read.
#ifdef ZMQ_HAVE_OPENPGM1
ssize_t nbytes_processed;
#elif defined ZMQ_HAVE_OPENPGM2
size_t nbytes_processed;
#endif
// How many messages from pgm_msgv were already sent up.
#ifdef ZMQ_HAVE_OPENPGM1
ssize_t pgm_msgv_processed;
#elif defined ZMQ_HAVE_OPENPGM2
size_t pgm_msgv_processed;
#endif
// Size of pgm_msgv array.
size_t pgm_msgv_len;
// Sender transport uses 2 fd.
#ifdef ZMQ_HAVE_OPENPGM1
enum {pgm_sender_fd_count = 2};
#elif ZMQ_HAVE_OPENPGM2
enum {pgm_sender_fd_count = 3};
#endif
// Receiver transport uses 2 fd.
enum {pgm_receiver_fd_count = 2};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment