- Add check flow ID in Operational in Boron branch.
- Fix existing flows to pass the flow ID check.
- Add new flows for variable IP mask
We need this suite to track gap in Li plugin.
Change-Id: I759e1c88771d34bc04f0fbc16c5367b25055bfea
Signed-off-by: Luis Gomez <ecelgp@gmail.com>
26 files changed:
Set Suite Variable ${xmlroot}
Check Datastore Presence
Set Suite Variable ${xmlroot}
Check Datastore Presence
- [Arguments] ${fname} ${reqconfpres} ${reqoperpres} ${upd}
+ [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}
Create Flow Variables For Suite From XML File ${XmlsDir}/${fname}
# Note: ${upddata} and ${data} are suite variables set by the keyword above.
${det}= Set Variable If ${upd}==${True} ${upddata} ${data}
Check Config Flow ${reqconfpres} ${det}
[Documentation] Checks if flow is properly existing or not existing in the config and operational
... datastores, based on the variables ${reqconfpres} and ${reqoperpres}
Create Flow Variables For Suite From XML File ${XmlsDir}/${fname}
# Note: ${upddata} and ${data} are suite variables set by the keyword above.
${det}= Set Variable If ${upd}==${True} ${upddata} ${data}
Check Config Flow ${reqconfpres} ${det}
- Check Operational Flow ${reqoperpres} ${det}
+ Check Operational Flow ${reqoperpres} ${det} ${check_id}
Flow Presence In Config Store
[Arguments] ${expvalue}
Flow Presence In Config Store
[Arguments] ${expvalue}
Return From Keyword ${pres} ${msg}
Flow Presence In Operational Store
Return From Keyword ${pres} ${msg}
Flow Presence In Operational Store
- [Arguments] ${expvalue}
+ [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}
${headers}= Create Dictionary Accept=application/xml
[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}
${headers}= Create Dictionary Accept=application/xml
Log ${resp}
Log ${resp.content}
Return From Keyword If ${resp.status_code}!=200 ${False} ${EMPTY}
Log ${resp}
Log ${resp.content}
Return From Keyword If ${resp.status_code}!=200 ${False} ${EMPTY}
- ${pres} ${msg}= Is Flow Operational2 ${expvalue} ${resp.content}
+ ${pres} ${msg}= Is Flow Operational2 ${expvalue} ${resp.content} ${check_id}
Run Keyword If '''${msg}'''!='${EMPTY}' Log ${msg}
Return From Keyword ${pres} ${msg}
Run Keyword If '''${msg}'''!='${EMPTY}' Log ${msg}
Return From Keyword ${pres} ${msg}
Should Be Equal ${expected} ${presence_flow} msg=${msgf}
Check Operational Flow
Should Be Equal ${expected} ${presence_flow} msg=${msgf}
Check Operational Flow
- [Arguments] ${expected} ${expvalue}
+ [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 config store, depending on whether or not it was ${expected}
[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 config store, depending on whether or not it was ${expected}
- ${presence_table} ${msg}= Flow Presence In Operational Store ${expvalue}
+ ${presence_table} ${msg}= Flow Presence In Operational Store ${expvalue} ${check_id}
${msgf}= Get Presence Failure Message operational ${expected} ${presence_table} ${msg}
Should Be Equal ${expected} ${presence_table} msg=${msgf}
${msgf}= Get Presence Failure Message operational ${expected} ${presence_table} ${msg}
Should Be Equal ${expected} ${presence_table} msg=${msgf}
IGNORED_TAGS_FOR_OPERATIONAL_COMPARISON = ['id', 'flow-name', 'barrier', 'cookie_mask', 'installHw', 'flags',
'strict', 'byte-count', 'duration', 'packet-count', 'in-port',
'vlan-id-present', 'out_group', 'out_port', 'hard-timeout', 'idle-timeout',
IGNORED_TAGS_FOR_OPERATIONAL_COMPARISON = ['id', 'flow-name', 'barrier', 'cookie_mask', 'installHw', 'flags',
'strict', 'byte-count', 'duration', 'packet-count', 'in-port',
'vlan-id-present', 'out_group', 'out_port', 'hard-timeout', 'idle-timeout',
- 'flow-statistics', 'cookie', 'clear-actions'] # noqa
+ 'flow-statistics', 'cookie', 'clear-actions',
+ 'ipv4-source-address-no-mask', 'ipv4-source-arbitrary-bitmask',
+ 'ipv4-destination-address-no-mask', 'ipv4-destination-arbitrary-bitmask',
+ 'ipv6-source-address-no-mask', 'ipv6-source-arbitrary-bitmask',
+ 'ipv6-destination-address-no-mask', 'ipv6-destination-arbitrary-bitmask'] # noqa
IGNORED_PATHS_FOR_OC = [(['flow', 'instructions', 'instruction', 'apply-actions', 'action', 'controller-action'], True), # noqa
(['flow', 'instructions', 'instruction', 'clear-actions', 'action'], False),
IGNORED_PATHS_FOR_OC = [(['flow', 'instructions', 'instruction', 'apply-actions', 'action', 'controller-action'], True), # noqa
(['flow', 'instructions', 'instruction', 'clear-actions', 'action'], False),
XMLtoDictParserTools.getDifferenceDict(nodeDict, origDict))
return False, ''
XMLtoDictParserTools.getDifferenceDict(nodeDict, origDict))
return False, ''
- def is_flow_operational2(self, requested_flow, oper_resp):
+ def is_flow_operational2(self, requested_flow, oper_resp, check_id=False):
def _rem_unimplemented_tags(tagpath, recurs, tdict):
# print "_rem_unimplemented_tags", tagpath, tdict
if len(tagpath) > 1 and tagpath[0] in tdict:
def _rem_unimplemented_tags(tagpath, recurs, tdict):
# print "_rem_unimplemented_tags", tagpath, tdict
if len(tagpath) > 1 and tagpath[0] in tdict:
elif len(tagpath) == 0 and tag in tdict and related_tag in tdict:
tdict[tag] = str(long(tdict[tag]) & long(tdict[related_tag]))
elif len(tagpath) == 0 and tag in tdict and related_tag in tdict:
tdict[tag] = str(long(tdict[tag]) & long(tdict[related_tag]))
+ IGNORED_TAGS_LIST = list(IGNORED_TAGS_FOR_OPERATIONAL_COMPARISON)
+ if check_id:
+ IGNORED_TAGS_LIST.remove('id')
orig_tree = md.parseString(requested_flow)
xml_resp_stream = oper_resp.encode('utf-8', 'ignore')
xml_resp_tree = md.parseString(xml_resp_stream)
nodeListOperFlows = xml_resp_tree.getElementsByTagNameNS("*", 'flow')
origDict = XMLtoDictParserTools.parseTreeToDict(
orig_tree._get_documentElement(),
orig_tree = md.parseString(requested_flow)
xml_resp_stream = oper_resp.encode('utf-8', 'ignore')
xml_resp_tree = md.parseString(xml_resp_stream)
nodeListOperFlows = xml_resp_tree.getElementsByTagNameNS("*", 'flow')
origDict = XMLtoDictParserTools.parseTreeToDict(
orig_tree._get_documentElement(),
- ignoreList=IGNORED_TAGS_FOR_OPERATIONAL_COMPARISON)
+ ignoreList=IGNORED_TAGS_LIST)
# origDict['flow-statistics'] = origDict.pop( 'flow' )
reportDict = {}
# origDict['flow-statistics'] = origDict.pop( 'flow' )
reportDict = {}
for node in nodeListOperFlows:
nodeDict = XMLtoDictParserTools.parseTreeToDict(
node,
for node in nodeListOperFlows:
nodeDict = XMLtoDictParserTools.parseTreeToDict(
node,
- ignoreList=IGNORED_TAGS_FOR_OPERATIONAL_COMPARISON)
+ ignoreList=IGNORED_TAGS_LIST)
XMLtoDictParserTools.addDictValue(reportDict, index, nodeDict)
index += 1
# print nodeDict
XMLtoDictParserTools.addDictValue(reportDict, index, nodeDict)
index += 1
# print nodeDict
... f43.xml f45.xml f47.xml f101.xml f102.xml f103.xml f104.xml
... f105.xml f106.xml f107.xml f108.xml f109.xml f110.xml f113.xml
... f156.xml f201.xml f202.xml f203.xml f204.xml f205.xml f206.xml
... f43.xml f45.xml f47.xml f101.xml f102.xml f103.xml f104.xml
... f105.xml f106.xml f107.xml f108.xml f109.xml f110.xml f113.xml
... f156.xml f201.xml f202.xml f203.xml f204.xml f205.xml f206.xml
-... f209.xml f214.xml f218.xml f219.xml f220.xml
+... f209.xml f214.xml f218.xml f219.xml f220.xml f221.xml f222.xml
+... f223.xml f224.xml f225.xml
*** Test Cases ***
Test Add Flows Group 0
*** Test Cases ***
Test Add Flows Group 0
\ Run Keyword And Continue On Failure Add Flow Via Restconf ${switch_idx} ${table_id} ${data}
# Lets wait for ofp to collect stats
${flows}= Get Length ${flowlist0}
\ Run Keyword And Continue On Failure Add Flow Via Restconf ${switch_idx} ${table_id} ${data}
# Lets wait for ofp to collect stats
${flows}= Get Length ${flowlist0}
- Wait Until Keyword Succeeds 10s 2s FlowLib.Check Flow Stats Are Available openflow:1 ${flows}
+ Wait Until Keyword Succeeds 15s 2s FlowLib.Check Flow Stats Are Available openflow:1 ${flows}
# Show switch content (for debug purposes if needed)
Write dpctl dump-flows -O OpenFlow13
Read Until mininet>
Test Is Flow 1 Added
# Show switch content (for debug purposes if needed)
Write dpctl dump-flows -O OpenFlow13
Read Until mininet>
Test Is Flow 1 Added
- f1.xml ${True} ${True} ${False}
+ f1.xml ${True} ${True} ${False} ${check_id}
- f2.xml ${True} ${True} ${False}
+ f2.xml ${True} ${True} ${False} ${check_id}
- f3.xml ${True} ${True} ${False}
+ f3.xml ${True} ${True} ${False} ${check_id}
- f4.xml ${True} ${True} ${False}
+ f4.xml ${True} ${True} ${False} ${check_id}
- f5.xml ${True} ${True} ${False}
+ f5.xml ${True} ${True} ${False} ${check_id}
- f6.xml ${True} ${True} ${False}
+ f6.xml ${True} ${True} ${False} ${check_id}
- f7.xml ${True} ${True} ${False}
+ f7.xml ${True} ${True} ${False} ${check_id}
- f8.xml ${True} ${True} ${False}
+ f8.xml ${True} ${True} ${False} ${check_id}
- f9.xml ${True} ${True} ${False}
+ f9.xml ${True} ${True} ${False} ${check_id}
- f10.xml ${True} ${True} ${False}
+ f10.xml ${True} ${True} ${False} ${check_id}
- f11.xml ${True} ${True} ${False}
+ f11.xml ${True} ${True} ${False} ${check_id}
- f12.xml ${True} ${True} ${False}
+ f12.xml ${True} ${True} ${False} ${check_id}
- f13.xml ${True} ${True} ${False}
+ f13.xml ${True} ${True} ${False} ${check_id}
- f14.xml ${True} ${True} ${False}
+ f14.xml ${True} ${True} ${False} ${check_id}
- f15.xml ${True} ${True} ${False}
+ f15.xml ${True} ${True} ${False} ${check_id}
- f16.xml ${True} ${True} ${False}
+ f16.xml ${True} ${True} ${False} ${check_id}
- f17.xml ${True} ${True} ${False}
+ f17.xml ${True} ${True} ${False} ${check_id}
- f18.xml ${True} ${True} ${False}
+ f18.xml ${True} ${True} ${False} ${check_id}
- f19.xml ${True} ${True} ${False}
+ f19.xml ${True} ${True} ${False} ${check_id}
- f20.xml ${True} ${True} ${False}
+ f20.xml ${True} ${True} ${False} ${check_id}
- f21.xml ${True} ${True} ${False}
+ f21.xml ${True} ${True} ${False} ${check_id}
- f22.xml ${True} ${True} ${False}
+ f22.xml ${True} ${True} ${False} ${check_id}
- f23.xml ${True} ${True} ${False}
+ f23.xml ${True} ${True} ${False} ${check_id}
- f24.xml ${True} ${True} ${False}
+ f24.xml ${True} ${True} ${False} ${check_id}
- f25.xml ${True} ${True} ${False}
+ f25.xml ${True} ${True} ${False} ${check_id}
- f31.xml ${True} ${True} ${False}
+ f31.xml ${True} ${True} ${False} ${check_id}
- f36.xml ${True} ${True} ${False}
+ f36.xml ${True} ${True} ${False} ${check_id}
- f38.xml ${True} ${True} ${False}
+ f38.xml ${True} ${True} ${False} ${check_id}
- f43.xml ${True} ${True} ${False}
+ f43.xml ${True} ${True} ${False} ${check_id}
- f45.xml ${True} ${True} ${False}
+ f45.xml ${True} ${True} ${False} ${check_id}
- f47.xml ${True} ${True} ${False}
+ f47.xml ${True} ${True} ${False} ${check_id}
- f101.xml ${True} ${True} ${False}
+ f101.xml ${True} ${True} ${False} ${check_id}
- f102.xml ${True} ${True} ${False}
+ f102.xml ${True} ${True} ${False} ${check_id}
- f103.xml ${True} ${True} ${False}
+ f103.xml ${True} ${True} ${False} ${check_id}
- f104.xml ${True} ${True} ${False}
+ f104.xml ${True} ${True} ${False} ${check_id}
- f105.xml ${True} ${True} ${False}
+ f105.xml ${True} ${True} ${False} ${check_id}
- f106.xml ${True} ${True} ${False}
+ f106.xml ${True} ${True} ${False} ${check_id}
- f107.xml ${True} ${True} ${False}
+ f107.xml ${True} ${True} ${False} ${check_id}
- f108.xml ${True} ${True} ${False}
+ f108.xml ${True} ${True} ${False} ${check_id}
- f109.xml ${True} ${True} ${False}
+ f109.xml ${True} ${True} ${False} ${check_id}
- f110.xml ${True} ${True} ${False}
+ f110.xml ${True} ${True} ${False} ${check_id}
- f113.xml ${True} ${True} ${False}
+ f113.xml ${True} ${True} ${False} ${check_id}
- f156.xml ${True} ${True} ${False}
+ f156.xml ${True} ${True} ${False} ${check_id}
- f201.xml ${True} ${True} ${False}
+ f201.xml ${True} ${True} ${False} ${check_id}
- f202.xml ${True} ${True} ${False}
+ f202.xml ${True} ${True} ${False} ${check_id}
- f203.xml ${True} ${True} ${False}
+ f203.xml ${True} ${True} ${False} ${check_id}
- f204.xml ${True} ${True} ${False}
+ f204.xml ${True} ${True} ${False} ${check_id}
- f205.xml ${True} ${True} ${False}
+ f205.xml ${True} ${True} ${False} ${check_id}
- f206.xml ${True} ${True} ${False}
+ f206.xml ${True} ${True} ${False} ${check_id}
- f209.xml ${True} ${True} ${False}
+ f209.xml ${True} ${True} ${False} ${check_id}
- f214.xml ${True} ${True} ${False}
+ f214.xml ${True} ${True} ${False} ${check_id}
- f218.xml ${True} ${True} ${False}
+ f218.xml ${True} ${True} ${False} ${check_id}
- f219.xml ${True} ${True} ${False}
+ f219.xml ${True} ${True} ${False} ${check_id}
- f220.xml ${True} ${True} ${False}
+ f220.xml ${True} ${True} ${False} ${check_id}
+
+Test Is Flow 221 Added
+ f221.xml ${True} ${True} ${False} ${check_id}
+
+Test Is Flow 222 Added
+ f222.xml ${True} ${True} ${False} ${check_id}
+
+Test Is Flow 223 Added
+ f223.xml ${True} ${True} ${False} ${check_id}
+
+Test Is Flow 224 Added
+ f224.xml ${True} ${True} ${False} ${check_id}
+
+Test Is Flow 225 Added
+ f225.xml ${True} ${True} ${False} ${check_id}
Test Update Flows Group 0
[Documentation] Update all flows and waits for SM to collect data
Test Update Flows Group 0
[Documentation] Update all flows and waits for SM to collect data
Read Until mininet>
Test Is Flow 1 Updated
Read Until mininet>
Test Is Flow 1 Updated
- f1.xml ${True} ${True} ${True}
+ f1.xml ${True} ${True} ${True} ${check_id}
- f2.xml ${True} ${True} ${True}
+ f2.xml ${True} ${True} ${True} ${check_id}
- f3.xml ${True} ${True} ${True}
+ f3.xml ${True} ${True} ${True} ${check_id}
- f4.xml ${True} ${True} ${True}
+ f4.xml ${True} ${True} ${True} ${check_id}
- f5.xml ${True} ${True} ${True}
+ f5.xml ${True} ${True} ${True} ${check_id}
- f6.xml ${True} ${True} ${True}
+ f6.xml ${True} ${True} ${True} ${check_id}
- f7.xml ${True} ${True} ${True}
+ f7.xml ${True} ${True} ${True} ${check_id}
- f8.xml ${True} ${True} ${True}
+ f8.xml ${True} ${True} ${True} ${check_id}
- f9.xml ${True} ${True} ${True}
+ f9.xml ${True} ${True} ${True} ${check_id}
- f10.xml ${True} ${True} ${True}
+ f10.xml ${True} ${True} ${True} ${check_id}
- f11.xml ${True} ${True} ${True}
+ f11.xml ${True} ${True} ${True} ${check_id}
- f12.xml ${True} ${True} ${True}
+ f12.xml ${True} ${True} ${True} ${check_id}
- f13.xml ${True} ${True} ${True}
+ f13.xml ${True} ${True} ${True} ${check_id}
- f14.xml ${True} ${True} ${True}
+ f14.xml ${True} ${True} ${True} ${check_id}
- f15.xml ${True} ${True} ${True}
+ f15.xml ${True} ${True} ${True} ${check_id}
- f16.xml ${True} ${True} ${True}
+ f16.xml ${True} ${True} ${True} ${check_id}
- f17.xml ${True} ${True} ${True}
+ f17.xml ${True} ${True} ${True} ${check_id}
- f18.xml ${True} ${True} ${True}
+ f18.xml ${True} ${True} ${True} ${check_id}
- f19.xml ${True} ${True} ${True}
+ f19.xml ${True} ${True} ${True} ${check_id}
- f20.xml ${True} ${True} ${True}
+ f20.xml ${True} ${True} ${True} ${check_id}
- f21.xml ${True} ${True} ${True}
+ f21.xml ${True} ${True} ${True} ${check_id}
- f22.xml ${True} ${True} ${True}
+ f22.xml ${True} ${True} ${True} ${check_id}
- f23.xml ${True} ${True} ${True}
+ f23.xml ${True} ${True} ${True} ${check_id}
- f24.xml ${True} ${True} ${True}
+ f24.xml ${True} ${True} ${True} ${check_id}
- f25.xml ${True} ${True} ${True}
+ f25.xml ${True} ${True} ${True} ${check_id}
- f31.xml ${True} ${True} ${True}
+ f31.xml ${True} ${True} ${True} ${check_id}
- f36.xml ${True} ${True} ${True}
+ f36.xml ${True} ${True} ${True} ${check_id}
- f38.xml ${True} ${True} ${True}
+ f38.xml ${True} ${True} ${True} ${check_id}
- f43.xml ${True} ${True} ${True}
+ f43.xml ${True} ${True} ${True} ${check_id}
- f45.xml ${True} ${True} ${True}
+ f45.xml ${True} ${True} ${True} ${check_id}
- f47.xml ${True} ${True} ${True}
+ f47.xml ${True} ${True} ${True} ${check_id}
- f101.xml ${True} ${True} ${True}
+ f101.xml ${True} ${True} ${True} ${check_id}
- f102.xml ${True} ${True} ${True}
+ f102.xml ${True} ${True} ${True} ${check_id}
- f103.xml ${True} ${True} ${True}
+ f103.xml ${True} ${True} ${True} ${check_id}
- f104.xml ${True} ${True} ${True}
+ f104.xml ${True} ${True} ${True} ${check_id}
- f105.xml ${True} ${True} ${True}
+ f105.xml ${True} ${True} ${True} ${check_id}
- f106.xml ${True} ${True} ${True}
+ f106.xml ${True} ${True} ${True} ${check_id}
- f107.xml ${True} ${True} ${True}
+ f107.xml ${True} ${True} ${True} ${check_id}
- f108.xml ${True} ${True} ${True}
+ f108.xml ${True} ${True} ${True} ${check_id}
- f109.xml ${True} ${True} ${True}
+ f109.xml ${True} ${True} ${True} ${check_id}
- f110.xml ${True} ${True} ${True}
+ f110.xml ${True} ${True} ${True} ${check_id}
- f113.xml ${True} ${True} ${True}
+ f113.xml ${True} ${True} ${True} ${check_id}
- f156.xml ${True} ${True} ${True}
+ f156.xml ${True} ${True} ${True} ${check_id}
- f201.xml ${True} ${True} ${True}
+ f201.xml ${True} ${True} ${True} ${check_id}
- f202.xml ${True} ${True} ${True}
+ f202.xml ${True} ${True} ${True} ${check_id}
- f203.xml ${True} ${True} ${True}
+ f203.xml ${True} ${True} ${True} ${check_id}
- f204.xml ${True} ${True} ${True}
+ f204.xml ${True} ${True} ${True} ${check_id}
- f205.xml ${True} ${True} ${True}
+ f205.xml ${True} ${True} ${True} ${check_id}
- f206.xml ${True} ${True} ${True}
+ f206.xml ${True} ${True} ${True} ${check_id}
- f209.xml ${True} ${True} ${True}
+ f209.xml ${True} ${True} ${True} ${check_id}
- f214.xml ${True} ${True} ${True}
+ f214.xml ${True} ${True} ${True} ${check_id}
- f218.xml ${True} ${True} ${True}
+ f218.xml ${True} ${True} ${True} ${check_id}
- f219.xml ${True} ${True} ${True}
+ f219.xml ${True} ${True} ${True} ${check_id}
- f220.xml ${True} ${True} ${True}
+ f220.xml ${True} ${True} ${True} ${check_id}
+
+Test Is Flow 221 Updated
+ f221.xml ${True} ${True} ${True} ${check_id}
+
+Test Is Flow 222 Updated
+ f222.xml ${True} ${True} ${True} ${check_id}
+
+Test Is Flow 223 Updated
+ f223.xml ${True} ${True} ${True} ${check_id}
+
+Test Is Flow 224 Updated
+ f224.xml ${True} ${True} ${True} ${check_id}
+
+Test Is Flow 225 Updated
+ f225.xml ${True} ${True} ${True} ${check_id}
Test Delete Flows Group 0
[Documentation] Delete all flows and waits for SM to collect data
Test Delete Flows Group 0
[Documentation] Delete all flows and waits for SM to collect data
Test Is Flow 220 Deleted
f220.xml ${False} ${False} ${True}
Test Is Flow 220 Deleted
f220.xml ${False} ${False} ${True}
+Test Is Flow 221 Deleted
+ f221.xml ${False} ${False} ${True}
+
+Test Is Flow 222 Deleted
+ f222.xml ${False} ${False} ${True}
+
+Test Is Flow 223 Deleted
+ f223.xml ${False} ${False} ${True}
+
+Test Is Flow 224 Deleted
+ f224.xml ${False} ${False} ${True}
+
+Test Is Flow 225 Deleted
+ f225.xml ${False} ${False} ${True}
+
*** Keywords ***
Initialization Phase
[Documentation] Initiate tcp connection with controller
*** Keywords ***
Initialization Phase
[Documentation] Initiate tcp connection with controller
+ ${check_id} = Set Variable If '${ODL_STREAM}' == 'stable/lithium' or '${ODL_STREAM}' == 'beryllium' ${False} ${True}
+ Set Suite Variable ${check_id}
Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS_XML}
Write dpctl dump-flows -O OpenFlow13
Read Until mininet>
Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS_XML}
Write dpctl dump-flows -O OpenFlow13
Read Until mininet>
${FILE} ${CURDIR}/../../../variables/xmls/f20.xml
${FLOW} 143
${TABLE} 2
${FILE} ${CURDIR}/../../../variables/xmls/f20.xml
${FLOW} 143
${TABLE} 2
-@{FLOWELMENTS} metadata=0x1010/0x12d692 LOCAL
+@{FLOWELMENTS} metadata=0x3039/0xf0ff LOCAL
*** Test Cases ***
Add a flow - Output to physical port#
*** Test Cases ***
Add a flow - Output to physical port#
</ip-match>
<sctp-source-port>768</sctp-source-port>
<sctp-destination-port>384</sctp-destination-port>
</ip-match>
<sctp-source-port>768</sctp-source-port>
<sctp-destination-port>384</sctp-destination-port>
+ <in-port>openflow:1:0</in-port>
</match>
<cookie>10</cookie>
<flow-name>FooXf10</flow-name>
<priority>10</priority>
<barrier>false</barrier>
</match>
<cookie>10</cookie>
<flow-name>FooXf10</flow-name>
<priority>10</priority>
<barrier>false</barrier>
-</flow>
\ No newline at end of file
</ip-match>
<udp-source-port>25364</udp-source-port>
<udp-destination-port>8080</udp-destination-port>
</ip-match>
<udp-source-port>25364</udp-source-port>
<udp-destination-port>8080</udp-destination-port>
+ <in-port>openflow:1:0</in-port>
-</flow>
\ No newline at end of file
</ip-match>
<udp-source-port>25364</udp-source-port>
<udp-destination-port>8080</udp-destination-port>
</ip-match>
<udp-source-port>25364</udp-source-port>
<udp-destination-port>8080</udp-destination-port>
+ <in-port>openflow:1:0</in-port>
-</flow>
\ No newline at end of file
</ip-match>
<udp-source-port>25364</udp-source-port>
<udp-destination-port>8080</udp-destination-port>
</ip-match>
<udp-source-port>25364</udp-source-port>
<udp-destination-port>8080</udp-destination-port>
+ <in-port>openflow:1:0</in-port>
-</flow>
\ No newline at end of file
<icmpv4-type>6</icmpv4-type>
<icmpv4-code>3</icmpv4-code>
</icmpv4-match>
<icmpv4-type>6</icmpv4-type>
<icmpv4-code>3</icmpv4-code>
</icmpv4-match>
+ <in-port>openflow:1:0</in-port>
</match>
<cookie>11</cookie>
<flow-name>FooXf11</flow-name>
<priority>11</priority>
</match>
<cookie>11</cookie>
<flow-name>FooXf11</flow-name>
<priority>11</priority>
-</flow>
\ No newline at end of file
</ip-match>
<udp-source-port>25364</udp-source-port>
<udp-destination-port>8080</udp-destination-port>
</ip-match>
<udp-source-port>25364</udp-source-port>
<udp-destination-port>8080</udp-destination-port>
+ <in-port>openflow:1:0</in-port>
<flow-name>FooXf12</flow-name>
<priority>12</priority>
<barrier>false</barrier>
<flow-name>FooXf12</flow-name>
<priority>12</priority>
<barrier>false</barrier>
-</flow>
\ No newline at end of file
<ipv6-source>fe80::2acf:e9ff:fe21:6431/128</ipv6-source>
<ipv6-destination>aabb:1234:2acf:e9ff::fe21:6431/64</ipv6-destination>
</match>
<ipv6-source>fe80::2acf:e9ff:fe21:6431/128</ipv6-source>
<ipv6-destination>aabb:1234:2acf:e9ff::fe21:6431/64</ipv6-destination>
</match>
-</flow>
\ No newline at end of file
<match>
<metadata>
<metadata>12345</metadata>
<match>
<metadata>
<metadata>12345</metadata>
- <metadata-mask>1234578</metadata-mask>
+ <metadata-mask>0xf0ff</metadata-mask>
-</flow>
\ No newline at end of file
</ip-match>
<sctp-source-port>768</sctp-source-port>
<sctp-destination-port>384</sctp-destination-port>
</ip-match>
<sctp-source-port>768</sctp-source-port>
<sctp-destination-port>384</sctp-destination-port>
+ <in-port>openflow:1:0</in-port>
</match>
<cookie>205</cookie>
<flow-name>sctp-source-port-action</flow-name>
</match>
<cookie>205</cookie>
<flow-name>sctp-source-port-action</flow-name>
</ip-match>
<sctp-source-port>768</sctp-source-port>
<sctp-destination-port>384</sctp-destination-port>
</ip-match>
<sctp-source-port>768</sctp-source-port>
<sctp-destination-port>384</sctp-destination-port>
+ <in-port>openflow:1:0</in-port>
</match>
<cookie>206</cookie>
<flow-name>sctp-destination-port</flow-name>
</match>
<cookie>206</cookie>
<flow-name>sctp-destination-port</flow-name>
<out_group>0xffffffff</out_group>
<match>
<tunnel>
<out_group>0xffffffff</out_group>
<match>
<tunnel>
- <tunnel-mask>0xf7d120c</tunnel-mask>
- <tunnel-id>10668</tunnel-id>
+ <tunnel-mask>0xfff0</tunnel-mask>
+ <tunnel-id>10656</tunnel-id>
</tunnel>
</match>
<cookie>218</cookie>
</tunnel>
</match>
<cookie>218</cookie>
<instructions>
<instruction>
<order>0</order>
<instructions>
<instruction>
<order>0</order>
- <write-actions>
- <action>
- <order>0</order>
- <dec-mpls-ttl/>
- </action>
- </write-actions>
- </instruction>
- <instruction>
- <order>1</order>
<apply-actions>
<action>
<order>0</order>
<apply-actions>
<action>
<order>0</order>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<flow xmlns="urn:opendaylight:flow:inventory">
+ <priority>222</priority>
+ <flow-name>Foo222</flow-name>
+ <match>
+ <ethernet-match>
+ <ethernet-type>
+ <type>2048</type>
+ </ethernet-type>
+ </ethernet-match>
+ <ipv4-destination>2.2.2.0/16</ipv4-destination>
+ </match>
+ <id>345</id>
+ <table_id>2</table_id>
+ <instructions>
+ <instruction>
+ <order>0</order>
+ <apply-actions>
+ <action>
+ <order>0</order>
+ <dec-nw-ttl/>
+ </action>
+ </apply-actions>
+ </instruction>
+ </instructions>
+</flow>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<flow xmlns="urn:opendaylight:flow:inventory">
+ <priority>223</priority>
+ <flow-name>Foo223</flow-name>
+ <match>
+ <ethernet-match>
+ <ethernet-type>
+ <type>2048</type>
+ </ethernet-type>
+ </ethernet-match>
+ <ipv4-destination-address-no-mask>7.7.7.0</ipv4-destination-address-no-mask>
+ <ipv4-destination-arbitrary-bitmask>255.0.241.0</ipv4-destination-arbitrary-bitmask>
+ </match>
+ <id>346</id>
+ <table_id>2</table_id>
+ <instructions>
+ <instruction>
+ <order>0</order>
+ <apply-actions>
+ <action>
+ <order>0</order>
+ <dec-nw-ttl/>
+ </action>
+ </apply-actions>
+ </instruction>
+ </instructions>
+</flow>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<flow xmlns="urn:opendaylight:flow:inventory">
+ <priority>224</priority>
+ <flow-name>Foo224</flow-name>
+ <match>
+ <ethernet-match>
+ <ethernet-type>
+ <type>34525</type>
+ </ethernet-type>
+ </ethernet-match>
+ <ipv6-destination-address-no-mask>2001:2001:2001:2001:2001:2001:0447:0447</ipv6-destination-address-no-mask>
+ <ipv6-destination-arbitrary-bitmask>FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:F000:F000</ipv6-destination-arbitrary-bitmask>
+ </match>
+ <id>347</id>
+ <table_id>2</table_id>
+ <instructions>
+ <instruction>
+ <order>0</order>
+ <apply-actions>
+ <action>
+ <order>0</order>
+ <dec-nw-ttl/>
+ </action>
+ </apply-actions>
+ </instruction>
+ </instructions>
+</flow>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<flow xmlns="urn:opendaylight:flow:inventory">
+ <priority>225</priority>
+ <flow-name>Foo225</flow-name>
+ <match>
+ <ethernet-match>
+ <ethernet-type>
+ <type>34525</type>
+ </ethernet-type>
+ </ethernet-match>
+ <ipv6-source-address-no-mask>2001:2001:2001:2001:2001:2001:0448:0448</ipv6-source-address-no-mask>
+ <ipv6-source-arbitrary-bitmask>FFFF:FFFF:FFFF:FFFF:0000:FFFF:F000:0000</ipv6-source-arbitrary-bitmask>
+ </match>
+ <id>348</id>
+ <table_id>2</table_id>
+ <instructions>
+ <instruction>
+ <order>0</order>
+ <apply-actions>
+ <action>
+ <order>0</order>
+ <dec-nw-ttl/>
+ </action>
+ </apply-actions>
+ </instruction>
+ </instructions>
+</flow>
<out_group>0xffffffff</out_group>
<match>
<metadata>
<out_group>0xffffffff</out_group>
<match>
<metadata>
- <metadata-mask>0x46645a66</metadata-mask>
- <metadata>500</metadata>
+ <metadata>1180719718</metadata>
+ <metadata-mask>0xfff0ffff</metadata-mask>
</metadata>
</match>
<cookie>45</cookie>
</metadata>
</match>
<cookie>45</cookie>
</ethernet-match>
<ipv4-source>10.1.2.0/24</ipv4-source>
<ipv4-destination>20.4.0.0/16</ipv4-destination>
</ethernet-match>
<ipv4-source>10.1.2.0/24</ipv4-source>
<ipv4-destination>20.4.0.0/16</ipv4-destination>
+ <in-port>openflow:1:0</in-port>
</match>
<cookie>5</cookie>
<flow-name>FooXf5</flow-name>
<priority>5</priority>
<barrier>false</barrier>
</match>
<cookie>5</cookie>
<flow-name>FooXf5</flow-name>
<priority>5</priority>
<barrier>false</barrier>
-</flow>
\ No newline at end of file
<ip-dscp>15</ip-dscp>
<ip-ecn>1</ip-ecn>
</ip-match>
<ip-dscp>15</ip-dscp>
<ip-ecn>1</ip-ecn>
</ip-match>
+ <in-port>openflow:1:0</in-port>
</match>
<cookie>7</cookie>
<flow-name>FooXf7</flow-name>
<priority>7</priority>
<barrier>false</barrier>
</match>
<cookie>7</cookie>
<flow-name>FooXf7</flow-name>
<priority>7</priority>
<barrier>false</barrier>
-</flow>
\ No newline at end of file
</ip-match>
<tcp-source-port>25364</tcp-source-port>
<tcp-destination-port>8080</tcp-destination-port>
</ip-match>
<tcp-source-port>25364</tcp-source-port>
<tcp-destination-port>8080</tcp-destination-port>
+ <in-port>openflow:1:0</in-port>
</match>
<cookie>8</cookie>
<flow-name>FooXf8</flow-name>
</match>
<cookie>8</cookie>
<flow-name>FooXf8</flow-name>
</ip-match>
<udp-source-port>25364</udp-source-port>
<udp-destination-port>8080</udp-destination-port>
</ip-match>
<udp-source-port>25364</udp-source-port>
<udp-destination-port>8080</udp-destination-port>
+ <in-port>openflow:1:0</in-port>
</match>
<cookie>9</cookie>
<flow-name>FooXf9</flow-name>
<priority>9</priority>
<barrier>false</barrier>
</match>
<cookie>9</cookie>
<flow-name>FooXf9</flow-name>
<priority>9</priority>
<barrier>false</barrier>
-</flow>
\ No newline at end of file