[dpdk-dev] Query on the modified rte_mbuf structure

Bruce Richardson bruce.richardson at intel.com
Mon Jan 5 13:03:03 CET 2015


On Tue, Dec 30, 2014 at 08:58:01AM +0200, Tapio Tallgren wrote:
> Hi,
> 
> I am not sure if I understand the question correctly, but there was a
> change to the rte_mbuf structure with
> patch ea672a8b1655bbb44876d2550ff56f384968a43b. It got rid of the pkt
> member in rte_mbuf. Here is an example of how to fix it:
> 
> -               eth_hdr = (struct ether_hdr *) mb->pkt.data;
> +               eth_hdr = (struct ether_hdr *) mb->data;
> 
> Another way of answering your question is that it is "data" in rte_mbuf:
> 
> -       struct rte_pktmbuf pkt;
> +       /* valid for any segment */
> +       struct rte_mbuf *next;  /**< Next segment of scattered packet. */
> +       void* data;             /**< Start address of data in segment
> buffer. */
> +       uint16_t data_len;      /**< Amount of data in segment buffer. */
> 
> 
> 
> 
> On Thu, Dec 25, 2014 at 11:24 AM, Shankari Vaidyalingam <
> shankari.v2k6 at gmail.com> wrote:
> 
> > Hi,
> >
> >
> > I can see that in the recent releases of DPDK the rte_mbuf structure has
> > undergone some changes.
> > Would like to know which field in the rte_mbuf data structure holds the
> > exact payload of the received packet in the modified structure.
> >
> > Regards
> > Shankari
> >
> 
> 

Best way to get at the packet data is to use the rte_pktmbuf_mtod macro defined
in rte_mbuf.h. This macro should be always kept up-to-date to refer to the
packet data, irrespective of changes to the underlying data structure.

/Bruce


More information about the dev mailing list