From 4b6da53f6d0b311e40b228b4e84d3d2dce15d07f Mon Sep 17 00:00:00 2001 From: Raymond Knopp <knopp@eurecom.fr> Date: Sun, 31 Jul 2016 19:41:31 +0200 Subject: [PATCH] added timeout on ETHERNET recv --- targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c b/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c index f2c69985bf..d530558816 100644 --- a/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c +++ b/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c @@ -72,7 +72,7 @@ int trx_eth_start(openair0_device *device) { } /* adjust MTU wrt number of samples per packet */ if(ethernet_tune (device,MTU_SIZE,RAW_PACKET_SIZE_BYTES(device->openair0_cfg->samples_per_packet))!=0) return -1; - + if(ethernet_tune (device,RCV_TIMEOUT,999999)!=0) return -1; } else if (eth->flags == ETH_RAW_IF4p5_MODE) { if (eth_socket_init_raw(device)!=0) return -1; /* RRH gets openair0 device configuration - BBU sets openair0 device configuration*/ @@ -83,7 +83,8 @@ int trx_eth_start(openair0_device *device) { } /* adjust MTU wrt number of samples per packet */ if(ethernet_tune (device,MTU_SIZE,RAW_IF4p5_PRACH_SIZE_BYTES)!=0) return -1; - + if(ethernet_tune (device,RCV_TIMEOUT,5000)!=0) return -1; + } else if (eth->flags == ETH_UDP_IF4p5_MODE) { @@ -225,15 +226,15 @@ int ethernet_tune(openair0_device *device, unsigned int option, int value) { break; case RCV_TIMEOUT: - timeout.tv_sec = value/1000000000; - timeout.tv_usec = value%1000000000;//less than rt_period? + timeout.tv_sec = value/1000000; + timeout.tv_usec = value%1000000;//less than rt_period? if (setsockopt(eth->sockfd[Mod_id], SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout,sizeof(timeout))) { perror("[ETHERNET] setsockopt()"); } else { - printf( "receive timeout= %d,%d sec\n",timeout.tv_sec,timeout.tv_usec); + printf( "receive timeout= %u usec\n",timeout.tv_usec); } break; -- GitLab