Architecture
The following figure illustrates the architecture of Cisco Ultra Traffic Optimization on VPP.

CUTO-CTRL
-
CUTO-CTRL receives guidance and requests from SMGR through the East-West API (EWAPI), through which clients (SMGR instances) are registered and deregistered, and new streams or flows are created and terminated.
-
CUTO-CTRL manages a set of shared memory (SHM) tables using a North-South API (NSAPI) consisting of Cisco-provided SHM infrastructure.
-
It is through this SHM environment that CUTO-VPP can read and write content that is visible to both CUTO-VPP and CUTO-CTRL.
-
The SHM is used for all high volume, scalable/mutable content necessary for the high-performance configuration and administration of the CUTO solution in VPP.
NPUMGR
NPUMGR is the management layer that is responsible for the overall VPP operation. It sends Binary API (BAPI) requests to CUTO-VPP for initialization, global runtime configuration, and policy configuration.
SMGR
SMGR is the main subscriber control plane. There are N SMGR instances, and all instances are managed by the SessCtrl. In the context of VPPMOB/Fastpath, the SMGR instances are also known as “Clients”, and each client has a unique ID.
SMGR issues policy directives to SessCtrl through the Messenger tunnel, and sends updated Policy guidance to CUTO-VPP through the Binary API.
SMGR communicates with Fastpath for pre-existing functionality with a set of MEMIF, Binary API, and shared memory (SHM) infrastructures.
Session Control (SessCtrl)
Session Control is the management layer responsible for overseeing the set of SMGR instances.
The BAPI requests are tunnelled from SessCtrl to NPUMGR through Messenger.
Fastpath
VPP is responsible for packet processing. Fastpath performs subscriber-related packet processing within the VPP environment. Subscriber flows are divided into unidirectional Streams, and a Stream conduit is the pipeline of functions through which a packet is transformed and egressed from subscriber processing.
A packet API between the Fastpath and CUTO-VPP facilitates the exchange of packets traversing the Fastpath conduit.
CUTO-VPP
-
CUTO-VPP is the packet processing engine in the UPF.
-
In fastpath, Cisco Ultra Traffic Optimization is applied to packets on a stream configured with its operation.
-
Packets are sent from the Stream conduit to a particular CUTO-VPP operation, and after some potential delay (0-N milliseconds), traffic is returned to the same Conduit.
-
Packets are never dropped by the Cisco Ultra Traffic optimization library.
CUTO-TODR
Traffic Optimization Data Records (TODR) can only be generated as events, and are enabled only when the configuration is available.