Add default implementations for odp_pktin_ts_from_ns() using
odp global time.

Signed-off-by: Matias Elo <matias....@nokia.com>
---
 platform/linux-generic/include/odp_packet_io_internal.h |  1 +
 platform/linux-generic/odp_packet_io.c                  | 17 +++++++++++++++++
 platform/linux-generic/pktio/dpdk.c                     |  1 +
 platform/linux-generic/pktio/ipc.c                      |  1 +
 platform/linux-generic/pktio/loop.c                     |  1 +
 platform/linux-generic/pktio/netmap.c                   |  1 +
 platform/linux-generic/pktio/pcap.c                     |  1 +
 platform/linux-generic/pktio/socket.c                   |  1 +
 platform/linux-generic/pktio/socket_mmap.c              |  1 +
 platform/linux-generic/pktio/tap.c                      |  1 +
 10 files changed, 26 insertions(+)

diff --git a/platform/linux-generic/include/odp_packet_io_internal.h 
b/platform/linux-generic/include/odp_packet_io_internal.h
index c76ea1f..ee7fc71 100644
--- a/platform/linux-generic/include/odp_packet_io_internal.h
+++ b/platform/linux-generic/include/odp_packet_io_internal.h
@@ -185,6 +185,7 @@ typedef struct pktio_if_ops {
        int (*stats)(pktio_entry_t *pktio_entry, odp_pktio_stats_t *stats);
        int (*stats_reset)(pktio_entry_t *pktio_entry);
        uint64_t (*pktin_ts_res)(pktio_entry_t *pktio_entry);
+       odp_time_t (*pktin_ts_from_ns)(pktio_entry_t *pktio_entry, uint64_t ns);
        int (*recv)(pktio_entry_t *pktio_entry, odp_packet_t pkt_table[],
                    unsigned len);
        int (*send)(pktio_entry_t *pktio_entry, odp_packet_t pkt_table[],
diff --git a/platform/linux-generic/odp_packet_io.c 
b/platform/linux-generic/odp_packet_io.c
index 295a758..4946f78 100644
--- a/platform/linux-generic/odp_packet_io.c
+++ b/platform/linux-generic/odp_packet_io.c
@@ -938,6 +938,23 @@ uint64_t odp_pktin_ts_res(odp_pktio_t id)
        return odp_time_global_res();
 }
 
+odp_time_t odp_pktin_ts_from_ns(odp_pktio_t id, uint64_t ns)
+{
+       pktio_entry_t *entry;
+
+       entry = get_pktio_entry(id);
+
+       if (entry == NULL) {
+               ODP_DBG("pktio entry %d does not exist\n", id);
+               return ODP_TIME_NULL;
+       }
+
+       if (entry->s.ops->pktin_ts_from_ns)
+               return entry->s.ops->pktin_ts_from_ns(entry, ns);
+
+       return odp_time_global_from_ns(ns);
+}
+
 void odp_pktio_print(odp_pktio_t id)
 {
        pktio_entry_t *entry;
diff --git a/platform/linux-generic/pktio/dpdk.c 
b/platform/linux-generic/pktio/dpdk.c
index d67fb01..ea7b925 100644
--- a/platform/linux-generic/pktio/dpdk.c
+++ b/platform/linux-generic/pktio/dpdk.c
@@ -928,6 +928,7 @@ const pktio_if_ops_t dpdk_pktio_ops = {
        .mac_get = dpdk_mac_addr_get,
        .capability = dpdk_capability,
        .pktin_ts_res = NULL,
+       .pktin_ts_from_ns = NULL,
        .input_queues_config = dpdk_input_queues_config,
        .output_queues_config = dpdk_output_queues_config
 };
diff --git a/platform/linux-generic/pktio/ipc.c 
b/platform/linux-generic/pktio/ipc.c
index ca8eaa5..cd7e32f 100644
--- a/platform/linux-generic/pktio/ipc.c
+++ b/platform/linux-generic/pktio/ipc.c
@@ -727,4 +727,5 @@ const pktio_if_ops_t ipc_pktio_ops = {
        .promisc_mode_get = NULL,
        .mac_get = ipc_mac_addr_get,
        .pktin_ts_res = NULL,
+       .pktin_ts_from_ns = NULL,
 };
diff --git a/platform/linux-generic/pktio/loop.c 
b/platform/linux-generic/pktio/loop.c
index 1a7a572..396b769 100644
--- a/platform/linux-generic/pktio/loop.c
+++ b/platform/linux-generic/pktio/loop.c
@@ -185,6 +185,7 @@ const pktio_if_ops_t loopback_pktio_ops = {
        .link_status = loopback_link_status,
        .capability = NULL,
        .pktin_ts_res = NULL,
+       .pktin_ts_from_ns = NULL,
        .input_queues_config = NULL,
        .output_queues_config = NULL,
        .recv_queue = NULL,
diff --git a/platform/linux-generic/pktio/netmap.c 
b/platform/linux-generic/pktio/netmap.c
index cf116fe..c2a6b34 100644
--- a/platform/linux-generic/pktio/netmap.c
+++ b/platform/linux-generic/pktio/netmap.c
@@ -862,6 +862,7 @@ const pktio_if_ops_t netmap_pktio_ops = {
        .mac_get = netmap_mac_addr_get,
        .capability = netmap_capability,
        .pktin_ts_res = NULL,
+       .pktin_ts_from_ns = NULL,
        .input_queues_config = netmap_input_queues_config,
        .output_queues_config = netmap_output_queues_config,
        .recv_queue = netmap_recv_queue,
diff --git a/platform/linux-generic/pktio/pcap.c 
b/platform/linux-generic/pktio/pcap.c
index d33f04f..c8769f5 100644
--- a/platform/linux-generic/pktio/pcap.c
+++ b/platform/linux-generic/pktio/pcap.c
@@ -408,6 +408,7 @@ const pktio_if_ops_t pcap_pktio_ops = {
        .mac_get = pcapif_mac_addr_get,
        .capability = NULL,
        .pktin_ts_res = NULL,
+       .pktin_ts_from_ns = NULL,
        .input_queues_config = NULL,
        .output_queues_config = NULL,
        .recv_queue = NULL,
diff --git a/platform/linux-generic/pktio/socket.c 
b/platform/linux-generic/pktio/socket.c
index 7416a8c..c5cbc2d 100644
--- a/platform/linux-generic/pktio/socket.c
+++ b/platform/linux-generic/pktio/socket.c
@@ -857,6 +857,7 @@ const pktio_if_ops_t sock_mmsg_pktio_ops = {
        .link_status = sock_link_status,
        .capability = NULL,
        .pktin_ts_res = NULL,
+       .pktin_ts_from_ns = NULL,
        .input_queues_config = NULL,
        .output_queues_config = NULL,
        .recv_queue = NULL,
diff --git a/platform/linux-generic/pktio/socket_mmap.c 
b/platform/linux-generic/pktio/socket_mmap.c
index d36668a..6d211ec 100644
--- a/platform/linux-generic/pktio/socket_mmap.c
+++ b/platform/linux-generic/pktio/socket_mmap.c
@@ -626,6 +626,7 @@ const pktio_if_ops_t sock_mmap_pktio_ops = {
        .link_status = sock_mmap_link_status,
        .capability = NULL,
        .pktin_ts_res = NULL,
+       .pktin_ts_from_ns = NULL,
        .input_queues_config = NULL,
        .output_queues_config = NULL,
        .recv_queue = NULL,
diff --git a/platform/linux-generic/pktio/tap.c 
b/platform/linux-generic/pktio/tap.c
index d075bbb..abc49fa 100644
--- a/platform/linux-generic/pktio/tap.c
+++ b/platform/linux-generic/pktio/tap.c
@@ -325,4 +325,5 @@ const pktio_if_ops_t tap_pktio_ops = {
        .promisc_mode_get = tap_promisc_mode_get,
        .mac_get = tap_mac_addr_get,
        .pktin_ts_res = NULL,
+       .pktin_ts_from_ns = NULL,
 };
-- 
1.9.1

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

Reply via email to