const Json::Value &mode = parse_object(section, "mode", result);
string type = parse_string(mode, "type", result);
+ /* allocate a new stream based on the type */
TrexStream *stream = allocate_new_stream(section, result);
- /* create a new steram and populate it */
-
+ /* some fields */
+ stream->m_enabled = parse_bool(section, "enabled", result);
+ stream->m_self_start = parse_bool(section, "self_start", result);
+
+ /* inter stream gap */
stream->m_isg_usec = parse_double(section, "Is", result);
stream->m_next_stream_id = parse_int(section, "next_stream_id", result);
- stream->m_loop_count = parse_int(section, "loop_count", result);
const Json::Value &pkt = parse_array(section, "packet", result);
} else if (type == "single_burst") {
- uint32_t pps = parse_int(mode, "pps", result);
- uint32_t packets = parse_int(type, "packets", result);
+ uint32_t total_pkts = parse_int(mode, "total_pkts", result);
+ uint32_t pps = parse_int(mode, "pps", result);
- stream = new TrexStreamSingleBurst(port_id, stream_id, pps, packets);
+ stream = new TrexStreamBurst(port_id, stream_id, total_pkts, pps);
} else if (type == "multi_burst") {
- uint32_t pps = parse_int(mode, "pps", result);
- double ibg_usec = parse_double(mode, "ibg", result);
- uint32_t num_bursts = parse_int(mode, "number_of_bursts", result);
- uint32_t pkt_per_burst = parse_int(mode, "pkt_per_burst", result);
+ uint32_t pps = parse_int(mode, "pps", result);
+ double ibg_usec = parse_double(mode, "ibg", result);
+ uint32_t num_bursts = parse_int(mode, "number_of_bursts", result);
+ uint32_t pkts_per_burst = parse_int(mode, "pkts_per_burst", result);
- stream = new TrexStreamMultiBurst(port_id, stream_id, pps, ibg_usec, num_bursts, pkt_per_burst);
+ stream = new TrexStreamMultiBurst(port_id, stream_id, pkts_per_burst, pps, num_bursts, ibg_usec);
} else {
TrexStream(uint8_t port_id, uint32_t stream_id);
virtual ~TrexStream() = 0;
+ /* defines the min max per packet supported */
static const uint32_t MIN_PKT_SIZE_BYTES = 1;
static const uint32_t MAX_PKT_SIZE_BYTES = 9000;
/* config fields */
double m_isg_usec;
uint32_t m_next_stream_id;
- uint32_t m_loop_count;
/* indicators */
- bool m_enable;
- bool m_start;
+ bool m_enabled;
+ bool m_self_start;
/* pkt */
uint8_t *m_pkt;
* single burst
*
*/
-class TrexStreamSingleBurst : public TrexStream {
+class TrexStreamBurst : public TrexStream {
public:
- TrexStreamSingleBurst(uint8_t port_id, uint32_t stream_id, uint32_t packets, uint32_t pps) : TrexStream(port_id, stream_id), m_pps(pps), m_packets(packets) {
+ TrexStreamBurst(uint8_t port_id, uint32_t stream_id, uint32_t total_pkts, uint32_t pps) :
+ TrexStream(port_id, stream_id),
+ m_total_pkts(total_pkts),
+ m_pps(pps) {
}
+
protected:
- uint32_t m_pps;
- uint32_t m_packets;
-
+ uint32_t m_total_pkts;
+ uint32_t m_pps;
};
/**
* multi burst
*
*/
-class TrexStreamMultiBurst : public TrexStream {
+class TrexStreamMultiBurst : public TrexStreamBurst {
public:
- TrexStreamMultiBurst(uint8_t port_id,
+ TrexStreamMultiBurst(uint8_t port_id,
uint32_t stream_id,
- uint32_t pps,
- double ibg_usec,
uint32_t pkts_per_burst,
- uint32_t num_bursts) : TrexStream(port_id, stream_id), m_pps(pps), m_ibg_usec(ibg_usec), m_num_bursts(num_bursts), m_pkts_per_burst(pkts_per_burst) {
+ uint32_t pps,
+ uint32_t num_bursts,
+ double ibg_usec) : TrexStreamBurst(port_id, stream_id, pkts_per_burst, pps), m_num_bursts(num_bursts), m_ibg_usec(ibg_usec) {
}
protected:
- uint32_t m_pps;
- double m_ibg_usec;
uint32_t m_num_bursts;
- uint32_t m_pkts_per_burst;
+ double m_ibg_usec;
+
};
/**