The equilibrium2 code performs the same functions the Sync Equilibrium does, but stores the configuration values in lists instead of trees. As in the original application, the management component combines the data in at least two different, system-generated blobs, to convey the necessary data to the services running on the PIC. These are:
equilibrium2-mgmt_config.c read the values and store them. (To see the same functionality implemented differently in the original application, see Processing the Configuration).
kcom_add_config_blob(), in the file
equilibrium2-mgmt_kcom.c. The system then automatically downloads the data to the PIC.
In the original Sync Equilibrium application, the code in
equilibrium-mgmt_conn.c sends the configuration to the data component. This is unnecessary in equilibrium2.
This application also configures and handles more service rules. A configuration blob contains only the specific service rules for its associated service. For example, if service set
svc-set-a is configured to contain both classify and balance service rules, the system creates two configuration blobs with the same service set ID: one contains the classify rules and the other contains the balance rules. Each blob is sent to its associated service through the service interface specified in the configuration.
As in the original application, the management component compares the newly created blob with the blob already in the kernel before sending the configuration, and updates the blob only if something was changed. To update a configuration blob, the management component must first delete it, then add the new one.