summaryrefslogtreecommitdiffstats
path: root/src/cmake/api.cmake
AgeCommit message (Expand)AuthorFilesLines
2021-04-30misc: experimental configure scriptDamjan Marion1-6/+6
2021-02-08misc: support api generated dependency for multiarch sourceOle Troan1-0/+4
2020-11-25api: vat2 and json autogeneration for api messagesOle Troan1-1/+20
2020-03-31vlib: move pci api types from vnet/pci to vlib/pciJakub Grajciar1-2/+1
2019-12-17build: export vapi generation in vpp-devOliver Giles1-6/+77
2019-09-25api: split api generated filesOle Troan1-1/+1
2019-07-25build: vppapigen search VPP_INCLUDE_DIR if setBenoƮt Ganne1-2/+8
2018-11-30API: Add dependency on compiler for API .json and .api generation.Ole Troan1-2/+2
2018-09-12cmake: create cmake VPP module, update sample-plugin so it uses itDamjan Marion1-2/+8
2018-09-07cmake: set packaging component for different filesDamjan Marion1-5/+9
2018-08-27cmake: add vapi buildDamjan Marion1-2/+5
2018-08-26cmake: move functions to src/cmakeDamjan Marion1-0/+65
href='#n40'>40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
# 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.

*** Variables ***
# Interface to run tests on.
| ${interface}= | ${node['interfaces']['port1']['name']}
# Configuration which will be set and verified during tests.
| ${ipv4_address}= | 192.168.0.2
| ${ipv4_address2}= | 192.168.0.3
| ${ipv4_mask}= | 255.255.255.0
| ${ipv4_prefix}= | ${24}
| @{ipv4_neighbor}= | 192.168.0.4 | 08:00:27:c0:5d:37
| &{ipv4_settings}= | mtu=${9000}
| @{ipv6_address}= | 10::10 | ${64}
| @{ipv6_neighbor}= | 10::11 | 08:00:27:c0:5d:37
| &{ipv6_settings}= | enabled=${True} | forwarding=${True} | mtu=${9000}
| ... | dup-addr-detect-transmits=${5}
| &{ethernet}= | mtu=${9000}
| &{routing}= | vrf-id=${27}
| &{vxlan_settings}= | src=10.0.1.20 | dst=10.0.3.20 | vni=${1000}
| ... | encap-vrf-id=${1000}

*** Settings ***
| Resource | resources/libraries/robot/default.robot
| Resource | resources/libraries/robot/honeycomb/interfaces.robot
| Resource | resources/libraries/robot/honeycomb/honeycomb.robot
| Force Tags | honeycomb_sanity
| Suite Teardown | Run Keyword If Any Tests Failed
| | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node}
| Documentation | *Honeycomb interface management test suite.*
| ...
| ... | Test suite uses the first interface of the first DUT node.

*** Test Cases ***
| Honeycomb configures and reads interface state
| | [Documentation] | Check if Honeycomb API can modify the admin state of\
| | ... | VPP interfaces.
| | Given Interface state from Honeycomb should be
| | ... | ${node} | ${interface} | down
| | And Interface state from VAT should be | ${node} | ${interface} | down
| | When Honeycomb sets interface state | ${node} | ${interface} | up
| | Then Interface state from Honeycomb should be
| | ... | ${node} | ${interface} | up
| | And Interface state from VAT should be | ${node} | ${interface} | up
| | When Honeycomb sets interface state | ${node} | ${interface} | down
| | Then Interface state from Honeycomb should be
| | ... | ${node} | ${interface} | down
| | And Interface state from VAT should be | ${node} | ${interface} | down

