Commit c43aded5 authored by Martin Sustrik's avatar Martin Sustrik

debug code removed from PGM engines

parent f4ac8d7a
......@@ -34,20 +34,6 @@
#include "wire.hpp"
#include "i_inout.hpp"
//#define PGM_RECEIVER_DEBUG
//#define PGM_RECEIVER_DEBUG_LEVEL 1
// level 1 = key behaviour
// level 2 = processing flow
// level 4 = infos
#ifndef PGM_RECEIVER_DEBUG
# define zmq_log(n, ...) while (0)
#else
# define zmq_log(n, ...) do { if ((n) <= PGM_RECEIVER_DEBUG_LEVEL) \
{ printf (__VA_ARGS__);}} while (0)
#endif
zmq::pgm_receiver_t::pgm_receiver_t (class io_thread_t *parent_,
const options_t &options_, const char *session_name_) :
io_object_t (parent_),
......@@ -161,12 +147,8 @@ void zmq::pgm_receiver_t::in_event ()
// New peer.
if (it == peers.end ()) {
peer_info_t peer_info = {false, NULL};
it = peers.insert (std::make_pair (*tsi, peer_info)).first;
zmq_log (1, "New peer TSI: %s, %s(%i).\n", pgm_tsi_print (tsi),
__FILE__, __LINE__);
}
// There is not beginning of the message in current APDU and we
......@@ -191,9 +173,6 @@ void zmq::pgm_receiver_t::in_event ()
// Create and connect decoder for joined peer.
it->second.decoder = new zmq_decoder_t (0);
it->second.decoder->set_inout (inout);
zmq_log (1, "Peer %s joined into the stream, %s(%i)\n",
pgm_tsi_print (tsi), __FILE__, __LINE__);
}
if (nbytes > 0) {
......
......@@ -37,7 +37,6 @@
#include "zmq_decoder.hpp"
#include "pgm_socket.hpp"
namespace zmq
{
......@@ -66,13 +65,16 @@ namespace zmq
private:
// Map to hold TSI, joined and decoder for each peer.
struct peer_info_t {
struct peer_info_t
{
bool joined;
zmq_decoder_t *decoder;
};
struct tsi_comp {
bool operator () (const pgm_tsi_t &ltsi, const pgm_tsi_t &rtsi) const
struct tsi_comp
{
inline bool operator () (const pgm_tsi_t &ltsi,
const pgm_tsi_t &rtsi) const
{
if (ltsi.sport < rtsi.sport)
return true;
......
......@@ -32,20 +32,6 @@
#include "err.hpp"
#include "wire.hpp"
//#define PGM_SENDER_DEBUG
//#define PGM_SENDER_DEBUG_LEVEL 1
// level 1 = key behaviour
// level 2 = processing flow
// level 4 = infos
#ifndef PGM_SENDER_DEBUG
# define zmq_log(n, ...) while (0)
#else
# define zmq_log(n, ...) do { if ((n) <= PGM_SENDER_DEBUG_LEVEL) \
{ printf (__VA_ARGS__);}} while (0)
#endif
zmq::pgm_sender_t::pgm_sender_t (io_thread_t *parent_,
const options_t &options_, const char *session_name_) :
io_object_t (parent_),
......@@ -119,9 +105,6 @@ void zmq::pgm_sender_t::revive ()
zmq::pgm_sender_t::~pgm_sender_t ()
{
zmq_log (4, "pgm_sender_t destructor, %s(%i)\n",
__FILE__, __LINE__);
if (out_buffer) {
pgm_socket.free_buffer (out_buffer);
out_buffer = NULL;
......@@ -171,17 +154,8 @@ void zmq::pgm_sender_t::out_event ()
size_t nbytes = write_one_pkt_with_offset (out_buffer + write_pos,
write_size - write_pos, (uint16_t) first_message_offset);
// We can write all data or 0 which means rate limit reached.
if (write_size - write_pos != nbytes && nbytes != 0) {
zmq_log (2, "write_size - write_pos %i, nbytes %i, %s(%i)",
(int)(write_size - write_pos), (int)nbytes, __FILE__, __LINE__);
assert (false);
}
// PGM rate limit reached nbytes is 0.
if (!nbytes) {
zmq_log (1, "pgm rate limit reached, %s(%i)\n", __FILE__, __LINE__);
}
// We can write either all data or 0 which means rate limit reached.
zmq_assert (write_size - write_pos == nbytes || nbytes == 0);
write_pos += nbytes;
}
......@@ -191,9 +165,6 @@ void zmq::pgm_sender_t::out_event ()
size_t zmq::pgm_sender_t::write_one_pkt_with_offset (unsigned char *data_,
size_t size_, uint16_t offset_)
{
zmq_log (4, "data_size %i, first message offset %i, %s(%i)\n",
(int) size_, offset_, __FILE__, __LINE__);
// Put offset information in the buffer.
put_uint16 (data_, offset_);
......
......@@ -41,20 +41,6 @@
#include "err.hpp"
#include "uuid.hpp"
//#define PGM_SOCKET_DEBUG
//#define PGM_SOCKET_DEBUG_LEVEL 4
// level 1 = key behaviour
// level 2 = processing flow
// level 4 = infos
#ifndef PGM_SOCKET_DEBUG
# define zmq_log(n, ...) while (0)
#else
# define zmq_log(n, ...) do { if ((n) <= PGM_SOCKET_DEBUG_LEVEL) \
{ printf (__VA_ARGS__);}} while (0)
#endif
zmq::pgm_socket_t::pgm_socket_t (bool receiver_, const options_t &options_) :
transport (NULL),
options (options_),
......@@ -91,10 +77,6 @@ int zmq::pgm_socket_t::init (bool udp_encapsulation_, const char *network_)
memset (network, '\0', sizeof (network));
memcpy (network, network_, port_delim - network_);
zmq_log (1, "parsed: network %s, port %i, udp encaps. %s, %s(%i)\n",
network, port_number, udp_encapsulation ? "yes" : "no",
__FILE__, __LINE__);
// Open PGM transport.
int rc = open_transport ();
if (rc != 0)
......@@ -105,20 +87,13 @@ int zmq::pgm_socket_t::init (bool udp_encapsulation_, const char *network_)
if (receiver) {
pgm_msgv_len = get_max_apdu_at_once (in_batch_size);
pgm_msgv = new pgm_msgv_t [pgm_msgv_len];
zmq_log (1, "PGM transport: pgm_msgv_len %i, %s(%i)\n",
(int) pgm_msgv_len, __FILE__, __LINE__);
}
return 0;
}
int zmq::pgm_socket_t::open_transport (void)
int zmq::pgm_socket_t::open_transport ()
{
zmq_log (1, "Opening PGM: network %s, port %i, udp encaps. %s, %s(%i)\n",
network, port_number, udp_encapsulation ? "yes" : "no",
__FILE__, __LINE__);
// Can not open transport before destroying old one.
zmq_assert (transport == NULL);
......@@ -193,8 +168,6 @@ int zmq::pgm_socket_t::open_transport (void)
pgm_if_free_transport_info (res);
zmq_log (1, "PGM transport created, %s(%i)\n", __FILE__, __LINE__);
// Common parameters for receiver and sender.
// Set maximum transport protocol data unit size (TPDU).
......@@ -211,13 +184,11 @@ int zmq::pgm_socket_t::open_transport (void)
return -1;
}
#ifdef ZMQ_HAVE_OPENPGM2
// Set nonblocking send/recv sockets.
if (!pgm_transport_set_nonblocking (transport, true)) {
errno = EINVAL;
return -1;
}
#endif
if (receiver) {
......@@ -338,8 +309,6 @@ int zmq::pgm_socket_t::open_transport (void)
return -1;
}
zmq_log (1, "PGM transport bound, %s(%i)\n", __FILE__, __LINE__);
return 0;
}
......@@ -354,7 +323,7 @@ zmq::pgm_socket_t::~pgm_socket_t ()
close_transport ();
}
void zmq::pgm_socket_t::close_transport (void)
void zmq::pgm_socket_t::close_transport ()
{
// transport has to be valid.
zmq_assert (transport);
......@@ -366,7 +335,7 @@ void zmq::pgm_socket_t::close_transport (void)
// Get receiver fds. recv_fd is from transport->recv_sock
// waiting_pipe_fd is from transport->waiting_pipe [0]
int zmq::pgm_socket_t::get_receiver_fds (int *receive_fd_,
void zmq::pgm_socket_t::get_receiver_fds (int *receive_fd_,
int *waiting_pipe_fd_)
{
zmq_assert (receive_fd_);
......@@ -382,15 +351,13 @@ int zmq::pgm_socket_t::get_receiver_fds (int *receive_fd_,
// Take FDs directly from transport.
*receive_fd_ = pgm_transport_get_recv_fd (transport);
*waiting_pipe_fd_ = pgm_transport_get_pending_fd (transport);
return pgm_receiver_fd_count;
}
// Get fds and store them into user allocated memory.
// sender_fd is from pgm_transport->send_sock.
// receive_fd_ is from transport->recv_sock.
// rdata_notify_fd_ is from transport->rdata_notify (PGM2 only).
int zmq::pgm_socket_t::get_sender_fds (int *send_fd_, int *receive_fd_,
void zmq::pgm_socket_t::get_sender_fds (int *send_fd_, int *receive_fd_,
int *rdata_notify_fd_)
{
zmq_assert (send_fd_);
......@@ -409,8 +376,6 @@ int zmq::pgm_socket_t::get_sender_fds (int *send_fd_, int *receive_fd_,
*receive_fd_ = pgm_transport_get_recv_fd (transport);
*rdata_notify_fd_ = pgm_transport_get_repair_fd (transport);
*send_fd_ = pgm_transport_get_send_fd (transport);
return pgm_sender_fd_count;
}
// Send one APDU, transmit window owned memory.
......@@ -421,28 +386,19 @@ size_t zmq::pgm_socket_t::send (unsigned char *data_, size_t data_len_)
PGMIOStatus status = pgm_send (transport, data_, data_len_, &nbytes);
if (nbytes != data_len_) {
zmq_log (1, "status %i, data_len %i, wrote %iB, %s(%i)\n",
(int) status, (int) data_len_, (int) nbytes, __FILE__, __LINE__);
zmq_assert (status == PGM_IO_STATUS_RATE_LIMITED);
zmq_assert (nbytes == 0);
}
zmq_log (4, "wrote %i/%iB, %s(%i)\n", (int) nbytes, (int) data_len_,
__FILE__, __LINE__);
// We have to write all data as one packet.
if (nbytes > 0) {
zmq_log (1, "data sent %iB, %s(%i)\n", (int) nbytes,
__FILE__, __LINE__);
if (nbytes > 0)
zmq_assert ((ssize_t) nbytes == (ssize_t) data_len_);
}
return nbytes;
}
// Return max TSDU size without fragmentation from current PGM transport.
size_t zmq::pgm_socket_t::get_max_tsdu_size (void)
size_t zmq::pgm_socket_t::get_max_tsdu_size ()
{
return (size_t)pgm_transport_max_tsdu (transport, false);
}
......@@ -494,7 +450,6 @@ void zmq::pgm_socket_t::free_buffer (void *data_)
// returned.
ssize_t zmq::pgm_socket_t::receive (void **raw_data_, const pgm_tsi_t **tsi_)
{
size_t raw_data_len = 0;
// We just sent all data from pgm_transport_recvmsgv up
......@@ -505,7 +460,6 @@ ssize_t zmq::pgm_socket_t::receive (void **raw_data_, const pgm_tsi_t **tsi_)
nbytes_rec = 0;
nbytes_processed = 0;
pgm_msgv_processed = 0;
return 0;
}
......@@ -525,11 +479,6 @@ ssize_t zmq::pgm_socket_t::receive (void **raw_data_, const pgm_tsi_t **tsi_)
const PGMIOStatus status = pgm_recvmsgv (transport, pgm_msgv,
pgm_msgv_len, MSG_DONTWAIT, &nbytes_rec, &pgm_error);
if (nbytes_rec > 0) {
zmq_log (1, "PGMIOStatus %i, nbytes_rec %i, %s(%i).\n",
status, (int) nbytes_rec, __FILE__, __LINE__);
}
// In a case when no ODATA/RDATA fired POLLIN event (SPM...)
// pgm_recvmsg returns ?.
if (status == PGM_IO_STATUS_TIMER_PENDING) {
......@@ -545,17 +494,10 @@ ssize_t zmq::pgm_socket_t::receive (void **raw_data_, const pgm_tsi_t **tsi_)
// Data loss.
if (status == PGM_IO_STATUS_RESET) {
zmq_log (1, "PGMIOStatus %i, nbytes_rec %i, %s(%i).\n",
status, (int) nbytes_rec, __FILE__, __LINE__);
pgm_peer_t* peer = (pgm_peer_t*) transport->peers_pending->data;
// Save lost data TSI.
*tsi_ = &peer->tsi;
zmq_log (1, "Data loss detected %s, %s(%i)\n", pgm_tsi_print (&peer->tsi),
__FILE__, __LINE__);
nbytes_rec = 0;
// In case of dala loss -1 is returned.
......@@ -563,18 +505,7 @@ ssize_t zmq::pgm_socket_t::receive (void **raw_data_, const pgm_tsi_t **tsi_)
}
// Catch the rest of the errors.
if (status != PGM_IO_STATUS_NORMAL) {
zmq_log (1, "PGMIOStatus %i, nbytes_rec %i, %s(%i).\n",
status, (int) nbytes_rec, __FILE__, __LINE__);
zmq_assert (false);
nbytes_rec = 0;
return -1;
}
zmq_log (4, "received %i bytes\n", (int)nbytes_rec);
zmq_assert (status == PGM_IO_STATUS_NORMAL);
}
zmq_assert (nbytes_rec > 0);
......@@ -596,15 +527,11 @@ ssize_t zmq::pgm_socket_t::receive (void **raw_data_, const pgm_tsi_t **tsi_)
pgm_msgv_processed++;
nbytes_processed +=raw_data_len;
zmq_log (4, "sendig up %i bytes\n", (int)raw_data_len);
return raw_data_len;
}
void zmq::pgm_socket_t::process_upstream (void)
void zmq::pgm_socket_t::process_upstream ()
{
zmq_log (1, "On upstream packet, %s(%i)\n", __FILE__, __LINE__);
pgm_msgv_t dummy_msg;
size_t dummy_bytes = 0;
......@@ -613,9 +540,6 @@ void zmq::pgm_socket_t::process_upstream (void)
PGMIOStatus status = pgm_recvmsgv (transport, &dummy_msg,
1, MSG_DONTWAIT, &dummy_bytes, &pgm_error);
zmq_log (1, "upstream status %i, nbytes %i, %s(%i)\n",
(int) status, (int) dummy_bytes, __FILE__, __LINE__);
// No data should be returned.
zmq_assert (dummy_bytes == 0 && (status == PGM_IO_STATUS_TIMER_PENDING ||
status == PGM_IO_STATUS_RATE_LIMITED));
......
......@@ -52,18 +52,18 @@ namespace zmq
int init (bool udp_encapsulation_, const char *network_);
// Open PGM transport. Parameters are the same as in constructor.
int open_transport (void);
int open_transport ();
// Close transport.
void close_transport (void);
void close_transport ();
// Get receiver fds and store them into user allocated memory.
int get_receiver_fds (int *receive_fd_, int *waiting_pipe_fd_);
void get_receiver_fds (int *receive_fd_, int *waiting_pipe_fd_);
// Get sender and receiver fds and store it to user allocated
// memory. Receive fd is used to process NAKs from peers.
int get_sender_fds (int *send_fd_, int *receive_fd_,
int *rdata_notify_fd_ = NULL);
void get_sender_fds (int *send_fd_, int *receive_fd_,
int *rdata_notify_fd_);
// Send data as one APDU, transmit window owned memory.
size_t send (unsigned char *data_, size_t data_len_);
......@@ -79,17 +79,15 @@ namespace zmq
// POLLIN on sender side should mean NAK or SPMR receiving.
// process_upstream function is used to handle such a situation.
void process_upstream (void);
void process_upstream ();
protected:
private:
// OpenPGM transport
pgm_transport_t* transport;
private:
// Returns max tsdu size without fragmentation.
size_t get_max_tsdu_size (void);
size_t get_max_tsdu_size ();
// Returns maximum count of apdus which fills readbuf_size_
size_t get_max_apdu_at_once (size_t readbuf_size_);
......@@ -124,12 +122,6 @@ namespace zmq
// Size of pgm_msgv array.
size_t pgm_msgv_len;
// Sender transport uses 2 fd.
enum {pgm_sender_fd_count = 3};
// Receiver transport uses 2 fd.
enum {pgm_receiver_fd_count = 2};
};
}
#endif
......
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