Software-configured service chaining provides the capability to dynamically include best-of-breed functions in a network processing path.The concept is shown in Figure 1. Each circle represents a different service function (a.k.a. network function) that is connected to other services via a network.The arrows represent three different service chains that comprise a particular set of service functions connected in order.
In principle, a number of different topologies are possible. For example, service path forking, service function sharing and bidirectional service chains will all be useful in different scenarios. Service chains can be fine-grained or coarse-grained, depending on the use cases, and may be either highly dynamic or based on predefined service templates.