summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYaroslav Brustinov <ybrustin@cisco.com>2016-01-19 18:36:05 +0200
committerYaroslav Brustinov <ybrustin@cisco.com>2016-01-19 18:36:05 +0200
commit82be078454b7742dc11416808285b4fe03c24ede (patch)
tree0163d0796cd8ff44c1634c7b6a5791bcb0667cb4
parentd7ea8e1eaa6964854b6845dba334b056a8187de0 (diff)
parent88da2ed71d5f9f5a318f82776e13d2dd394e2755 (diff)
Merge remote-tracking branch 'origin/master'
8e1eaa6964854b6845dba334b056a8187de0.
-rwxr-xr-xscripts/avl/sfr_delay_10_1g_asa_nat.yaml105
-rw-r--r--src/latency.cpp8
-rwxr-xr-xsrc/main_dpdk.cpp7
3 files changed, 114 insertions, 6 deletions
diff --git a/scripts/avl/sfr_delay_10_1g_asa_nat.yaml b/scripts/avl/sfr_delay_10_1g_asa_nat.yaml
new file mode 100755
index 00000000..5fbd0af1
--- /dev/null
+++ b/scripts/avl/sfr_delay_10_1g_asa_nat.yaml
@@ -0,0 +1,105 @@
+- duration : 0.1
+ generator :
+ distribution : "seq"
+ clients_start : "16.0.0.1"
+ clients_end : "16.0.0.255"
+ servers_start : "48.0.0.1"
+ servers_end : "48.0.20.255"
+ clients_per_gb : 201
+ min_clients : 101
+ dual_port_mask : "1.0.0.0"
+ tcp_aging : 0
+ udp_aging : 0
+ mac : [0x0,0x0,0x0,0x1,0x0,0x00]
+ cap_ipg : true
+ #cap_ipg_min : 30
+ #cap_override_ipg : 200
+ wlength : 107
+ one_app_server : false
+ cap_info :
+ - name: avl/delay_10_http_get_0.pcap
+ cps : 404.52
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_http_post_0.pcap
+ cps : 404.52
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_https_0.pcap
+ cps : 130.8745
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_http_browsing_0.pcap
+ cps : 709.89
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_exchange_0.pcap
+ cps : 253.81
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_mail_pop_0.pcap
+ cps : 4.759
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_mail_pop_1.pcap
+ cps : 4.759
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_mail_pop_2.pcap
+ cps : 4.759
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_oracle_0.pcap
+ cps : 79.3178
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_rtp_160k_0.pcap
+ cps : 2.776
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_rtp_160k_1.pcap
+ cps : 2.776
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_rtp_250k_0_0.pcap
+ cps : 1.982
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_rtp_250k_1_0.pcap
+ cps : 1.982
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_smtp_0.pcap
+ cps : 7.3369
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_smtp_1.pcap
+ cps : 7.3369
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_smtp_2.pcap
+ cps : 7.3369
+ ipg : 10000
+ rtt : 10000
+ w : 1
+ - name: avl/delay_10_citrix_0.pcap
+ cps : 43.6248
+ ipg : 10000
+ rtt : 10000
+ w : 1
+
diff --git a/src/latency.cpp b/src/latency.cpp
index b213690f..e3a872e0 100644
--- a/src/latency.cpp
+++ b/src/latency.cpp
@@ -1003,9 +1003,11 @@ bool CLatencyPktModeICMP::IsLatencyPkt(IPHeader *ip) {
void CLatencyPktModeICMP::update_recv(uint8_t *pkt, uint16_t *r_seq, uint16_t *t_seq) {
ICMPHeader *m_icmp = (ICMPHeader *)(pkt);
*r_seq = m_icmp->getSeqNum();
- // handle wrap around, so can_send_packet will allow us to send
- if (*r_seq == 0)
- *t_seq = 0;
+ // Previously, we assumed we can send for sequences smaller than r_seq.
+ // Actually, if the DUT (firewall) dropped an ICMP request, we should not send response for the dropped packet.
+ // We are only sure that we can send reqponse for the request we just got.
+ // This should be OK, since we send requests and responses in the same rate.
+ *t_seq = *r_seq;
}
diff --git a/src/main_dpdk.cpp b/src/main_dpdk.cpp
index 7cbe7f2b..7c25b2e2 100755
--- a/src/main_dpdk.cpp
+++ b/src/main_dpdk.cpp
@@ -121,8 +121,6 @@ static inline int get_is_latency_thread_enable(){
}
struct port_cfg_t;
-//class CPhyEthIF;
-//class CPhyEthIFStats ;
class CTRexExtendedDriverBase {
public:
@@ -808,7 +806,10 @@ static int parse_options(int argc, char *argv[], CParserOption* po, bool first_t
break;
case OPT_LEARN_VERIFY :
- po->m_learn_mode = CParserOption::LEARN_MODE_IP_OPTION;
+ // must configure learn_mode for learn verify to work. If different learn mode will be given later, it will be set instead.
+ if (po->m_learn_mode == 0) {
+ po->m_learn_mode = CParserOption::LEARN_MODE_IP_OPTION;
+ }
po->preview.set_learn_and_verify_mode_enable(true);
break;