| Honeycomb modifies interface IPv4 address with netmask
| | [Documentation] | Check if Honeycomb API can configure interfaces for ipv4\
| | ... | with address and netmask provided.
| | Given IPv4 address from Honeycomb should be empty | ${node} | ${interface}
| | And ipv4 address from VAT should be empty | ${node} | ${interface}
| | When Honeycomb sets interface ipv4 address | ${node} | ${interface}
| | ... | ${ipv4_address} | ${ipv4_mask}
| | Then IPv4 address from Honeycomb should be
| | ... | ${node} | ${interface} | ${ipv4_address} | ${ipv4_prefix}
| | And IPv4 address from VAT should be
| | ... | ${node} | ${interface} | ${ipv4_address} | ${ipv4_mask}

| Honeycomb removes IPv4 address from interface
| | [Documentation] | Check if Honeycomb API can remove configured ipv4\
| | ... | addresses from interface.
| | Given IPv4 address from Honeycomb should be
| | ... | ${node} | ${interface} | ${ipv4_address} | ${ipv4_prefix}
| | And IPv4 address from VAT should be
| | ... | ${node} | ${interface} | ${ipv4_address} | ${ipv4_mask}
| | When Honeycomb removes interface ipv4 addresses | ${node} | ${interface}
| | Then IPv4 address from Honeycomb should be empty | ${node} | ${interface}
| | And ipv4 address from VAT should be empty | ${node} | ${interface}

| Honeycomb modifies interface IPv4 address with prefix
| | [Documentation] | Check if Honeycomb API can configure interfaces for ipv4\
| | ... | with address and prefix provided.
| | [Teardown] | Honeycomb removes interface ipv4 addresses | ${node}
| | ... | ${interface}
| | Given IPv4 address from Honeycomb should be empty | ${node} | ${interface}
| | And ipv4 address from VAT should be empty | ${node} | ${interface}
| | When Honeycomb sets interface ipv4 address with prefix
| | ... | ${node} | ${interface} | ${ipv4_address2} | ${ipv4_prefix}
| | Then IPv4 address from Honeycomb should be
| | ... | ${node} | ${interface} | ${ipv4_address2} | ${ipv4_prefix}
| | And IPv4 address from VAT should be
| | ... | ${node} | ${interface} | ${ipv4_address2} | ${ipv4_mask}

| Honeycomb modifies IPv4 neighbor table
| | [Documentation] | Check if Honeycomb API can add and remove ARP entries.
# Feature not implemented
| | [Tags] | EXPECTED_FAILING
| | [Teardown] | Honeycomb clears all interface ipv4 neighbors
| | ... | ${node} | ${interface}
| | When Honeycomb adds interface ipv4 neighbor
| | ... | ${node} | ${interface} | @{ipv4_neighbor}
| | Then IPv4 neighbor from Honeycomb should be
| | ... | ${node} | ${interface} | @{ipv4_neighbor}
# VAT dump not available

| Honeycomb modifies interface configuration - IPv6
| | [Documentation] | Check if Honeycomb API can configure interfaces for ipv6.
# Feature not implemented
| | [Tags] | EXPECTED_FAILING
| | When Honeycomb sets interface ipv6 address
| | ... | ${node} | ${interface} | @{ipv6_address}
| | Then IPv6 address from Honeycomb should be
| | ... | ${node} | ${interface} | @{ipv6_address}
| | And IPv6 address from VAT should be
| | ... | ${node} | ${interface} | @{ipv6_address}

| Honeycomb modifies interface configuration - ethernet,routing
| | [Documentation] | Check if Honeycomb API can configure interface ethernet\
| | ... | and routing settings.
# Feature not implemented
| | [Tags] | EXPECTED_FAILING
| | When Honeycomb sets interface ethernet and routing configuration
| | ... | ${node} | ${interface} | ${ethernet} | ${routing}
| | Then Interface ethernet and routing configuration from Honeycomb should be
| | ... | ${node} | ${interface} | ${ethernet} | ${routing}
| | And Interface ethernet and routing configuration from VAT should be
| | ... | ${node} | ${interface} | ${ethernet['mtu']} | ${routing['vrf-id']}