X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Frobot%2Fip%2Fnat.robot;h=202ade34a5bfa21a71504b4cf5f76d8866598d7f;hp=b78575a96019f67735f776acd96de6bdcbe8d175;hb=b26fe6de7965f6621b54a80a938f82afe95aa585;hpb=61044d391d6e8d6b47d0d4f156071bd61cd278df diff --git a/resources/libraries/robot/ip/nat.robot b/resources/libraries/robot/ip/nat.robot index b78575a960..202ade34a5 100644 --- a/resources/libraries/robot/ip/nat.robot +++ b/resources/libraries/robot/ip/nat.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2020 Cisco and/or its affiliates. +# Copyright (c) 2021 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -40,10 +40,26 @@ | Initialize NAT44 endpoint-dependent mode in circular topology | | [Documentation] | Initialization of NAT44 endpoint-dependent mode on DUT1 | | +| | ... | This keyword also sets a test variable \${resetter} +| | ... | to hold a callable which resets VPP state. +| | ... | Keywords performing search will call it to get consistent trials. +| | ... | Tests which do not wish to reset NAT state should use ramp-up, +| | ... | so the resetter is not set if \${ramp_up_duration} variable +| | ... | is (defined and) nonzero. +| | +| | ... | *Test variables read:* +| | ... | - n_sessions - Expected number of opened sessions. +| | +| | ${max_sessions}= | Compute Max Translations Per Thread +| | ... | ${n_sessions} | ${thr_count_int} +| | Enable NAT44 Plugin | ${dut1} | mode=${nat_mode} | sessions=${max_sessions} | | Configure inside and outside interfaces | | ... | ${dut1} | ${DUT1_${int}1}[0] | ${DUT1_${int}2}[0] -| | Set NAT44 Address Range +| | ${resetter} = | Set NAT44 Address Range | | ... | ${dut1} | ${out_net} | ${out_net_end} +| | ${ramp_up_rate} = | Get Ramp Up Rate +| | Return From Keyword If | ${ramp_up_rate} +| | Set Test Variable | \${resetter} # TODO: Remove when 'ip4.Initialize IPv4 forwarding in circular topology' KW # adapted to use IP values from variables @@ -108,6 +124,38 @@ | | ... | ${dut2} | ${out_net} | ${out_mask} | gateway=${dut1_if2_ip4} | | ... | interface=${DUT2_${int}1}[0] +| Verify NAT44 TCP sessions number on DUT1 node +| | [Documentation] | Verify that all required NAT44 TCP sessions are +| | ... | established on DUT1 node. +| | +| | Verify NAT44 sessions number | ${nodes['DUT1']} | ${n_sessions} | TCP + +| Verify NAT44 UDP sessions number on DUT1 node +| | [Documentation] | Verify that all required NAT44 UDP sessions are +| | ... | established on DUT1 node. +| | +| | Verify NAT44 sessions number | ${nodes['DUT1']} | ${n_sessions} | UDP + +| Verify NAT44 sessions number +| | [Documentation] | Verify that all required NAT44 sessions of required +| | ... | protocol are established. +| | +| | ... | *Arguments:* +| | ... | - node - DUT node. Type: dictionary +| | ... | - exp_n_sessions - Expected number of NAT44 sessions. Type: integer +| | ... | - proto - Required protocol. Type: string +| | +| | ... | *Example:* +| | +| | ... | \| Verify NAT44 sessions number \| ${nodes['DUT1']} \| ${64512} \ +| | ... | \| UDP \| +| | +| | [Arguments] | ${node} | ${exp_n_sessions} | ${proto} +| | +| | ${nat44_sessions}= | Get NAT44 Sessions Number | ${node} | ${proto} +| | Should Be Equal As Integers | ${nat44_sessions} | ${exp_n_sessions} +| | ... | Not all NAT44 ${proto} sessions have been established + # DET44 - NAT44 deterministic | Enable DET44 plugin on DUT | | [Documentation] | Enable DET44 plugin on DUT. @@ -149,6 +197,13 @@ | Configure deterministic mode for NAT44 | | [Documentation] | Set deterministic behaviour of NAT44 (DET44). | | +| | ... | This keyword also sets a test variable \${resetter} +| | ... | to hold a callable which resets VPP state. +| | ... | Keywords performing search will call it to get consistent trials. +| | ... | Tests which do not wish to reset NAT state should use ramp-up, +| | ... | so the resetter is not set if \${ramp_up_duration} variable +| | ... | is (defined and) nonzero. +| | | | ... | *Arguments:* | | ... | - node - DUT node to set deterministic mode for NAT44 on. | | ... | Type: dictionary @@ -164,12 +219,15 @@ | | | | [Arguments] | ${node} | ${ip_in} | ${subnet_in} | ${ip_out} | ${subnet_out} | | -| | Set DET44 Mapping +| | ${resetter} = | Set DET44 Mapping | | ... | ${node} | ${ip_in} | ${subnet_in} | ${ip_out} | ${subnet_out} +| | ${ramp_up_rate} = | Get Ramp Up Rate +| | Return From Keyword If | ${ramp_up_rate} +| | Set Test Variable | \${resetter} | Initialize NAT44 deterministic mode in circular topology | | [Documentation] | Initialization of NAT44 deterministic mode (DET44) -| | ... | on DUT1. +| | ... | on DUT1 node. | | | | Enable DET44 plugin on DUT | ${dut1} | | Configure DET44 interfaces