Commit f1379f2b authored by Joanne Hugé's avatar Joanne Hugé

recv and decode works

parent 2499d195
......@@ -172,6 +172,7 @@ static uint8_t symbol_id;
static int send_sockfd;
static int recv_sockfd;
static struct sockaddr_ll connect_sk_addr;
static struct sockaddr_ll recv_connect_sk_addr;
static uint8_t ecpri_iq_header[ECPRI_IQ_HEADER + ORAN_HEADER];
static uint8_t packet_header[PACKET_HEADER]; // ethernet + ecpri + iq header
......@@ -358,7 +359,7 @@ static void update_counter(counter_stat_t * c, int64_t v) {
c->counter += v;
}
#define RX_BURST_SIZE 4000
#define RX_BURST_SIZE 10
static void *recv_thread(void *p) {
#ifdef DISABLE_RECV
pthread_exit(EXIT_SUCCESS);
......@@ -401,7 +402,7 @@ static void *recv_thread(void *p) {
error(EXIT_FAILURE, errno, "recvmmsg error");
for(int l = 0; l < ret; l++)
if((msgh + j + l)->msg_len != PACKET_SIZE)
log_info("RECV_THREAD", "Received message has len %d instead of %d", (msgh + j + l)->msg_len, PACKET_SIZE);
log_exit("RECV_THREAD", "Received message has len %d instead of %d", (msgh + j + l)->msg_len, PACKET_SIZE);
j += ret;
update_counter(&recv_counter, ret);
}
......@@ -563,12 +564,6 @@ static void *decode_thread(void *p) {
data = rbuf_read(&rx_rbuf);
printf("data = \n");
for(int l = 0; l < IQ_PAYLOAD; l++)
printf("%X", data[l]);
printf("\n");
log_exit("", "");
int j = ETHERNET_HEADER + ECPRI_COMMON_HEADER;
uint16_t antenna_id = ntohs(*((uint16_t *) (data + j + 0)));
uint8_t seq_id = ((uint8_t) (*((uint16_t * ) (data + j + 2)) >> 8));
......@@ -819,6 +814,20 @@ int start(TRXEcpriState * s) {
perror("Socket Error");
return 1;
}
const int len = strnlen(s->bbu_if, IFNAMSIZ);
if (len == IFNAMSIZ) {
fprintf(stderr, "Too long iface name");
return 1;
}
recv_connect_sk_addr.sll_ifindex = if_index;
recv_connect_sk_addr.sll_family = AF_PACKET;
recv_connect_sk_addr.sll_protocol = htons(ETH_P_ALL);
recv_connect_sk_addr.sll_halen = ETH_ALEN;
if((bind(recv_sockfd , (struct sockaddr *)&recv_connect_sk_addr , sizeof(recv_connect_sk_addr))) ==-1)
{
perror("bind: ");
return 1;
}
connect_sk_addr.sll_ifindex = if_index;
connect_sk_addr.sll_halen = ETH_ALEN;
......
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