Processing the Configuration

After the configuration has been committed, the application's management component reads the values and determines whether there have been any changes.

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:

The functions in 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).

Sending the Data to the Services

The equilibrium2 application sends the configuration data to its plugins by adding it to the kernel using the GENCFG API. This code is in the function 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.

The Plugins

2007-2009 Juniper Networks, Inc. All rights reserved. The information contained herein is confidential information of Juniper Networks, Inc., and may not be used, disclosed, distributed, modified, or copied without the prior written consent of Juniper Networks, Inc. in an express license. This information is subject to change by Juniper Networks, Inc. Juniper Networks, the Juniper Networks logo, and JUNOS are registered trademarks of Juniper Networks, Inc. in the United States and other countries. All other trademarks, service marks, registered trademarks, or registered service marks are the property of their respective owners.
Generated on Sun May 30 20:26:47 2010 for Juniper Networks Partner Solution Development Platform JUNOS SDK 10.2R1 by Doxygen 1.4.5