“Service chaining” involves delivering a list of services in connection with selected traffic in a specific order. A network node that selects, or classifies, the traffic is referred to as the “classifier.” Services are delivered in service nodes. The actual forwarding path used to realize the service chain is referred to as the “service path.” Currently, service paths are realized in the form of overlays, which stretch within network infrastructure or between the infrastructure and service nodes. In other words, overlays extend from the classifier to the service node and from service node to service node. The overlays are in the form of transport encapsulation, such as UDP, GRE/NVGRE, VLXAN, SNAP, etc., carrying the original traffic to be serviced as payload. In all such overlay schemes, a service header, such as vPath or NSH, is layered in between the L3 protocol or L4 port numbers. The service headers serve to carry metadata from the classifier to service nodes as well as from one service node to the other service nodes. Additionally, the same service headers carry metadata from the service nodes back to the infrastructure to enable advanced functions to be performed.
One such advanced function is “flow offload.” Flow offload occurs when a service node is not interested in the packets of the flow form a certain point in the life of the flow and requests the infrastructure to handle the flow on its behalf. Once offloaded, the infrastructure by passes the service node for the life of the flow, thereby shortening the service path for that flow. This shortening of the service path for a flow improves the performance of service delivery for that flow. Currently, this shortening is limited to bypassing the service node at its closest node in the infrastructure, such as the switch to which the service node is connected.