diff options
Diffstat (limited to 'resources')
-rw-r--r-- | resources/libraries/python/honeycomb/HcAPIKwInterfaces.py | 21 | ||||
-rw-r--r-- | resources/libraries/robot/honeycomb/persistence.robot | 4 | ||||
-rw-r--r-- | resources/libraries/robot/honeycomb/tap.robot | 28 | ||||
-rw-r--r-- | resources/templates/vat/tap.vat | 2 | ||||
-rw-r--r-- | resources/templates/vat/tap_dump.vat | 2 | ||||
-rw-r--r-- | resources/test_data/honeycomb/netconf/triggers.py | 8 | ||||
-rw-r--r-- | resources/test_data/honeycomb/persistence.py | 18 |
7 files changed, 51 insertions, 32 deletions
diff --git a/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py b/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py index a7aebbba25..e9ef13352b 100644 --- a/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py +++ b/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py @@ -18,13 +18,13 @@ operational data. """ from robot.api import logger -from resources.libraries.python.topology import Topology from resources.libraries.python.HTTPRequest import HTTPCodes from resources.libraries.python.honeycomb.HoneycombSetup import HoneycombError from resources.libraries.python.honeycomb.HoneycombUtil \ import DataRepresentation from resources.libraries.python.honeycomb.HoneycombUtil \ import HoneycombUtil as HcUtil +from resources.libraries.python.topology import Topology class InterfaceKeywords(object): @@ -48,7 +48,10 @@ class InterfaceKeywords(object): VXLAN_PARAMS = ("src", "dst", "vni", "encap-vrf-id") L2_PARAMS = ("bridge-domain", "split-horizon-group", "bridged-virtual-interface") - TAP_PARAMS = ("tap-name", "mac", "device-instance") + TAP_PARAMS = ("id", "tx-ring-size", "rx-ring-size", "host-mac", + "host-interface-name", "host-namespace", "host-bridge", + "host-ipv4-address", "host-ipv6-address", "tag", + "host-ipv4-gateway", "host-ipv6-gateway", "mac") VHOST_USER_PARAMS = ("socket", "role") SUB_IF_PARAMS = ("identifier", "vlan-type", @@ -949,14 +952,14 @@ class InterfaceKeywords(object): new_tap = { "name": interface, - "type": "v3po:tap", - "v3po:tap": {} + "type": "v3po:tap-v2", + "v3po:tap-v2": {} } for param, value in kwargs.items(): if param not in InterfaceKeywords.TAP_PARAMS: - raise HoneycombError("The parameter {0} is invalid.". - format(param)) - new_tap["v3po:tap"][param] = value + raise HoneycombError( + "The parameter {0} is invalid.".format(param)) + new_tap["v3po:tap-v2"][param] = value path = ("interfaces", "interface") new_tap_structure = [new_tap, ] @@ -968,7 +971,7 @@ class InterfaceKeywords(object): """Configure TAP on the interface. The keyword configures TAP parameters on the given interface. The type - of interface must be set to "v3po:tap". + of interface must be set to "v3po:tap-v2". The new TAP parameters overwrite the current configuration. If a parameter in new configuration is missing, it is removed from TAP configuration. @@ -993,7 +996,7 @@ class InterfaceKeywords(object): format(param)) tap_structure[param] = value - path = ("interfaces", ("interface", "name", interface), "v3po:tap") + path = ("interfaces", ("interface", "name", interface), "v3po:tap-v2") return InterfaceKeywords._set_interface_properties( node, interface, path, tap_structure) diff --git a/resources/libraries/robot/honeycomb/persistence.robot b/resources/libraries/robot/honeycomb/persistence.robot index 17bacd17b1..257f227abe 100644 --- a/resources/libraries/robot/honeycomb/persistence.robot +++ b/resources/libraries/robot/honeycomb/persistence.robot @@ -141,9 +141,9 @@ | | Bridge domain Operational Data From VAT Should Be | | ... | ${node} | ${0} | ${bd_settings} | | TAP Operational Data From Honeycomb Should Be -| | ... | ${node} | ${tap_interface} | ${tap_settings} +| | ... | ${node} | ${tap_interface} | ${tap_settings_oper} | | TAP Operational Data From VAT Should Be -| | ... | ${node} | ${tap_interface} | ${tap_settings} +| | ... | ${node} | ${tap_interface_vat} | ${tap_settings_vat} | | Vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_client} | | Vhost-user Operational Data From VAT Should Be diff --git a/resources/libraries/robot/honeycomb/tap.robot b/resources/libraries/robot/honeycomb/tap.robot index 0d5585b4bf..8a80c4d555 100644 --- a/resources/libraries/robot/honeycomb/tap.robot +++ b/resources/libraries/robot/honeycomb/tap.robot @@ -27,8 +27,8 @@ | | ... | | ... | *Example:* | | ... | \| Honeycomb creates TAP interface \ -| | ... | \| ${nodes['DUT1']} \| tap_int1 \| ${{'tap-name':'tap1',\ -| | ... | 'mac':'08:00:27:60:26:ab', 'device-instance':3}} \| +| | ... | \| ${nodes['DUT1']} \| tap_int1 \| ${{'host-interface-name':'tap1',\ +| | ... | 'mac':'08:00:27:60:26:ab', 'id':3}} \| | | ... | | [Arguments] | ${node} | ${interface} | ${settings} | | Create TAP interface | ${node} | ${interface} @@ -44,8 +44,8 @@ | | ... | | ... | *Example:* | | ... | \| Honeycomb configures TAP interface \ -| | ... | \| ${nodes['DUT1']} \| tap_int1 \| ${{'tap-name':'tap1',\ -| | ... | 'mac':'08:00:27:60:26:ab', 'device-instance':3}} \| +| | ... | \| ${nodes['DUT1']} \| tap_int1 \| ${{'host-interface-name':'tap1',\ +| | ... | 'mac':'08:00:27:60:26:ab', 'id':3}} \| | | ... | | [Arguments] | ${node} | ${interface} | ${settings} | | Configure interface TAP | ${node} | ${interface} @@ -77,13 +77,13 @@ | | ... | *Example:* | | ... | | ... | \| TAP Operational Data From Honeycomb Should Be \ -| | ... | \| ${nodes['DUT1']} \| tap_int1 \| ${{'tap-name':'tap1',\ -| | ... | 'mac':'08:00:27:60:26:ab', 'device-instance':3}} \| +| | ... | \| ${nodes['DUT1']} \| tap_int1 \| ${{'host-interface-name':'tap1',\ +| | ... | 'mac':'08:00:27:60:26:ab', 'id':3}} \| | | ... | | [Arguments] | ${node} | ${interface} | ${settings} | | ${api_data}= | Get interface oper data | ${node} | ${interface} -| | ${api_tap}= | Set Variable | ${api_data['v3po:tap']} -| | Should be equal | ${api_tap['tap-name']} | ${settings['tap-name']} +| | ${api_tap}= | Set Variable | ${api_data['v3po:tap-v2']} +| | Should be equal | ${api_tap['device-name']} | ${settings['device-name']} | | ${api_mac}= | Set Variable | ${api_data['phys-address']} | | Should be equal | ${api_mac} | ${settings['mac']} @@ -98,12 +98,14 @@ | | ... | *Example:* | | ... | | ... | \| TAP Operational Data From Honeycomb Should Be \ -| | ... | \| ${nodes['DUT1']} \| ${{'tap-name':'tap1',\ -| | ... | 'mac':'08:00:27:60:26:ab', 'device-instance':3}} \| +| | ... | \| ${nodes['DUT1']} \| ${{'host-interface-name':'tap1',\ +| | ... | 'mac':'08:00:27:60:26:ab', 'id':3}} \| | | ... | | [Arguments] | ${node} | ${interface} | ${settings} | | ${vat_data}= | TAP Dump | ${node} | ${interface} -| | Should be equal | ${vat_data['dev_name']} | ${settings['tap-name']} +| | Should be equal | ${vat_data['dev_name']} | ${settings['dev_name']} +| | Should be equal | ${vat_data['rx_ring_sz']} | ${settings['rx_ring_sz']} +| | Should be equal | ${vat_data['tx_ring_sz']} | ${settings['tx_ring_sz']} # other settings not accessible through VAT commands | TAP Operational Data From Honeycomb Should Be empty @@ -121,8 +123,8 @@ | | ... | | [Arguments] | ${node} | ${interface} | | ${api_data}= | Get interface oper data | ${node} | ${interface} -| | Run keyword and expect error | *KeyError: 'v3po:tap' | Set Variable -| | ... | ${api_data['v3po:tap']} +| | Run keyword and expect error | *KeyError: 'v3po:tap-v2' | Set Variable +| | ... | ${api_data['v3po:tap-v2']} | TAP Operational Data From VAT Should Be empty | | [Documentation] | Attempts to retrieve interface TAP configuration\ diff --git a/resources/templates/vat/tap.vat b/resources/templates/vat/tap.vat index 30cde83d9e..bac63e8ee0 100644 --- a/resources/templates/vat/tap.vat +++ b/resources/templates/vat/tap.vat @@ -1 +1 @@ -tap_{tap_command} {tap_arguments}
\ No newline at end of file +tap_{tap_command}_v2 {tap_arguments}
\ No newline at end of file diff --git a/resources/templates/vat/tap_dump.vat b/resources/templates/vat/tap_dump.vat index 8f51f6e23c..de8412b581 100644 --- a/resources/templates/vat/tap_dump.vat +++ b/resources/templates/vat/tap_dump.vat @@ -1 +1 @@ -sw_interface_tap_dump
\ No newline at end of file +sw_interface_tap_v2_dump
\ No newline at end of file diff --git a/resources/test_data/honeycomb/netconf/triggers.py b/resources/test_data/honeycomb/netconf/triggers.py index 8cdfcd9380..0db68dd1f0 100644 --- a/resources/test_data/honeycomb/netconf/triggers.py +++ b/resources/test_data/honeycomb/netconf/triggers.py @@ -404,10 +404,10 @@ trigger_revert2 = u""" <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> <interface> <name>tap</name> -<type xmlns:v3po="http://fd.io/hc2vpp/yang/v3po">v3po:tap</type> +<type xmlns:v3po="http://fd.io/hc2vpp/yang/v3po">v3po:tap-v2</type> <enabled>true</enabled> <tap xmlns="http://fd.io/hc2vpp/yang/v3po"> -<tap-name>tap</tap-name> +<dev-name>tap</dev-name> </tap> </interface> </interfaces> @@ -425,10 +425,10 @@ trigger_revert2 = u""" <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> <interface> <name>tap2</name> -<type xmlns:v3po="http://fd.io/hc2vpp/yang/v3po">v3po:tap</type> +<type xmlns:v3po="http://fd.io/hc2vpp/yang/v3po">v3po:tap-v2</type> <enabled>true</enabled> <tap xmlns="http://fd.io/hc2vpp/yang/v3po"> -<tap-name>tap</tap-name> +<dev-name>tap</dev-name> </tap> </interface> </interfaces> diff --git a/resources/test_data/honeycomb/persistence.py b/resources/test_data/honeycomb/persistence.py index 88d2137bae..f4ebdd5f23 100644 --- a/resources/test_data/honeycomb/persistence.py +++ b/resources/test_data/honeycomb/persistence.py @@ -44,10 +44,24 @@ def get_variables(interface): }, # tap interface settings 'tap_interface': 'tap_test', - 'tap_settings': {'tap-name': 'tap_test', + 'tap_interface_vat': 'tap0', + 'tap_settings': {'host-interface-name': 'tap_test', 'mac': '08:00:27:c0:5d:37', - 'device-instance': 1 + 'id': 1 }, + 'tap_settings_oper': {'host-interface-name': 'tap_test', + 'device-name': 'tap0', + 'tx-ring-size': 256, + 'rx-ring-size': 256, + 'mac': '08:00:27:c0:5d:37', + 'id': 1 + }, + 'tap_settings_vat': {'dev_name': 'tap0', + 'tx_ring_sz': 256, + 'rx_ring_sz': 256, + 'mac': '08:00:27:c0:5d:37', + 'id': 1 + }, # vhost-user interface settings 'vhost_interface': 'test_vhost', 'vhost_user_client': {'socket': 'soc1', |