Closed GraysonWu closed 1 year ago
Hi. Thanks for the report! This turned out to be a bug in the classifier. I posted a potential fix here: https://patchwork.ozlabs.org/project/openvswitch/patch/20230217200959.307041-1-i.maximets@ovn.org/ If you can try it out, that would be great.
Hi. Thanks for the report! This turned out to be a bug in the classifier. I posted a potential fix here: https://patchwork.ozlabs.org/project/openvswitch/patch/20230217200959.307041-1-i.maximets@ovn.org/ If you can try it out, that would be great.
Hi Ilya, thanks for the fix. I tested it in my use cases and it works!
Thanks! The fix was applied as commit https://github.com/openvswitch/ovs/commit/489553b1c21692063931a9f50b6849b23128443c. Backported all the way down to 2.13.
On branch-2.17 it is https://github.com/openvswitch/ovs/commit/132fa24b656e1bc45b6ce8ee9ab0206fa6930f65.
What I'm trying to do
I want to match the first packet which contains the actual data from a TCP connection. So I used
tp_dst=80,tcp_flags=+psh
to match the data packet instead of TCP handshake packets.Issues I met
tp_dst=80,tcp_flags=+psh
couldn't match the packet that should be matched in OVS 2.17.3. But in OVS 2.17.0, it works.Another weird behavior:
If I only have one flow
priority=201,tcp,tp_dst=80,tcp_flags=+psh
, it doesn't match any packets. But if I add a flow with a lower priority without the port matching field like this:priority=200,tcp,tcp_flags=+psh
, the first flow withpriority=201
will start to match packets andpriority=200
won't match any packets.More details
I added the flow below, but it couldn't match any packets.
BTW, I use
actions=drop
just for debugging. In actual usage, I will send the packet to the controller for further processing. tcpdump resultsAs you can see the TCP request is successfully completed. The packet below is received by the server and not dropped.
BUT, after I add a lower-priority flow, the higher-priority flow starts to work and only the higher-priority flow gets hit.
tcpdump results
The client is keep resending the packet that is matched and dropped.
Hope someone could help me out. Thank you a lot!!! Also, I'm not an OVS expert, if I misunderstood anything please let me know.