DNCIM stitchers

The following stitchers all interact with the DNCIM database. The Discovery engine, ncp_disco, uses these stitchers to store the network model data in the DNCIM database .

The DNCIM stitchers are called from one of the following stitchers:
  • CreateAndSendTopology: if Network Manager is in full discovery mode
  • RecreateAndSendTopology: if Network Manager is in rediscovery mode
The following table describes the discovery stitchers that interact with the DNCIM database.
Note: This list is subject to change.
Table 1. List of DNCIM discovery stitchers
Stitcher Function
CleanDNCIMCollections To conform to the standard model, this stitcher fixes Collection by setting the mainNodeEntityId to NULL if the mainNodeEntityId is not NULL.
CleanDNCIMObjects A placeholder stitcher that calls any stitcher that is required to filter or remove data from DNCIM before it sends the data to MODEL (for example, it calls the CleanDNCIM_OutOfBandRouterLinks stitcher).
CleanDNCIM_OutOfBandRouterLinks Removes router link connectivity for out of band devices from the connects table.
CreateInferredChassis Creates an inferred chassis which usually is a BGP peer, an MPLS PE router visible from a CE router, or an MPLS CE visible from a customer PE.
DeleteDNCIMSubnetCollects Deletes the collects entries from the subnet objects so that the collects relationship is correctly rebuilt after a partial discovery without deleting the subnet object.
DeleteNodeFromDNCIM This stitcher is used in partial discovery. It moves a given DNCIM entity into a pending delete domain. If a device is not found after the discovery, then the device is removed entirely. Such devices are removed by the DeleteRemovedEntities stitcher.
DeleteRemovedEntities The DeleteRemovedEntities stitcher deletes entities that have previously been put aside for deletion during a partial discovery.
GetConnectSpeedOfComponent Calculates the connection speed of a connection component such as a network pipe (containing multiple paths, hops, and so on through the network). This stitcher iterates over the links resolving the overall connection speed of the component. The stitcher is recursive, so if a component contains subcomponents, then the stitcher is called again on the subcomponent.
GetConnectSpeed Resolves the connection speed of a simple connection by examining the interface speed of the interfaces at each end.
GetEntityId Gets the entity ID for a given domain and entity name.
GetInterfaceSpeed Retrieves the interface speed of an interface.
GetPendingDeleteDomainId Retrieves the ID of the temporary domain used to store entities affected by the partial discovery. The temporary domain might need to be deleted.
InferDNCIMObjects Infers the existence of objects from current data. This stitcher replaces functionality in the deprecated PostScratchProcessing stitcher.
PopulateConnectSpeeds Builds an entry to the connectSpeeds table.
PopulateDNCIM This is the root DNCIM stitcher, which populates the DNCIM database tables with entity and relationship data.
PopulateDNCIM_5GControlPlane Populates DNCIM with 5G control plane records.
PopulateDNCIM_5GDataPlane Populates DNCIM with 5G Data plane records.
PopulateDNCIM_BGP A container stitcher which calls all the BGP-related modelling stitchers as appropriate to model BGP within the topology.
PopulateDNCIM_BGPAutonomousSystem Models a BGP autonomous system record.
PopulateDNCIM_BGPProtoEndPt Models a BGP protocol end point.
PopulateDNCIM_BGPServices Models the BGP services within the system.
PopulateDNCIM_BGPTopology Builds the BGP topology layer.
PopulateDNCIM_Collect Builds an entry to the collects table within DNCIM.
PopulateDNCIMCollection Populates the DNCIM collection table with data.
PopulateDNCIM_Connection Puts a single connection for supplied arguments into DNCIM connection table.
PopulateDNCIMConnects Populates the DNCIM connection table with data from layer tables.
PopulateDNCIM_ConnectSpeeds Populates the connection speed table for a simple connection (no pipes).
PopulateDNCIM_ConnectSpeedsPipe Populates the connectSpeed entry for a network pipe.
PopulateDNCIM_Containment Populates the DNCIM containment table with data about the containment relationship, modelling a single individual containment relationship from the arguments passed to the stitcher.
PopulateDNCIMContainment Transposes the workingEntities.containment table to the DNCIM contains table.
PopulateDNCIM_CreateProbeCollection

