[OPNFLWPLUG-831] Flow update rejected by switch generates faulty flow entry in operational DS Created: 10/Dec/16  Updated: 27/Sep/21  Resolved: 23/Feb/17

Status: Resolved
Project: OpenFlowPlugin
Component/s: General
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Luis Gomez Assignee: Anil Vishnoi
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 7335

 Description   

As far as I can tell this is only happening with Beryllium.

To reproduce:

1) Start controller Beryllium + mininet OVS 2.3+

2) Push the following sample flow:

<flow xmlns="urn:opendaylight:flow:inventory">
<strict>false</strict>
<instructions>
<instruction>
<order>0</order>
<apply-actions>
<action>
<set-field>
<vlan-match>
<vlan-id>
<vlan-id>79</vlan-id>
<vlan-id-present>true</vlan-id-present>
</vlan-id>
</vlan-match>
</set-field>
<order>1</order>
</action>
<action>
<output-action>
<output-node-connector>1</output-node-connector>
</output-action>
<order>2</order>
</action>
</apply-actions>
</instruction>
</instructions>
<table_id>0</table_id>
<id>48</id>
<match>
<ethernet-match>
<ethernet-type>
<type>2048</type>
</ethernet-type>
<ethernet-destination>
<address>FF:FF:29:01:19:61</address>
</ethernet-destination>
<ethernet-source>
<address>00:00:00:11:23:AE</address>
</ethernet-source>
</ethernet-match>
<vlan-match>
<vlan-id>
<vlan-id>78</vlan-id>
<vlan-id-present>true</vlan-id-present>
</vlan-id>
<vlan-pcp>7</vlan-pcp>
</vlan-match>
<in-port>openflow:1:1</in-port>
</match>
<flow-name>vlan_flow</flow-name>
<priority>2</priority>
</flow>

2) Then update the flow removing the vlan-match (it will fail in ovs 2.3+):

<flow xmlns="urn:opendaylight:flow:inventory">
<strict>false</strict>
<instructions>
<instruction>
<order>0</order>
<apply-actions>
<action>
<set-field>
<vlan-match>
<vlan-id>
<vlan-id>79</vlan-id>
<vlan-id-present>true</vlan-id-present>
</vlan-id>
</vlan-match>
</set-field>
<order>1</order>
</action>
<action>
<output-action>
<output-node-connector>1</output-node-connector>
</output-action>
<order>2</order>
</action>
</apply-actions>
</instruction>
</instructions>
<table_id>0</table_id>
<id>48</id>
<match>
<ethernet-match>
<ethernet-type>
<type>2048</type>
</ethernet-type>
<ethernet-destination>
<address>FF:FF:29:01:19:61</address>
</ethernet-destination>
<ethernet-source>
<address>00:00:00:11:23:AE</address>
</ethernet-source>
</ethernet-match>
<in-port>openflow:1:1</in-port>
</match>
<flow-name>vlan_flow</flow-name>
<priority>2</priority>
</flow>

3) Check operational and flow is still there unmodified (switch has no flow):

"flow": [
{
"id": "48",
"instructions": {
"instruction": [
{
"order": 0,
"apply-actions": {
"action": [
{
"order": 0,
"set-field": {
"vlan-match": {
"vlan-id":

{ "vlan-id": 79, "vlan-id-present": true }

}
}
},
{
"order": 1,
"output-action":

{ "output-node-connector": "1", "max-length": 0 }

}
]
}
}
]
},
"cookie": 0,
"match": {
"in-port": "openflow:1:1",
"ethernet-match": {
"ethernet-source":

{ "address": "00:00:00:11:23:AE" }

,
"ethernet-destination":

{ "address": "FF:FF:29:01:19:61" }

,
"ethernet-type":

{ "type": 2048 }

},
"vlan-match": {
"vlan-id":

{ "vlan-id": 78, "vlan-id-present": true }

,
"vlan-pcp": 7
}
},
"hard-timeout": 0,
"flags": "",
"priority": 2,
"table_id": 0,
"opendaylight-flow-statistics:flow-statistics": {
"packet-count": 0,
"byte-count": 0,
"duration":

{ "nanosecond": 728000000, "second": 28 }

},
"idle-timeout": 0
}
]
}



 Comments   
Comment by Anil Vishnoi [ 10/Dec/16 ]

stable/beryllium : https://git.opendaylight.org/gerrit/49207

Comment by Tomas Slusny [ 20/Feb/17 ]

This was already merged, so can this be closed?

Generated at Wed Feb 07 20:33:29 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.