X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Frobot%2Fhoneycomb%2Faccess_control_lists.robot;h=d24da5bd961b5cf48bb8f6e4054ebd30615ac902;hp=0fd1c7ef86fd0464949c01889a41e62f18e8686a;hb=1813672eb9f6988046bc65167235ae37b088298c;hpb=5d2ce55a8641a030ec6984089c51aa9313f46af1 diff --git a/resources/libraries/robot/honeycomb/access_control_lists.robot b/resources/libraries/robot/honeycomb/access_control_lists.robot index 0fd1c7ef86..d24da5bd96 100644 --- a/resources/libraries/robot/honeycomb/access_control_lists.robot +++ b/resources/libraries/robot/honeycomb/access_control_lists.robot @@ -12,7 +12,6 @@ # limitations under the License. *** Variables *** #TODO: update based on resolution of bug https://jira.fd.io/browse/HONEYCOMB-119 -| @{hc_table_ignore}= | memory_size *** Settings *** | Library | resources.libraries.python.Classify @@ -124,7 +123,7 @@ | | ... | \| ${settings} \| | | [Arguments] | ${node} | ${settings} | | ${data}= | Get classify table oper data | ${node} | ${settings['name']} -| | Compare data structures | ${data} | ${settings} | ignore=${hc_table_ignore} +| | Compare data structures | ${data} | ${settings} | ACL table from VAT should be | | [Documentation] | Retrieves ACL table information from VAT\ @@ -172,7 +171,7 @@ | | ... | \| ACL table from VAT should not exist \| ${nodes['DUT1']} \ | | ... | \| ${0} \| | | [Arguments] | ${node} | ${table_index} -| | Run keyword and expect error | No JSON data. +| | Run keyword and expect error | VAT: no JSON data. | | ... | Get classify table data | ${node} | ${table_index} | ACL session from Honeycomb should be @@ -271,7 +270,9 @@ | | [Arguments] | ${node} | ${interface} | ${table_name} | | ${data}= | InterfaceAPI.Get interface oper data | ${node} | ${interface} | | Should be equal -| | ... | ${table_name} | ${data['v3po:acl']['l2-acl']['classify-table']} +| | ... | ${table_name} +| | ... | ${data['v3po:acl']['ingress']['l2-acl']['classify-table']} +| | ... | ${data['v3po:acl']['ingress']['ip4-acl']['classify-table']} | Interface ACL settings from VAT should be | | [Documentation] | Retrieves ACL interface settings from VAT\ @@ -337,3 +338,61 @@ | | ... | \| Clear all ACL settings \| ${nodes['DUT1']} \| | | [Arguments] | ${node} | | Remove all classify tables | ${node} + +| Honeycomb creates ACL chain through IETF node +| | [Documentation] | Creates classify chain through the high-level\ +| | ... | IETF-ACL node. +| | ... +| | ... | *Arguments:* +| | ... | - node - Information about a DUT node. Type: dictionary +| | ... | - acl_list_name - Name for the classify chain. Type: string +| | ... | - layer - Classification layer (L2, L3, L4, mixed). Type: string +| | ... | - acl_list_settings - classify rules. Type: dictionary +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Honeycomb creates ACL chain through IETF node \ +| | ... | \| ${nodes['DUT1']} \| acl_test \| ${settings} \| +| | [Arguments] | ${node} | ${acl_list_name} | ${layer} | ${acl_list_settings} +| | Create IETF classify chain +| | ... | ${node} | ${acl_list_name} | ${layer} | ${acl_list_settings} + +| Honeycomb assigns IETF-ACL chain to interface +| | [Documentation] | Applies classification through the high-level\ +| | ... | IETF-ACL node to an interface. +| | ... +| | ... | *Arguments:* +| | ... | - node - Information about a DUT node. Type: dictionary +| | ... | - interface - Interface to apply classifier to. | Type: string +| | ... | - layer - Classification layer (L2, L3, L4, mixed). Type: string +| | ... | - direction - Ingress or Egress ACL. Type: string +| | ... | - acl_list_name - Name of the classify chain to apply. Type: string +| | ... | - default_action - Default classify action: permit or deny.\ +| | ... | Type: string +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Honeycomb assigns IETF-ACL chain to interface \ +| | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| L2 \| ingress \ +| | ... | \| acl_test \| permit \| +| | [Arguments] +| | ... | ${node} | ${interface} | ${layer} | ${direction} | ${acl_list_name} +| | ... | ${default-action} | ${mode}=${None} +| | Set IETF interface ACL +| | ... | ${node} | ${interface} | ${layer} | ${direction} | ${acl_list_name} +| | ... | ${default-action} | ${mode} + +| Clear IETF-ACL settings +| | [Documentation] | Removes ACl assignment from interface, then deletes\ +| | ... | IETF-ACL chain. +| | ... +| | ... | *Arguments:* +| | ... | - node - Information about a DUT node. Type: dictionary +| | ... | - interface - Interface to clean classifiers from. | Type: string +| | ... +| | ... | *Example:* +| | ... +| | ... | Clear IETF-ACL settings | ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| +| | [Arguments] | ${node} | ${interface} +| | Delete IETF interface ACLs | ${node} | ${interface} +| | Delete IETF classify chains | ${node} \ No newline at end of file