V4.2 FixPack 3: Assists with the creation of probe collections.

PopulateDNCIM_CustomGeography

V4.2 FixPack 2: Adds devices to the correct geographical collections based on their location data.

PopulateDNCIMDependencies Takes the contents of the workingEntities.dependencies table, and adds the relevant relationships to DNCIM.
PopulateDNCIM_Dependency Populates the dependency table for a single dependency relationship, modelling a single dependency relationship from the arguments passed to the stitcher.
PopulateDNCIMDiscoverySource Populates the discovery source objects.
PopulateDNCIM_DomainMembers Populates the domainMembers table within DNCIM.
PopulateDNCIM_Entity Inserts a record with the given arguments into the DNCIM entityData and domain members tables. This results in the entity showing up in the entity view as this view s based on a JOIN operation of those two tables.
PopulateDNCIMFromEbnbr Takes the contents of a single discovery entityByNeighbor table, for example, CollectorLayer1, and transfers these contents to the DNCIM connects table.
PopulateDNCIM_GeographicLocation Processes geographical location and region information for devices. Calls the PopulateDNCIM_Entity stitcher to stores the processed location and region information in the DNCIM entityData table.

As long as geographical data is supported by the respective vendor EMSs that are interrogated by the LTE collectors, then geographical location data will be determined by the collectors, processed by this stitcher, and the corresponding NCIM topology database tables will be populated with this geographical data. When you create dynamic collection network views of type Geographical Region and Geographical Location, then this geographical data in NCIM is used to create the hierarchical geographical views of the network.

PopulateDNCIM_GlobalVlanUnresolved Copies a global VLAN entity from workingEntities.finalEntity into the DNCIM globalVlan table.
PopulateDNCIMHostedServices Populates the hostedService table for the network.
PopulateDNCIM_HostedService Populates the hostedService table for a single relationship.
PopulateDNCIM_IGMP Manages the population of DNCIM with IGMP data.
PopulateDNCIM_IGMPService Creates Multicast IGMP Service entities and populates igmpService.
PopulateDNCIM_IGMPEndPt Resolves the required IGMP end points and populates igmpEndPoint.
PopulateDNCIM_IGMPGroups Creates the required group entities and populates igmpGroup. It also makes the Group entities collect any relevant End Points.
PopulateDNCIM_IPMRoute Models the IPMRoute objects.
PopulateDNCIM_IPMRouteService Creates Multicast Routing Service entities. The service entities are linked to the appropriate chassis entity as a Hosted Service.
PopulateDNCIM_IPMRouteEndPt Populates DNCIM with IPMRoute Protocol Endpoint data.
PopulateDNCIM_IPMRouteGroups Creates the MDT, Group, and Source entities and populates the ipMRouteMDT, ipMRouteGroup, and ipMRouteSource DNCIM tables.
PopulateDNCIM_IPMRouteTopology Models the topology of the IPM routes
PopulateDNCIM_ISIS

V4.2 FixPack 17:Container stitcher that populates the isisService, isisArea and isisEndPoint tables in DNCIM and NCIM. The stitcher also populates the ISISTopology within DNCIM, which is based on the ISISLayer.

PopulateDNCIM_ISISService

V4.2 FixPack 17:Sub-stitcher of PopulateDNCIM_ISIS.

PopulateDNCIM_ISISTopology

V4.2 FixPack 17:Sub-stitcher of PopulateDNCIM_ISIS.

