Merged,
Maxim.

On 05/20/16 03:03, Bill Fischofer wrote:
For this series:

Reviewed-by: Bill Fischofer <bill.fischo...@linaro.org>

On Thu, May 19, 2016 at 3:48 AM, Matias Elo <matias....@nokia.com> wrote:

Add new function pointer 'print' to pktio_if_ops_t. This can
be used to print pktio type specific debug information.

In case of netmap, it is used to print the current RSS
configuration. rss_conf_print() output format was modified
to be in line with odp_pktio_print().

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                  |  7 ++++++-
  platform/linux-generic/pktio/ipc.c                      |  1 +
  platform/linux-generic/pktio/loop.c                     |  1 +
  platform/linux-generic/pktio/netmap.c                   | 10 ++++++++++
  platform/linux-generic/pktio/pcap.c                     |  1 +
  platform/linux-generic/pktio/socket.c                   | 17
+++++++++--------
  platform/linux-generic/pktio/socket_mmap.c              |  1 +
  platform/linux-generic/pktio/tap.c                      |  1 +
  9 files changed, 31 insertions(+), 9 deletions(-)

diff --git a/platform/linux-generic/include/odp_packet_io_internal.h
b/platform/linux-generic/include/odp_packet_io_internal.h
index 7dd578b..5adfc7e 100644
--- a/platform/linux-generic/include/odp_packet_io_internal.h
+++ b/platform/linux-generic/include/odp_packet_io_internal.h
@@ -175,6 +175,7 @@ int is_free(pktio_entry_t *entry);

  typedef struct pktio_if_ops {
         const char *name;
+       void (*print)(pktio_entry_t *pktio_entry);
         int (*init_global)(void);
         int (*init_local)(void);
         int (*term)(void);
diff --git a/platform/linux-generic/odp_packet_io.c
b/platform/linux-generic/odp_packet_io.c
index db5a3df..15763df 100644
--- a/platform/linux-generic/odp_packet_io.c
+++ b/platform/linux-generic/odp_packet_io.c
@@ -1028,7 +1028,12 @@ void odp_pktio_print(odp_pktio_t id)
                         odp_pktio_promisc_mode(id) ? "yes" : "no");
         str[len] = '\0';

-       ODP_PRINT("\n%s\n", str);
+       ODP_PRINT("\n%s", str);
+
+       if (entry->s.ops->print)
+               entry->s.ops->print(entry);
+
+       ODP_PRINT("\n");
  }

  int odp_pktio_term_global(void)
diff --git a/platform/linux-generic/pktio/ipc.c
b/platform/linux-generic/pktio/ipc.c
index 12cc286..d499a19 100644
--- a/platform/linux-generic/pktio/ipc.c
+++ b/platform/linux-generic/pktio/ipc.c
@@ -726,6 +726,7 @@ static int ipc_close(pktio_entry_t *pktio_entry)

  const pktio_if_ops_t ipc_pktio_ops = {
         .name = "ipc",
+       .print = NULL,
         .init_global = NULL,
         .init_local = NULL,
         .term = NULL,
diff --git a/platform/linux-generic/pktio/loop.c
b/platform/linux-generic/pktio/loop.c
index 38acff1..cbb5ea9 100644
--- a/platform/linux-generic/pktio/loop.c
+++ b/platform/linux-generic/pktio/loop.c
@@ -206,6 +206,7 @@ static int loopback_stats_reset(pktio_entry_t
*pktio_entry ODP_UNUSED)

  const pktio_if_ops_t loopback_pktio_ops = {
         .name = "loop",
+       .print = NULL,
         .init_global = NULL,
         .init_local = NULL,
         .term = NULL,
diff --git a/platform/linux-generic/pktio/netmap.c
b/platform/linux-generic/pktio/netmap.c
index 3e6a4f0..1042fd1 100644
--- a/platform/linux-generic/pktio/netmap.c
+++ b/platform/linux-generic/pktio/netmap.c
@@ -879,8 +879,18 @@ static int netmap_stats_reset(pktio_entry_t
*pktio_entry)
                                    pktio_entry->s.pkt_nm.sockfd);
  }

