From 982e81efab69bc007455481b6425fcebc7213906 Mon Sep 17 00:00:00 2001 From: Jan Gelety Date: Tue, 17 Jan 2017 14:50:46 +0100 Subject: csit-func-tc-naming-change - phase 1 - change of ts directories - change of ts file names - splitting of former files to more files when suitable - more details: https://wiki.fd.io/view/CSIT/csit-perf-tc-naming-change Change-Id: Ifda1038f8323735f86c1be7ba7f93e3fda183618 Signed-off-by: Jan Gelety --- tests/func/dhcp/dhcp_client.robot | 116 --------------------- tests/func/dhcp/dhcp_v4_proxy.robot | 93 ----------------- tests/func/dhcp/dhcp_v6_proxy.robot | 66 ------------ .../eth2p-ethip4-ip4base-ip4dhcpclient-func.robot | 116 +++++++++++++++++++++ .../eth2p-ethip4-ip4base-ip4dhcpproxy-func.robot | 93 +++++++++++++++++ .../eth2p-ethip6-ip6base-ip6dhcpproxy-func.robot | 66 ++++++++++++ 6 files changed, 275 insertions(+), 275 deletions(-) delete mode 100644 tests/func/dhcp/dhcp_client.robot delete mode 100644 tests/func/dhcp/dhcp_v4_proxy.robot delete mode 100644 tests/func/dhcp/dhcp_v6_proxy.robot create mode 100644 tests/func/dhcp/eth2p-ethip4-ip4base-ip4dhcpclient-func.robot create mode 100644 tests/func/dhcp/eth2p-ethip4-ip4base-ip4dhcpproxy-func.robot create mode 100644 tests/func/dhcp/eth2p-ethip6-ip6base-ip6dhcpproxy-func.robot (limited to 'tests/func/dhcp') diff --git a/tests/func/dhcp/dhcp_client.robot b/tests/func/dhcp/dhcp_client.robot deleted file mode 100644 index 6169b97fb7..0000000000 --- a/tests/func/dhcp/dhcp_client.robot +++ /dev/null @@ -1,116 +0,0 @@ -# Copyright (c) 2016 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 *** -| Resource | resources/libraries/robot/default.robot -| Resource | resources/libraries/robot/testing_path.robot -| Resource | resources/libraries/robot/dhcp_client.robot -| Resource | resources/libraries/robot/ipv4.robot -| Library | resources.libraries.python.Trace -| Force Tags | HW_ENV | VM_ENV | 3_NODE_DOUBLE_LINK_TOPO -| Test Setup | Func Test Setup -| Test Teardown | Func Test Teardown -| Documentation | *DHCP Client related test cases* - -*** Variables *** -| ${client_hostname}= | dhcp-client -| ${client_ip}= | 192.168.23.10 -| ${client_mask}= | 255.255.255.0 -| ${server_ip}= | 192.168.23.1 -| ${own_xid}= | 11112222 -| ${lease_time}= | ${15} - -*** Test Cases *** -| VPP sends a DHCP DISCOVER -| | [Documentation] | Configure DHCP client on interface to TG without hostname -| | ... | and check if DHCP DISCOVER message contains all required -| | ... | fields with expected values. -| | ... -| | Given Path for 2-node testing is set -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} -| | And Interfaces in 2-node path are up -| | When Set DHCP client on Interface | ${dut_node} | ${dut_to_tg_if1} -| | Then Check DHCP DISCOVER header | ${tg_node} -| | ... | ${tg_to_dut_if1} | ${dut_to_tg_if1_mac} - -| VPP sends a DHCP DISCOVER with hostname -| | [Documentation] | Configure DHCP client on interface to TG with hostname -| | ... | and check if DHCP DISCOVER message contains all required -| | ... | fields with expected values. -| | ... -| | Given Path for 2-node testing is set -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} -| | And Interfaces in 2-node path are up -| | When Set DHCP client on Interface | ${dut_node} | ${dut_to_tg_if1} -| | ... | ${client_hostname} -| | Then Check DHCP DISCOVER header | ${tg_node} -| | ... | ${tg_to_dut_if1} | ${dut_to_tg_if1_mac} | ${client_hostname} - -| VPP sends DHCP REQUEST after OFFER -| | [Documentation] | Configure DHCP client on interface to TG and check if -| | ... | DHCP REQUEST message contains all required fields. -| | ... -| | Given Path for 2-node testing is set -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} -| | And Interfaces in 2-node path are up -| | And VPP Route Add | ${dut_node} | 255.255.255.255 | 32 | ${NONE} | local -| | ... | ${FALSE} | ${NONE} -| | When Set DHCP client on Interface | ${dut_node} | ${dut_to_tg_if1} -| | Then Check DHCP REQUEST after OFFER | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if1_mac} | ${server_ip} -| | ... | ${dut_to_tg_if1_mac} | ${client_ip} | ${client_mask} - -| VPP doesn't send DHCP REQUEST after OFFER with wrong XID -| | [ Tags ] | EXPECTED_FAILING -| | [Documentation] | Configure DHCP client on interface to TG. If server sends -| | ... | DHCP OFFER with different XID as in DHCP DISCOVER, -| | ... | DHCP REQUEST message shouldn't be sent. -| | ... -| | Given Path for 2-node testing is set -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} -| | And Interfaces in 2-node path are up -| | And VPP Route Add | ${dut_node} | 255.255.255.255 | 32 | ${NONE} | local -| | ... | ${FALSE} | ${NONE} -| | When Set DHCP client on Interface | ${dut_node} | ${dut_to_tg_if1} -| | Then Run Keyword And Expect Error | DHCP REQUEST Rx timeout -| | ... | Check DHCP REQUEST after OFFER | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if1_mac} | ${server_ip} -| | ... | ${dut_to_tg_if1_mac} | ${client_ip} | ${client_mask} -| | ... | offer_xid=${own_xid} - -| VPP honors DHCPv4 lease time -| | [Documentation] | Send IP configuration to the VPP client via DHCP. Address -| | ... | is checked with ICMP echo request and there should be no -| | ... | reply for echo request when lease has expired. -| | ... -| | Given Path for 2-node testing is set -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} -| | And Interfaces in 2-node path are up -| | And VPP Route Add | ${dut_node} | 255.255.255.255 | 32 | ${NONE} | local -| | ... | ${FALSE} | ${NONE} -| | When Set DHCP client on Interface | ${dut_node} | ${dut_to_tg_if1} -| | And Send IP configuration to client via DHCP -| | ... | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if1_mac} | ${server_ip} -| | ... | ${client_ip} | ${client_mask} -| | ... | ${lease_time} -| | And Add Arp On Dut | ${dut_node} | ${dut_to_tg_if1} | ${server_ip} -| | ... | ${tg_to_dut_if1_mac} -| | Then Node replies to ICMP echo request | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${dut_to_tg_if1_mac} | ${tg_to_dut_if1_mac} | ${client_ip} -| | ... | ${server_ip} -| | And Sleep | ${lease_time} -| | And Run Keyword And Expect Error | ICMP echo Rx timeout -| | ... | Node replies to ICMP echo request | ${tg_node} -| | ... | ${tg_to_dut_if1} | ${dut_to_tg_if1_mac} | ${tg_to_dut_if1_mac} -| | ... | ${client_ip} | ${server_ip} diff --git a/tests/func/dhcp/dhcp_v4_proxy.robot b/tests/func/dhcp/dhcp_v4_proxy.robot deleted file mode 100644 index a9c4d23ea9..0000000000 --- a/tests/func/dhcp/dhcp_v4_proxy.robot +++ /dev/null @@ -1,93 +0,0 @@ -# Copyright (c) 2016 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 *** -| Resource | resources/libraries/robot/default.robot -| Resource | resources/libraries/robot/testing_path.robot -| Resource | resources/libraries/robot/dhcp_proxy.robot -| Resource | resources/libraries/robot/ipv4.robot -| Library | resources.libraries.python.Trace -| Force Tags | HW_ENV | VM_ENV | 3_NODE_DOUBLE_LINK_TOPO -| Test Setup | Func Test Setup -| Test Teardown | Func Test Teardown -| Documentation | *DHCP proxy test cases* -| ... -| ... | *[Top] Network Topologies:* TG = DUT -| ... | with two links between the nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP-BOOTP-DHCP -| ... | *[Cfg] DUT configuration:* DUT is configured with DHCP proxy. -| ... | *[Ver] TG verification:* Test DHCP packets are sent -| ... | on TG on first link to DUT and received on TG on second link. -| ... | On receive TG verifies if DHCP packets are valid. - -*** Variables *** -| ${dut_to_tg_if1_ip}= | 172.16.0.1 -| ${dut_to_tg_if2_ip}= | 192.168.0.1 -| ${dhcp_server_ip}= | 192.168.0.100 -| ${client_ip}= | 172.16.0.2 -| ${prefix_length}= | 24 - -| ${discover_src_ip}= | 0.0.0.0 -| ${valid_discover_dst_ip}= | 255.255.255.255 -| ${invalid_discover_dst_ip}= | 255.255.255.1 - -*** Test Cases *** -| TC01: VPP proxies valid DHCPv4 request to DHCPv4 server -| | [Documentation] | -| | ... | [Top] TG=DUT \ -| | ... | [Enc] Eth-IPv4-UDP-BOOTP-DHCP -| | ... | [Cfg] On DUT setup DHCP proxy. -| | ... | [Ver] Make TG verify matching DHCP packets between client and DHCP -| | ... | server through DHCP proxy. -| | ... -| | Given Path for 2-node testing is set -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} -| | And Interfaces in 2-node path are up -| | And VPP Route Add | ${dut_node} | 255.255.255.255 | 32 | ${NONE} | local -| | ... | ${FALSE} | ${NONE} -| | And Set Interface Address | ${dut_node} -| | ... | ${dut_to_tg_if1} | ${dut_to_tg_if1_ip} | ${prefix_length} -| | And Set Interface Address | ${dut_node} -| | ... | ${dut_to_tg_if2} | ${dut_to_tg_if2_ip} | ${prefix_length} -| | And Add Arp On Dut | ${dut_node} | ${dut_to_tg_if2} | ${dhcp_server_ip} -| | ... | ${tg_to_dut_if2_mac} -| | When DHCP Proxy Config | ${dut_node} | ${dhcp_server_ip} -| | ... | ${dut_to_tg_if1_ip} -| | Then Send DHCP Messages | ${tg_node} | ${tg_to_dut_if1} | ${tg_to_dut_if2} -| | ... | ${dhcp_server_ip} | ${tg_to_dut_if2_mac} | ${client_ip} -| | ... | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_ip} - -| TC02: VPP proxy ignores invalid DHCPv4 request -| | [Documentation] | -| | ... | [Top] TG=DUT \ -| | ... | [Enc] Eth-IPv4-UDP-BOOTP-DHCP -| | ... | [Cfg] On DUT setup DHCP proxy. -| | ... | [Ver] Make TG verify matching invalid DHCP packets are dropped. -| | ... -| | Given Path for 2-node testing is set -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} -| | And Interfaces in 2-node path are up -| | And VPP Route Add | ${dut_node} | 255.255.255.255 | 32 | ${NONE} | local -| | ... | ${FALSE} | ${NONE} -| | And Set Interface Address | ${dut_node} -| | ... | ${dut_to_tg_if1} | ${dut_to_tg_if1_ip} | ${prefix_length} -| | And Set Interface Address | ${dut_node} -| | ... | ${dut_to_tg_if2} | ${dut_to_tg_if2_ip} | ${prefix_length} -| | And Add Arp On Dut | ${dut_node} | ${dut_to_tg_if2} | ${dhcp_server_ip} -| | ... | ${tg_to_dut_if2_mac} -| | When DHCP Proxy Config | ${dut_node} | ${dhcp_server_ip} -| | ... | ${dut_to_tg_if1_ip} -| | Then Send DHCP DISCOVER | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} | ${discover_src_ip} | ${valid_discover_dst_ip} -| | And Send DHCP DISCOVER should fail | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} | ${discover_src_ip} | ${invalid_discover_dst_ip} diff --git a/tests/func/dhcp/dhcp_v6_proxy.robot b/tests/func/dhcp/dhcp_v6_proxy.robot deleted file mode 100644 index eeaf796a28..0000000000 --- a/tests/func/dhcp/dhcp_v6_proxy.robot +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright (c) 2016 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 *** -| Resource | resources/libraries/robot/default.robot -| Resource | resources/libraries/robot/testing_path.robot -| Resource | resources/libraries/robot/dhcp_proxy.robot -| Resource | resources/libraries/robot/ipv6.robot -| Library | resources.libraries.python.Trace -| Force Tags | HW_ENV | VM_ENV | 3_NODE_DOUBLE_LINK_TOPO -| Test Setup | Func Test Setup -| Test Teardown | Func Test Teardown -| Documentation | *DHCPv6 proxy test cases* -| ... -| ... | *[Top] Network Topologies:* TG = DUT -| ... | with two links between the nodes. -| ... | *[Cfg] DUT configuration:* DUT is configured with DHCP proxy. -| ... | *[Ver] TG verification:*Test DHCP packets are sent -| ... | on TG on first link to DUT and received on TG on second link. -| ... | On receive TG verifies if DHCP packets are valid -| ... | *[Ref] Applicable standard specifications:* RFC 3315 - - -*** Variables *** -| ${dut_to_tg_if1_ip}= | 3ffe:62::1 -| ${dut_to_tg_if2_ip}= | 3ffe:63::1 -| ${dhcp_server_ip}= | 3ffe:63::2 -| ${prefix_length}= | 64 - - -*** Test Cases *** -| TC01: VPP proxies valid DHCPv6 request to DHCPv6 server -| | [Documentation] | -| | ... | [Top] TG=DUT -| | ... | [Cfg] On DUT setup DHCP proxy. -| | ... | [Ver] Make TG verify matching DHCPv6 packets between client and DHCP \ -| | ... | server through DHCP proxy. -| | ... | [Ref] RFC 3315 -| | ... -| | Given Path for 2-node testing is set -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} -| | And Interfaces in 2-node path are up -| | And Vpp Set If Ipv6 Addr | ${dut_node} -| | ... | ${dut_to_tg_if1} | ${dut_to_tg_if1_ip} | ${prefix_length} -| | And Vpp Set If Ipv6 Addr | ${dut_node} -| | ... | ${dut_to_tg_if2} | ${dut_to_tg_if2_ip} | ${prefix_length} -| | And VPP Route Add | ${dut_node} | ff02::1:2 | 128 | ${NONE} | local -| | ... | ${FALSE} | ${NONE} -| | And Add IP Neighbor | ${dut_node} | ${dut_to_tg_if2} | ${dhcp_server_ip} -| | ... | ${tg_to_dut_if2_mac} -| | And Vpp All Ra Suppress Link Layer | ${nodes} -| | When DHCP Proxy Config | ${dut_node} | ${dhcp_server_ip} -| | ... | ${dut_to_tg_if1_ip} -| | Then Send DHCPv6 Messages | ${tg_node} | ${tg_to_dut_if1} | ${tg_to_dut_if2} -| | ... | ${dut_to_tg_if1_ip} | ${dut_to_tg_if1_mac} | ${dhcp_server_ip} -| | ... | ${tg_to_dut_if2_mac} | ${tg_to_dut_if1_mac} | ${dut_to_tg_if2_mac} diff --git a/tests/func/dhcp/eth2p-ethip4-ip4base-ip4dhcpclient-func.robot b/tests/func/dhcp/eth2p-ethip4-ip4base-ip4dhcpclient-func.robot new file mode 100644 index 0000000000..5507c956d5 --- /dev/null +++ b/tests/func/dhcp/eth2p-ethip4-ip4base-ip4dhcpclient-func.robot @@ -0,0 +1,116 @@ +# Copyright (c) 2016 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 *** +| Resource | resources/libraries/robot/default.robot +| Resource | resources/libraries/robot/testing_path.robot +| Resource | resources/libraries/robot/dhcp_client.robot +| Resource | resources/libraries/robot/ipv4.robot +| Library | resources.libraries.python.Trace +| Force Tags | HW_ENV | VM_ENV | 3_NODE_DOUBLE_LINK_TOPO +| Test Setup | Func Test Setup +| Test Teardown | Func Test Teardown +| Documentation | *DHCPv4 Client related test cases* + +*** Variables *** +| ${client_hostname}= | dhcp-client +| ${client_ip}= | 192.168.23.10 +| ${client_mask}= | 255.255.255.0 +| ${server_ip}= | 192.168.23.1 +| ${own_xid}= | 11112222 +| ${lease_time}= | ${15} + +*** Test Cases *** +| VPP sends a DHCP DISCOVER +| | [Documentation] | Configure DHCPv4 client on interface to TG without +| | ... | hostname and check if DHCPv4 DISCOVER message contains all +| | ... | required fields with expected values. +| | ... +| | Given Path for 2-node testing is set +| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} +| | And Interfaces in 2-node path are up +| | When Set DHCP client on Interface | ${dut_node} | ${dut_to_tg_if1} +| | Then Check DHCP DISCOVER header | ${tg_node} +| | ... | ${tg_to_dut_if1} | ${dut_to_tg_if1_mac} + +| VPP sends a DHCPv4 DISCOVER with hostname +| | [Documentation] | Configure DHCPv4 client on interface to TG with hostname +| | ... | and check if DHCPv4 DISCOVER message contains all required +| | ... | fields with expected values. +| | ... +| | Given Path for 2-node testing is set +| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} +| | And Interfaces in 2-node path are up +| | When Set DHCP client on Interface | ${dut_node} | ${dut_to_tg_if1} +| | ... | ${client_hostname} +| | Then Check DHCP DISCOVER header | ${tg_node} +| | ... | ${tg_to_dut_if1} | ${dut_to_tg_if1_mac} | ${client_hostname} + +| VPP sends DHCPv4 REQUEST after OFFER +| | [Documentation] | Configure DHCPv4 client on interface to TG and check if +| | ... | DHCPv4 REQUEST message contains all required fields. +| | ... +| | Given Path for 2-node testing is set +| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} +| | And Interfaces in 2-node path are up +| | And VPP Route Add | ${dut_node} | 255.255.255.255 | 32 | ${NONE} | local +| | ... | ${FALSE} | ${NONE} +| | When Set DHCP client on Interface | ${dut_node} | ${dut_to_tg_if1} +| | Then Check DHCP REQUEST after OFFER | ${tg_node} | ${tg_to_dut_if1} +| | ... | ${tg_to_dut_if1_mac} | ${server_ip} +| | ... | ${dut_to_tg_if1_mac} | ${client_ip} | ${client_mask} + +| VPP doesn't send DHCPv4 REQUEST after OFFER with wrong XID +| | [ Tags ] | EXPECTED_FAILING +| | [Documentation] | Configure DHCPv4 client on interface to TG. If server +| | ... | sends DHCPv4 OFFER with different XID as in DHCPv4 +| | ... | DISCOVER, DHCPv4 REQUEST message shouldn't be sent. +| | ... +| | Given Path for 2-node testing is set +| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} +| | And Interfaces in 2-node path are up +| | And VPP Route Add | ${dut_node} | 255.255.255.255 | 32 | ${NONE} | local +| | ... | ${FALSE} | ${NONE} +| | When Set DHCP client on Interface | ${dut_node} | ${dut_to_tg_if1} +| | Then Run Keyword And Expect Error | DHCP REQUEST Rx timeout +| | ... | Check DHCP REQUEST after OFFER | ${tg_node} | ${tg_to_dut_if1} +| | ... | ${tg_to_dut_if1_mac} | ${server_ip} +| | ... | ${dut_to_tg_if1_mac} | ${client_ip} | ${client_mask} +| | ... | offer_xid=${own_xid} + +| VPP honors DHCPv4 lease time +| | [Documentation] | Send IP configuration to the VPP client via DHCPv4. +| | ... | Address is checked with ICMP echo request and there should +| | ... | be no reply for echo request when lease has expired. +| | ... +| | Given Path for 2-node testing is set +| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} +| | And Interfaces in 2-node path are up +| | And VPP Route Add | ${dut_node} | 255.255.255.255 | 32 | ${NONE} | local +| | ... | ${FALSE} | ${NONE} +| | When Set DHCP client on Interface | ${dut_node} | ${dut_to_tg_if1} +| | And Send IP configuration to client via DHCP +| | ... | ${tg_node} | ${tg_to_dut_if1} +| | ... | ${tg_to_dut_if1_mac} | ${server_ip} +| | ... | ${client_ip} | ${client_mask} +| | ... | ${lease_time} +| | And Add Arp On Dut | ${dut_node} | ${dut_to_tg_if1} | ${server_ip} +| | ... | ${tg_to_dut_if1_mac} +| | Then Node replies to ICMP echo request | ${tg_node} | ${tg_to_dut_if1} +| | ... | ${dut_to_tg_if1_mac} | ${tg_to_dut_if1_mac} | ${client_ip} +| | ... | ${server_ip} +| | And Sleep | ${lease_time} +| | And Run Keyword And Expect Error | ICMP echo Rx timeout +| | ... | Node replies to ICMP echo request | ${tg_node} +| | ... | ${tg_to_dut_if1} | ${dut_to_tg_if1_mac} | ${tg_to_dut_if1_mac} +| | ... | ${client_ip} | ${server_ip} diff --git a/tests/func/dhcp/eth2p-ethip4-ip4base-ip4dhcpproxy-func.robot b/tests/func/dhcp/eth2p-ethip4-ip4base-ip4dhcpproxy-func.robot new file mode 100644 index 0000000000..e503c7fe0f --- /dev/null +++ b/tests/func/dhcp/eth2p-ethip4-ip4base-ip4dhcpproxy-func.robot @@ -0,0 +1,93 @@ +# Copyright (c) 2016 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 *** +| Resource | resources/libraries/robot/default.robot +| Resource | resources/libraries/robot/testing_path.robot +| Resource | resources/libraries/robot/dhcp_proxy.robot +| Resource | resources/libraries/robot/ipv4.robot +| Library | resources.libraries.python.Trace +| Force Tags | HW_ENV | VM_ENV | 3_NODE_DOUBLE_LINK_TOPO +| Test Setup | Func Test Setup +| Test Teardown | Func Test Teardown +| Documentation | *DHCPv4 proxy test cases* +| ... +| ... | *[Top] Network Topologies:* TG = DUT +| ... | with two links between the nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP-BOOTP-DHCP +| ... | *[Cfg] DUT configuration:* DUT is configured with DHCPv4 proxy. +| ... | *[Ver] TG verification:* Test DHCPv4 packets are sent +| ... | on TG on first link to DUT and received on TG on second link. +| ... | On receive TG verifies if DHCPv4 packets are valid. + +*** Variables *** +| ${dut_to_tg_if1_ip}= | 172.16.0.1 +| ${dut_to_tg_if2_ip}= | 192.168.0.1 +| ${dhcp_server_ip}= | 192.168.0.100 +| ${client_ip}= | 172.16.0.2 +| ${prefix_length}= | 24 + +| ${discover_src_ip}= | 0.0.0.0 +| ${valid_discover_dst_ip}= | 255.255.255.255 +| ${invalid_discover_dst_ip}= | 255.255.255.1 + +*** Test Cases *** +| TC01: VPP proxies valid DHCPv4 request to DHCPv4 server +| | [Documentation] | +| | ... | [Top] TG=DUT \ +| | ... | [Enc] Eth-IPv4-UDP-BOOTP-DHCP +| | ... | [Cfg] On DUT setup DHCPv4 proxy. +| | ... | [Ver] Make TG verify matching DHCPv4 packets between client and DHCPv4 +| | ... | server through DHCP proxy. +| | ... +| | Given Path for 2-node testing is set +| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} +| | And Interfaces in 2-node path are up +| | And VPP Route Add | ${dut_node} | 255.255.255.255 | 32 | ${NONE} | local +| | ... | ${FALSE} | ${NONE} +| | And Set Interface Address | ${dut_node} +| | ... | ${dut_to_tg_if1} | ${dut_to_tg_if1_ip} | ${prefix_length} +| | And Set Interface Address | ${dut_node} +| | ... | ${dut_to_tg_if2} | ${dut_to_tg_if2_ip} | ${prefix_length} +| | And Add Arp On Dut | ${dut_node} | ${dut_to_tg_if2} | ${dhcp_server_ip} +| | ... | ${tg_to_dut_if2_mac} +| | When DHCP Proxy Config | ${dut_node} | ${dhcp_server_ip} +| | ... | ${dut_to_tg_if1_ip} +| | Then Send DHCP Messages | ${tg_node} | ${tg_to_dut_if1} | ${tg_to_dut_if2} +| | ... | ${dhcp_server_ip} | ${tg_to_dut_if2_mac} | ${client_ip} +| | ... | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_ip} + +| TC02: VPP proxy ignores invalid DHCPv4 request +| | [Documentation] | +| | ... | [Top] TG=DUT \ +| | ... | [Enc] Eth-IPv4-UDP-BOOTP-DHCP +| | ... | [Cfg] On DUT setup DHCPv4 proxy. +| | ... | [Ver] Make TG verify matching invalid DHCPv4 packets are dropped. +| | ... +| | Given Path for 2-node testing is set +| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} +| | And Interfaces in 2-node path are up +| | And VPP Route Add | ${dut_node} | 255.255.255.255 | 32 | ${NONE} | local +| | ... | ${FALSE} | ${NONE} +| | And Set Interface Address | ${dut_node} +| | ... | ${dut_to_tg_if1} | ${dut_to_tg_if1_ip} | ${prefix_length} +| | And Set Interface Address | ${dut_node} +| | ... | ${dut_to_tg_if2} | ${dut_to_tg_if2_ip} | ${prefix_length} +| | And Add Arp On Dut | ${dut_node} | ${dut_to_tg_if2} | ${dhcp_server_ip} +| | ... | ${tg_to_dut_if2_mac} +| | When DHCP Proxy Config | ${dut_node} | ${dhcp_server_ip} +| | ... | ${dut_to_tg_if1_ip} +| | Then Send DHCP DISCOVER | ${tg_node} | ${tg_to_dut_if1} +| | ... | ${tg_to_dut_if2} | ${discover_src_ip} | ${valid_discover_dst_ip} +| | And Send DHCP DISCOVER should fail | ${tg_node} | ${tg_to_dut_if1} +| | ... | ${tg_to_dut_if2} | ${discover_src_ip} | ${invalid_discover_dst_ip} diff --git a/tests/func/dhcp/eth2p-ethip6-ip6base-ip6dhcpproxy-func.robot b/tests/func/dhcp/eth2p-ethip6-ip6base-ip6dhcpproxy-func.robot new file mode 100644 index 0000000000..724150f929 --- /dev/null +++ b/tests/func/dhcp/eth2p-ethip6-ip6base-ip6dhcpproxy-func.robot @@ -0,0 +1,66 @@ +# Copyright (c) 2016 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 *** +| Resource | resources/libraries/robot/default.robot +| Resource | resources/libraries/robot/testing_path.robot +| Resource | resources/libraries/robot/dhcp_proxy.robot +| Resource | resources/libraries/robot/ipv6.robot +| Library | resources.libraries.python.Trace +| Force Tags | HW_ENV | VM_ENV | 3_NODE_DOUBLE_LINK_TOPO +| Test Setup | Func Test Setup +| Test Teardown | Func Test Teardown +| Documentation | *DHCPv6 proxy test cases* +| ... +| ... | *[Top] Network Topologies:* TG = DUT +| ... | with two links between the nodes. +| ... | *[Cfg] DUT configuration:* DUT is configured with DHCPv6 proxy. +| ... | *[Ver] TG verification:* Test DHCPv6 packets are sent +| ... | on TG on first link to DUT and received on TG on second link. +| ... | On receive TG verifies if DHCPv6 packets are valid +| ... | *[Ref] Applicable standard specifications:* RFC 3315 + + +*** Variables *** +| ${dut_to_tg_if1_ip}= | 3ffe:62::1 +| ${dut_to_tg_if2_ip}= | 3ffe:63::1 +| ${dhcp_server_ip}= | 3ffe:63::2 +| ${prefix_length}= | 64 + + +*** Test Cases *** +| TC01: VPP proxies valid DHCPv6 request to DHCPv6 server +| | [Documentation] | +| | ... | [Top] TG=DUT +| | ... | [Cfg] On DUT setup DHCP proxy. +| | ... | [Ver] Make TG verify matching DHCPv6 packets between client and \ +| | ... | DHCPv6 server through DHCPv6 proxy. +| | ... | [Ref] RFC 3315 +| | ... +| | Given Path for 2-node testing is set +| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} +| | And Interfaces in 2-node path are up +| | And Vpp Set If Ipv6 Addr | ${dut_node} +| | ... | ${dut_to_tg_if1} | ${dut_to_tg_if1_ip} | ${prefix_length} +| | And Vpp Set If Ipv6 Addr | ${dut_node} +| | ... | ${dut_to_tg_if2} | ${dut_to_tg_if2_ip} | ${prefix_length} +| | And VPP Route Add | ${dut_node} | ff02::1:2 | 128 | ${NONE} | local +| | ... | ${FALSE} | ${NONE} +| | And Add IP Neighbor | ${dut_node} | ${dut_to_tg_if2} | ${dhcp_server_ip} +| | ... | ${tg_to_dut_if2_mac} +| | And Vpp All Ra Suppress Link Layer | ${nodes} +| | When DHCP Proxy Config | ${dut_node} | ${dhcp_server_ip} +| | ... | ${dut_to_tg_if1_ip} +| | Then Send DHCPv6 Messages | ${tg_node} | ${tg_to_dut_if1} | ${tg_to_dut_if2} +| | ... | ${dut_to_tg_if1_ip} | ${dut_to_tg_if1_mac} | ${dhcp_server_ip} +| | ... | ${tg_to_dut_if2_mac} | ${tg_to_dut_if1_mac} | ${dut_to_tg_if2_mac} -- cgit 1.2.3-korg