summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHanoh Haim <hhaim@cisco.com>2016-03-24 19:48:10 +0200
committerHanoh Haim <hhaim@cisco.com>2016-03-24 19:48:10 +0200
commit4e8ce34a9ef6b8883cfed47f77c9b753e1cf4248 (patch)
tree8d4bbc1ae09686181ca0f969bc2d82e3937e71b4
parenta54aec57e5d380b356bd2aebdec39e5f8bffe952 (diff)
parent79eff3545a1e38dd027e1fd94050ec27cfd1e412 (diff)
Merge branch 'mac-cfg-crash' of git://github.com/wofanli/trex-core into wofanli-mac-cfg-crash
-rwxr-xr-xsrc/tuple_gen.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/tuple_gen.cpp b/src/tuple_gen.cpp
index d3538ce6..d221a4d9 100755
--- a/src/tuple_gen.cpp
+++ b/src/tuple_gen.cpp
@@ -77,20 +77,23 @@ void CClientPool::Create(IP_DIST_t dist_value,
if (avail_ip!=0) {
m_ip_info.resize(avail_ip);
} else {
- printf("\n Error, empty mac file is configured.\n"
- "Will ignore the mac file configuration.\n");
- m_ip_info.resize(total_ip);
+ printf("\n Error, invalid mac file is configured.\n");
+ assert(0);
}
+ int skip_cnt=0;
if (total_ip > ((l_flow*t_cps/MAX_PORT))) {
if (has_mac_map) {
+ skip_cnt=0;
for(int idx=0;idx<total_ip;idx++){
mac_addr_align_t *mac_adr = NULL;
mac_adr = mac_info->get_mac_addr_by_ip( min_ip+idx);
if (mac_adr != NULL) {
- m_ip_info[idx] = new CClientInfoL(has_mac_map);
- m_ip_info[idx]->set_ip(min_ip+idx);
- m_ip_info[idx]->set_mac(mac_adr);
+ m_ip_info[idx-skip_cnt] = new CClientInfoL(has_mac_map);
+ m_ip_info[idx-skip_cnt]->set_ip(min_ip+idx);
+ m_ip_info[idx-skip_cnt]->set_mac(mac_adr);
+ } else {
+ skip_cnt++;
}
}
} else {
@@ -101,13 +104,16 @@ void CClientPool::Create(IP_DIST_t dist_value,
}
} else {
if (has_mac_map) {
+ skip_cnt=0;
for(int idx=0;idx<total_ip;idx++){
mac_addr_align_t *mac_adr = NULL;
mac_adr = mac_info->get_mac_addr_by_ip(min_ip+idx);
if (mac_adr != NULL) {
- m_ip_info[idx] = new CClientInfo(has_mac_map);
- m_ip_info[idx]->set_ip(min_ip+idx);
- m_ip_info[idx]->set_mac(mac_adr);
+ m_ip_info[idx-skip_cnt] = new CClientInfo(has_mac_map);
+ m_ip_info[idx-skip_cnt]->set_ip(min_ip+idx);
+ m_ip_info[idx-skip_cnt]->set_mac(mac_adr);
+ } else {
+ skip_cnt++;
}
}
} else {