PopulateDNCIM_LAG Manages the population of dNCIM with Link Aggregation Group (LAG) modelling entities, including SAE link aggregation entities (which collect LAG ports), and aggregation group entities (which contains LAG ports).
PopulateDNCIM_LAGEndPt Creates LAG End Point entities for LAG members.
PopulateDNCIM_LAGLinkCollections Creates and populates the Link Aggregation Service Affected Event (SAE) entities.
PopulateDNCIM_LTECollection Populates DNCIM with LTE collection records.
PopulateDNCIM_LTEControlPlane Populates DNCIM with LTE control plane records.
PopulateDNCIM_LTEDataPlane Populates DNCIM with LTE data plane records.
PopulateDNCIM_LTEDepends Populates DNCIM with LTE eUtranSector entities and the corresponding LTE eUtranCell and antennaFunction entities that this eUtranSector entity depends on.   
PopulateDNCIM_ManagedStatus Sets the value of the managedStatus field for each of the interfaces of a main node indicating whether that interface should be monitored or not. The tag can take the following values:
The managed status of an entity can be one of the following values:
0
Managed state. The entity is managed. A device can be set to managed by using the Topoviz or the Structure Browser GUIs, or by using the ManagedNode.pl or RemoveNode.pl scripts.
1
Unmanaged state. The entity is unmanaged. A device can be set to unmanaged by using the Topoviz or the Structure Browser GUIs, or by using the UnManagedNode.pl or RemoveNode.pl scripts.
2
Unmanaged by ncp_disco. This setting cannot be modified from the GUI. This value is set by the PopulateDNCIM_ManagedStatus.stch stitcher.
3
Unmanaged because the IP address is out of the discovery scope. The device has been discovered through another IP address that is within the discovery scope. A managed status of 3 is usually given to interfaces, rather than chassis. This value is set by the PopulateDNCIM_ManagedStatus.stch stitcher.
Note: Unmanaged entities do not suppress other events in RCA. The ncp_poller process does not poll unmanaged entities. Events on unmanaged entities have the field NmosManagedStatus set in the alerts.status field in the ObjectServer.
PopulateDNCIM_MPLSTE Top-level MPLS TE stitcher that calls the other MPLS TE stitchers in order. This stitcher is like the CreateMPLSTE stitcher that does the equivalent work on the scratchTopology database.
PopulateDNCIM_MPLSTEPipeHop Builds a single MPLS TE pipe segment as part of an MPLS TE tunnel pipe. This stitcher is like the CreateMPLSTEPipeHop that does the equivalent work on the scratchTopology database.
PopulateDNCIM_MPLSTEResources Builds the MPLS TE Resource objects. This stitcher is like the CreateMPLSTEResources stitcher that does the equivalent work on the scratchTopology database.
PopulateDNCIM_MPLSTEServices Builds the MPLS TE Service objects. This stitcher is like the CreateMPLSTEServices stitcher that does the equivalent work on the scratchTopology database.
PopulateDNCIM_MPLSTETunnelPipe Builds a network pipe object for an MPLS TE tunnel. This stitcher is like the CreateMPLSTETunnelPipe stitcher that does the equivalent work on the scratchTopology database.
PopulateDNCIM_MPLSTETunnels Builds the MPLS TE tunnels and LSP objects. This stitcher is like the CreateMPLSTETunnels stitcher that does the equivalent work on the scratchTopology database.
PopulateDNCIM_MXGroupCollection Populates the Juniper MX group collection object.
PopulateDNCIM_NseEndPt Populates an NSE end point entity within the topology model to aid in RAN network RCA management.
PopulateDNCIM_OSPFArea Infers the existence and creates the ospfArea and ospfRoutingDomain objects. This stitcher replaces functionality in the deprecated CreateOSPFAreas and CreateOSPFRoutingDomains stitchers.
PopulateDNCIM_OSPFEndPt Infers the existence and creates the ospfEndPoint objects. This stitcher replaces functionality in the deprecated CreateOSPFProtocolEndPoints stitchers.
PopulateDNCIM_OSPFLinks Populates the connects table with OSPF links. This stitcher replaces functionality in the deprecated CreateOSPFPointToPointAdjacencies stitchers.
PopulateDNCIM_OSPFLSANodes Builds the OSPF LSA nodes within the network as well as their connections.
PopulateDNCIM_OSPFService Infers the existence and creates the ospfService and ospfNetworkLSA objects. This stitcher replaces functionality in the deprecated CreateOSPFServices and CreateOSPFNetworkLSAPseudoNodes stitchers.
PopulateDNCIM_OSPF Calls the appropriate stitchers to populate the OSPF objects.
PopulateDNCIM_PIM Manages the population of DNCIM with PIM data.
PopulateDNCIM_PIMService Creates Multicast PIM Service entities and populates the pimService table.
PopulateDNCIM_PIMEndPt This stitcher creates PIM End Point entities and populates the pimEndPoint table.
PopulateDNCIM_PIMTopology Creates the PIM Topology links.
PopulateDNCIM_PIMNetworkCollection Creates the PIM Network entity, which collects all PIM routers. It also updates the PIM service display label to indicate the role of the service.
PopulateDNCIM_PipeComposition Builds and populates the pipeComposition entry for a given relationship.
PopulateDNCIM_ProbeCollection

