diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/pal/linux/mbuf.cpp | 10 | ||||
-rw-r--r-- | src/stateless/cp/trex_stateless_port.cpp | 8 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/pal/linux/mbuf.cpp b/src/pal/linux/mbuf.cpp index 26a54fe9..7e9f4775 100755 --- a/src/pal/linux/mbuf.cpp +++ b/src/pal/linux/mbuf.cpp @@ -89,7 +89,7 @@ void utl_rte_mempool_delete(rte_mempool_t * & pool){ uint16_t rte_mbuf_refcnt_update(rte_mbuf_t *m, int16_t value) { utl_rte_pktmbuf_check(m); - uint32_t a=sanb_atomic_add_return_32_old(&m->refcnt_reserved,1); + uint32_t a=sanb_atomic_add_return_32_old(&m->refcnt_reserved, value); return (a); } @@ -136,11 +136,11 @@ rte_mbuf_t *rte_pktmbuf_alloc(rte_mempool_t *mp){ m->buf_addr =(char *)((char *)m+sizeof(rte_mbuf_t)+RTE_PKTMBUF_HEADROOM) ; rte_pktmbuf_reset(m); + return (m); } - void rte_pktmbuf_free_seg(rte_mbuf_t *m){ utl_rte_pktmbuf_check(m); @@ -150,8 +150,10 @@ void rte_pktmbuf_free_seg(rte_mbuf_t *m){ if ( md != m ) { rte_pktmbuf_detach(m); - if (rte_mbuf_refcnt_update(md, -1) == 0) - free(md); + if (rte_mbuf_refcnt_update(md, -1) == 0) { + free(md); + } + } free(m); diff --git a/src/stateless/cp/trex_stateless_port.cpp b/src/stateless/cp/trex_stateless_port.cpp index 976d2a09..05283d5f 100644 --- a/src/stateless/cp/trex_stateless_port.cpp +++ b/src/stateless/cp/trex_stateless_port.cpp @@ -597,9 +597,15 @@ TrexStatelessPort::validate(void) { void TrexStatelessPort::get_port_effective_rate(uint64_t &bps, uint64_t &pps) { - if (!m_graph_obj) { + + if (get_stream_count() == 0) { return; } + + if (!m_graph_obj) { + generate_streams_graph(); + } + bps = m_graph_obj->get_max_bps() * m_factor; pps = m_graph_obj->get_max_pps() * m_factor; } |