Skip to main content

Table 2 A brief overview of the NFV-PEAR API

From: Adaptive placement & chaining of virtual network functions with NFV-PEAR

Class

Description

class SFC(sfc_id, edges_list, dict): def deploy_sfc() def deploy_nf(nfunction, pop) def enable_nf(nfunction) def deploy_flow() def enable_flow()

A class to materialize Service Function Chaining (SFC) documents. Each instance of this class must have an id, an array with flow steering specifications, and a dictionary that contains mapping information of network functions (NFs) into Network Points-of-Presence (N-PoPs). The class contains methods to deploy the SFC as a whole, and also to deploy and enable NFs individually, and deploy and enable flow steering between NFs (and between NFs and endpoints). The deploy_sfc() method deploys an SFC. Internally, it calls deploy_nf(), deploy_flow(), enable_nf(), and enable_flow() methods. The deploy_nf() method creates and returns an NF instance, receiving as parameter an NF image and an N-PoP instance. Finally, deploy_flow() deploys all flows of an SFC.

class NfData(nfunction, npop, enabled): def enable() def disable()

A class to maintain NF operation data. Each NfData object points to an instance of NFunction and N-PoP. It also has a flag indicating if the NF is in operation, and methods to enable/disable its operation.

class NFunction(nf_id, type):

A class to represent NF instances. Each NFunction instance must have the identification number of the NF, and a string representing the NF type (ex: “Load Balancer”). The class constructor receives as input a network function id and type.

class NPop(npop_id, location): def add_deploy(deploymentFunction) def is_deployed()

A class to represent N-PoP instances. The class constructor receives as input an N-PoP id and the location of the switch to which the N-PoP belongs.