[OPNFLWPLUG-262] OF plugin incorrectly converted a MD-SAL flow which contained SET_VLAN_ID action. Created: 05/Sep/14 Updated: 27/Sep/21 Resolved: 11/Sep/14 |
|
| Status: | Resolved |
| Project: | OpenFlowPlugin |
| Component/s: | General |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Hideyuki Tai | Assignee: | Michal Rehak |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| Issue Links: |
|
||||||||
| External issue ID: | 1720 | ||||||||
| Description |
|
This issue was originally reported in It seems that the patch has a problem. At FlowConvertor.java, you can see how the OpenFlow plugin handles SET_VLAN_ID action. public static List<FlowModInputBuilder> toFlowModInputs(Flow srcFlow, short version, BigInteger datapathId) { if (version >= OFConstants.OFP_VERSION_1_3 && isSetVlanIdActionCasePresent(srcFlow)) { list.addAll(handleSetVlanIdForOF13(srcFlow, version, datapathId)); }else { list.add(toFlowModInput(srcFlow, version, datapathId)); } return list; However, handleSetVlanIdForOF13() method ignores original match condition and changes the match condition incorrectly. For example, when VTN Manager tries to install a flow entry which matches untagged frame, the OF plugin incorrectly deletes in_port match field, source/destination MAC Address match field, and change VLAN match field. [Flow entry which VTN Mamanager tries to install]
[Flow entry which the OF Plugin sets to a switch]
|
| Comments |
| Comment by Hideyuki Tai [ 05/Sep/14 ] |
|
I can reproduce this issue as follows. 1. Run a controller with the OF plugin. 2. Run an OpenFlow 1.3 switch. 3. Install a flow entry using RESTCONF. Method: PUT URI: http://<CONTROLLER IP ADDRESS>:8080/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table/0/flow/2 <?xml version="1.0" encoding="UTF-8" standalone="no"?> 4. Check a flow table of the switch. mininet> dpctl dump-flows -O OpenFlow13
<======== The 2nd flow entry was the flow entry which the controller installed by the above PUT request. |
| Comment by Michal Rehak [ 11/Sep/14 ] |
|
fixed within bug1421 |