1. A method comprising: at a controller apparatus that is configured to generate provisioning information to establish a service function chain that includes a plurality of service functions to be performed by two or more service nodes: generating the provisioning information so as to include at least one condition upon which a service function reclassification or branching operation is to be performed by at least one of the two or more service nodes, wherein the at least one condition is a metadata branch that instructs a service node to examine metadata in a header of packets to determine if the metadata matches a particular condition and if so then branch the traffic to a particular service function path; and supplying the provisioning information to a network device which in turn distributes the provisioning information to the two or more service nodes according to a distributed routing protocol.