Signed-off-by: Ciprian Barbu <[email protected]>
---
 platform/linux-netmap/include/odp_packet_netmap.h | 10 ++--
 platform/linux-netmap/odp_packet_netmap.c         | 64 +++++++++++------------
 2 files changed, 36 insertions(+), 38 deletions(-)

diff --git a/platform/linux-netmap/include/odp_packet_netmap.h 
b/platform/linux-netmap/include/odp_packet_netmap.h
index 22f89f0..161b968 100644
--- a/platform/linux-netmap/include/odp_packet_netmap.h
+++ b/platform/linux-netmap/include/odp_packet_netmap.h
@@ -27,15 +27,15 @@
 /** Packet socket using netmap mmaped rings for both Rx and Tx */
 typedef struct {
        odp_buffer_pool_t pool;
-       size_t max_frame_len; /**< max frame len = buf_size - sizeof(pkt_hdr) */
-       size_t frame_offset; /**< frame start offset from start of pkt buf */
-       size_t buf_size; /**< size of buffer payload in 'pool' */
-       struct nm_desc *nm_desc;
+       size_t max_frame_len;           /* buf_size - sizeof(pkt_hdr) */
+       size_t frame_offset;            /* offset from start of pkt buf */
+       size_t buf_size;                /* size of buffer payload in 'pool' */
+       struct nm_desc *desc;           /* netmap meta-data for the device */
        uint32_t begin;
        uint32_t end;
        struct netmap_ring *rxring;
        struct netmap_ring *txring;
-       odp_queue_t tx_access; /* Used for exclusive access to send packets */
+       odp_queue_t tx_access;          /* exclusive access to send packets */
        uint32_t if_flags;
        char ifname[32];
 } pkt_netmap_t;
