Loading examples/sender.py +1 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ host = sys.argv[1] port = int(sys.argv[2]) localport = int(sys.argv[3]) s = prrt.PrrtSocket(("127.0.1.1", localport), mtu=150) s = prrt.PrrtSocket(("127.0.1.1", localport), maximum_payload_size=150) s.connect((host, port)) for i in range(10): Loading prrt/cprrt.pxd +1 −1 Original line number Diff line number Diff line Loading @@ -119,7 +119,7 @@ cdef extern from "proto/socket.h": ctypedef prrtSocket PrrtSocket cdef PrrtSocket* PrrtSocket_create(const uint32_t mtu, const uint32_t target_delay) cdef PrrtSocket* PrrtSocket_create(const uint32_t maximum_payload_size, const uint32_t target_delay) bint PrrtSocket_bind(PrrtSocket *sock_ptr, const_char *ipAddress, const uint16_t port) int PrrtSocket_close(const PrrtSocket *sock_ptr) int PrrtSocket_connect(PrrtSocket *sock_ptr, const_char *host, const uint16_t port) Loading prrt/proto/processes/dataTransmitter.c +1 −2 Original line number Diff line number Diff line Loading @@ -85,7 +85,6 @@ static bool send_packet(PrrtSocket *sock_ptr, PrrtPacket *packet) { do { prrtTimeDifference_t now = (prrtTimeDifference_t) PrrtClock_get_current_time_us(); diff = ((prrtTimeDifference_t) sock_ptr->nextSendTime) - now; debug(DEBUG_DATATRANSMITTER, "C: %u, P: %u, S: %d", cwnd, pipe, space); if (diff > 0) { debug(DEBUG_DATATRANSMITTER, "S: %u, Pacing for %d (%u).", packet->sequenceNumber, diff, now); usleep_nano((uint32_t) diff); Loading @@ -96,7 +95,7 @@ static bool send_packet(PrrtSocket *sock_ptr, PrrtPacket *packet) { } int64_t space = PrrtReceiver_get_space(sock_ptr->receiver); while (space < sock_ptr->mtu) { while (space < sock_ptr->maximum_payload_size) { //PrrtReceiver_check_rto(sock_ptr->receiver, packet->sequenceNumber, PrrtPacket_type(packet)); PrrtReceiver_wait_for_space(sock_ptr->receiver); space = PrrtReceiver_get_space(sock_ptr->receiver); Loading prrt/proto/socket.c +12 −10 Original line number Diff line number Diff line Loading @@ -10,8 +10,9 @@ #include <assert.h> #include <sys/ioctl.h> #include "../defines.h" #include "../util/dbg.h" #include "../util/common.h" #include "../util/dbg.h" #include "../util/time.h" #include "processes/dataTransmitter.h" #include "processes/dataReceiver.h" #include "stores/deliveredPacketTable.h" Loading Loading @@ -44,14 +45,14 @@ static inline prrtPacketLength_t deliver_packet(const PrrtSocket *s, void *buffe return len; } PrrtSocket *PrrtSocket_create(prrtByteCount_t mtu, prrtTimedelta_t target_delay_us) { PrrtSocket *PrrtSocket_create(prrtByteCount_t maximum_payload_size, prrtTimedelta_t target_delay_us) { assert(sizeof(float) == 4); PrrtSocket *s = (PrrtSocket *) calloc(1, sizeof(PrrtSocket)); check_mem(s); s->nextSendTime = 0; s->pacingEnabled = true; s->mtu = mtu; s->maximum_payload_size = maximum_payload_size; s->isHardwareTimestamping = false; s->interfaceName = NULL; Loading Loading @@ -213,13 +214,13 @@ int PrrtSocket_connect(PrrtSocket *s, const char *host, const uint16_t port) { if(s->receiver != NULL) { PrrtReceiver_destroy(s->receiver); } s->receiver = PrrtReceiver_create(host, port, s->mtu); s->receiver = PrrtReceiver_create(host, port, s->maximum_payload_size); return 0; } int PrrtSocket_send(PrrtSocket *s, const uint8_t *data, const size_t data_len) { if (data_len > s->mtu) { PERROR("Data to be sent (%ld bytes) is too long, as MTU is %d.\n", data_len, s->mtu); if (data_len > s->maximum_payload_size) { PERROR("Data to be sent (%ld bytes) is too long, as MTU is %d.\n", data_len, s->maximum_payload_size); return -1; } XlapTimestampPlaceholder tsph; Loading Loading @@ -254,7 +255,7 @@ int32_t PrrtSocket_receive_asap(PrrtSocket *s, void *buf_ptr, struct sockaddr* a int32_t PrrtSocket_receive_asap_wait(PrrtSocket *s, void *buf_ptr, struct sockaddr* addr) { PrrtPacket *packet; do { packet = PrrtPacketDeliveryStore_get_packet_wait(s->packetDeliveryStore, 0, MAX_TIMESTAMP); packet = PrrtPacketDeliveryStore_get_packet_wait(s->packetDeliveryStore); if (PrrtSocket_closing(s)) { return -1; } Loading Loading @@ -286,7 +287,8 @@ int32_t PrrtSocket_receive_ordered_wait(PrrtSocket *s, void *buf_ptr, struct soc PrrtPacket *packet; do { prrtTimestamp_t now = PrrtClock_get_current_time_us(); packet = PrrtPacketDeliveryStore_get_packet_wait(s->packetDeliveryStore, now, now + time_window_us); struct timespec deadline = abstime_from_now(time_window_us); packet = PrrtPacketDeliveryStore_get_packet_timedwait(s->packetDeliveryStore, now, now + time_window_us, &deadline); if (PrrtSocket_closing(s)) { return -1; } Loading Loading @@ -429,8 +431,8 @@ int PrrtSocket_close(PrrtSocket *s) { uint32_t PrrtSocket_get_sock_opt(PrrtSocket *s, const char *name) { if (strcmp(name, "targetdelay") == 0) { return PrrtApplicationConstraints_get_target_delay(s->applicationConstraints); } else if (strcmp(name, "mtu") == 0) { return s->mtu; } else if (strcmp(name, "maximum_payload_size") == 0) { return s->maximum_payload_size; } else { PERROR("Unknown property %s\n", name); return 0; Loading prrt/proto/socket.h +2 −2 Original line number Diff line number Diff line Loading @@ -85,11 +85,11 @@ typedef struct prrtSocket { PrrtChannelStateInformation* senderChannelStateInformation; atomic_bool isThreadPinning; prrtByteCount_t mtu; prrtByteCount_t maximum_payload_size; } PrrtSocket; PrrtSocket *PrrtSocket_create(prrtByteCount_t mtu, prrtTimedelta_t target_delay_us); PrrtSocket *PrrtSocket_create(prrtByteCount_t maximum_payload_size, prrtTimedelta_t target_delay_us); bool PrrtSocket_enable_hardware_timestamping(PrrtSocket *s, const char * interface_name); Loading Loading
examples/sender.py +1 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ host = sys.argv[1] port = int(sys.argv[2]) localport = int(sys.argv[3]) s = prrt.PrrtSocket(("127.0.1.1", localport), mtu=150) s = prrt.PrrtSocket(("127.0.1.1", localport), maximum_payload_size=150) s.connect((host, port)) for i in range(10): Loading
prrt/cprrt.pxd +1 −1 Original line number Diff line number Diff line Loading @@ -119,7 +119,7 @@ cdef extern from "proto/socket.h": ctypedef prrtSocket PrrtSocket cdef PrrtSocket* PrrtSocket_create(const uint32_t mtu, const uint32_t target_delay) cdef PrrtSocket* PrrtSocket_create(const uint32_t maximum_payload_size, const uint32_t target_delay) bint PrrtSocket_bind(PrrtSocket *sock_ptr, const_char *ipAddress, const uint16_t port) int PrrtSocket_close(const PrrtSocket *sock_ptr) int PrrtSocket_connect(PrrtSocket *sock_ptr, const_char *host, const uint16_t port) Loading
prrt/proto/processes/dataTransmitter.c +1 −2 Original line number Diff line number Diff line Loading @@ -85,7 +85,6 @@ static bool send_packet(PrrtSocket *sock_ptr, PrrtPacket *packet) { do { prrtTimeDifference_t now = (prrtTimeDifference_t) PrrtClock_get_current_time_us(); diff = ((prrtTimeDifference_t) sock_ptr->nextSendTime) - now; debug(DEBUG_DATATRANSMITTER, "C: %u, P: %u, S: %d", cwnd, pipe, space); if (diff > 0) { debug(DEBUG_DATATRANSMITTER, "S: %u, Pacing for %d (%u).", packet->sequenceNumber, diff, now); usleep_nano((uint32_t) diff); Loading @@ -96,7 +95,7 @@ static bool send_packet(PrrtSocket *sock_ptr, PrrtPacket *packet) { } int64_t space = PrrtReceiver_get_space(sock_ptr->receiver); while (space < sock_ptr->mtu) { while (space < sock_ptr->maximum_payload_size) { //PrrtReceiver_check_rto(sock_ptr->receiver, packet->sequenceNumber, PrrtPacket_type(packet)); PrrtReceiver_wait_for_space(sock_ptr->receiver); space = PrrtReceiver_get_space(sock_ptr->receiver); Loading
prrt/proto/socket.c +12 −10 Original line number Diff line number Diff line Loading @@ -10,8 +10,9 @@ #include <assert.h> #include <sys/ioctl.h> #include "../defines.h" #include "../util/dbg.h" #include "../util/common.h" #include "../util/dbg.h" #include "../util/time.h" #include "processes/dataTransmitter.h" #include "processes/dataReceiver.h" #include "stores/deliveredPacketTable.h" Loading Loading @@ -44,14 +45,14 @@ static inline prrtPacketLength_t deliver_packet(const PrrtSocket *s, void *buffe return len; } PrrtSocket *PrrtSocket_create(prrtByteCount_t mtu, prrtTimedelta_t target_delay_us) { PrrtSocket *PrrtSocket_create(prrtByteCount_t maximum_payload_size, prrtTimedelta_t target_delay_us) { assert(sizeof(float) == 4); PrrtSocket *s = (PrrtSocket *) calloc(1, sizeof(PrrtSocket)); check_mem(s); s->nextSendTime = 0; s->pacingEnabled = true; s->mtu = mtu; s->maximum_payload_size = maximum_payload_size; s->isHardwareTimestamping = false; s->interfaceName = NULL; Loading Loading @@ -213,13 +214,13 @@ int PrrtSocket_connect(PrrtSocket *s, const char *host, const uint16_t port) { if(s->receiver != NULL) { PrrtReceiver_destroy(s->receiver); } s->receiver = PrrtReceiver_create(host, port, s->mtu); s->receiver = PrrtReceiver_create(host, port, s->maximum_payload_size); return 0; } int PrrtSocket_send(PrrtSocket *s, const uint8_t *data, const size_t data_len) { if (data_len > s->mtu) { PERROR("Data to be sent (%ld bytes) is too long, as MTU is %d.\n", data_len, s->mtu); if (data_len > s->maximum_payload_size) { PERROR("Data to be sent (%ld bytes) is too long, as MTU is %d.\n", data_len, s->maximum_payload_size); return -1; } XlapTimestampPlaceholder tsph; Loading Loading @@ -254,7 +255,7 @@ int32_t PrrtSocket_receive_asap(PrrtSocket *s, void *buf_ptr, struct sockaddr* a int32_t PrrtSocket_receive_asap_wait(PrrtSocket *s, void *buf_ptr, struct sockaddr* addr) { PrrtPacket *packet; do { packet = PrrtPacketDeliveryStore_get_packet_wait(s->packetDeliveryStore, 0, MAX_TIMESTAMP); packet = PrrtPacketDeliveryStore_get_packet_wait(s->packetDeliveryStore); if (PrrtSocket_closing(s)) { return -1; } Loading Loading @@ -286,7 +287,8 @@ int32_t PrrtSocket_receive_ordered_wait(PrrtSocket *s, void *buf_ptr, struct soc PrrtPacket *packet; do { prrtTimestamp_t now = PrrtClock_get_current_time_us(); packet = PrrtPacketDeliveryStore_get_packet_wait(s->packetDeliveryStore, now, now + time_window_us); struct timespec deadline = abstime_from_now(time_window_us); packet = PrrtPacketDeliveryStore_get_packet_timedwait(s->packetDeliveryStore, now, now + time_window_us, &deadline); if (PrrtSocket_closing(s)) { return -1; } Loading Loading @@ -429,8 +431,8 @@ int PrrtSocket_close(PrrtSocket *s) { uint32_t PrrtSocket_get_sock_opt(PrrtSocket *s, const char *name) { if (strcmp(name, "targetdelay") == 0) { return PrrtApplicationConstraints_get_target_delay(s->applicationConstraints); } else if (strcmp(name, "mtu") == 0) { return s->mtu; } else if (strcmp(name, "maximum_payload_size") == 0) { return s->maximum_payload_size; } else { PERROR("Unknown property %s\n", name); return 0; Loading
prrt/proto/socket.h +2 −2 Original line number Diff line number Diff line Loading @@ -85,11 +85,11 @@ typedef struct prrtSocket { PrrtChannelStateInformation* senderChannelStateInformation; atomic_bool isThreadPinning; prrtByteCount_t mtu; prrtByteCount_t maximum_payload_size; } PrrtSocket; PrrtSocket *PrrtSocket_create(prrtByteCount_t mtu, prrtTimedelta_t target_delay_us); PrrtSocket *PrrtSocket_create(prrtByteCount_t maximum_payload_size, prrtTimedelta_t target_delay_us); bool PrrtSocket_enable_hardware_timestamping(PrrtSocket *s, const char * interface_name); Loading