Signed-off-by: Ola Liljedahl <ola.liljed...@linaro.org>
---
(This document/code contribution attached is provided under the terms of
agreement LES-LTM-21309)
Removed odp_timer_ping, it was neither a good test program nor a good ping
program.

 test/api_test/.gitignore       |   1 -
 test/api_test/Makefile.am      |   5 +-
 test/api_test/odp_timer_ping.c | 405 -----------------------------------------
 3 files changed, 1 insertion(+), 410 deletions(-)
 delete mode 100644 test/api_test/odp_timer_ping.c

diff --git a/test/api_test/.gitignore b/test/api_test/.gitignore
index 7ba56c7..84159e1 100644
--- a/test/api_test/.gitignore
+++ b/test/api_test/.gitignore
@@ -1,4 +1,3 @@
 odp_atomic
 odp_ring
 odp_shm
-odp_timer_ping
diff --git a/test/api_test/Makefile.am b/test/api_test/Makefile.am
index 74e8612..f9326fa 100644
--- a/test/api_test/Makefile.am
+++ b/test/api_test/Makefile.am
@@ -1,18 +1,15 @@
 include $(top_srcdir)/test/Makefile.inc
 
-bin_PROGRAMS = odp_atomic odp_shm odp_ring odp_timer_ping
+bin_PROGRAMS = odp_atomic odp_shm odp_ring
 
 odp_atomic_CFLAGS = $(AM_CFLAGS)
 odp_shm_CFLAGS = $(AM_CFLAGS)
 odp_ring_CFLAGS = $(AM_CFLAGS)
-odp_timer_ping_CFLAGS = $(AM_CFLAGS)
 
 odp_atomic_LDFLAGS = $(AM_LDFLAGS) -static
 odp_shm_LDFLAGS = $(AM_LDFLAGS) -static
 odp_ring_LDFLAGS = $(AM_LDFLAGS) -static
-odp_timer_ping_LDFLAGS = $(AM_LDFLAGS) -static
 
 dist_odp_atomic_SOURCES = odp_atomic_test.c odp_common.c
 dist_odp_shm_SOURCES = odp_shm_test.c odp_common.c
 dist_odp_ring_SOURCES = odp_ring_test.c odp_common.c
