Configuration Management Engine - nihole/PSEFABRIC GitHub Wiki

PSEFABRIC Interface

We have the next configuration objects in this implementation of PSEFABRIC:

  • structure
  • addresses
  • address-sets
  • services
  • service-sets
  • application
  • application-sets
  • policy

This scheme describes the relationships between them:

This approach is usual for some vendors (Palo Alto, Juniper for example).

It is assumed that these relations should not be changed, but there are a few things which may be adapted to the specific project:

  • Structure Elements (see structure)
    • PSEFABRIC structure elements represent the logical segmentation of the underlying network infrastructure
  • objects parameters
    • each object can have up to 8 parameters which may be used for configuration
    • two first parameters are the logical type and 6 others are the string type

YANG

CONFD Interface is programmed via 6 YANG files located in $PROJECT/PSEF_YANG folder:

  • psefabric-types.yang
  • structure.yang
  • addresses.yang
  • services.yang
  • applications.yang
  • policy.yang

For each project, these files may be changed in accordance with specific interface requirements for this particular project.

Vocabulary

Every time we change the names of the PSEFABRIC Structural Elements or object parameters name we have to let PSEFABRIC be aware of it. The dictionaries located in $PROJECT/PSEF_SCRIPTS/vocabulary.py are used for this purpose:

  • par_voc
  • str_voc
  • par_rvoc
  • str_rvoc

str_rvoc and par_rvoc are reverse dictionaries for str_voc and par_voc:

par_rvoc = dict((v,k) for k,v in par_voc.iteritems())
str_rvoc = dict((v,k) for k,v in str_voc.iteritems())