Hi Liron, Sorry for the delay in responding as I was vacationing last week. As Matias noted, ODP does not have APIs for dealing with physical addresses, since the concept of a physical address tends to be very platform-specific and not universally shared. ODP refers to packet objects symbolically (odp_packet_t type) and has APIs to provide application addressability to packet segments when needed. I'd be interested in understanding the use case for wanting such an API, however. How would you see these being used?
Thanks. Regards, Bill On Mon, Oct 15, 2018 at 1:40 AM Elo, Matias (Nokia - FI/Espoo) < [email protected]> wrote: > Hi Liron, > > > Is there an external or internal API to retrieve the physical address of a > packet. > > At least for now we haven’t seen a use case for such a function. > > I would like to use the linux-generic memory management implementation > with hugepages. > In DPDK there is : > /** > * A macro that returns the IO address that points to the start of the > * data in the mbuf > * > */ > #define rte_pktmbuf_iova(m) > > rte_pktmbuf_iova() macro returns an address based on predefined iova > pointer + offset. The function for doing the actual virt to phy conversion > is rte_mem_virt2iova() (or rte_mem_virt2phy()). At a quick glance this > function seems quite generic and you could potentially port it to your code. > > Regards, > Matias > >
