On 1/18/23 10:09, Farhan Tariq wrote: > Hi OVS family, > > I have been working on offloading only the exact-match flows in case of > disable-megaflows. When mask values of certain members of the 'struct match' > are checked in the 'test_key_and_mask()' function > (https://github.com/openvswitch/ovs/blob/e5d92c1a54852e9b5912aa53417d1f64bfee9af2/lib/netdev-offload-tc.c#L1536), > if any one of them is non-NULL, the function will return 'EOPNOTSUPP' and > the rule will not be offloaded to tc-flower. > > For now, I have just commented out the function 'test_key_and_mask()' and I > am able to offload the exact match flows. > > My question is: If I don't comment this function and instead set the all the > mask values of the flow (struct flow *mask) to 0, will this break OVS > functionality. Are these mask values used anywhere else other than flow > classification in case of megaflows disabled?
Hi, Farhan. Not sure if you got the reply from Eelco, but he did answer some of these questions when you posted them last time: https://mail.openvswitch.org/pipermail/ovs-dev/2023-January/400947.html In short, the test_key_and_mask() function is there for a reason. TC doesn't support everything that OVS supports. That's the main part. Some flows just can not be offloaded correctly. If you remove it or clear the masks, you will break the OVS logic. And, as Eelco said, running with megaflows disabled is not a supported configuration, so there might be additional complications. Best regards, Ilya Maximets. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
