network service header is a slim header placed after the ethernet similarly as label placed within a packet. it carries a path id describing the service function chain the given packet will applied to, and path index which describes the progress of the packet within the service chain. it also have flags, ttl, next protocol indicator, and fixed/variable length metadata passed between functions. it have an ethertype but also could be carried in nvo3 protocols which have support for it. you can achieve similar policy routing features as with mpls te, but without mpls data plane, just over plain ip or ethernet. currently static construction of function chains is reality, and drafts are evolving for the control plane, we'll see how far they'll go.