Add chain egress classifier support
On scenarios where origin and destination of traffic are on the same
node, there is no tunnel id metadata to help steer the traffic back
to the destination on chain egress, thus SFC cannot take care of
this by itself. In a general case, the classifier is in a better
position to steer traffic to destination as it is aware on how it
was intercepted on the first place.
For netvirt classifier and the scenario mentioned above, the
classifier will copy the REG6 to NSH C4 on interception. On chain
egress, SFC will send the encapsulated packet back to the origin node
(only when C2 is 0, which will only happen when origin and destination
node are the same). There, the classifier will restore the
de-encapsulated packet to the egress dispatcher table with the proper
REG6 value taken from NSH C4. REG6 contains the the egress ifindex plus
the nex egress service in sequence from the classifier egress service
to handle the packet. This effectively restore the packet processing
where it left off on interception.
Change-Id: I1c494f24c5af530849faabcbfa8efcaa9cd4344a
Signed-off-by: Jaime Caamaño Ruiz <jaime.caamano.ruiz@ericsson.com>
Signed-off-by: Sam Hague <shague@redhat.com>