summaryrefslogtreecommitdiffstats
path: root/src/stateless/cp
diff options
context:
space:
mode:
Diffstat (limited to 'src/stateless/cp')
-rw-r--r--src/stateless/cp/trex_stateless_port.cpp21
-rw-r--r--src/stateless/cp/trex_stateless_port.h17
2 files changed, 38 insertions, 0 deletions
diff --git a/src/stateless/cp/trex_stateless_port.cpp b/src/stateless/cp/trex_stateless_port.cpp
index aa34e87b..05283d5f 100644
--- a/src/stateless/cp/trex_stateless_port.cpp
+++ b/src/stateless/cp/trex_stateless_port.cpp
@@ -76,6 +76,11 @@ TrexStatelessPort::TrexStatelessPort(uint8_t port_id, const TrexPlatformApi *api
m_graph_obj = NULL;
}
+TrexStatelessPort::~TrexStatelessPort() {
+ if (m_graph_obj) {
+ delete m_graph_obj;
+ }
+}
/**
* acquire the port
@@ -589,6 +594,22 @@ TrexStatelessPort::validate(void) {
}
+
+void
+TrexStatelessPort::get_port_effective_rate(uint64_t &bps, uint64_t &pps) {
+
+ 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;
+}
+
/************* Trex Port Owner **************/
TrexPortOwner::TrexPortOwner() {
diff --git a/src/stateless/cp/trex_stateless_port.h b/src/stateless/cp/trex_stateless_port.h
index a529d38f..c3785b0c 100644
--- a/src/stateless/cp/trex_stateless_port.h
+++ b/src/stateless/cp/trex_stateless_port.h
@@ -134,6 +134,8 @@ public:
TrexStatelessPort(uint8_t port_id, const TrexPlatformApi *api);
+ ~TrexStatelessPort();
+
/**
* acquire port
* throws TrexException in case of an error
@@ -259,6 +261,10 @@ public:
return m_stream_table.get_stream_by_id(stream_id);
}
+ int get_stream_count() {
+ return m_stream_table.size();
+ }
+
void get_id_list(std::vector<uint32_t> &id_list) {
m_stream_table.get_id_list(id_list);
}
@@ -298,6 +304,17 @@ public:
return m_owner;
}
+
+ /**
+ * get the port effective rate (on a started / paused port)
+ *
+ * @author imarom (07-Jan-16)
+ *
+ * @param bps
+ * @param pps
+ */
+ void get_port_effective_rate(uint64_t &bps, uint64_t &pps);
+
private: