  While services benefit from distributed cloud centers running in isolation,
allowing multiple centers to cooperate on implementing services unlocks the
full power of distributed cloud computing. Distributed cloud services are
typically set up by chaining together a number of functions that are specified
with an implicit order. They can incorporate complex structures, e.g., include
functions that classify and forward flows over distinct branches and functions
that are traversed by certain types of flows but skipped by others. These
requirements need specification techniques more powerful than existing
graph-based ones. We present a context-free grammar for abstract description of
service function chaining structures and a concrete syntax based on the YANG
data modeling language that can easily be translated into an explicit
configuration of service functions. Finally, we present examples of using our
models for complex services within common use cases of service function
chaining.
