Demultiplexer - nihole/PSEFABRIC GitHub Wiki
Demultiplexer Layer is a heart of PSEFABRIC. At this layer, PSEFABRIC decides where (for which equipment) and which set of commands should be implemented.
Demultiplexing
Python functions:
- multiplexer.demultiplex
The idea of demultiplexing is to, based on the structural elements and Resolving Element (see Layer 2), extract necessary configuration for correspondent equipment.
Multiplexing
Python functions:
- multiplexer.multiplex
The goal of this function is removing the repeated combination of equipment name/parameter and commands.
Policy optimization
Python functions:
- multiplexer.opt_policy
The operation of changing an object is represented as two operations in the cmd_for_host dictionary: remove & creation. It means that this changing object presents in both lists: with created and deleted objects.
The purpose of this function is to exclude such objects from both lists.
This is performed for the next objects:
- addresses, services, applications
- addresses in address-sets, services in service-sets, applications in application-sets
- address-sets, service-sets, application-sets in policies
New dictionary (cmd_for_host_diff) will be used together with the old one (cmd_for_host_full) in configuration decision process.
PSEFABRIC (or Global) Logic
See Global Logic