The rte_mbuf structure is modified by the following commits in dpdk:
 mbuf: rename vlan_macip_len in hw_offload and increase its size
 mbuf: change ol_flags to 32 bits
 mbuf: replace data pointer by an offset
 mbuf: merge physaddr and buf_len in a bitfield
 mbuf: remove the rte_pktmbuf structure
 mbuf: remove rte_ctrlmbuf

We need to modify to conform to this new struct.

Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
---
 pmd/vmxnet3.c | 51 ++++++++++++++++++++++++---------------------------
 1 file changed, 24 insertions(+), 27 deletions(-)

diff --git a/pmd/vmxnet3.c b/pmd/vmxnet3.c
index 3f3f715..69bc4d5 100644
--- a/pmd/vmxnet3.c
+++ b/pmd/vmxnet3.c
@@ -54,7 +54,7 @@

 typedef void rte_txq_t;
 typedef void rte_rxq_t;
-#define RTE_MBUF_VLAN_MAC_IP(m) (m)->pkt.vlan_macip.f.vlan_tci
+#define RTE_MBUF_VLAN_MAC_IP(m) (m)->hw_offload.vlan_tci

 #define VMXNET3_MAX_MAC_ADDRS 1

@@ -73,14 +73,12 @@ rte_rxmbuf_alloc(struct rte_mempool *mp)
 {
        struct rte_mbuf *m;
        m = __rte_mbuf_raw_alloc(mp);
-       __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 0);
+       __rte_mbuf_sanity_check(m, 0);
        return m;
 }

 #define RTE_MBUF_DATA_DMA_ADDR(mb) \
-       (uint64_t) ((mb)->buf_physaddr       + \
-       (uint64_t) ((char *)((mb)->pkt.data) - \
-       (char *)(mb)->buf_addr))
+       (uint64_t) ((mb)->buf_physaddr + (mb)->data_off)

 #ifndef min
 #define min(x, y) ((x)<(y) ? (x) : (y))
@@ -314,16 +312,15 @@ queue_rx_complete(struct vmxnet3_rx_queue *rq,

                /* Buffer information */
                if ((*binfo & 0x01) == VMXNET3_RXD_BTYPE_HEAD) {
-                       buf->pkt.data = ((char *)buf->buf_addr +
-                                        RTE_PKTMBUF_HEADROOM);
+                       buf->data_off = RTE_PKTMBUF_HEADROOM;
                } else {
-                       buf->pkt.data = (char *)buf->buf_addr;
+                       buf->data_off = 0;
                }
-               buf->pkt.nb_segs = 1;
-               buf->pkt.next = NULL;
-               buf->pkt.pkt_len = rcd->len;
-               buf->pkt.data_len = rcd->len;
-               buf->pkt.in_port = rq->port_id;
+               buf->nb_segs = 1;
+               buf->next = NULL;
+               buf->pkt_len = rcd->len;
+               buf->data_len = rcd->len;
+               buf->in_port = rq->port_id;
                buf->ol_flags = 0; // RSS - FDIR // Error
                RTE_MBUF_VLAN_MAC_IP(buf) = 0;

@@ -344,11 +341,11 @@ queue_rx_complete(struct vmxnet3_rx_queue *rq,
                        head = tail = buf;
                        prev_tail = NULL;
                } else {
-                       tail->pkt.next = buf;
+                       tail->next = buf;
                        prev_tail = tail;
                        tail = buf;
-                       ++head->pkt.nb_segs;
-                       head->pkt.pkt_len += rcd->len;
+                       ++head->nb_segs;
+                       head->pkt_len += rcd->len;
                }

                assert(head != NULL);
@@ -381,8 +378,8 @@ queue_rx_complete(struct vmxnet3_rx_queue *rq,
                        assert(head != tail);
                        if (unlikely(rcd->len == 0)) {
                                /* Remove useless empty fragment. */
-                               prev_tail->pkt.next = NULL;
-                               --head->pkt.nb_segs;
+                               prev_tail->next = NULL;
+                               --head->nb_segs;
                                tail = prev_tail;
                                prev_tail = NULL;
                                rte_pktmbuf_free(buf);
@@ -474,7 +471,7 @@ send_packet(struct vmxnet3_tx_queue *tq,

        /* Make sure len doesn't overflow. */
        assert(len >= 0);
-       assert((unsigned int)len <= mbuf->pkt.pkt_len);
+       assert((unsigned int)len <= mbuf->pkt_len);

        /* Zero-sized packets can't be transmitted. Silently ignore them. */
        if (len == 0) {
@@ -488,7 +485,7 @@ send_packet(struct vmxnet3_tx_queue *tq,
         * than the first segment size and less or equal to
         * VMXNET3_HDR_COPY_SIZE.
         */
-       copy_size = ((mbuf->pkt.data_len < len) ? mbuf->pkt.data_len : len);
+       copy_size = ((mbuf->data_len < len) ? mbuf->data_len : len);
        if (copy_size > VMXNET3_HDR_COPY_SIZE)
                copy_size = VMXNET3_HDR_COPY_SIZE;

@@ -502,11 +499,11 @@ send_packet(struct vmxnet3_tx_queue *tq,
         * An extra descriptor is required for the data ring part if
         * copy_size is nonzero.
         */
-       count = mbuf->pkt.nb_segs;
+       count = mbuf->nb_segs;
        assert(count >= 1);
-       if (mbuf->pkt.data_len == copy_size) {
+       if (mbuf->data_len == copy_size) {
                /* First segment is either in the data ring or empty. */
-               cur = mbuf->pkt.next;
+               cur = mbuf->next;
                offset = 0;
        } else {
                /* Rest of the first segment needs its own descriptor. */
@@ -550,7 +547,7 @@ send_packet(struct vmxnet3_tx_queue *tq,
                dw2 |= (copy_size & (VMXNET3_TXD_GEN - 1));
                tdd = tq->data_ring.base + tq->tx_ring.next2fill;
                /* Copy to the data ring. */
-               memcpy(tdd->data, mbuf->pkt.data, copy_size);
+               memcpy(tdd->data, rte_pktmbuf_mtod(mbuf, char *), copy_size);
                tmp.txd.addr =
                        rte_cpu_to_le_64(tq->data_ring.basePA +
                                         tq->tx_ring.next2fill *
@@ -581,7 +578,7 @@ send_packet(struct vmxnet3_tx_queue *tq,
                int buf_size;

                assert(cur != NULL);
-               buf_size = min(len, (cur->pkt.data_len - offset));
+               buf_size = min(len, (cur->data_len - offset));
                if (buf_size == 0) {
                        /*
                         * Can't fill a descriptor with an empty segment,
@@ -625,7 +622,7 @@ send_packet(struct vmxnet3_tx_queue *tq,
                gdesc = tq->tx_ring.base + tq->tx_ring.next2fill;
        skip:
                offset = 0;
-               cur = cur->pkt.next;
+               cur = cur->next;
        }

        /* Reverse gen bit in SOP descriptor. */
@@ -781,7 +778,7 @@ eth_tx_burst(rte_txq_t *txq,
        int num;

        for (num = 0; num < nb_pkts; num++) {
-               int ret = send_packet(tq, tx_pkts[num]->pkt.pkt_len,
+               int ret = send_packet(tq, tx_pkts[num]->pkt_len,
                                      tx_pkts[num]);
                if (ret == -1) {
                        break;
-- 
1.9.2

Reply via email to