ODL failed to properly serialize the packet-length in flowspec.
For packet-length, there is a "end-of-list" bit in operator flags must be set when the length filter is the last filter in the list.
I attached a modified packet capture to show the correct encoding. In the capture, the malformed packet is generated by ODL, where the "end-of-list" is not set. The other good packet has the same packet-length filter, where I fixed the "end-of-list" bit, so wireshark won't complain it's malformed.
This bug will also occur when other numeric operand filter is used, such as dscp