-
Notifications
You must be signed in to change notification settings - Fork 3
Detailed implementation scheme
One of the most important advantages of PSEFABRIC is flexibility. This means that we can quite easily implement this approach to the network infrastructures with different designs, vendors, equipment, topologies, routing ...
To setup PSEFABRIC for a new project you need to adjust the next entities (highlighted in red in our scheme above):
- YANG
- Vocabulary
- Resolving Element
- PSEFABRIC Logic
- Templates
- Host to type mapping (See example)
- Encapsulation scripts
- Loading scripts
The psefabric.py is the data flow manager
- located in $PSEFABRIC/PSEF_SCRIPTS
- runs scripts in the correct order
- responsible for data exchanging between them.
This diagram shows python functions and data they exchange. The order of operations and all communication is determined by psefabric.py.
Here is the list of all python dictionaries used for data exchange:
- psef_conf_new
- psef_conf_old
- address_full_new
- address_full_old
- address_set_full_new
- address_set_full_old
- service_full_new
- service_full_old
- service_set_full_new
- service_set_full_old
- application_full_new
- application_full_old
- application_set_full_new
- application_set_full_old
- psef_conf_policy_full_new
- psef_conf_policy_full_old
- diff_dict_full
- address_set_index_new
- address_set_index_old
- cmd_for_host_full
- policy_index
- cmd_for_host_mult
- cmd_for_host_diff
- cfg
There is a powerful debugging mechanism in this PSEFABRIC implementation. You may examine all essential internal data exchange. If debugging is on this information is saved in the folder $PSEFABRIC/PSEF_LOGS/. For ease of reading, they will be saved in json format (Debugging)