36 lines
821 B
C++
36 lines
821 B
C++
#pragma once
|
|
|
|
#include <rte_ethdev.h>
|
|
#include <rte_mbuf.h>
|
|
|
|
#include "Definitions.hpp"
|
|
#include "PacketDissection/MbufContainer.hpp"
|
|
|
|
/**
|
|
* @brief for received mbufs. you poll them, read them and finally... forget
|
|
* them
|
|
*
|
|
*/
|
|
class MbufContainerReceiving : public MbufContainer {
|
|
private:
|
|
uint16_t _rx_port;
|
|
uint16_t _rx_queue;
|
|
|
|
public:
|
|
inline MbufContainerReceiving(rte_mempool* mempool, uint16_t rx_port,
|
|
uint16_t rx_queue)
|
|
: MbufContainer(mempool), _rx_port(rx_port), _rx_queue(rx_queue) {}
|
|
|
|
/**
|
|
* @brief poll mbufs
|
|
*
|
|
* @return uint16_t
|
|
*/
|
|
inline uint16_t poll_mbufs() {
|
|
|
|
_nb_mbufs_in_container =
|
|
rte_eth_rx_burst(_rx_port, _rx_queue, _mbuf_arr, BURST_SIZE);
|
|
|
|
return _nb_mbufs_in_container;
|
|
}
|
|
}; |