diff options
author | 2016-10-31 11:58:27 +0200 | |
---|---|---|
committer | 2016-11-02 15:08:35 +0200 | |
commit | 0337db2b07c2c054ee5c5ea49cab6cfce5d5a897 (patch) | |
tree | ea29f13937170a989697356ed9f777dc4db4670f /src/stateless/cp | |
parent | 02ab06b1cf8886be0a6fde5360497b4fa968d3a3 (diff) |
draft: RX software feature
Signed-off-by: imarom <imarom@cisco.com>
Diffstat (limited to 'src/stateless/cp')
-rw-r--r-- | src/stateless/cp/trex_stateless_port.cpp | 27 | ||||
-rw-r--r-- | src/stateless/cp/trex_stateless_port.h | 13 |
2 files changed, 40 insertions, 0 deletions
diff --git a/src/stateless/cp/trex_stateless_port.cpp b/src/stateless/cp/trex_stateless_port.cpp index 9bb20990..5d31abbf 100644 --- a/src/stateless/cp/trex_stateless_port.cpp +++ b/src/stateless/cp/trex_stateless_port.cpp @@ -25,6 +25,7 @@ limitations under the License. #include <trex_streams_compiler.h> #include <common/basic_utils.h> #include <common/captureFile.h> +#include "trex_stateless_rx_defs.h" #include <string> @@ -944,6 +945,32 @@ TrexStatelessPort::remove_and_delete_all_streams() { } } +/** + * set the filter type for a port + * + * @author imarom (10/31/2016) + * + * @param rx_sw_cfg + */ +void +TrexStatelessPort::set_rx_filter_mode(rx_filter_mode_e filter_mode) { + TrexStatelessCpToRxMsgBase *msg = new TrexStatelessRxSetFilterMode(m_port_id, filter_mode); + send_message_to_rx(msg); +} + +RxPacketBuffer * +TrexStatelessPort::get_rx_sw_pkts() { + + /* ask RX core for the pkt queue */ + TrexStatelessMsgReply<RxPacketBuffer *> msg_reply; + + TrexStatelessCpToRxMsgBase *msg = new TrexStatelessRxSwGetPkts(m_port_id, msg_reply); + send_message_to_rx(msg); + + RxPacketBuffer *pkt_buffer = msg_reply.wait_for_reply(); + return pkt_buffer; +} + /************* Trex Port Owner **************/ TrexPortOwner::TrexPortOwner() { diff --git a/src/stateless/cp/trex_stateless_port.h b/src/stateless/cp/trex_stateless_port.h index e2a2aeba..41453caa 100644 --- a/src/stateless/cp/trex_stateless_port.h +++ b/src/stateless/cp/trex_stateless_port.h @@ -24,12 +24,14 @@ limitations under the License. #include "common/basic_utils.h" #include "internal_api/trex_platform_api.h" #include "trex_dp_port_events.h" +#include "trex_stateless_rx_defs.h" #include "trex_stream.h" class TrexStatelessCpToDpMsgBase; class TrexStatelessCpToRxMsgBase; class TrexStreamsGraphObj; class TrexPortMultiplier; +class RxPacketBuffer; /** * TRex port owner can perform @@ -369,6 +371,17 @@ public: void get_pci_info(std::string &pci_addr, int &numa_node); + /** + * set RX filter mode + * can be hardware or software + */ + void set_rx_filter_mode(rx_filter_mode_e); + + /** + * fetch the RX software packets from the queue + * + */ + RxPacketBuffer *get_rx_sw_pkts(); private: |