diff options
Diffstat (limited to 'src/stateless/cp')
-rw-r--r-- | src/stateless/cp/trex_stream.cpp | 2 | ||||
-rw-r--r-- | src/stateless/cp/trex_stream.h | 35 |
2 files changed, 35 insertions, 2 deletions
diff --git a/src/stateless/cp/trex_stream.cpp b/src/stateless/cp/trex_stream.cpp index 256f7de8..af35dbe9 100644 --- a/src/stateless/cp/trex_stream.cpp +++ b/src/stateless/cp/trex_stream.cpp @@ -130,6 +130,8 @@ TrexStream::TrexStream(uint8_t type, m_num_bursts=1; m_ibg_usec=0.0; m_vm_dp = NULL; + m_flags=0; + m_stream_count=0; } TrexStream::~TrexStream() { diff --git a/src/stateless/cp/trex_stream.h b/src/stateless/cp/trex_stream.h index 72e7bb8b..0f2a16c3 100644 --- a/src/stateless/cp/trex_stream.h +++ b/src/stateless/cp/trex_stream.h @@ -33,6 +33,8 @@ limitations under the License. #include <stdio.h> #include <string.h> #include <common/captureFile.h> +#include <common/bitMan.h> + class TrexRpcCmdAddStream; @@ -118,6 +120,15 @@ public: typedef uint8_t stream_type_t ; + enum DST_MAC_TYPE { + stCFG_FILE = 0, + stPKT = 1, + stARP = 2 + }; + + typedef uint8_t stream_dst_mac_t ; + + static std::string get_stream_type_str(stream_type_t stream_type); public: @@ -163,8 +174,6 @@ public: return (true); } } - - /* can this stream be split ? */ bool is_splitable(uint8_t dp_core_count) const { @@ -218,6 +227,8 @@ public: dp->m_burst_total_pkts = m_burst_total_pkts; dp->m_num_bursts = m_num_bursts; dp->m_ibg_usec = m_ibg_usec; + dp->m_flags = m_flags; + dp->m_stream_count = m_stream_count; return(dp); } @@ -256,10 +267,30 @@ public: void vm_compile(); public: + + void set_override_src_mac_by_pkt_data(bool enable){ + btSetMaskBit16(m_flags,0,0,enable?1:0); + } + + bool get_override_src_mac_by_pkt_data(){ + return (btGetMaskBit16(m_flags,0,0) ?true:false); + } + + void set_override_dst_mac_mode(stream_dst_mac_t val){ + btSetMaskBit16(m_flags,2,1,val&0x3); + } + + stream_dst_mac_t get_override_dst_mac_mode(){ + return ((stream_dst_mac_t)btGetMaskBit16(m_flags,2,1)); + } + +public: /* basic */ uint8_t m_type; uint8_t m_port_id; + uint16_t m_flags; uint32_t m_stream_id; /* id from RPC can be anything */ + uint16_t m_stream_count; /* config fields */ |