> On May 4, 2016, at 3:56 AM, Fischetti, Antonio <antonio.fische...@intel.com> > wrote: > > Hi Jarno, my reply inline. > > Thanks, > Antonio > >>> For more details, please let me know. >>> >> >> The flows above are at the OpenFlow level. I guess your test traffic >> exercises (just) the corresponding datapath flows? >> >> Do you know how much of the performance gain is lost once you add >> support not just for the IPv4 5-tuple, but all the different fields >> supported by struct flow (metadata, L2, IPv6, ARP, IGMP, etc)? > > [Antonio F] > I didn't make these kind of tests yet, for now I restricted > my tests focusing only on the wildcard matching for megaflows. > I tried to exclude any other aspect that could affect the > overall performance, I wanted to check if this solution is > really an improvement for the wildcard matching. > > When we consider that also other tables are involved, the lookups and > jumps between ofproto tables, EMC lookups and so on, > of course the performance gain will have less impact on the overall > system. > > The performance figures are just for the IPv4 5-tuple, but I needed > to share the idea and have some feedback from the Community > before moving forward. >
I’ve found that typically you have to implement the whole thing to find out if it makes a significant difference or not. This solution as proposed could be characterized as another cache between the EMC cache and the megaflow classifier. One major factor that will determine its usefulness is the fraction of time it is operational in a realistic traffic situation. I haven’t fully read the code, but it seems to me that DPDK-ACL lookup can only be done if there are no pending changes to the megaflows. Since there typically is high churn in the megaflow classifier due to it being reactive to the actual network traffic, especially if compared to the OpenFlow classifier, which is reactive to configuration and policy changes only, the fraction of time when the DPDK-ACL can be operational might be low. If you were able to change the DPDK-ACL structure to allow fast removal (i.e., by marking an entry invalid), it might be possible to keep it operational as a cache on front of the megaflow classifier at all times; if there is a miss on the DPDK-ACL, then we would proceed to do a lookup in the megaflow classifier. Jarno _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev