X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Flibraries%2Frobot%2Fip%2Fnat.robot;fp=resources%2Flibraries%2Frobot%2Fip%2Fnat.robot;h=fefc0fe7394b37b796939b65c021e568d9a184ef;hb=2bdb1dc59ba736546a6663cbaf55b6edbcac6eab;hp=0000000000000000000000000000000000000000;hpb=b9ce06b180903e794a806e6eda7a1b076dc9cc8f;p=csit.git diff --git a/resources/libraries/robot/ip/nat.robot b/resources/libraries/robot/ip/nat.robot new file mode 100644 index 0000000000..fefc0fe739 --- /dev/null +++ b/resources/libraries/robot/ip/nat.robot @@ -0,0 +1,149 @@ +# Copyright (c) 2017 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: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Library | resources.libraries.python.NATUtil +| Documentation | Keywords for NAT feature in VPP. + +*** Keywords *** +| Configure inside and outside interfaces +| | [Documentation] | Configure inside and outside interfaces for NAT44. +| | ... +| | ... | *Arguments:* +| | ... | - node - DUT node to set NAT44 interfaces on. Type: dictionary +| | ... | - int_in - Inside interface. Type: string +| | ... | - int_out - Outside interface. Type: string +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Configure inside and outside interfaces \| ${nodes['DUT1']} \ +| | ... | \| FortyGigabitEtherneta/0/0 \| FortyGigabitEtherneta/0/1 \| +| | ... +| | [Arguments] | ${node} | ${int_in} | ${int_out} +| | ... +| | ${int_in_name}= | Set variable | ${node['interfaces']['${int_in}']['name']} +| | ${int_out_name}= | Set variable | ${node['interfaces']['${int_out}']['name']} +| | Set NAT44 Interfaces | ${node} | ${int_in_name} | ${int_out_name} + +| Configure deterministic mode for NAT44 +| | [Documentation] | Set deterministic behaviour of NAT44. +| | ... +| | ... | *Arguments:* +| | ... | - node - DUT node to set deterministic mode for NAT44 on. +| | ... | Type: dictionary +| | ... | - ip_in - Inside IP. Type: string +| | ... | - subnet_in - Inside IP subnet. Type: string +| | ... | - ip_out - Outside IP. Type: string +| | ... | - subnet_out - Outside IP subnet. Type: string +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Configure deterministic mode for NAT44 \| ${nodes['DUT1']} \ +| | ... | \| 100.0.0.0 \| 12 \| 12.1.1.0 \| 24 \| +| | ... +| | [Arguments] | ${node} | ${ip_in} | ${subnet_in} | ${ip_out} | ${subnet_out} +| | ... +| | Set NAT44 deterministic | ${node} | ${ip_in} | ${subnet_in} | ${ip_out} +| | ... | ${subnet_out} + +| Configure workers for NAT +| | [Documentation] | Configure workers for NAT. +| | ... +| | ... | *Arguments:* +| | ... | - node - DUT node to set NAT workers on. Type: dictionary +| | ... | - lcores - list of cores, format: range e.g. 1-5 or list of ranges \ +| | ... | e.g.: 1-5,18-22. Type: string +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Configure workers for NAT \| ${nodes['DUT1']} \| 12-23,36-47 \| +| | ... +| | [Arguments] | ${node} | ${lcores} +| | ... +| | Set NAT workers | ${node} | ${lcores} + +| Show NAT verbose +| | [Documentation] | Get the NAT settings on the node. +| | ... +| | ... | *Arguments:* +| | ... | - node - DUT node to show NAT. Type: dictionary +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Show NAT verbose \| ${nodes['DUT1']} \| +| | ... +| | [Arguments] | ${node} +| | ... +| | Show NAT | ${node} + +| Get NAT44 deterministic forward +| | [Documentation] | Show forward IP address and port(s). +| | ... +| | ... | *Arguments:* +| | ... | - node - DUT node to get NAT44 deterministic forward on. +| | ... | Type: dictionary +| | ... | - ip - IP address. Type: string +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Get NAT44 deterministic forward \| ${nodes['DUT1']} \| 10.0.0.2 \| +| | ... +| | [Arguments] | ${node} | ${ip} +| | ... +| | Show NAT44 deterministic forward | ${node} | ${ip} + +| Get NAT44 deterministic reverse +| | [Documentation] | Show reverse IP address. +| | ... +| | ... | *Arguments:* +| | ... | - node - DUT node to get NAT44 deterministic reverse on. +| | ... | Type: dictionary +| | ... | - ip - IP address. Type: string +| | ... | - port - Port. Type: string or integer +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Get NAT44 deterministic reverse \| ${nodes['DUT1']} \| 10.0.0.2 \ +| | ... | \| 1025 \| +| | ... +| | [Arguments] | ${node} | ${ip} | ${port} +| | ... +| | Show NAT44 deterministic reverse | ${node} | ${ip} | ${port} + +| Get NAT interfaces +| | [Documentation] | Get list of interfaces configured with NAT from VPP node. +| | ... +| | ... | *Arguments:* +| | ... | - node - DUT node to get NAT interfaces on. Type: dictionary +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Get NAT interfaces \| ${nodes['DUT1']} \| +| | ... +| | [Arguments] | ${node} +| | ... +| | Get NAT interfaces | ${node} + +| Get NAT static mappings +| | [Documentation] | Get NAT static mappings from VPP node. +| | ... +| | ... | *Arguments:* +| | ... | - node - DUT node to get NAT static mappings on. Type: dictionary +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Get NAT static mappings \| ${nodes['DUT1']} \| +| | ... +| | [Arguments] | ${node} +| | ... +| | Get NAT static mappings | ${node}