  Network appliances perform different functions on network flows and
constitute an important part of an operator's network. Normally, a set of
chained network functions process network flows. Following the trend of
virtualization of networks, virtualization of the network functions has also
become a topic of interest. We define a model for formalizing the chaining of
network functions using a context-free language. We process deployment requests
and construct virtual network function graphs that can be mapped to the
network. We describe the mapping as a Mixed Integer Quadratically Constrained
Program (MIQCP) for finding the placement of the network functions and chaining
them together considering the limited network resources and requirements of the
functions. We have performed a Pareto set analysis to investigate the possible
trade-offs between different optimization objectives.