-dist_odp_timer_ping_SOURCES = odp_timer_ping.c odp_common.c
diff --git a/test/api_test/odp_timer_ping.c b/test/api_test/odp_timer_ping.c
deleted file mode 100644
index 48f1885..0000000
--- a/test/api_test/odp_timer_ping.c
+++ /dev/null
@@ -1,405 +0,0 @@
-/* Copyright (c) 2014, Linaro Limited
- * All rights reserved.
- *
- * SPDX-License-Identifier:     BSD-3-Clause
- */
-
-/**
- * @file
- *
- * ODP timer ping example application.
- * application open PF_INET socket, every ping send request
- * will arm timer for some duration, if ping_ack rxvd with
- * time band.. listen thread will cancel timer and free the
- * tmo_buffer.. otherwise timer expiration event will exit
- * application lead to test failure..
- *  - two thread used, one listener other one sender.
- *  - run ./odp_timer <ipadder>
- *   In ubuntu, you need run using sudo ./odp_timer <ipaddr>
- *  - so to tigger timeout explicitly.. ping with badipaddr
- *    Otherwise timeout may happen bcz of slow nw speed
- */
-
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <sys/socket.h>
-#include <resolv.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <netinet/ip_icmp.h>
-#include <arpa/inet.h>
-#include <poll.h>
-
-#include <string.h>
-#include <odp.h>
-#include <odp_common.h>
-#include <odp_timer.h>
-#include <odph_linux.h>
-#include <odph_chksum.h>
-#include <test_debug.h>
-
-#define MSG_POOL_SIZE         (4*1024*1024)
-#define BUF_SIZE               8
-#define PING_CNT       10
-#define PING_THRD      2       /* Send and Rx Ping thread */
-
-/* Nanoseconds */
-#define RESUS  10000
-#define MINUS  10000
-#define MAXUS  10000000
-
-static odp_timer_t test_timer_ping;
-static odp_timer_tmo_t test_ping_tmo;
-
-#define PKTSIZE      64
-struct packet {
-       struct icmphdr hdr;
-       char msg[PKTSIZE-sizeof(struct icmphdr)];
-};
-
-static int pid = -1;
-static struct protoent *proto;
-
-static struct sockaddr_in dst_addr;
-
-/* local struct for ping_timer_thread argument */
-typedef struct {
-       pthrd_arg thrdarg;
-       int result;
-} ping_arg_t;
-
-static int ping_sync_flag;
-
-static void dump_icmp_pkt(void *buf, int bytes, int pkt_cnt)
-{
-       struct iphdr *ip = buf;
-#ifdef PKT_SEQ_DUMP
-       /* int i; */
-       LOG_DBG("---dump icmp pkt_cnt %d------\n", pkt_cnt);
-       for (i = 0; i < bytes; i++) {
-               if (!(i & 15))
-                       ODP_DBG("\n %x:  ", i);
-               ODP_DBG("%d ", ((unsigned char *)buf)[i]);
-       }
-       LOG_DBG("\n");
-#endif
-       char addrstr[INET6_ADDRSTRLEN];
-       inet_ntop(AF_INET, &ip->daddr, addrstr, sizeof(addrstr));
-       LOG_DBG("byte %d, Ack rxvd for msg_cnt [%d] from %s\n", bytes, pkt_cnt,
-               addrstr);
-}
-
-static int listen_to_pingack(void)
-{
-       int sd, i;
-       struct sockaddr_in addr;
-       unsigned char buf[1024];
-       int bytes, len;
-       int err = 0;
-
-       sd = socket(PF_INET, SOCK_RAW, proto->p_proto);
-       if (sd < 0) {
-               LOG_ERR("Listener socket open failed\n");
-               err = -1;
-               goto err;
-       }
-
-       for (i = 0; i < PING_CNT; i++) {
-
-               struct pollfd fd;
-               int res;
-
-               fd.fd = sd;
-               fd.events = POLLIN;
-               res = poll(&fd, 1, 1000); /* 1000 ms timeout */
-
-               if (res == 0) {
-                       LOG_DBG(" Rx timeout msg cnt [%d]\n", i);
-                       err = -1;
-               } else if (res == -1) {
-                       LOG_ERR("recvfrom error");
-                       err = -1;
-                       goto err;
-               } else {
-                       len = sizeof(addr);
-
-                       bzero(buf, sizeof(buf));
-                       bytes = recvfrom(sd, buf, sizeof(buf), 0,
-                                        (struct sockaddr *)&addr,
-                                        (socklen_t *)&len);
-                       if (bytes > 0) {
-                               /* pkt rxvd therefore cancel the timeout */
-                               if (odp_timer_cancel_tmo(test_timer_ping,
-                                                        test_ping_tmo) != 0) {
-                                       LOG_ERR("cancel_tmo failed ..exiting 
listner thread\n");
-                                       /* avoid exiting from here even if tmo
-                                        * failed for current ping,
-                                        * allow subsequent ping_rx request */
-                                       err = -1;
-
-                               }
-                               /* cruel bad hack used for sender, listner ipc..
-                                * euwww.. FIXME ..
-                                */
-                               ping_sync_flag = true;
-                               odp_buffer_free(test_ping_tmo);
-                               dump_icmp_pkt(buf, bytes, i);
-                       }
-               }
-       }
-
-err:
-       return err;
-}
-
-static int send_ping_request(struct sockaddr_in *addr)
-{
-       const int val = 255;
-       uint32_t i, j;
-       int sd, cnt = 1;
-       struct packet pckt;
-
-       uint64_t tick;
-       odp_queue_t queue;
-       odp_buffer_t buf;
-
-       int err = 0;
-
-       sd = socket(PF_INET, SOCK_RAW, proto->p_proto);
-       if (sd < 0) {
-               LOG_ERR("Sender socket open failed\n");
-               return -1;
-       }
-
-       if (setsockopt(sd, SOL_IP, IP_TTL, &val, sizeof(val)) != 0) {
-               LOG_ERR("Error setting TTL option\n");
-               err = -1;
-               goto err;
-       }
-       if (fcntl(sd, F_SETFL, O_NONBLOCK) != 0) {
-               LOG_ERR("Request for nonblocking I/O failed\n");
-               err = -1;
-               goto err;
-       }
-
-       /* get the ping queue */
-       queue = odp_queue_lookup("ping_timer_queue");
-
-       for (i = 0; i < PING_CNT; i++) {
-               /* prepare icmp pkt */
-               bzero(&pckt, sizeof(pckt));
-               pckt.hdr.type = ICMP_ECHO;
-               pckt.hdr.un.echo.id = pid;
-
-               for (j = 0; j < sizeof(pckt.msg)-1; j++)
-                       pckt.msg[j] = j+'0';
-
-               pckt.msg[j] = 0;
-               pckt.hdr.un.echo.sequence = cnt++;
-               pckt.hdr.checksum = odp_chksum(&pckt, sizeof(pckt));
-
-
-               /* txmit the pkt */
-               if (sendto(sd, &pckt, sizeof(pckt), 0,
-                          (struct sockaddr *)addr, sizeof(*addr)) <= 0) {
-                       LOG_ERR("sendto operation failed msg_cnt [%d]..exiting"
-                               "sender thread\n", i);
-                       err = -1;
-                       goto err;
-               }
-               printf(" icmp_sent msg_cnt %d\n", i);
-
-               /* arm the timer */
-               tick = odp_timer_current_tick(test_timer_ping);
-
-               tick += 1000;
-               test_ping_tmo = odp_timer_absolute_tmo(test_timer_ping, tick,
-                                                      queue,
-                                                      ODP_BUFFER_INVALID);
-               /* wait for timeout event */
-               while ((buf = odp_queue_deq(queue)) == ODP_BUFFER_INVALID) {
-                       /* flag true means ack rxvd.. a cruel hack as I
-                        * am confused on method to get away from while
-                        * loop in case of ack rxvd..
-                        * FIXME..
-                        */
-                       if (ping_sync_flag) {
-                               ping_sync_flag = false;
-                               LOG_DBG(" icmp_ack msg_cnt [%d]\n", i);
-                               buf = ODP_BUFFER_INVALID;
-                               break;
-                       }
-               }
-
-               /* free tmo_buf for timeout case */
-               if (buf != ODP_BUFFER_INVALID) {
-                       LOG_DBG(" timeout msg_cnt [%i]\n", i);
-                       /* so to avoid seg fault commented */
-                       odp_buffer_free(buf);
-                       err = -1;
-               }
-       }
-
-err:
-       close(sd);
-       return err;
-}
-
-static void *send_ping(void *arg)
-{
-       ping_arg_t *parg = (ping_arg_t *)arg;
-       int thr;
-
-       thr = odp_thread_id();
-
-       printf("Send Ping thread %i starts\n", thr);
-
-       switch (parg->thrdarg.testcase) {
-       case ODP_TIMER_PING_TEST:
-               if (send_ping_request(&dst_addr) < 0)
-                       parg->result = -1;
-               break;
-       default:
-               LOG_ERR("Invalid test case [%d]\n", parg->thrdarg.testcase);
-       }
-
-       fflush(stdout);
-
-       return parg;
-}
-
-static void *rx_ping(void *arg)
-{
-       ping_arg_t *parg = (ping_arg_t *)arg;
-       int thr;
-
-       thr = odp_thread_id();
-
-       printf("Rx Ping thread %i starts\n", thr);
-
-       switch (parg->thrdarg.testcase) {
-       case ODP_TIMER_PING_TEST:
-               if (listen_to_pingack() < 0)
-                       parg->result = -1;
-               break;
-       default:
-               LOG_ERR("Invalid test case [%d]\n", parg->thrdarg.testcase);
-       }
-
-       fflush(stdout);
-
-       return parg;
-}
-
-
-static int ping_init(int count, char *name[])
-{
-       struct hostent *hname;
-       if (count != 2) {
-               LOG_ERR("usage: %s <hostaddr>\n", name[0]);
-               return -1;
-       }
-
-       if (count > 1) {
-               pid = getpid();
-               proto = getprotobyname("ICMP");
-               hname = gethostbyname(name[1]);
-               bzero(&dst_addr, sizeof(dst_addr));
-               dst_addr.sin_family = hname->h_addrtype;
-               dst_addr.sin_port = 0;
-               inet_pton(AF_INET, name[1], &(dst_addr.sin_addr.s_addr));
-       }
-       printf("ping to addr %s\n", name[1]);
-
-       return 0;
-}
-
-int main(int argc ODP_UNUSED, char *argv[] ODP_UNUSED)
-{
-       odph_linux_pthread_t thread_tbl[MAX_WORKERS];
-       ping_arg_t pingarg;
-       odp_queue_t queue;
-       odp_buffer_pool_t pool;
-       void *pool_base;
-       int i;
-       odp_shm_t shm;
-
-       if (odp_test_global_init() != 0)
-               return -1;
-
-       odp_print_system_info();
-
-       if (ping_init(argc, argv) != 0)
-               return -1;
-
-       /*
-        * Create message pool
-        */
-       shm = odp_shm_reserve("msg_pool",
-                             MSG_POOL_SIZE, ODP_CACHE_LINE_SIZE, 0);
-       pool_base = odp_shm_addr(shm);
-
-       pool = odp_buffer_pool_create("msg_pool", pool_base, MSG_POOL_SIZE,
-                                     BUF_SIZE,
-                                     ODP_CACHE_LINE_SIZE,
-                                     ODP_BUFFER_TYPE_RAW);
-       if (pool == ODP_BUFFER_POOL_INVALID) {
-               LOG_ERR("Pool create failed.\n");
-               return -1;
-       }
-
-       /*
-        * Create a queue for timer test
-        */
-       queue = odp_queue_create("ping_timer_queue", ODP_QUEUE_TYPE_SCHED,
-                                NULL);
-
-       if (queue == ODP_QUEUE_INVALID) {
-               LOG_ERR("Timer queue create failed.\n");
-               return -1;
-       }
-
-       test_timer_ping = odp_timer_create("ping_timer", pool,
-                                          RESUS*ODP_TIME_USEC,
-                                          MINUS*ODP_TIME_USEC,
-                                          MAXUS*ODP_TIME_USEC);
-
-       if (test_timer_ping == ODP_TIMER_INVALID) {
-               LOG_ERR("Timer create failed.\n");
-               return -1;
-       }
-
-       odp_shm_print_all();
-
-       pingarg.thrdarg.testcase = ODP_TIMER_PING_TEST;
-       pingarg.thrdarg.numthrds = PING_THRD;
-
-       pingarg.result = 0;
-
-       memset(thread_tbl, 0, sizeof(thread_tbl));
-
-       /* create ping send and Receive thread */
-       for (i = 0; i < PING_THRD; i++) {
-               void *(*run_thread) (void *);
-
-               if (i == 0)
-                       run_thread = send_ping;
-               else
-                       run_thread = rx_ping;
-
-               /* Create and launch worker threads */
-               odph_linux_pthread_create(&thread_tbl[i], 1, i,
-                                         run_thread, (pthrd_arg *)&pingarg);
-       }
-
-       /* Wait for worker threads to exit */
-       odph_linux_pthread_join(thread_tbl, PING_THRD);
-
-       LOG_DBG("ping timer test %s\n", (pingarg.result == 0) ? "passed" :
-               "failed");
-
-       printf("ODP ping timer test complete\n\n");
-
-       return 0;
-}
-- 
1.9.1


_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to