diff options
author | 2016-01-19 18:36:05 +0200 | |
---|---|---|
committer | 2016-01-19 18:36:05 +0200 | |
commit | 82be078454b7742dc11416808285b4fe03c24ede (patch) | |
tree | 0163d0796cd8ff44c1634c7b6a5791bcb0667cb4 | |
parent | d7ea8e1eaa6964854b6845dba334b056a8187de0 (diff) | |
parent | 88da2ed71d5f9f5a318f82776e13d2dd394e2755 (diff) |
Merge remote-tracking branch 'origin/master'
8e1eaa6964854b6845dba334b056a8187de0.
-rwxr-xr-x | scripts/avl/sfr_delay_10_1g_asa_nat.yaml | 105 | ||||
-rw-r--r-- | src/latency.cpp | 8 | ||||
-rwxr-xr-x | src/main_dpdk.cpp | 7 |
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; |