[OPNFLWPLUG-280] The return value of sal-compatibility on flow entry update API is always SUCCESS. Created: 17/Sep/14  Updated: 27/Sep/21  Resolved: 16/Aug/16

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

Type: Bug
Reporter: Hideyuki Tai Assignee: Unassigned
Resolution: Won't Do 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: 1939

 Description   

The return value of sal-compatibility on flow entry update API was always SUCCESS, even when an AD-SAL application tried to install an inconsistent flow entry with MD-SAL OF plugin via sal-compatibility, but a switch refused the flow entry.

When an AD-SAL application executes synchronous methods of the flow entry update API of the sal-compatibility, the sal-compatibility waits for the completion of the flow entry update, and returns control to the caller.
However, the sal-compatibility does not check the result of the flow entry update, and returns SUCCESS.

Due to this issue, AD-SAL application cannot know if a flow entry update is successful or not.

[How to reproduce the issue]

To reproduce the issue, let's try to install an inconsistent flow entry.

For example, please try to install the following flow entry into OF 1.3 switch using AD-SAL's NB API.

{
"actions": [
"SET_TP_SRC=8"
],
"ingressPort": "1",
"installInHw": "true",
"name": "flow1",
"node":

{ "id": "00:00:00:00:00:00:00:01", "type": "OF" }

,
"priority": "500"
}

http://192.168.2.56:8080/controller/nb/v2/flowprogrammer/default/node/OF/00:00:00:00:00:00:00:01/staticFlow/flow1

The above flow entry is inconsistent, because it does not specify IP protocol in match condition, but it has a SET_TP_SRC action.
Therefore, a switch refuses the flow entry to be installed, and it sends a OFPT_ERROR message whose type is OFPET_BAD_ACTION and whose code is OFPBAC_MATCH_INCONSISTENT.



 Comments   
Comment by Jozef Gloncak [ 27/Jan/15 ]

I started Karaf in debug mode with

  • odl-openflowplugin-flow-services
  • odl-adsal-all
    features installed.

I started my IDE and I connected to remote debug on port 5005

I tried to do rest call (PUT data as you specified to URI as you specified (with my own address of running ODL)).
I assumed that FlowProgrammerNorthbound.addOrModifyFlow() method of artifact flowprogrammer.northbound will be called, but it wasn't.

Currently I am quite lost and I can't replicate your problem. Can you please more precisely specify how I could replicate or please notify if my assumption about handling method (addOrModifyFlow) was wrong.

Comment by Abhijit Kumbhare [ 10/Nov/15 ]

Hideyuki - is this still an issue or not?

Comment by Hideyuki Tai [ 10/Nov/15 ]

(In reply to Abhijit Kumbhare from comment #2)
> Hideyuki - is this still an issue or not?

I'm not sure if this issue is fixed or not.
Maybe if I have time, I might try to reproduce the issue.

That being said, since the sal-compatibility is deleted in Beryllium, I think the issue is not important anymore.

Comment by Andrej Leitner [ 16/Aug/16 ]

Since this was not relevant by beryllium, it's not relevant in boron/carbon era too - closing bug.

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