Introduction

Keywords used to create/modify flow objects. The object is defined in the corresponding FlowLib.py library and contains pertinent fields and methods (e.g., cookie and barrier fields, string formatted xml that can be used to push to controller). TODO: Remove hard dependency on controller HTTP "session".

Keywords

Arguments

flow_body node_id table_id flow_id

Documentation

Push flow through REST-API and verify in data-store

Arguments

node_id table_id flow_body

Documentation

Configures a flow specified by given flow details (${node_id}, ${table_id}, ${flow_body}) using POST method

Arguments

node_id xmlroot

Documentation

Deploys a flow specified by given flow details (${node_id}, ${xmlroot}) using add-flow operation. ${xmlroot} is an xml object of parser xml flow details, usually created by Create Flow Variables For Suite From XML File keyword from this library.

Arguments

flow element element_val
= ${EMPTY}
xpath
= .

Documentation

Will modify the current xml representation of the ${flow} object to contain the given ${element} at the given ${xpath}. If the ${element} uses a value, that can be passed eith the ${element_val} which defaults to ${EMPTY} if not used. NOTE: since there are two default parameters to this keyword, if you have an ${xpath} to use, but no ${element_val} you will still need to pass ${EMPTY} when invoking so that ${xpath} will end up at the right location in the parameter list

Arguments

group_body node_id group_id

Documentation

Push group through REST-API and verify in data-store

Arguments

switches

Documentation

Add table miss flows to switches.

Arguments

expected expvalue

Documentation

Wrapper keyword that calls "Flow Presence In Config Store" and "Get Presence Failure Message" from this library to verify that the ${expvalue} flow is or is not found in the config store, depending on whether or not it was ${expected}

Arguments

fname reqconfpres reqoperpres upd check_id
= ${False}

Documentation

Checks if flow is properly existing or not existing in the config and operational datastores, based on the variables ${reqconfpres} and ${reqoperpres}

Arguments

node_id flows

Documentation

A GET on the /node=${node_id} inventory API is made and flow stats string is checked for existence.

Arguments

flow_count controller_ip
= ${ODL_SYSTEM_IP}

Documentation

Check if number of Operational Flows on member of given index is equal to ${flow_count}.

Arguments

switches

Documentation

Check Linear topology.

Documentation

Check if all hosts are deleted from inventory

Arguments

switches

Documentation

Check no switch is in inventory

Arguments

switches

Documentation

Check no switch is in topology

Arguments

flows

Documentation

Check number of flows in the inventory.

Arguments

groups

Documentation

Check number of groups in the inventory.

Arguments

hosts

Documentation

Check number of hosts in topology

Arguments

expected expvalue check_id
= ${False}

Documentation

Wrapper keyword that calls "Flow Presence In Operational Store" and "Get Presence Failure Message" from this library to verify that the ${expvalue} flow is or is not found in the operational store, depending on whether or not it was ${expected}

Arguments

switches

Documentation

Check all switches and stats in operational inventory

Arguments

switches

Documentation

Check switches are in the topology.

Arguments

switches

Documentation

Check table miss flows in switches.

Arguments

flow

Documentation

Will clean out any existing flow actions in the given ${flow} object

Arguments

flow match_element

Documentation

Will clean out any existing flow matches in the given ${flow} object

Arguments

file

Documentation

Given the flow XML ${file}, it will create several suite wide variables

Documentation

Calls FlowLib.Make_Inventory_Flow function and initializes and sanitizes the basic flow elements that can be given to flow:inventory

Documentation

Used for creating an object that will use an XML format that can be given to flow:service.

Arguments

node_id table_id flow_id

Documentation

Deletes a flow from configuration datastore specified by given flow details (${node_id}, ${table_id}, ${flow_body}) using DELETE method

Arguments

node_id xmlroot

Documentation

Deletes a flow by using remove-flow opearation. ${xmlroot} is usually a variable created by Create Flow Variables For Suite From XML File keyword from this library.

Arguments

expvalue

Documentation

Checks the config store for given flow. Returns True if present, otherwise returns False This keyword assumes that the global/suite variables are available (${table_id}, ${flow_id} and ${switch_idx}

Arguments

expvalue check_id
= ${False}

Documentation

Checks the operational store for given flow. Returns True if present, otherwise returns False This keyword assumes that the global/suite variables are available (${table_id}, ${flow_id} and ${switch_idx}

Arguments

dpnid table_id flow_element

Documentation

This verifies specific flow-id for particular table-id matching from the flow element

Arguments

ds expected presence diffmsg

Documentation

Utility keyword to help manipulate mesage strings that may be used later to PASS or FAIL with

Arguments

node_id

Documentation

Removes any flows considered "default". one such flow is to forward all traffic to the CONTROLLER with priority 0 at flow-table 0 If/When others are implemented this keyword can be updated to include those.

Arguments

node_id table_id flow_id

Documentation

Remove flow and verify

Arguments

flow element_xpath

Documentation

Removes the element at the given ${element_xpath} within the given ${flow} object. The ${flow} object's xml representation will be updated to reflect this removal.

Arguments

node_id group_id

Documentation

Remove group and verify

Documentation

Embedded variables to make higher level keywords more readable. There are some cases where the python attribute uses an underscore, but a hyphen needs to be used. This seems inconsistent, and may need to be looked at from the openflow plugin perspective.

At this point, this library will remove the element ${property} from the xml representation of the flow and reset with the given value. It's not possible, yet, to have multiple elements with the same name. That will likely be needed in the future.

Arguments

flow instruction_order action_order action action_val
= ${EMPTY}

Documentation

Will remove the instruction element first, then add the proper xml structure to implement the action as given in the arguments

Arguments

flow match_value_dict

Documentation

Specific keyword for adding an ethernet match rules where the elements are given in key/value pairs inside the ${match_value_dict} argument. This keyword will also remove any existing ethernet-match elements from the flow before adding

Arguments

flow match_value_dict

Documentation

Specific keyword for adding an ipv4 match rules where the elements are given in key/value pairs inside the ${match_value_dict} argument. This keyword will also remove any existing ipv4 match elements from the flow before adding

Arguments

flow instruction_order action_order output_port

Arguments

flow element id value

Documentation

Will set the given id/value pair to the given to the element provided and make the proper changes to the ${flow} object also provided.

Arguments

node_id table_id flow_id flow_body

Documentation

Updates a flow configuration by given flow details (${node_id}, ${table_id}, ${flow_body}) using PUT method

Arguments

node_id configured_flow_body updating_flow_body

Documentation

Updates a flow by using update-flow operation. ${xmlroot} is usually a variable created by Create Flow Variables For Suite From XML File keyword from this library.

Arguments

flow_elements

Documentation

Checking flow on switch is removed

Arguments

flow_elements

Documentation

Checking flow on switch

FlowLib

image/svg+xml