[OPNFLWPLUG-569] Li - Flowmod succeed even if switch send Error Created: 06/Nov/15  Updated: 27/Sep/21  Resolved: 09/Nov/15

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

Type: Bug
Reporter: omar mounaouar Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issue Links:
Duplicate
duplicates OPNFLWPLUG-538 Li: flowMod result ignores relevant e... Resolved
External issue ID: 4591

 Description   

feature : odl-openflowplugin-flow-services-ui-li

openflowplugin is expected to generate an error when flowmod fail. The bug is that flowmod succeed even if switch send Error.

Steps to reproduce :

1. Compile forked branch (OVS will return an OFPERR_OFPBAC_TOO_MANY to flowmods with actions)

  1. git clone -b branch-2.3 https://github.com/omardyson/ovs.git
  2. apt-get install mininet # Install mininet to get dependencies
  3. cd ovs/
  4. ./configure --prefix=/usr --with-linux=/lib/modules/`uname -r`/build
  5. make && make install && make modules_install
  6. rmmod openvswitch && depmod -a
  7. /etc/init.d/openvswitch-controller stop
  8. update-rc.d openvswitch-controller disable
  9. /etc/init.d/openvswitch-switch start

2. Setup a virtual switch with some ports:

  1. ip tuntap add dev myeth1 mode tap
  2. ip link set dev myeth1 up
  3. ip tuntap add dev myeth2 mode tap
  4. ip link set dev myeth2 up
  5. ovs-vsctl add-br sw1 – set Bridge sw1 other_config:datapath-id=0000000000000001 – set-fail-mode sw1 secure – add-port sw1 myeth1 – set Interface myeth1 ofport_request=1 – add-port sw1 myeth2 – set Interface myeth2 ofport_request=2 – set-controller sw1 tcp:127.0.0.1:6633 ptcp:6634 – set bridge sw1 other-config:disable-in-band=true – set bridge sw1 protocols=OpenFlow13

3. Send any flowmod with actions in it.

4. In wireshark you get OFPERR_OFPBAC_TOO_MANY error, but openflowplugin Li report successful future.



 Comments   
Comment by Michal Rehak [ 09/Nov/15 ]

Hi Omar,
could you please specify the way how did you send the flow? Using dataStore (DS) way prevents controller from returning any error result as the flow is being sent after restconf or DS-API response is delivered.
If you use direct rpc that it is supposed to work - actually it was already fixed once: OPNFLWPLUG-538

Comment by omar mounaouar [ 09/Nov/15 ]

Hi Michal,
Thank for your answer, you are right, I was using a build before OPNFLWPLUG-538 fix. This issue is now resolved with latest build.

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