NetSys / NetBricks

NetBricks: A new network function framework based on Rust.
ISC License
464 stars 75 forks source link

discrepancy between struct MBuf (mbuf.rs) and rte_mbuf(rte_mbuf.h) with DPDK 17.08 #89

Closed rstade closed 6 years ago

rstade commented 6 years ago

Hi, I just recognized that the Netbricks master branch uses: pub struct MBuf { buf_addr: *mut u8, phys_addr: usize, data_off: u16, refcnt: u16, nb_segs: u8, port: u8, ... } However in the corresponding 17.08 DPDK header file rte_mbuf.h (see e.g. http://dpdk.org/browse/dpdk/tree/lib/librte_mbuf/rte_mbuf.h?h=v17.08&id=02657b4adcb8af773e26ec061b01cd7abdd3f0b6) the struct rte_mbuf is using uint_16 for nb_segs and port:

    uint16_t nb_segs;         /**< Number of segments. */

/** Input port (16 bits to support more than 256 virtual ports). */
uint16_t port;

I am wondering how this can work. Please compare also my branch e2d2-0-1-1 in my fork.

Rainer

apanda commented 6 years ago

Sorry for the delay, this wads fixed by eb2917b where we took a slightly different tack to fixing this problem.