diff --git a/platform/linux-netmap/odp_packet_netmap.c 
b/platform/linux-netmap/odp_packet_netmap.c
index 47a15cb..6d5228d 100644
--- a/platform/linux-netmap/odp_packet_netmap.c
+++ b/platform/linux-netmap/odp_packet_netmap.c
@@ -91,7 +91,9 @@ static int nm_do_ioctl(pkt_netmap_t * const pkt_nm, unsigned 
long cmd,
        case SIOCGIFFLAGS:
                pkt_nm->if_flags = (ifr.ifr_flags << 16) |
                        (0xffff & ifr.ifr_flags);
-               ODP_DBG("flags are 0x%x\n", pkt_nm->if_flags);
+               ODP_DBG("[%04d] flags are 0x%x\n",
+                       odp_thread_id(),
+                       pkt_nm->if_flags);
                break;
        default:
                break;
@@ -107,7 +109,7 @@ done:
 int setup_pkt_netmap(pkt_netmap_t * const pkt_nm, const char *netdev,
                     odp_buffer_pool_t pool)
 {
-       char ifname[32];
+       char ifname[IFNAMSIZ];
        odp_packet_t pkt;
        uint8_t *pkt_buf;
        uint8_t *l2_hdr;
@@ -134,27 +136,29 @@ int setup_pkt_netmap(pkt_netmap_t * const pkt_nm, const 
char *netdev,
 
        strncpy(pkt_nm->ifname, netdev, sizeof(pkt_nm->ifname));
        snprintf(ifname, sizeof(ifname), "netmap:%s", netdev);
-       pkt_nm->nm_desc = nm_open(ifname, NULL, 0, 0);
+       pkt_nm->desc = nm_open(ifname, NULL, 0, 0);
 
-       if (pkt_nm->nm_desc == NULL) {
+       if (pkt_nm->desc == NULL) {
                ODP_ERR("Error opening nm interface: %s\n", strerror(errno));
                return -1;
        }
 
-       ODP_DBG("thread %d mmap addr %p\n",
+       ODP_DBG("[%04d] mmap addr %p\n",
                odp_thread_id(),
-               pkt_nm->nm_desc->mem);
+               pkt_nm->desc->mem);
 
        pkt_nm->begin  = 0;
-       pkt_nm->end    = pkt_nm->nm_desc->req.nr_rx_rings;
-       pkt_nm->rxring = NETMAP_RXRING(pkt_nm->nm_desc->nifp, 0);
-       pkt_nm->txring = NETMAP_TXRING(pkt_nm->nm_desc->nifp, 0);
+       pkt_nm->end    = pkt_nm->desc->req.nr_rx_rings;
+       pkt_nm->rxring = NETMAP_RXRING(pkt_nm->desc->nifp, 0);
+       pkt_nm->txring = NETMAP_TXRING(pkt_nm->desc->nifp, 0);
 
        ret = nm_do_ioctl(pkt_nm, SIOCGIFFLAGS, 0);
        if (ret)
                return ret;
        if ((pkt_nm->if_flags & IFF_UP) == 0) {
-               ODP_DBG("%s is down, bringing up...\n", pkt_nm->ifname);
+               ODP_DBG("[%04d] %s is down, bringing up...\n",
+                       odp_thread_id(),
+                       pkt_nm->ifname);
                pkt_nm->if_flags |= IFF_UP;
        }
        if (ETH_PROMISC) {
@@ -163,11 +167,13 @@ int setup_pkt_netmap(pkt_netmap_t * const pkt_nm, const 
char *netdev,
        }
        ret = nm_do_ioctl(pkt_nm, SIOCETHTOOL, ETHTOOL_SGSO);
        if (ret)
-               ODP_DBG("ETHTOOL_SGSO not supported\n");
+               ODP_DBG("[%04d] ETHTOOL_SGSO not supported\n",
+                       odp_thread_id());
 
        ret = nm_do_ioctl(pkt_nm, SIOCETHTOOL, ETHTOOL_STSO);
        if (ret)
-               ODP_DBG("ETHTOOL_STSO not supported\n");
+               ODP_DBG("[%04d] ETHTOOL_STSO not supported\n",
+                       odp_thread_id());
        /* TODO: This seems to cause the app to not receive frames
         * first time it is launched after netmap driver is inserted.
         * Should be investigated further.
@@ -177,20 +183,23 @@ int setup_pkt_netmap(pkt_netmap_t * const pkt_nm, const 
char *netdev,
         */
        ret = nm_do_ioctl(pkt_nm, SIOCETHTOOL, ETHTOOL_STXCSUM);
        if (ret)
-               ODP_DBG("ETHTOOL_STXCSUM not supported\n");
+               ODP_DBG("[%04d] ETHTOOL_STXCSUM not supported\n",
+                       odp_thread_id());
 
-       ODP_DBG("Wait for link to come up\n");
+       ODP_DBG("[%04d] Wait for link to come up\n",
+               odp_thread_id());
        sleep(WAITLINK_TMO);
-       ODP_DBG("Done\n");
+       ODP_DBG("[%04d] Done\n",
+               odp_thread_id());
 
        return 0;
 }
 
 int close_pkt_netmap(pkt_netmap_t * const pkt_nm)
 {
-       if (pkt_nm->nm_desc != NULL) {
-               nm_close(pkt_nm->nm_desc);
-               pkt_nm->nm_desc = NULL;
+       if (pkt_nm->desc != NULL) {
+               nm_close(pkt_nm->desc);
+               pkt_nm->desc = NULL;
        }
 
        return 0;
@@ -210,7 +219,7 @@ int recv_pkt_netmap(pkt_netmap_t * const pkt_nm, 
odp_packet_t pkt_table[],
        int ret;
 #endif
 
-       fd = pkt_nm->nm_desc->fd;
+       fd = pkt_nm->desc->fd;
 #ifdef NETMAP_BLOCKING_IO
        fds[0].fd = fd;
        fds[0].events = POLLIN;
@@ -236,7 +245,7 @@ int recv_pkt_netmap(pkt_netmap_t * const pkt_nm, 
odp_packet_t pkt_table[],
                                break;
                        }
 
-                       rxring = NETMAP_RXRING(pkt_nm->nm_desc->nifp, ringid);
+                       rxring = NETMAP_RXRING(pkt_nm->desc->nifp, ringid);
                }
 
                if (ringid == pkt_nm->end)
@@ -246,8 +255,6 @@ int recv_pkt_netmap(pkt_netmap_t * const pkt_nm, 
odp_packet_t pkt_table[],
                if (nm_ring_space(rxring) < limit)
                        limit = nm_ring_space(rxring);
 
-               ODP_DBG("receiving %d frames out of %u\n", limit, len);
-
                for (rx = 0; rx < limit; rx++) {
                        struct netmap_slot *rslot;
                        char *p;
@@ -305,9 +312,6 @@ int recv_pkt_netmap(pkt_netmap_t * const pkt_nm, 
odp_packet_t pkt_table[],
        if (odp_unlikely(pkt != ODP_PACKET_INVALID))
                odp_buffer_free((odp_buffer_t) pkt);
 
-       if (nb_rx)
-               ODP_DBG("<=== rcvd %03u frames from netmap adapter\n", nb_rx);
-
        return nb_rx;
 }
 
@@ -326,7 +330,7 @@ int send_pkt_netmap(pkt_netmap_t * const pkt_nm, 
odp_packet_t pkt_table[],
        int ret;
 #endif
 
-       fd = pkt_nm->nm_desc->fd;
+       fd = pkt_nm->desc->fd;
 #ifdef NETMAP_BLOCKING_IO
        fds[0].fd = fd;
        fds[0].events = POLLOUT;
@@ -352,7 +356,7 @@ int send_pkt_netmap(pkt_netmap_t * const pkt_nm, 
odp_packet_t pkt_table[],
                                break;
                        }
 
-                       txring = NETMAP_TXRING(pkt_nm->nm_desc->nifp, ringid);
+                       txring = NETMAP_TXRING(pkt_nm->desc->nifp, ringid);
                }
 
                if (ringid == pkt_nm->end)
@@ -362,9 +366,6 @@ int send_pkt_netmap(pkt_netmap_t * const pkt_nm, 
odp_packet_t pkt_table[],
                if (nm_ring_space(txring) < limit)
                        limit = nm_ring_space(txring);
 
-               ODP_DBG("Sending %d packets out of %d to netmap %p %u\n",
-                       limit, len, txring, txring->cur);
-
                for (tx = 0; tx < limit; tx++) {
                        struct netmap_slot *tslot;
                        size_t frame_len;
@@ -392,9 +393,6 @@ int send_pkt_netmap(pkt_netmap_t * const pkt_nm, 
odp_packet_t pkt_table[],
        ioctl(fd, NIOCTXSYNC, NULL);
 #endif
 
-       if (nb_tx)
-               ODP_DBG("===> sent %03u frames to netmap adapter\n", nb_tx);
-
        for (tx = 0; tx < len; tx++)
                odph_packet_free(pkt_table[tx]);
 
-- 
1.8.3.2


_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to