  We consider the IPv6 Segment Routing (SRv6) technology for Service Function
Chaining of Virtual Network Functions (VNFs). Most of the VNFs are legacy VNFs
(not aware of the SRv6 technology) and expect to process traditional IP
packets. An SR proxy is needed to support them. We have extended the
implementation of SRv6 in the Linux kernel, realizing an SR-proxy, referred to
as SRNK (SR-Proxy Native Kernel). The performance of the proposed solution
(SRNKv1) has been evaluated, identifying a poor scalability with respect to the
number of VNFs to be supported in a node. Therefore we provided a second design
(SRNKv2), enhancing the Linux Policy Routing framework. The performance of
SRNKv2 is independent from the number of supported VNFs in a node. We compared
the performance of SRNKv2 with a reference scenario not performing the
encapsulation and decapsulation operation and demonstrated that the overhead of
SRNKv2 is very small, on the order of 3.5%.
