With the team we have been working for some time on updating the vnet flows and dpdk driver backend to support fast flow rules insertion/deletion from the datapath. The end goal being two updates of SFDP: - Upon reception of the first packet of a session, we create two flow rules (one for the forward flow, one for the reverse) that will be marking matching packet with the session id. - We then skip session lookup in software thanks to that - Upon policy defined rules we also want to insert flow rules to directly forward traffic to an egress port without the packets being received in software -That requires adding support for hardware aging flows
A summary of some of the patches we have for now in gerrit: - 45246: replace the hash table per vnet flow with a single hw interface index. A hash table lookup/set takes too many cycles. I tried also to replace it directly in the vnet flow by a vec of driver private data per hw_if_index but the cost of the allocation when an index does not exists it really high and kill performances. (I have the numbers and benchmarking code if you want to take a look). - 45247: let the backend driver set/unset hw_if_index per flow: as it is use to determine if a flow is correctly installed the driver should be the owner of the field. - 45248: optimize the vnet_flow_t structure to fit in less cacheline and have a pointer to generic pattern. Futher optimizations would be great. (with my benchmarking unittest I was able to increase by 33% the number of flows enabled) - 45000: the flow templating and async API vnet flow infrastructure. - 45578: buffer-like per-thread-cache to allow multiple workers to operate at the vnet flow level. - 45098: implement the templating and async API for DPDK - 45539: buffer-like per-thread-cache to allow multiple workers to operate at the dpdk flow level. flow_entries and flow_lookup_entries are be biggest blocker there. - 45152: default jump rule to flow table 1 to avoid the cost of table 0 which hs
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#27015): https://lists.fd.io/g/vpp-dev/message/27015 Mute This Topic: https://lists.fd.io/mt/119226657/21656 Group Owner: [email protected] Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/14379924/21656/631435203/xyzzy [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
