aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--resources/libraries/python/honeycomb/HcAPIKwInterfaces.py121
-rw-r--r--resources/libraries/robot/honeycomb/provider_backbone_bridge.robot21
-rw-r--r--resources/test_data/honeycomb/pbb/pbb.py249
-rw-r--r--tests/func/honeycomb/090_provider_backbone_bridge.robot95
4 files changed, 142 insertions, 344 deletions
diff --git a/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py b/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py
index 035016c276..3271413d1c 100644
--- a/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py
+++ b/resources/libraries/python/honeycomb/HcAPIKwInterfaces.py
@@ -85,7 +85,7 @@ class InterfaceKeywords(object):
:type interface: str
:type data: dict
:type data_representation: DataRepresentation
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the status code in response on PUT is not
200 = OK.
@@ -106,7 +106,7 @@ class InterfaceKeywords(object):
:param node: Honeycomb node.
:type node: dict
- :return: Configuration data about all interfaces from Honeycomb.
+ :returns: Configuration data about all interfaces from Honeycomb.
:rtype: list
:raises HoneycombError: If it is not possible to get configuration data.
"""
@@ -131,7 +131,7 @@ class InterfaceKeywords(object):
:param interface: The name of interface.
:type node: dict
:type interface: str
- :return: Configuration data about the given interface from Honeycomb.
+ :returns: Configuration data about the given interface from Honeycomb.
:rtype: dict
"""
@@ -147,7 +147,7 @@ class InterfaceKeywords(object):
:param node: Honeycomb node.
:type node: dict
- :return: Operational data about all interfaces from Honeycomb.
+ :returns: Operational data about all interfaces from Honeycomb.
:rtype: list
:raises HoneycombError: If it is not possible to get operational data.
"""
@@ -170,7 +170,7 @@ class InterfaceKeywords(object):
:param node: Honeycomb node.
:type node: dict
- :return: Operational data about disabled interfaces.
+ :returns: Operational data about disabled interfaces.
:rtype: list
:raises HoneycombError: If it is not possible to get operational data.
"""
@@ -199,7 +199,7 @@ class InterfaceKeywords(object):
:param interface: The name of interface.
:type node: dict
:type interface: str
- :return: Operational data about the given interface from Honeycomb.
+ :returns: Operational data about the given interface from Honeycomb.
:rtype: dict
"""
@@ -225,7 +225,7 @@ class InterfaceKeywords(object):
:type interface: str
:type path: tuple
:type new_value: str, dict or list
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If it is not possible to get or set the data.
"""
@@ -257,7 +257,7 @@ class InterfaceKeywords(object):
:type node: dict
:type interface: str
:type state: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises KeyError: If the argument "state" is nor "up" or "down".
:raises HoneycombError: If the interface is not present on the node.
@@ -298,7 +298,7 @@ class InterfaceKeywords(object):
:param interface: The name of interface.
:type node: dict
:type interface: str
- :return: Content of response
+ :returns: Content of response
:rtype: bytearray
"""
@@ -312,7 +312,7 @@ class InterfaceKeywords(object):
:param interface: The name of interface.
:type node: dict
:type interface: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
"""
@@ -333,7 +333,7 @@ class InterfaceKeywords(object):
:type bd_name: str
:type split_horizon_group: str
:type bvi: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the interface is not present on the node.
"""
@@ -391,7 +391,7 @@ class InterfaceKeywords(object):
:param interface: The name of interface.
:type node: dict
:type interface: str
- :return: Operational data about bridge domain settings in the
+ :returns: Operational data about bridge domain settings in the
interface.
:rtype: dict
"""
@@ -418,7 +418,7 @@ class InterfaceKeywords(object):
:type interface: str
:type param: str
:type value: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the parameter is not valid.
"""
@@ -443,7 +443,7 @@ class InterfaceKeywords(object):
:type interface: str
:type param: str
:type value: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the parameter is not valid.
"""
@@ -473,7 +473,7 @@ class InterfaceKeywords(object):
:type interface: str
:type ip_addr: str
:type network: str or int
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the provided netmask or prefix is not valid.
"""
@@ -504,7 +504,7 @@ class InterfaceKeywords(object):
:type interface: str
:type ip_addr: str
:type network: str or int
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the provided netmask or prefix is not valid.
"""
@@ -532,7 +532,7 @@ class InterfaceKeywords(object):
:param interface: The name of interface.
:type node: dict
:type interface: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
"""
@@ -553,7 +553,7 @@ class InterfaceKeywords(object):
:type interface: str
:type ip_addr: str
:type link_layer_address: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
"""
@@ -571,7 +571,7 @@ class InterfaceKeywords(object):
:param interface: The name of interface.
:type node: dict
:type interface: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
"""
@@ -593,7 +593,7 @@ class InterfaceKeywords(object):
:type interface: str
:type param: str
:type value: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the parameter is not valid.
"""
@@ -624,7 +624,7 @@ class InterfaceKeywords(object):
:type interface: str
:type ip_addr: str
:type prefix_len: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
"""
@@ -645,7 +645,7 @@ class InterfaceKeywords(object):
:type interface: str
:type ip_addr: str
:type prefix_len: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
"""
@@ -663,7 +663,7 @@ class InterfaceKeywords(object):
:param interface: The name of interface.
:type node: dict
:type interface: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
"""
@@ -684,7 +684,7 @@ class InterfaceKeywords(object):
:type interface: str
:type ip_addr: str
:type link_layer_address: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
"""
@@ -702,7 +702,7 @@ class InterfaceKeywords(object):
:param interface: The name of interface.
:type node: dict
:type interface: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
"""
@@ -724,7 +724,7 @@ class InterfaceKeywords(object):
:type interface: str
:type param: str
:type value: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the parameter is not valid.
"""
@@ -749,7 +749,7 @@ class InterfaceKeywords(object):
:type interface: str
:type param: str
:type value: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the parameter is not valid.
"""
@@ -773,7 +773,7 @@ class InterfaceKeywords(object):
:type node: dict
:type interface: str
:type kwargs: dict
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the parameter is not valid.
"""
@@ -802,7 +802,7 @@ class InterfaceKeywords(object):
:param interface: The name of interface.
:type node: dict
:type interface: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If it is not possible to get information about
interfaces or it is not possible to delete the interface.
@@ -844,7 +844,7 @@ class InterfaceKeywords(object):
:type node: dict
:type interface: str
:type kwargs: dict
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the parameter is not valid.
"""
@@ -873,7 +873,7 @@ class InterfaceKeywords(object):
:type interface: str
:type param: str
:type value: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the parameter is not valid.
"""
@@ -896,7 +896,7 @@ class InterfaceKeywords(object):
:type node: dict
:type interface: str
:type kwargs: dict
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the parameter is not valid.
"""
@@ -935,7 +935,7 @@ class InterfaceKeywords(object):
:type node: dict
:type interface: str
:type kwargs: dict
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the parameter is not valid.
"""
@@ -969,7 +969,7 @@ class InterfaceKeywords(object):
:type node: dict
:type interface: str
:type kwargs: dict
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the parameter is not valid.
"""
@@ -997,7 +997,7 @@ class InterfaceKeywords(object):
:type node: dict
:type interface: str
:type kwargs: dict
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the parameter is not valid.
"""
@@ -1034,7 +1034,7 @@ class InterfaceKeywords(object):
:type match: str
:type tags: list
:type kwargs: dict
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the parameter is not valid.
:raises KeyError: If the parameter 'match' is invalid.
@@ -1090,7 +1090,7 @@ class InterfaceKeywords(object):
:type node: dict
:type super_interface: str
:type identifier: int
- :return: Sub-interface operational data.
+ :returns: Sub-interface operational data.
:rtype: dict
:raises HoneycombError: If there is no sub-interface with the given ID.
"""
@@ -1112,7 +1112,7 @@ class InterfaceKeywords(object):
:param super_interface: Super interface.
:type node: dict
:type super_interface: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
"""
@@ -1135,7 +1135,7 @@ class InterfaceKeywords(object):
:type super_interface: str
:type identifier: int
:type state: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
"""
@@ -1164,7 +1164,7 @@ class InterfaceKeywords(object):
:type super_interface: str
:type identifier: int
:type config: dict
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
"""
@@ -1187,7 +1187,7 @@ class InterfaceKeywords(object):
:type node: dict
:type super_interface: str
:type identifier: int
- :return: Operational data about the bridge domain.
+ :returns: Operational data about the bridge domain.
:rtype: dict
:raises HoneycombError: If there is no sub-interface with the given ID.
"""
@@ -1212,7 +1212,7 @@ class InterfaceKeywords(object):
:type super_interface: str
:type identifier: int
:type config: dict
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
"""
@@ -1236,7 +1236,7 @@ class InterfaceKeywords(object):
:type node: dict
:type super_interface: str
:type identifier: int
- :return: Operational data about tag rewrite.
+ :returns: Operational data about tag rewrite.
:rtype: dict
:raises HoneycombError: If there is no sub-interface with the given ID.
"""
@@ -1266,7 +1266,7 @@ class InterfaceKeywords(object):
:type identifier: int
:type ip_addr: str
:type network: str or int
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the provided netmask or prefix is not valid.
"""
@@ -1301,7 +1301,7 @@ class InterfaceKeywords(object):
:type node: dict
:type super_interface: str
:type identifier: int
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
"""
@@ -1390,7 +1390,7 @@ class InterfaceKeywords(object):
:type node: dict
:type interface: str
:type kwargs: dict
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If a parameter in kwargs is not valid.
"""
@@ -1423,7 +1423,7 @@ class InterfaceKeywords(object):
:type node: dict
:type interface: str
:type table_name: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the configuration of interface is not
successful.
@@ -1462,7 +1462,7 @@ class InterfaceKeywords(object):
:param interface: The interface where the ACL will be disabled.
:type node: dict
:type interface: str
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the configuration of interface is not
successful.
@@ -1482,28 +1482,25 @@ class InterfaceKeywords(object):
return resp
@staticmethod
- def create_pbb_sub_interface(node, intf, sub_if_id, params):
+ def create_pbb_sub_interface(node, intf, params):
"""Creates a PBB sub-interface on the given interface and sets its
parameters.
:param node: Honeycomb node.
:param intf: The interface where PBB sub-interface will be configured.
- :param sub_if_id: Sub-interface ID.
:param params: Configuration parameters of the sub-interface to be
created.
:type node: dict
:type intf: str
- :type sub_if_id: str or int
:type params: dict
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the configuration of sub-interface is not
successful.
"""
interface = intf.replace("/", "%2F")
- path = "/interface/{0}/sub-interfaces:sub-interfaces/sub-interface/" \
- "{1}".format(interface, sub_if_id)
+ path = "/interface/{0}/pbb-rewrite/".format(interface)
status_code, resp = HcUtil. \
put_honeycomb_data(node, "config_vpp_interfaces", params, path,
data_representation=DataRepresentation.JSON)
@@ -1514,24 +1511,21 @@ class InterfaceKeywords(object):
return resp
@staticmethod
- def delete_pbb_sub_interface(node, intf, sub_if_id):
+ def delete_pbb_sub_interface(node, intf):
"""Deletes the given PBB sub-interface.
:param node: Honeycomb node.
:param intf: The interface where PBB sub-interface will be deleted.
- :param sub_if_id: ID of the PBB sub-interface to be deleted.
:type node: dict
:type intf: str
- :type sub_if_id: str or int
- :return: Content of response.
+ :returns: Content of response.
:rtype: bytearray
:raises HoneycombError: If the removal of sub-interface is not
successful.
"""
interface = intf.replace("/", "%2F")
- path = "/interface/{0}/sub-interfaces:sub-interfaces/sub-interface/" \
- "{1}".format(interface, sub_if_id)
+ path = "/interface/{0}/pbb-rewrite".format(interface)
status_code, resp = HcUtil. \
delete_honeycomb_data(node, "config_vpp_interfaces", path)
@@ -1551,14 +1545,13 @@ class InterfaceKeywords(object):
:type node: dict
:type intf: str
:type sub_if_id: str or int
- :return: PBB sub-interface operational data.
+ :returns: PBB sub-interface operational data.
:rtype: dict
:raises HoneycombError: If the removal of sub-interface is not
successful.
"""
- interface = "{0}.{1}".format(intf, sub_if_id)
- return InterfaceKeywords.get_interface_oper_data(node, interface)
+ raise NotImplementedError
@staticmethod
def check_disabled_interface(node, interface):
@@ -1569,7 +1562,7 @@ class InterfaceKeywords(object):
:param interface: Index number of an interface on the node.
:type node: dict
:type interface: int
- :return: True if the interface exists in disabled interfaces.
+ :returns: True if the interface exists in disabled interfaces.
:rtype: bool
:raises HoneycombError: If the interface is not present
in retrieved list of disabled interfaces.
diff --git a/resources/libraries/robot/honeycomb/provider_backbone_bridge.robot b/resources/libraries/robot/honeycomb/provider_backbone_bridge.robot
index e088e69a83..dc15742b5b 100644
--- a/resources/libraries/robot/honeycomb/provider_backbone_bridge.robot
+++ b/resources/libraries/robot/honeycomb/provider_backbone_bridge.robot
@@ -29,13 +29,13 @@
| | ...
| | ... | *Example:*
| | ... | \| Honeycomb creates PBB sub interface \| ${node} \| ${super_if}\
-| | ... | \| ${cfg_pbb_sub_if_1_ID} \| ${cfg_pbb_sub_if_1} \|
+| | ... | \| ${cfg_pbb_sub_if_1} \|
| | ...
-| | [Arguments] | ${node} | ${super_if} | ${sub_if_id} | ${params}
+| | [Arguments] | ${node} | ${super_if} | ${params}
| | ...
| | IfAPI.Set Interface Up | ${node} | ${super_if}
| | IfAPI.Create PBB Sub Interface
-| | ... | ${node} | ${super_if} | ${sub_if_id} | ${params}
+| | ... | ${node} | ${super_if} | ${params}
| Honeycomb Removes PBB Sub Interface
| | [Documentation] | Uses Honeycomb API to remove PBB sub-interface from its\
@@ -48,11 +48,11 @@
| | ...
| | ... | *Example:*
| | ... | \| Honeycomb Removes PBB sub interface\
-| | ... | \| ${node} \| ${super_if} \| ${cfg_pbb_sub_if_1_ID} \|
+| | ... | \| ${node} \| ${super_if} \|
| | ...
-| | [Arguments] | ${node} | ${super_if} | ${sub_if_id}
+| | [Arguments] | ${node} | ${super_if}
| | ...
-| | Delete PBB Sub Interface | ${node} | ${super_if} | ${sub_if_id}
+| | Delete PBB Sub Interface | ${node} | ${super_if}
| PBB Sub Interface Operational Data From Honeycomb Should Be
| | [Documentation] | Retrieves PBB sub-interface operational data from
@@ -107,12 +107,11 @@
| | ...
| | ... | *Example:*
| | ... | \| Honeycomb fails to create PBB sub interface\
-| | ... | \| ${node} \| ${super_if} \| ${cfg_pbb_sub_if_ID}\
-| | ... | \| ${cfg_pbb_sub_if_no_vlan_tag} \|
+| | ... | \| ${node} \| ${super_if} \| ${cfg_pbb_sub_if_no_vlan_tag} \|
| | ...
-| | [Arguments] | ${node} | ${super_if} | ${sub_if_id} | ${params}
+| | [Arguments] | ${node} | ${super_if} | ${params}
| | ...
| | IfAPI.Set Interface Up | ${node} | ${super_if}
-| | Run keyword and expect error | *HoneycombError*not successful*code: *00.
+| | Run keyword and expect error | *HoneycombError*not successful*.
| | ... | IfAPI.Create PBB Sub Interface
-| | ... | ${node} | ${super_if} | ${sub_if_id} | ${params}
+| | ... | ${node} | ${super_if} | ${params}
diff --git a/resources/test_data/honeycomb/pbb/pbb.py b/resources/test_data/honeycomb/pbb/pbb.py
index 93ef2e28cf..f71c70ebaf 100644
--- a/resources/test_data/honeycomb/pbb/pbb.py
+++ b/resources/test_data/honeycomb/pbb/pbb.py
@@ -17,135 +17,27 @@
# Add pbb sub interface
# Configuration data
-cfg_pbb_sub_if_1_ID = '1'
cfg_pbb_sub_if_1 = {
- "sub-interface": [
- {
- "identifier": cfg_pbb_sub_if_1_ID,
- "vlan-type": "dot1ah-types:802dot1ah",
- "enabled": "true",
- "admin-status": "up",
- "oper-status": "up",
- "pbb": {
- "source-address": "aa:aa:aa:aa:aa:ab",
- "destination-address": "bb:bb:bb:bb:bb:bc",
- "b-vlan-tag-vlan-id": "2223",
- "i-tag-isid": "12"
- },
- }
- ]
-}
-
-# Expected operational data:
-oper_pbb_sub_if_1 = {
- 'admin-status': 'up',
- 'ietf-ip:ipv4': {},
- 'oper-status': 'up',
- 'sub-interfaces:sub-interfaces': {},
- 'type': 'iana-if-type:ethernetCsmacd',
- 'v3po:ethernet': {
- 'duplex': 'full',
- 'mtu': 9216
+ "pbb-rewrite": {
+ "source-address": "aa:aa:aa:aa:aa:ab",
+ "destination-address": "bb:bb:bb:bb:bb:bc",
+ "b-vlan-tag-vlan-id": "2223",
+ "outer-tag": "16",
+ "i-tag-isid": "12",
+ "interface-operation": "translate-2-1"
}
}
# Modify pbb sub interface
# Configuration data
-cfg_pbb_sub_if_1_ID = '2'
cfg_pbb_sub_if_1_mod = {
- "sub-interface": [
- {
- "identifier": cfg_pbb_sub_if_1_ID,
- "vlan-type": "dot1ah-types:802dot1ah",
- "enabled": "true",
- "admin-status": "up",
- "oper-status": "up",
- "pbb": {
- "source-address": "aa:aa:aa:aa:aa:de",
- "destination-address": "bb:bb:bb:bb:bb:ed",
- "b-vlan-tag-vlan-id": "2223",
- "i-tag-isid": "12"
- },
- }
- ]
-}
-
-# Expected operational data:
-oper_pbb_sub_if_1_mod = {
- 'admin-status': 'up',
- 'ietf-ip:ipv4': {},
- 'oper-status': 'up',
- 'sub-interfaces:sub-interfaces': {},
- 'type': 'iana-if-type:ethernetCsmacd',
- 'v3po:ethernet': {
- 'duplex': 'full',
- 'mtu': 9216
- }
-}
-
-# Configuration data
-cfg_pbb_sub_if_2_ID = '3'
-cfg_pbb_sub_if_2 = {
- "sub-interface": [
- {
- "identifier": cfg_pbb_sub_if_2_ID,
- "vlan-type": "dot1ah-types:802dot1ah",
- "enabled": "true",
- "admin-status": "up",
- "oper-status": "up",
- "pbb": {
- "source-address": "aa:aa:aa:aa:aa:cc",
- "destination-address": "bb:bb:bb:bb:bb:dd",
- "b-vlan-tag-vlan-id": "10",
- "i-tag-isid": "20"
- },
- }
- ]
-}
-
-# Expected operational data:
-oper_pbb_sub_if_2 = {
- 'admin-status': 'up',
- 'ietf-ip:ipv4': {},
- 'oper-status': 'up',
- 'sub-interfaces:sub-interfaces': {},
- 'type': 'iana-if-type:ethernetCsmacd',
- 'v3po:ethernet': {
- 'duplex': 'full',
- 'mtu': 9216
- }
-}
-
-# Configuration data
-cfg_pbb_sub_if_3_ID = '4'
-cfg_pbb_sub_if_3 = {
- "sub-interface": [
- {
- "identifier": cfg_pbb_sub_if_3_ID,
- "vlan-type": "dot1ah-types:802dot1ah",
- "enabled": "true",
- "admin-status": "up",
- "oper-status": "up",
- "pbb": {
- "source-address": "aa:aa:aa:aa:cc:aa",
- "destination-address": "bb:bb:bb:bb:dd:bb",
- "b-vlan-tag-vlan-id": "30",
- "i-tag-isid": "40"
- },
- }
- ]
-}
-
-# Expected operational data:
-oper_pbb_sub_if_3 = {
- 'admin-status': 'up',
- 'ietf-ip:ipv4': {},
- 'oper-status': 'up',
- 'sub-interfaces:sub-interfaces': {},
- 'type': 'iana-if-type:ethernetCsmacd',
- 'v3po:ethernet': {
- 'duplex': 'full',
- 'mtu': 9216
+ "pbb-rewrite": {
+ "source-address": "aa:aa:aa:aa:aa:ac",
+ "destination-address": "bb:bb:bb:bb:bb:bd",
+ "b-vlan-tag-vlan-id": "2224",
+ "outer-tag": "17",
+ "i-tag-isid": "13",
+ "interface-operation": "push-2"
}
}
@@ -153,94 +45,59 @@ oper_pbb_sub_if_3 = {
# Wrong source-address
cfg_pbb_sub_if_ID = '5'
cfg_pbb_sub_if_wrong_src_addr = {
- "sub-interface": [
- {
- "identifier": cfg_pbb_sub_if_ID,
- "vlan-type": "dot1ah-types:802dot1ah",
- "enabled": "true",
- "admin-status": "up",
- "oper-status": "up",
- "pbb": {
- "source-address": "ab:cd:ef:gh:ij",
- "destination-address": "bb:bb:bb:bb:bb:bc",
- "b-vlan-tag-vlan-id": "2223",
- "i-tag-isid": "12"
- },
- }
- ]
+ "pbb-rewrite": {
+ "source-address": "aa:aa:aa:aa:aa:ag",
+ "destination-address": "bb:bb:bb:bb:bb:ce",
+ "b-vlan-tag-vlan-id": "2226",
+ "outer-tag": "19",
+ "i-tag-isid": "15",
+ "interface-operation": "pop-2"
+ }
}
# Wrong destination-address
cfg_pbb_sub_if_wrong_dst_addr = {
- "sub-interface": [
- {
- "identifier": cfg_pbb_sub_if_ID,
- "vlan-type": "dot1ah-types:802dot1ah",
- "enabled": "true",
- "admin-status": "up",
- "oper-status": "up",
- "pbb": {
- "source-address": "aa:aa:aa:aa:aa:ab",
- "destination-address": "ab:cd:ef:gh:ij",
- "b-vlan-tag-vlan-id": "2223",
- "i-tag-isid": "12"
- },
- }
- ]
+ "pbb-rewrite": {
+ "source-address": "aa:aa:aa:aa:aa:ae",
+ "destination-address": "bb:bb:bb:bb:bb:cg",
+ "b-vlan-tag-vlan-id": "2226",
+ "outer-tag": "19",
+ "i-tag-isid": "15",
+ "interface-operation": "pop-2"
+ }
}
# Wrong b-vlan-tag-vlan-id
cfg_pbb_sub_if_wrong_vlan_tag = {
- "sub-interface": [
- {
- "identifier": cfg_pbb_sub_if_ID,
- "vlan-type": "dot1ah-types:802dot1ah",
- "enabled": "true",
- "admin-status": "up",
- "oper-status": "up",
- "pbb": {
- "source-address": "aa:aa:aa:aa:aa:ab",
- "destination-address": "bb:bb:bb:bb:bb:bc",
- "b-vlan-tag-vlan-id": "123456789",
- "i-tag-isid": "12"
- },
- }
- ]
+ "pbb-rewrite": {
+ "source-address": "aa:aa:aa:aa:aa:ae",
+ "destination-address": "bb:bb:bb:bb:bb:ce",
+ "b-vlan-tag-vlan-id": "123456789",
+ "outer-tag": "19",
+ "i-tag-isid": "15",
+ "interface-operation": "pop-2"
+ }
}
# Wrong i-tag-isid
cfg_pbb_sub_if_wrong_i_tag = {
- "sub-interface": [
- {
- "identifier": cfg_pbb_sub_if_ID,
- "vlan-type": "dot1ah-types:802dot1ah",
- "enabled": "true",
- "admin-status": "up",
- "oper-status": "up",
- "pbb": {
- "source-address": "aa:aa:aa:aa:aa:ab",
- "destination-address": "bb:bb:bb:bb:bb:bc",
- "b-vlan-tag-vlan-id": "2223",
- "i-tag-isid": "167772152345"
- },
- }
- ]
+ "pbb-rewrite": {
+ "source-address": "aa:aa:aa:aa:aa:ae",
+ "destination-address": "bb:bb:bb:bb:bb:ce",
+ "b-vlan-tag-vlan-id": "2226",
+ "outer-tag": "19",
+ "i-tag-isid": "167772152345",
+ "interface-operation": "pop-2"
+ }
}
# b-vlan-tag-vlan-id is missing
cfg_pbb_sub_if_no_vlan_tag = {
- "sub-interface": [
- {
- "identifier": cfg_pbb_sub_if_ID,
- "vlan-type": "dot1ah-types:802dot1ah",
- "enabled": "true",
- "admin-status": "up",
- "oper-status": "up",
- "pbb": {
- "source-address": "aa:aa:aa:aa:aa:ab",
- "destination-address": "bb:bb:bb:bb:bb:bc",
- "i-tag-isid": "12"
- },
- }
- ]
+ "pbb-rewrite": {
+ "source-address": "aa:aa:aa:aa:aa:ae",
+ "destination-address": "bb:bb:bb:bb:bb:ce",
+ "outer-tag": "19",
+ "i-tag-isid": "15",
+ "interface-operation": "pop-2"
+ }
}
diff --git a/tests/func/honeycomb/090_provider_backbone_bridge.robot b/tests/func/honeycomb/090_provider_backbone_bridge.robot
index 65d5217eb8..16791e236b 100644
--- a/tests/func/honeycomb/090_provider_backbone_bridge.robot
+++ b/tests/func/honeycomb/090_provider_backbone_bridge.robot
@@ -15,6 +15,8 @@
| ${super_if}= | ${node['interfaces']['port1']['name']}
*** Settings ***
+| Resource | resources/libraries/robot/default.robot
+| Resource | resources/libraries/robot/honeycomb/honeycomb.robot
| Resource | resources/libraries/robot/honeycomb/provider_backbone_bridge.robot
| Variables | resources/test_data/honeycomb/pbb/pbb.py
| Documentation | *Honeycomb provider backbone bridge test suite.*
@@ -23,111 +25,58 @@
| Force Tags | honeycomb_sanity
*** Test Cases ***
+# TODO: add verifications once operational data or VPP dump is available.
| TC01: Honeycomb sets PBB sub-interface
-| | [Documentation] | Honeycomb creates a new PBB sub-interface and checks its\
-| | ... | operational data.
+| | [Documentation] | Honeycomb creates a new PBB sub-interface.
| | ...
-| | Given PBB sub interface operational data from Honeycomb should be empty
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_1_ID}
-| | When Honeycomb creates PBB sub interface | ${node} | ${super_if}
-| | ... | ${cfg_pbb_sub_if_1_ID} | ${cfg_pbb_sub_if_1}
-| | Then PBB sub interface operational data from Honeycomb should be
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_1_ID} | ${oper_pbb_sub_if_1}
+| | Honeycomb creates PBB sub interface | ${node} | ${super_if}
+| | ... | ${cfg_pbb_sub_if_1}
| TC02: Honeycomb modifies existing PBB sub-interface
-| | [Documentation] | Honeycomb modifies an existing PBB sub-interface and\
-| | ... | checks its operational data.
+| | [Documentation] | Honeycomb modifies an existing PBB sub-interface.
| | ...
-| | Given PBB sub interface operational data from Honeycomb should be
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_1_ID} | ${oper_pbb_sub_if_1}
-| | When Honeycomb creates PBB sub interface | ${node} | ${super_if}
-| | ... | ${cfg_pbb_sub_if_1_ID} | ${cfg_pbb_sub_if_1_mod}
-| | Then PBB sub interface operational data from Honeycomb should be
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_1_ID}
-| | ... | ${oper_pbb_sub_if_1_mod}
+| | Honeycomb creates PBB sub interface | ${node} | ${super_if}
+| | ... | ${cfg_pbb_sub_if_1_mod}
| TC03: Honeycomb deletes existing PBB sub-interface
-| | [Documentation] | Honeycomb deletes an existing PBB sub-interface and\
-| | ... | checks operational data.
+| | [Documentation] | Honeycomb deletes an existing PBB sub-interface.
| | ...
-| | Given PBB sub interface operational data from Honeycomb should be
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_1_ID}
-| | ... | ${oper_pbb_sub_if_1_mod}
-| | When Honeycomb Removes PBB sub interface
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_1_ID}
-| | Given PBB sub interface operational data from Honeycomb should be empty
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_1_ID}
-
-| TC04: Honeycomb creates two PBB sub-interface
-| | [Documentation] | Honeycomb creates two PBB sub-interfaces on the same\
-| | ... | super interface and checks their operational data.
-| | ...
-| | Given PBB sub interface operational data from Honeycomb should be empty
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_2_ID}
-| | And PBB sub interface operational data from Honeycomb should be empty
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_3_ID}
-| | When Honeycomb creates PBB sub interface | ${node} | ${super_if}
-| | ... | ${cfg_pbb_sub_if_2_ID} | ${cfg_pbb_sub_if_2}
-| | And Honeycomb creates PBB sub interface | ${node} | ${super_if}
-| | ... | ${cfg_pbb_sub_if_3_ID} | ${cfg_pbb_sub_if_3}
-| | Then PBB sub interface operational data from Honeycomb should be
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_2_ID} | ${oper_pbb_sub_if_2}
-| | And PBB sub interface operational data from Honeycomb should be
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_3_ID} | ${oper_pbb_sub_if_3}
+| | Honeycomb Removes PBB sub interface
+| | ... | ${node} | ${super_if}
| TC05: Honeycomb fails to set wrong destination-address for new PBB sub-interface
| | [Documentation] | Honeycomb fails to create a new PBB sub-interface with\
| | ... | wrong value of parameter destination-address, type yang:mac-address.
| | ...
-| | Given PBB sub interface operational data from Honeycomb should be empty
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_ID}
-| | When Honeycomb fails to create PBB sub interface | ${node} | ${super_if}
-| | ... | ${cfg_pbb_sub_if_ID} | ${cfg_pbb_sub_if_wrong_dst_addr}
-| | Then PBB sub interface operational data from Honeycomb should be empty
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_ID}
+| | Honeycomb fails to create PBB sub interface | ${node} | ${super_if}
+| | ... | ${cfg_pbb_sub_if_wrong_dst_addr}
| TC06: Honeycomb fails to set wrong source-address for new PBB sub-interface
| | [Documentation] | Honeycomb fails to create a new PBB sub-interface with\
| | ... | wrong value of parameter source-address, type yang:mac-address.
| | ...
-| | Given PBB sub interface operational data from Honeycomb should be empty
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_ID}
-| | When Honeycomb fails to create PBB sub interface | ${node} | ${super_if}
-| | ... | ${cfg_pbb_sub_if_ID} | ${cfg_pbb_sub_if_wrong_src_addr}
-| | Then PBB sub interface operational data from Honeycomb should be empty
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_ID}
+| | Honeycomb fails to create PBB sub interface | ${node} | ${super_if}
+| | ... | ${cfg_pbb_sub_if_wrong_src_addr}
| TC07: Honeycomb fails to set wrong b-vlan-tag-vlan-id for new PBB sub-interface
| | [Documentation] | Honeycomb fails to create a new PBB sub-interface with\
| | ... | wrong value of parameter b-vlan-tag-vlan-id, type uint16, 12 bit\
| | ... | range, range "1..4095".
| | ...
-| | Given PBB sub interface operational data from Honeycomb should be empty
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_ID}
-| | When Honeycomb fails to create PBB sub interface | ${node} | ${super_if}
-| | ... | ${cfg_pbb_sub_if_ID} | ${cfg_pbb_sub_if_wrong_vlan_tag}
-| | Then PBB sub interface operational data from Honeycomb should be empty
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_ID}
+| | Honeycomb fails to create PBB sub interface | ${node} | ${super_if}
+| | ... | ${cfg_pbb_sub_if_wrong_vlan_tag}
| TC08: Honeycomb fails to set wrong i-tag-isid for new PBB sub-interface
| | [Documentation] | Honeycomb fails to create a new PBB sub-interface with\
| | ... | wrong value of parameter i-tag-isid, type uint32, 24 bit range,\
| | ... | range "1..16777215".
| | ...
-| | Given PBB sub interface operational data from Honeycomb should be empty
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_ID}
-| | When Honeycomb fails to create PBB sub interface | ${node} | ${super_if}
-| | ... | ${cfg_pbb_sub_if_ID} | ${cfg_pbb_sub_if_wrong_i_tag}
-| | Then PBB sub interface operational data from Honeycomb should be empty
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_ID}
+| | Honeycomb fails to create PBB sub interface | ${node} | ${super_if}
+| | ... | ${cfg_pbb_sub_if_wrong_i_tag}
| TC07: Honeycomb fails to create new PBB sub-interface without vlan tag
| | [Documentation] | Honeycomb fails to create a new PBB sub-interface without\
| | ... | parameter b-vlan-tag-vlan-id.
| | ...
-| | Given PBB sub interface operational data from Honeycomb should be empty
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_ID}
-| | When Honeycomb fails to create PBB sub interface | ${node} | ${super_if}
-| | ... | ${cfg_pbb_sub_if_ID} | ${cfg_pbb_sub_if_no_vlan_tag}
-| | Then PBB sub interface operational data from Honeycomb should be empty
-| | ... | ${node} | ${super_if} | ${cfg_pbb_sub_if_ID}
+| | Honeycomb fails to create PBB sub interface | ${node} | ${super_if}
+| | ... | ${cfg_pbb_sub_if_no_vlan_tag}