summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/bp_sim.cpp18
-rwxr-xr-xsrc/bp_sim.h37
-rw-r--r--src/sim/trex_sim.h2
3 files changed, 43 insertions, 14 deletions
diff --git a/src/bp_sim.cpp b/src/bp_sim.cpp
index 040c0858..31ce0440 100755
--- a/src/bp_sim.cpp
+++ b/src/bp_sim.cpp
@@ -4705,13 +4705,11 @@ int CErfIFStl::send_node(CGenNode * _no_to_use){
rte_pktmbuf_free(m);
}
-
- BP_ASSERT(m_writer);
- bool res=m_writer->write_packet(m_raw);
-
-
- BP_ASSERT(res);
+
+ int rc = write_pkt(m_raw);
+ BP_ASSERT(rc == 0);
}
+
return (0);
}
@@ -4749,13 +4747,9 @@ int CErfIF::send_node(CGenNode * node){
//utl_DumpBuffer(stdout,p, 12,0);
- BP_ASSERT(m_writer);
-
- bool res=m_writer->write_packet(m_raw);
-
- //utl_DumpBuffer(stdout,m_raw->raw,m_raw->pkt_len,0);
+ int rc = write_pkt(m_raw);
+ BP_ASSERT(rc == 0);
- BP_ASSERT(res);
rte_pktmbuf_free(m);
}
return (0);
diff --git a/src/bp_sim.h b/src/bp_sim.h
index 4b906912..c8775a61 100755
--- a/src/bp_sim.h
+++ b/src/bp_sim.h
@@ -1835,7 +1835,7 @@ public:
protected:
- void fill_raw_packet(rte_mbuf_t * m,CGenNode * node,pkt_dir_t dir);
+ virtual void fill_raw_packet(rte_mbuf_t * m,CGenNode * node,pkt_dir_t dir);
CFileWriterBase * m_writer;
CCapPktRaw * m_raw;
@@ -1849,6 +1849,41 @@ public:
virtual int send_node(CGenNode * node);
};
+/**
+ * same as regular STL but no I/O (dry run)
+ *
+ * @author imarom (07-Jan-16)
+ */
+class CErfIFStlNull : public CErfIFStl {
+public:
+
+ virtual int open_file(std::string file_name) {
+ return (0);
+ }
+
+ virtual int write_pkt(CCapPktRaw *pkt_raw) {
+ return (0);
+ }
+
+ virtual int close_file(void) {
+ return (0);
+ }
+
+ virtual void fill_raw_packet(rte_mbuf_t * m,CGenNode * node,pkt_dir_t dir) {
+
+ }
+
+ virtual int update_mac_addr_from_global_cfg(pkt_dir_t dir, uint8_t * p){
+ return (0);
+ }
+
+
+ virtual int flush_tx_queue(void){
+ return (0);
+
+ }
+
+};
static inline int fill_pkt(CCapPktRaw * raw,rte_mbuf_t * m){
diff --git a/src/sim/trex_sim.h b/src/sim/trex_sim.h
index f11f01c4..8feb7bc0 100644
--- a/src/sim/trex_sim.h
+++ b/src/sim/trex_sim.h
@@ -154,7 +154,7 @@ private:
TrexPublisher *m_publisher;
CFlowGenList m_fl;
CErfIFStl m_erf_vif;
- CNullIF m_null_erf_vif;
+ CErfIFStlNull m_null_erf_vif;
bool m_verbose;
int m_port_count;