Loading .gitlab-ci.yml +1 −0 Original line number Diff line number Diff line variables: PYPI_USER: SECURE PYPI_PASSWORD: SECURE GIT_SUBMODULE_STRATEGY: recursive stages: - build Loading .gitmodules 0 → 100644 +3 −0 Original line number Diff line number Diff line [submodule "prrt/xlap"] path = prrt/xlap url = ../../as/X-Lap.git prrt/cprrt.pxd +4 −4 Original line number Diff line number Diff line Loading @@ -121,16 +121,16 @@ cdef extern from "proto/socket.h": bint PrrtSocket_set_sock_opt(PrrtSocket *sock_ptr, const_char *name, const uint32_t value) uint32_t PrrtSocket_get_sock_opt(PrrtSocket *sock_ptr, const_char *name) cdef extern from "proto/timestamp.h": ctypedef struct PrrtTimestampTable: cdef extern from "xlap/xlap.h": ctypedef struct XlapTimestampTable: pass cdef enum PrrtTimestampPacketKind: cdef enum XlapTimestampPacketKind: ts_data_packet = 0, ts_any_packet = 0, ts_redundancy_packet = 1 void PrrtTimestampTableInstall(PrrtSocket* sck, PrrtTimestampPacketKind kind, PrrtTimestampTable* tstp); void XlapTimestampTableInstall(PrrtSocket* sck, XlapTimestampPacketKind kind, XlapTimestampTable* tstp); cdef extern from "util/bptree.h": ctypedef struct BPTreeNode: Loading prrt/proto/CMakeLists.txt +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ add_library(PRRT ../defines.h packet.c packet.h receiver.c receiver.h socket.c socket.h timestamp.c timestamp.h ../xlap/xlap.c ../xlap/xlap.h applicationConstraints.c applicationConstraints.h vdmcode/block_code.c vdmcode/block_code.h stores/forwardPacketTable.c stores/forwardPacketTable.h Loading prrt/proto/processes/dataReceiver.c +23 −23 Original line number Diff line number Diff line Loading @@ -111,9 +111,9 @@ static void handle_data_packet(PrrtSocket *sock_ptr, PrrtPacket *packet, struct prrtSequenceNumber_t seqno = packet->sequenceNumber; PrrtTimeStampCycle(sock_ptr, ts_data_packet, seqno, SendFeedbackStart); XlapTimeStampCycle(sock_ptr, ts_data_packet, seqno, SendFeedbackStart); check(send_feedback(sock_ptr, remote), "Sending feedback failed."); PrrtTimeStampCycle(sock_ptr, ts_data_packet, seqno, SendFeedbackEnd); XlapTimeStampCycle(sock_ptr, ts_data_packet, seqno, SendFeedbackEnd); prrtTimestamp_t now = PrrtClock_get_prrt_time_us(&sock_ptr->clock); if(is_timeout(now, payload->packetTimeout_us)) { Loading Loading @@ -144,7 +144,7 @@ static void handle_data_packet(PrrtSocket *sock_ptr, PrrtPacket *packet, struct // forward to application layer debug(DEBUG_DATARECEIVER, "forward %u", seqno); PrrtTimeStampCycle(sock_ptr, ts_data_packet, seqno, PrrtReturnPackage); XlapTimeStampCycle(sock_ptr, ts_data_packet, seqno, PrrtReturnPackage); check(pthread_mutex_lock(&sock_ptr->inQueueFilledMutex) == 0, "Lock failed."); List_push(sock_ptr->inQueue, packet); check(pthread_cond_signal(&sock_ptr->inQueueFilledCv) == 0, "Cond signal failed."); Loading Loading @@ -198,46 +198,46 @@ void *receive_data_loop(void *ptr) PrrtSocket *sock_ptr = ptr; while(1) { PrrtTimestampPlaceholder tsph1; PrrtTimestampPlaceholder tsph2; PrrtTimestampPlaceholder tsph3; PrrtTimestampPlaceholderInitialize(&tsph1); PrrtTimestampPlaceholderInitialize(&tsph2); PrrtTimestampPlaceholderInitialize(&tsph3); XlapTimestampPlaceholder tsph1; XlapTimestampPlaceholder tsph2; XlapTimestampPlaceholder tsph3; XlapTimestampPlaceholderInitialize(&tsph1); XlapTimestampPlaceholderInitialize(&tsph2); XlapTimestampPlaceholderInitialize(&tsph3); memset(buffer, 0, MAX_PAYLOAD_LENGTH); n = recvfrom(sock_ptr->dataSocketFd, buffer, MAX_PAYLOAD_LENGTH, 0, (struct sockaddr *) &remote, &addrlen); sock_ptr->lastReceivedTimestamp = PrrtClock_get_current_time_us(); PrrtTimeStampClock(&tsph1, ts_any_packet, 0, LinkReceive); PrrtTimeStampCycle(&tsph1, ts_any_packet, 0, LinkReceive); XlapTimeStampClock(&tsph1, ts_any_packet, 0, LinkReceive); XlapTimeStampCycle(&tsph1, ts_any_packet, 0, LinkReceive); PrrtPacket *packet = (PrrtPacket *) calloc(1, sizeof(PrrtPacket)); check_mem(packet); PrrtTimeStampCycle(&tsph2, ts_any_packet, 0, DecodeStart); XlapTimeStampCycle(&tsph2, ts_any_packet, 0, DecodeStart); check(PrrtPacket_decode(buffer, (uint16_t) n, packet), "Decode failed."); PrrtTimeStampCycle(&tsph3, ts_any_packet, 0, DecodeEnd); XlapTimeStampCycle(&tsph3, ts_any_packet, 0, DecodeEnd); prrtSequenceNumber_t seqno = packet->sequenceNumber; prrtPacketType_t packetType = PrrtPacket_type(packet); debug(DEBUG_DATARECEIVER, "received packet %d:%u", (int) packetType, seqno); if(packetType == PACKET_TYPE_DATA) { PrrtTimestampPlaceholderUse(sock_ptr, ts_data_packet, seqno, &tsph1); PrrtTimestampPlaceholderUse(sock_ptr, ts_data_packet, seqno, &tsph2); PrrtTimestampPlaceholderUse(sock_ptr, ts_data_packet, seqno, &tsph3); XlapTimestampPlaceholderUse(sock_ptr, ts_data_packet, seqno, &tsph1); XlapTimestampPlaceholderUse(sock_ptr, ts_data_packet, seqno, &tsph2); XlapTimestampPlaceholderUse(sock_ptr, ts_data_packet, seqno, &tsph3); PrrtTimeStampCycle(sock_ptr, ts_data_packet, seqno, HandlePacketStart); XlapTimeStampCycle(sock_ptr, ts_data_packet, seqno, HandlePacketStart); handle_data_packet(sock_ptr, packet, remote); PrrtTimeStampCycle(sock_ptr, ts_data_packet, seqno, HandlePacketEnd); XlapTimeStampCycle(sock_ptr, ts_data_packet, seqno, HandlePacketEnd); } else if(packetType == PACKET_TYPE_REDUNDANCY) { PrrtTimestampPlaceholderUse(sock_ptr, ts_redundancy_packet, seqno, &tsph1); PrrtTimestampPlaceholderUse(sock_ptr, ts_redundancy_packet, seqno, &tsph2); PrrtTimestampPlaceholderUse(sock_ptr, ts_redundancy_packet, seqno, &tsph3); XlapTimestampPlaceholderUse(sock_ptr, ts_redundancy_packet, seqno, &tsph1); XlapTimestampPlaceholderUse(sock_ptr, ts_redundancy_packet, seqno, &tsph2); XlapTimestampPlaceholderUse(sock_ptr, ts_redundancy_packet, seqno, &tsph3); PrrtTimeStampCycle(sock_ptr, ts_redundancy_packet, seqno, HandlePacketStart); XlapTimeStampCycle(sock_ptr, ts_redundancy_packet, seqno, HandlePacketStart); handle_redundancy_packet(sock_ptr, packet); PrrtTimeStampCycle(sock_ptr, ts_redundancy_packet, seqno, HandlePacketEnd); XlapTimeStampCycle(sock_ptr, ts_redundancy_packet, seqno, HandlePacketEnd); } else { PrrtPacket_print(packet); PrrtPacket_destroy(packet); Loading Loading
.gitlab-ci.yml +1 −0 Original line number Diff line number Diff line variables: PYPI_USER: SECURE PYPI_PASSWORD: SECURE GIT_SUBMODULE_STRATEGY: recursive stages: - build Loading
.gitmodules 0 → 100644 +3 −0 Original line number Diff line number Diff line [submodule "prrt/xlap"] path = prrt/xlap url = ../../as/X-Lap.git
prrt/cprrt.pxd +4 −4 Original line number Diff line number Diff line Loading @@ -121,16 +121,16 @@ cdef extern from "proto/socket.h": bint PrrtSocket_set_sock_opt(PrrtSocket *sock_ptr, const_char *name, const uint32_t value) uint32_t PrrtSocket_get_sock_opt(PrrtSocket *sock_ptr, const_char *name) cdef extern from "proto/timestamp.h": ctypedef struct PrrtTimestampTable: cdef extern from "xlap/xlap.h": ctypedef struct XlapTimestampTable: pass cdef enum PrrtTimestampPacketKind: cdef enum XlapTimestampPacketKind: ts_data_packet = 0, ts_any_packet = 0, ts_redundancy_packet = 1 void PrrtTimestampTableInstall(PrrtSocket* sck, PrrtTimestampPacketKind kind, PrrtTimestampTable* tstp); void XlapTimestampTableInstall(PrrtSocket* sck, XlapTimestampPacketKind kind, XlapTimestampTable* tstp); cdef extern from "util/bptree.h": ctypedef struct BPTreeNode: Loading
prrt/proto/CMakeLists.txt +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ add_library(PRRT ../defines.h packet.c packet.h receiver.c receiver.h socket.c socket.h timestamp.c timestamp.h ../xlap/xlap.c ../xlap/xlap.h applicationConstraints.c applicationConstraints.h vdmcode/block_code.c vdmcode/block_code.h stores/forwardPacketTable.c stores/forwardPacketTable.h Loading
prrt/proto/processes/dataReceiver.c +23 −23 Original line number Diff line number Diff line Loading @@ -111,9 +111,9 @@ static void handle_data_packet(PrrtSocket *sock_ptr, PrrtPacket *packet, struct prrtSequenceNumber_t seqno = packet->sequenceNumber; PrrtTimeStampCycle(sock_ptr, ts_data_packet, seqno, SendFeedbackStart); XlapTimeStampCycle(sock_ptr, ts_data_packet, seqno, SendFeedbackStart); check(send_feedback(sock_ptr, remote), "Sending feedback failed."); PrrtTimeStampCycle(sock_ptr, ts_data_packet, seqno, SendFeedbackEnd); XlapTimeStampCycle(sock_ptr, ts_data_packet, seqno, SendFeedbackEnd); prrtTimestamp_t now = PrrtClock_get_prrt_time_us(&sock_ptr->clock); if(is_timeout(now, payload->packetTimeout_us)) { Loading Loading @@ -144,7 +144,7 @@ static void handle_data_packet(PrrtSocket *sock_ptr, PrrtPacket *packet, struct // forward to application layer debug(DEBUG_DATARECEIVER, "forward %u", seqno); PrrtTimeStampCycle(sock_ptr, ts_data_packet, seqno, PrrtReturnPackage); XlapTimeStampCycle(sock_ptr, ts_data_packet, seqno, PrrtReturnPackage); check(pthread_mutex_lock(&sock_ptr->inQueueFilledMutex) == 0, "Lock failed."); List_push(sock_ptr->inQueue, packet); check(pthread_cond_signal(&sock_ptr->inQueueFilledCv) == 0, "Cond signal failed."); Loading Loading @@ -198,46 +198,46 @@ void *receive_data_loop(void *ptr) PrrtSocket *sock_ptr = ptr; while(1) { PrrtTimestampPlaceholder tsph1; PrrtTimestampPlaceholder tsph2; PrrtTimestampPlaceholder tsph3; PrrtTimestampPlaceholderInitialize(&tsph1); PrrtTimestampPlaceholderInitialize(&tsph2); PrrtTimestampPlaceholderInitialize(&tsph3); XlapTimestampPlaceholder tsph1; XlapTimestampPlaceholder tsph2; XlapTimestampPlaceholder tsph3; XlapTimestampPlaceholderInitialize(&tsph1); XlapTimestampPlaceholderInitialize(&tsph2); XlapTimestampPlaceholderInitialize(&tsph3); memset(buffer, 0, MAX_PAYLOAD_LENGTH); n = recvfrom(sock_ptr->dataSocketFd, buffer, MAX_PAYLOAD_LENGTH, 0, (struct sockaddr *) &remote, &addrlen); sock_ptr->lastReceivedTimestamp = PrrtClock_get_current_time_us(); PrrtTimeStampClock(&tsph1, ts_any_packet, 0, LinkReceive); PrrtTimeStampCycle(&tsph1, ts_any_packet, 0, LinkReceive); XlapTimeStampClock(&tsph1, ts_any_packet, 0, LinkReceive); XlapTimeStampCycle(&tsph1, ts_any_packet, 0, LinkReceive); PrrtPacket *packet = (PrrtPacket *) calloc(1, sizeof(PrrtPacket)); check_mem(packet); PrrtTimeStampCycle(&tsph2, ts_any_packet, 0, DecodeStart); XlapTimeStampCycle(&tsph2, ts_any_packet, 0, DecodeStart); check(PrrtPacket_decode(buffer, (uint16_t) n, packet), "Decode failed."); PrrtTimeStampCycle(&tsph3, ts_any_packet, 0, DecodeEnd); XlapTimeStampCycle(&tsph3, ts_any_packet, 0, DecodeEnd); prrtSequenceNumber_t seqno = packet->sequenceNumber; prrtPacketType_t packetType = PrrtPacket_type(packet); debug(DEBUG_DATARECEIVER, "received packet %d:%u", (int) packetType, seqno); if(packetType == PACKET_TYPE_DATA) { PrrtTimestampPlaceholderUse(sock_ptr, ts_data_packet, seqno, &tsph1); PrrtTimestampPlaceholderUse(sock_ptr, ts_data_packet, seqno, &tsph2); PrrtTimestampPlaceholderUse(sock_ptr, ts_data_packet, seqno, &tsph3); XlapTimestampPlaceholderUse(sock_ptr, ts_data_packet, seqno, &tsph1); XlapTimestampPlaceholderUse(sock_ptr, ts_data_packet, seqno, &tsph2); XlapTimestampPlaceholderUse(sock_ptr, ts_data_packet, seqno, &tsph3); PrrtTimeStampCycle(sock_ptr, ts_data_packet, seqno, HandlePacketStart); XlapTimeStampCycle(sock_ptr, ts_data_packet, seqno, HandlePacketStart); handle_data_packet(sock_ptr, packet, remote); PrrtTimeStampCycle(sock_ptr, ts_data_packet, seqno, HandlePacketEnd); XlapTimeStampCycle(sock_ptr, ts_data_packet, seqno, HandlePacketEnd); } else if(packetType == PACKET_TYPE_REDUNDANCY) { PrrtTimestampPlaceholderUse(sock_ptr, ts_redundancy_packet, seqno, &tsph1); PrrtTimestampPlaceholderUse(sock_ptr, ts_redundancy_packet, seqno, &tsph2); PrrtTimestampPlaceholderUse(sock_ptr, ts_redundancy_packet, seqno, &tsph3); XlapTimestampPlaceholderUse(sock_ptr, ts_redundancy_packet, seqno, &tsph1); XlapTimestampPlaceholderUse(sock_ptr, ts_redundancy_packet, seqno, &tsph2); XlapTimestampPlaceholderUse(sock_ptr, ts_redundancy_packet, seqno, &tsph3); PrrtTimeStampCycle(sock_ptr, ts_redundancy_packet, seqno, HandlePacketStart); XlapTimeStampCycle(sock_ptr, ts_redundancy_packet, seqno, HandlePacketStart); handle_redundancy_packet(sock_ptr, packet); PrrtTimeStampCycle(sock_ptr, ts_redundancy_packet, seqno, HandlePacketEnd); XlapTimeStampCycle(sock_ptr, ts_redundancy_packet, seqno, HandlePacketEnd); } else { PrrtPacket_print(packet); PrrtPacket_destroy(packet); Loading