AC_BK = 3
};
+struct msg_t {
+ unsigned int tos;
+ struct timespec send_timestamp, sendback_timestamp;
+ unsigned long int seqn;
+ int stream;
+};
+
+union msg_buff {
+ struct msg_t msg;
+ char nonsense[BUFFSIZE];
+};
+
+
extern const int prio_to_ac[8];
extern const unsigned int ac_to_tos[4];
extern const char *ac_to_text[4];
char* server_addr;
char logfname[100];
-struct msg_t {
- unsigned int tos;
- struct timespec send_timestamp;
- unsigned long int seqn;
- int stream;
-};
-
-union msg_buff {
- struct msg_t msg;
- char nonsense[BUFFSIZE];
-};
-
/* maximal traffic delay in ms - 10 s*/
#define MAX_DELAY_US 10000000
void* qhandler(void* queue)
{
- char buff[BUFFSIZE];
+ union msg_buff buff;
struct sockaddr_in rem_addr;
int mlen;
unsigned int ac, rem_addr_length;
set_rt_prio(90-ac);
while (1) {
- while ((mlen = recvfrom(ac_sockfd[ac], buff, sizeof(buff) , 0, \
+ while ((mlen = recvfrom(ac_sockfd[ac], &buff, sizeof(buff) , 0, \
(struct sockaddr*)&rem_addr, &rem_addr_length)) < 0) {
if (errno == EINTR) continue;
perror("Chyba pri prijimani pozadavku");
fflush(stdout);
#endif
receivers[ac].received++;
- while (sendto(ac_sockfd[ac], buff, mlen,0 ,(struct sockaddr*)&rem_addr, \
+ clock_gettime(CLOCK_MONOTONIC, &buff.msg.sendback_timestamp);
+ while (sendto(ac_sockfd[ac], &buff, mlen,0 ,(struct sockaddr*)&rem_addr, \
sizeof(rem_addr)) < 0){
if (errno == EINTR) continue;
perror("Chyba pri zapisu");