When flow addition is tried with imperfect combination of match and action, OVS is rejecting the flow addition with Open flow error message with type OFPET_BAD_ACTION. Due to missing support for the same, the flow is remaining in pending add state and there by resulting in indefinite loop for flow addition.
With further analysis, we have made the following observations:
- Under the error scenario, OVS switch sending the OF error message by embedding the OF flow mod message as data. The embedded OF Flow MOD message (data) is truncated to 64 bytes.
- Due to data truncation, flood light controller is not able to parse it correctly as the length field for the OpenFlow message is not matching the length of the data (OF message), resulting in retuning null.
- And in ONOS, it is observed that message handling for error handling for type OFPET_BAD_ACTION is missing.
1. JSON Object for flow addition
2. WS traces. (Packet no: 67 and 68)
3. Error logs in onos