V4.2 FixPack 3: Creates hierarchical probe collections for use in network views.

PopulateDNCIM_ProbeEndPt

V4.2 FixPack 3: Creates probe end points representing the source or target. Defines the probe service to depend on them, and the probe entity collect them.

PopulateDNCIM_Probes

V4.2 FixPack 3: Creates probe entities representing a network performance probe instance, and contains them beneath the appropriate probe service.

PopulateDNCIM_ProbeService

V4.2 FixPack 3: Creates probe service entities that represent the network probe technology that is supported on the device, and hosts it on the chassis.

PopulateDNCIM_ProbeTopology

V4.2 FixPack 3: Creates links based on probe source or target data, and assigns them to the probe topology.

PopulateDNCIM_ProtocolEndPt Populates the DNCIM protocolEndPoint table for a single relationship.
PopulateDNCIMProtocolEndPts Populates the protocolEndPoint table for the topology.
PopulateDNCIM_RanChassis Populates the DNCIM tables that extend chassis entities with radio area network (RAN) data. The following items are all modelled as chassis entities:
  • RAN base station (containing transceivers)
  • RAN base station controller
  • RAN packet control unit
  • RAN radio network controller
  • RAN Node B (containing transceivers and local cells)
  • RAN service GPRS support node
  • RAN gateway GPRS support node
  • RAN mobile switching center server
  • RAN mobile switching center
  • RAN media gateway
PopulateDNCIM_RanCollection Takes RAN area data, defines logical collections from it, and adds devices and cells to the created collections.
PopulateDNCIM_RanContainedElements Populates DNCIM tables to handle RAN based on the following considerations:
  • 2G RAN base stations and 3G Node B chassis can contain transceivers.
  • The transceivers can, in turn, host RAN sectors.
  • Node B chassis can additionally contain Node B Local Cells.
PopulateDNCIM_RediscoveredEntities Populates the rediscovered entities table which is used to keep track of partial discovery.
PopulateDNCIM_SLA

V4.2 FixPack 3: Processes SLA-related data for network performance probes.

