As an example of using a common ASL script for Network Protocol Manager for OSPF, you could use the custom-end-post.asl script to create OSPF Area Border Router (ABR) system redundancy groups (SystemRedundancyGroup objects) after the initial discovery completes. Currently, SystemRedundancyGroup objects cannot automatically be discovered and instantiated by Network Protocol Manager.

An example of adding code to the custom-end-post.asl script to create an ABR SystemRedundancyGroup object is given in Figure 13 on page 51. The ASL code directs Network Protocol Manager to:

  1. Create an instance of the SystemRedundancyGroup class.

  2. Insert the ABR routers participating in the redundancy group into the ComposedOf relationship of the redundancy group.

    /*
    .
    .
    .
     * RCS $Id: custom-end-post.asl,v 1.3 2005/05/27 18:43:37 sv1 Exp $
     *
     * This asl file is used at the end of discovery post processing.
     */
    factory = object(getInstances("ICIM_ObjectFactory")[0]);
    topo_manager = object(getInstances("ICF_TopologyManager")[0]);
    default DEBUG = FALSE;
    me = this->ReadsRulesFrom->fileName.": ";
    blanks = "    ";
    /*
     * Add additional initialization here.
     */ 
    /*
     * Add convenience patterns here.
     */
    /*****************************************************************************/
    START {
        .. eol
    } do {
        /*
         * Add processing rules here.
         */
        if (DEBUG) {
            print("Executing rule set ".me);
        }
        SRG = create("SystemRedundancyGroup","OSPF-ABR-Group");
        foreach ospfSys (getInstances("OSPFService")) {
     ospfSys = object(ospfSys);
     if (ospfSys->IsABR == TRUE) {
         sysObj = ospfSys->HostedBy;
         if (sysObj->isInstanceOf("Router")) {
             SRG->ComposedOf += ospfSys->HostedBy;
         } else {
      SRG->ComposedOf -= ospfSys->HostedBy ? IGNORE;
         } 
     }
        }
    }
    /*
     * Addition EOF or DEFAULT here if necessary.
     */
    /**********************************************************/
    /*
     * Local Variables:
     * mode: C++
     * End:
     */
    /*
    

    Analysis and monitoring of the ABR system redundancy group occur automatically when the redundancy group is created and subsequently populated with ABR members. The state of the redundancy group is based on the status of its ABR members.