+static void netmap_print(pktio_entry_t *pktio_entry)
+{
+       odp_pktin_hash_proto_t hash_proto;
+
+       if (rss_conf_get_fd(pktio_entry->s.pkt_nm.sockfd,
+                           pktio_entry->s.pkt_nm.if_name, &hash_proto))
+               rss_conf_print(&hash_proto);
+}
+
  const pktio_if_ops_t netmap_pktio_ops = {
         .name = "netmap",
+       .print = netmap_print,
         .init_global = NULL,
         .init_local = NULL,
         .term = NULL,
diff --git a/platform/linux-generic/pktio/pcap.c
b/platform/linux-generic/pktio/pcap.c
index aab6b42..aeb20ed 100644
--- a/platform/linux-generic/pktio/pcap.c
+++ b/platform/linux-generic/pktio/pcap.c
@@ -421,6 +421,7 @@ static int pcapif_stats(pktio_entry_t *pktio_entry,

  const pktio_if_ops_t pcap_pktio_ops = {
         .name = "pcap",
+       .print = NULL,
         .init_global = NULL,
         .init_local = NULL,
         .open = pcapif_init,
diff --git a/platform/linux-generic/pktio/socket.c
b/platform/linux-generic/pktio/socket.c
index a0aa9af..c0de59f 100644
--- a/platform/linux-generic/pktio/socket.c
+++ b/platform/linux-generic/pktio/socket.c
@@ -419,29 +419,29 @@ void rss_conf_print(const odp_pktin_hash_proto_t
*hash_proto)
         int len = 0;
         int n = max_len - 1;

-       len += snprintf(&str[len], n - len, "RSS conf\n");
+       len += snprintf(&str[len], n - len, " rss conf\n");

         if (hash_proto->proto.ipv4)
                 len += snprintf(&str[len], n - len,
-                               "  IPV4\n");
+                               "    IPV4\n");
         if (hash_proto->proto.ipv4_tcp)
                 len += snprintf(&str[len], n - len,
-                               "  IPV4 TCP\n");
+                               "    IPV4 TCP\n");
         if (hash_proto->proto.ipv4_udp)
                 len += snprintf(&str[len], n - len,
-                               "  IPV4 UDP\n");
+                               "    IPV4 UDP\n");
         if (hash_proto->proto.ipv6)
                 len += snprintf(&str[len], n - len,
-                               "  IPV6\n");
+                               "    IPV6\n");
         if (hash_proto->proto.ipv6_tcp)
                 len += snprintf(&str[len], n - len,
-                               "  IPV6 TCP\n");
+                               "    IPV6 TCP\n");
         if (hash_proto->proto.ipv6_udp)
                 len += snprintf(&str[len], n - len,
-                               "  IPV6 UDP\n");
+                               "    IPV6 UDP\n");
         str[len] = '\0';

-       ODP_PRINT("\n%s\n", str);
+       ODP_PRINT("%s\n", str);
  }

  /*
@@ -868,6 +868,7 @@ static int sock_stats_reset(pktio_entry_t *pktio_entry)

  const pktio_if_ops_t sock_mmsg_pktio_ops = {
         .name = "socket",
+       .print = NULL,
         .init_global = NULL,
         .init_local = NULL,
         .term = NULL,
diff --git a/platform/linux-generic/pktio/socket_mmap.c
b/platform/linux-generic/pktio/socket_mmap.c
index 22a762f..c14ec9f 100644
--- a/platform/linux-generic/pktio/socket_mmap.c
+++ b/platform/linux-generic/pktio/socket_mmap.c
@@ -672,6 +672,7 @@ static int sock_mmap_stats_reset(pktio_entry_t
*pktio_entry)

  const pktio_if_ops_t sock_mmap_pktio_ops = {
         .name = "socket_mmap",
+       .print = NULL,
         .init_global = NULL,
         .init_local = NULL,
         .term = NULL,
diff --git a/platform/linux-generic/pktio/tap.c
b/platform/linux-generic/pktio/tap.c
index 45c4ae1..4ca11e6 100644
--- a/platform/linux-generic/pktio/tap.c
+++ b/platform/linux-generic/pktio/tap.c
@@ -338,6 +338,7 @@ static int tap_capability(pktio_entry_t *pktio_entry
ODP_UNUSED,

  const pktio_if_ops_t tap_pktio_ops = {
         .name = "tap",
+       .print = NULL,
         .init_global = NULL,
         .init_local = NULL,
         .term = NULL,
--
1.9.1

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

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

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

Reply via email to