PopulateDNCIM_SubIfaceStatus Sets the sub-interfaces to unmanaged state if the m_UnmanagedSubInts option is enable in disco.config and the parent interfaces were set to unmanaged by PopulateDNCIM_ManagedStatus.stch. The stitcher runs recursively to find all the sub-interfaces.
PopulateDNCIMSubnetAndCollects Models the subnet objects within DNCIM and creates the collects relationship between the subnet and the interfaces on those subnets.
PopulateDNCIMTopologies Builds the topology model objects within DNCIM with which the presence of a connection within a specific topology is modelled.
PopulateDNCIM_VlanCollections Creates VLAN connections and creates VLAN collection entities. Called by the InferDNCIMObjects stitcher.
PopulateDNCIM_VTPEdges Augments VTP domain entities with edge devices connected to VTP entities. This stitcher replaces functionality in the deprecated AddVTPEdges stitcher.
PopulateDNCIM_VTP Populates the DNCIM vtpDomain table with inferred VTP entities. This stitcher replaces functionality in the deprecated AddVTPCollections.
PopulateDNCIM_WLAN This stitcher builds the WLAN objects inferred from the topology.
PopulateDNCIM_WLAN80211SpecCollection This stitcher creates or updates WLAN spec collections.
PopulateDNCIM_WLANAccessPoint This stitcher populates WLAN Access Points from the discovery engine. The data in the wlanAccessPoint table supplements the chassis data.
PopulateDNCIM_WLANChannelCollection This stitcher creates or updates WLAN channel collections.
PopulateDNCIM_WLANCollections This stitcher identifies the entities of interest to various WLAN collections and invokes the stitchers to create or update them.
PopulateDNCIM_WLANServices This stitcher populates WLAN services from the discovery engine.
PopulateDNCIM_WLANSSIDCollection This stitcher creates or updates SSID WLAN collections.
PrepareDNCIMForRediscovery Sets up a temporary domain if necessary, retrieves the domain's ID, and copies the partially rediscovered entities into the temporary domain to make them ready for processing.
RefreshDNCIM Clears out the DNCIM tables before repopulating the tables.
RemovePendingDomainRelationships Removes all relationships involving a rediscovered device. The relationships are then recreated by the processing stitchers where the relationships are still present at the time of the rediscovery.
RetrieveDisplayLabel For a supplied record, retrieves the display label to use in the entityData table.
RetrieveDNCIMEnumeration For a given group and key, returns the DNCIM enumeration string.
RetrieveDNCIMMapping Retrieves the mapping value for gven mappingGroup and mappingKey values.
RetrieveDNCIMVendorFromObjectId Retrieves the vendor value for a given sysObjectId value.
RetrieveDomainId For a given domain, retrieves the domain ID.
RetrieveEntityId For a given name and domain ID, retrieves the entity ID. If the ID does not exist in the DNCIM entityName cache, then the stitcher calls the RetrieveNCIMEntityId stitcher to retrieve the entity ID from NCIM and create the same entity ID in the DNCIM entityName cache. This ensures that NCIM and DNCIM entity IDs are consistent where possible.

If the RetrieveNCIMEntityId stitcher retrieves an entity ID from NCIM but that entityId is already allocated within dNCIM, then a new entity ID is created in dNCIM and a discovery event is generated with information on the mismatch between the entity IDs in dCNIM and NCIM.

If the RetrieveNCIMEntityId fails to communicate with the NCIM database, then it hands back control to the RetrieveEntityId stitcher. The RetrieveEntityId then generates a new entity ID in the dNCIM entityName cache and generates a discovery event indicating that the NCIM database is down.

RetrieveNCIMEntityId Called by the RetrieveEntityId stitcher to requests an entity ID from the NCIM database if it has not been possible to retrieve the entity ID from the DNCIM entityName cache. If the ID does not exist in NCIM, then the stitcher creates the entity ID in the NCIM database and also creates the same entity ID in the DNCIM entityName cache. This ensures that NCIM and DNCIM entity IDs are consistent where possible.

If the RetrieveNCIMEntityId stitcher retrieves an entity ID from NCIM but that entityId is already allocated within dNCIM, then a new entity ID is created in dNCIM and a discovery event is generated with information on the mismatch between the entity IDs in dCNIM and NCIM.

If the RetrieveNCIMEntityId fails to communicate with the NCIM database, then it hands back control to the RetrieveEntityId stitcher. The RetrieveEntityId then generates a new entity ID in the dNCIM entityName cache and generates a discovery event indicating that the NCIM database is down.

SendDNCIMChangesToModel Sends topology changes to ncp_model. The stitcher records the time the topology is sent. Called by PopulateDNCIM.stch.
UnconnectedToSubnet Finds main node entities which are not connected to anything and places them within the appropriate subnet collection.