Abstract:
A method of providing network management information about a multiple-layer network communications interface sub-stack to a network management client includes establishing a standardized network management representation by use of an interface manager and a real driver and a pseudo driver, receiving a request from the network management client for network management information about an expected sub-layer interface, and in response to the request obtaining, by the pseudo driver, data maintained by the real driver corresponding to the requested network management information, and returning the data obtained by the pseudo driver to the network management client in satisfaction of the request.

Description:
RELATED APPLICATIONS 
       [0001]    This application is a continuation of U.S. patent application Ser. No. 12/911,483, filed Oct. 25, 2010, which is a continuation of U.S. patent application Ser. No. 11/388,348, filed Mar. 24, 2006, the contents of which are incorporated by reference herein in their entirety. 
     
    
     BACKGROUND 
       [0002]    The present invention is related to the field of data communications networks, and more particularly to data communications network management. 
         [0003]    Network management encompasses a variety of activities with respect to communications networks, such as configuring, updating, monitoring and diagnosing network communications devices deployed within a network. In most instances the network communications devices, which are also referred to as “managed devices” herein, include hardware and software that supports these network management activities as well as an interface to a remote network management system of the managed network. While several such network management interfaces have been and continue to be used, one commonly used interface employs an open network management protocol known as the Simple Network Management Protocol (SNMP) along with a representation of network management data that conforms to an open specification known as the Structure of Management Information or SMI. Network management applications are deployed on a centralized network management system and engage in communications with the managed devices using the SNMP and SMI standards to carry out their network management tasks. 
         [0004]    In particular, the SMI standards describe rules for writing abstract data collections referred to as Management Information Bases or MIBs. MIBs are specifications containing definitions of management information so that networked systems can be remotely monitored, configured, and controlled. 
         [0005]    Although there are a wide variety of managed objects, for present purposes the focus is primarily on managed objects known as “interfaces”. In the context of data communications generally, “interface” refers to a logical relationship between two entities that operate at different hierarchical layers of a layered communications scheme. Typically, an “interface” refers to a communication layer beneath the network layer in the 7-layer OSI model. In the case of a point-to-point protocol (PPP) session being carried by an Ethernet VLAN, for example, involves a virtual interface layered atop a physical Ethernet interface. 
         [0006]    In the context of SNMP and SMI, there is much content and structure pertaining to interfaces that are defined in a managed device. For example, a typical MIB includes an interfaces table that enumerates all the interfaces in a managed device and includes a variety of information about each of them, including such things as an interface type, a description, a speed, an address, administrative and operational status, counts of packets transferred and errors, etc. Additionally, the manner in which interfaces are identified in a MIB is itself the subject of standardization—there is an official list of interface “types” that have been assigned by the Internet Assigned Names Authority (IANA), and network management applications operate in part based on the use of standard interface types in MIBs. 
         [0007]    Another pertinent type of managed object is an interface “stack”, which is a grouping of particular interfaces that together provide an interface between two entities that are separated in the hierarchical communications scheme. Continuing with the above example of a PPP session over an Ethernet VLAN, the virtual and physical interfaces are layered or “stacked” in that order. 
         [0008]    It has been known to use a single data structure, referred to herein as an Interface Descriptor Block or IDB, to maintain various information pertaining to an “interface” as might be defined in a custom manner within a network communications device. Of particular pertinence here is the use of a single IDB by a software driver used in connection with an “interface” provided by a hardware interface module. A particular example might be a so-called “line card” for an optical communications link such as an Optical Carrier (OC)-x link, where x may have the value 8, 12, 48, etc. An internal interface provided by such a line card might be a single virtual tributary (VT) of a Synchronous Optical Network (SONET) connection, for example, and thus the “interface” may actually be a multi-layered interface including functionality at several hierarchical layers including a SONET Path layer and a SONET physical layer. 
       SUMMARY 
       [0009]    Standards defining MIB modules for specific network interfaces typically describe how a particular type of network interface should relate to others in terms of interface stacking. As an example, one standard type of interface is a packet-over-SONET (‘POS’) interface, which is a packet-type of interface. It is expected from a standards perspective that a POS interface is part of an interface stack that also includes a SONET Path interface as well as a SONET physical-layer (line) interface. A network management application that is designed based on such an expectation may include corresponding internal dependencies. For example, if the network management application is tracing a communications path from end to end and collecting information about each interface along the way, upon discovering a POS interface it then looks for the underlying SONET Path and SONET physical layer interfaces that it expects. However, in the case that a managed device presents a multi-layered interface as a single managed object such as described above, the network management application will not be able to locate any of the underlying interfaces within the MIB for the managed device, because they are not present. The managed device is presenting the interface in a non-standard way to the network management application, and thus the network management application may not function correctly or provide usable results because its assumptions about the presentation of the network management information are not satisfied. 
         [0010]    In accordance with the present invention, methods and apparatus are disclosed by which network management information can be presented in a standard way to a network management system by derivation from a non-standard representation maintained by a managed device, such as a single driver-maintained IDB for a multi-layered interface. The standards-related expectations of network management systems can be satisfied without requiring that software drivers for hardware interface modules themselves comply with the applicable network management standards. Thus, the disclosed techniques can be used in conjunction with existing drivers in a backwards-compatible manner, and can also be used even with new drivers to free the driver designer of the need to understand and comply with the pertinent network management standards. 
         [0011]    According to a disclosed method, network management information about a multiple-layer network communications interface sub-stack is provided to a network management client. The network communications interface sub-stack has a non-standardized network management representation which omits network management information about an expected sub-layer interface of the network communications interface sub-stack. 
         [0012]    The method includes establishing a standardized network management representation of the network communications interface sub-stack by use of an interface manager in conjunction a real driver and a pseudo driver. The real driver is associated with the network communications interface sub-stack as a whole, and the pseudo driver is associated with the expected sub-layer interface of the network communications interface sub-stack. The standardized network management representation includes the network management information about the expected sub-layer interface. 
         [0013]    The interface manager is operative to receive a request from the network management client for the network management information about the expected sub-layer interface, and in response the request is passed from the interface manager to the pseudo driver. The pseudo driver obtains data maintained by the real driver corresponding to the requested network management information, and the data obtained by the pseudo driver is returned to the network management client in satisfaction of the request. 
         [0014]    In another aspect, the standardized network management representation of the network communications interface sub-stack may be established by determining, based on a signature indicating a layered structure of the network communications interface sub-stack, whether the expected sub-layer interface of the network communications interface sub-stack exists. If the expected sub-layer interface is determined not to exist, then the expected sub-layer interface is created and a network management information base is populated with a sub-layer interface entry including (1) respective instance and type identifiers of the expected sub-layer interface and (2) one or more operational attributes of the expected sub-layer interface. The value of each operational attribute identically mirrors the value of a corresponding operational attribute of the network communications interface sub-stack as reflected in the non-standardized network management representation. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]    The foregoing and other objects, features and advantages of the invention will be apparent from the following description of particular embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. 
           [0016]      FIG. 1  is a block diagram of a data communications network including a network management system (NMS) and managed network devices; 
           [0017]      FIG. 2  is a block diagram depicting an organization of network management functions within a managed network device as known in the art; 
           [0018]      FIG. 3  (consisting of  FIGS. 3A ,  3 B and  3 C) depicts various examples of multi-layered or “sub-stack” types of communications interfaces existing in a managed network device; 
           [0019]      FIG. 4  is a block diagram depicting an organization of network management functions within a managed network device in accordance with the present invention; 
           [0020]      FIG. 5  is a diagram depicting a multi-layered interface including explicitly defined sub-layer interfaces using the organization of network management functions of  FIG. 4 ; 
           [0021]      FIG. 6  is a flow diagram showing the overall operation of the organization of network management functions of  FIG. 5 ; and 
           [0022]      FIG. 7  is a diagram illustrating part of the operation of  FIG. 6  having an iterative, reentrant characteristic. 
       
    
    
     DETAILED DESCRIPTION 
       [0023]      FIG. 1  is a simplified depiction of a communications network from a network management perspective. A network management system (NMS)  10  is communicatively coupled to a plurality of managed network (NW) devices  12 , which may include switches, routers, bridges, modems, etc. Each NW device  12  includes a respective management information base (MIB)  14  containing a variety of configuration and operational information about the respective NW device  12 . The MIB  14  for a particular NW device  12  is not itself a physical data structure but rather a formalized, structured representation of data that may be distributed throughout the NW device  12 . The NMS  10  can control and monitor the configuration and operation of each NW device  12  by writing data to and reading data from the corresponding MIB  14 . In particular, the NMS  10  controls and monitors a variety of configuration and operational information concerning communications interfaces that exist within each NW device  12 , as described in more detail below.  FIG. 1  also shows that a local console  15  may be connected directly to a NW device  12  for purposes of local management. Because such consoles  15  often employ command-line interfaces (CLIs) rather than more elaborate graphical user interfaces, a console  15  is sometimes referred to as the “CLI” from the perspective of the NW device  12 . 
         [0024]      FIG. 2  shows an arrangement of pertinent software entities within a NW device  12  as known in the art. Much of the data that is represented within a MIB  14 , specifically interface-related data, is actually maintained by drivers  16 ′ that execute within a NW device  12  to control the operation of the hardware interface modules for the physical communications ports of the NW device  12 . Such modules are referred to as “physical layer interface modules” or “PLIMs” herein. A PLIM generally performs low-level, high-speed functions necessary to move data between a communications link (such as an Optical Carrier-12 (OC-12) link) and one or more high-speed data channels on a backplane or midplane of the NW device  12 . The drivers  16 ′ are part of an operating system executing within a NW device  12  to control its overall operation, including its interaction with the NMS  10 . An example of such an operating system is the Internetwork Operating System (IOS) sold by Cisco Systems, Inc. The drivers  16 ′ may maintain interface-related information in the form of interface description blocks (IDBs)  18 ′, which are described in more detail below. 
         [0025]    Also shown in  FIG. 2  are a set of management information clients  20 ′ that require access to the network-management-related information maintained by the drivers  16 ′. Examples of clients  20 ′ include one or more MIB systems (MIB SYS)  22 ′, one or more event receivers (EVENT RCVR)  24 ′ and the interface to the console  15  (shown as CLI  26 ′). In operation, a client such as a MIB SYS  22 ′ communicates with the drivers  16 ′ to access the underlying data elements that are represented by the MIB variables exposed to the NMS  10 . Thus, if the NMS  10  performs an SNMP GET of a MIB variable, the MIB SYS  22 ′ of the NW device  14  responds by interrogating the appropriate driver  16 ′ and/or IDB  18 ′ to read the actual data value represented by the MIB variable, such as a packet counter, interface description, etc. 
         [0026]    In the prior-art configuration depicted in  FIG. 2 , the clients  20 ′ are essentially in direct communication with the drivers  16 ′ for purposes of accessing network management information including the information maintained within the IDBs  18 ′. This organization is problematic from several perspectives. Development of new drivers  16 ′ and/or clients  20 ′ may be unduly complicated, for example because the burden of managing MIB data falls too heavily on driver developers who are not familiar with the detailed operation of network management. Also, existing clients  20 ′ and drivers  16 ′ may not adequately support functional and compliance testing of the MIBs  14  that they support. Existing software has also come to include numerous dependencies on particular types of NW devices  12  and/or particular types of PLIMs, making it increasingly difficult to migrate to new MIB definitions as well as to diagnose operational problems when existing MIBs are in use. These problems can manifest themselves in the form of conformance and consistency issues that negatively affect the development and deployment of network management applications and that can increase the cost to a manufacturer of product support for the NW devices  12 . The presently disclosed methods and apparatus address these problems by introducing an explicit interface manager as described below which provides for normalized access to interface-related network management data. The interface manager can be implemented as a common part and interface-specific extensions for implementation efficiency, and can have specific support for “legacy” drivers  16 ′ that have not been designed or adapted for use with the interface manager. 
         [0027]    The interfaces-related data in the MIB  14  resides in several particular sub-structures, all of which are part of an “interfaces group” defined in the MIB standards, such as Request for Comments (RFC)2863. An “interfaces table” represents all the interfaces of a NW device  14  as a sequence of “interface entries”, each of which in turn is a collection of a variety of data elements for a particular interface. These data elements include things such as an index (unique identifier), description, type, address, status, operational variables, etc. It should be noted that interface types are subject to textual conventions defined by an interface type MIB published by the Internet Assigned Names Authority (IANA). The interfaces group also includes an “interface stack table” which describes the interface stacks within the scope of managed entity such as a NW device  14 . Each conceptual row in this table describes a connection in a graph representing an interface stack. Each table entry identifies a connection by a pair of interface indexes, one representing a “superior” (higher level) interface and the other representing a “subordinate” (lower-level) interface, in the order specified. Thus, a connection flows from superior to subordinate interface. The interface stack table can be used by network management software to identify the stack relationships of interfaces, which can be useful for certain types of operations, including path-tracing and isolation during the process of diagnosing operational problems. There is also an “inverted” interface stack table which describes the same interface-stack graph using entries that have the interface indexes lexically reversed, making it easier for network management software to traverse the graph from bottom to top when necessary. 
         [0028]    Historically, driver objects representing interfaces often do not cleanly map to the notion of an interface as defined by the interfaces MIB and interface-specific MIBs. Consider an interface on an OC-12 Packet-Over-SONET (POS) PLIM configured to use a High-Level Data Link Control (HDLC) type of encapsulation. An interface driver for such a POS PLIM might maintain a single IDB  18 ′ containing information at the encapsulated packet level, the SONET Path level, and the SONET physical layer. A standardized interface type that might be selected for this OC- 12  POS interface would necessarily be incomplete and/or misleading, because it would not capture the non-standard multiple-layer structure. This contrasts with the expectations of the interfaces MIB and a specific SONET MIB known as SONET-MIB, which together mandate an interface stack having three distinct MIB-identified interfaces, namely a topmost POS interface, a next-layer SONET Path interface, and a bottom-most SONET physical layer interface. 
         [0029]    It can be generalized that driver objects representing such non-standard, multi-layered interfaces map to interface “sub-stacks” rather than to a single interface. In the above example, the IDB  18 ′ representing the OC-12 POS interface can be mapped to an interface sub-stack including distinct POS, SONET Path, and SONET physical-layer interfaces, where each of these is a standardized IANA interface type.  FIGS. 3A ,  3 B and  3 C illustrate several examples of such mappings.  FIG. 3A  shows the structure of an interface object  28  that has the non-standard type POS-FRAME-RELAY. This object might be presented, for example, by an interface driver for a port of an OC-12 POS PLIM that employs frame relay encapsulation. As shown, the POS-FRAME-RELAY object  28  actually includes functionality at three different layers, including a frame relay encapsulation layer  30 , a SONET path transport layer (SONET PATH)  32 , and a SONET line or physical layer (SONET)  34 .  FIG. 3B  illustrates an interface object  36  that may be created for a T1 (DS1) PLIM that provides frame relay encapsulation, and thus may be identified as the non-standard type DS1-FRAME-RELAY.  FIG. 3C  shows an interface object  38  that may represent the use of frame relay, DS1 and SONET virtual tributaries (VTs) of a channelized OC-12 PLIM and having the non-standard type SERIAL-FRAME-RELAY. 
         [0030]    In all three cases of  FIG. 3 , the topmost layer is FRAME RELAY and thus each interface object  28 ,  36  and  38  might be represented in a prior-art network management environment as being of the standardized type FRAME RELAY. Such a common identification of very different multi-layered interfaces can present problems for network management applications that attempt to operate according to published standards. 
         [0031]    It will be noted in the foregoing description that a distinction is drawn between the type of each multi-layered interface (such as the POS FRAME RELAY type of interface object  28 ) and the type of each sub-layer (e.g., SONET Path layer  32 ), which is standardized. In accordance with the presently disclosed technique, the non-standard terms POS FRAME RELAY, DS1-FRAME-RELAY, and SERIAL-FRAME-RELAY are taken to be “signatures” of the respective multi-layered interface objects. These signatures are used as described below to create explicit representations of all the standard-type sub-layers. The resulting MIB representations of these interface objects are compliant with the relevant standards, so that the operational assumptions of network management applications are satisfied and the applications perform better. The use of interface signatures in this manner allows a network device to guarantee the representation of all standard required interfaces with respect to network management. 
         [0032]      FIG. 4  shows an improved organization of the functions/software pertaining to the management of interfaces in a managed system such as that of  FIG. 1 . An explicit interface manager  40  is interposed between a set of clients  20  and a set of drivers  42 . The drivers  42  are divided into two types referred to for convenience herein as “real” drivers  16  and “pseudo” drivers  44 . The real drivers  16  are similar to drivers  16 ′ of  FIG. 2 , i.e., they control the operation of real hardware and/or software interfaces that transmit and receive data communications packets. The real drivers  16  include corresponding IDBs  18  represented by associated “signatures” such as described above. The pseudo drivers  44  are used in the creation, destruction and use of pseudo interfaces that are used to provide a more standardized view of the NW devices  12  from a network management perspective, to avoid the type of problems described above with reference to  FIG. 2 . The actual implementation of any real driver  15  or pseudo driver  44  will generally depend on the particular operating system with which it operates. 
         [0033]    The interface manager  40  maintains an interface database  46  and acts as a common control point between the management clients  20  and the drivers  42 . It exposes a set of client services to the management clients  20  for the purpose of retrieving and modifying managed data associated with interfaces. It also exposes a set of driver services to the interface drivers  42  for the purpose of creating/destroying interfaces, retrieving managed data, validating and modifying configuration data, posting status, and signaling events and alarms. The interface manager  40  depends on the pseudo drivers  44  to manage sub-layer interfaces as described in more detail below. 
         [0034]    With respect to the interface manager  40 , any pseudo driver  44  behaves very much like any real driver  16 , with the exception that the interface(s) handled by each pseudo driver  44  do(es) not transmit or receive packets. One other potential distinction between the pseudo drivers  44  and the real drivers  16  is that the pseudo drivers  44  may interact with the interface manager  40  in a client-like manner as indicated by connection  48 . This operation is described in more detail below. 
         [0035]    The drivers  42  are all included within the operating system of the NW device  12  in a conventional fashion, e.g. as part of a bootstrapping process and/or in a “plug and play” fashion upon insertion of a PLIM. The interface types of the pseudo drivers  44  generally conform to published standards such as the above-mentioned IANA types (SONET, SONET Path, etc.). For reasons described below, the interface “signatures” used by each real driver  16  (e.g. POS driver  16 - 1 ) must generally be unique across a particular operating system implementation. 
         [0036]      FIG. 5  illustrates an exemplary outcome of the combined operations of the interface manager  40  and drivers  42  (including pseudo drivers  44 ) as described below. A multiple-layer interface object  28  having a signature of POS-FRAME-RELAY, for example, is represented within a MIB  14  as three distinct, standard-type interfaces. The topmost interface  50  of type FRAME RELAY is maintained by a real driver  16  that actually implements all the packet-moving functionality of the entire POS-FRAME-RELAY object  28 . Also included are a SONET Path pseudo interface  52  and a SONET (physical layer) pseudo interface  54  that are utilized for network management purposes only. In particular, the pseudo interfaces  52  and  54  provide a standardized “sub-stack” representation of the multi-layered object  28  that is much more consistent with the needs and expectations of standard network management applications such as might be used in the network management system  10  ( FIG. 1 ). 
         [0037]      FIG. 6  illustrates the process by which network management information is made accessible and actually accessed using the organization shown in  FIG. 4 . In step  56 , the drivers  42  (including both the real drivers  16  and the pseudo drivers  44 ) register with the interface manager  40 . By this registration the interface manager  40  becomes aware of the existence and type of each driver  42  as well as how to communicate with it. In step  58 , a real driver  16  creates a multi-layered or sub-stack type of interface, such as the POS-FRAME-RELAY interface  28 , and invokes a “Create Interface” service of the interface manager  40 . These actions may occur, for example, when a boot process of the NW device  12  invokes a POS real driver  16  to create a static interface corresponding to its physical ports supported by the NW device  12 . Alternatively, the insertion of a PLIM may invoke the POS real driver  16  to create static interface(s) corresponding to physical port(s) supported by the PLIM. 
         [0038]    When invoking the Create Interface service of the interface manager  40 , a driver  42  provides the following information:
       Interface Handle—an opaque value uniquely identifying the interface being created. This value will typically be a reference to the driver object representing the interface.   Master Interface—the interface index of the interface functioning as the “master” of the interface being created. The concept of a master interface is described below.   Interface Signature—an opaque value uniquely identifying the type of multi-layered or sub-stack interface being created (e.g., POS-FRAME-RELAY).   Interface Name—a descriptive string assigned to the interface by the CLI  15  ( FIG. 1 ).   Interface Description—a string assigned to the interface by the system. The interface manager  40  requires this value to be globally unique and persistent across restarts.   Subordinate Interface—the interface index associated with the interface that is “subordinate” to the interface being created, i.e., beneath this interface in the sub-stack (if one exists).       
 
         [0045]    Note that it is assumed that drivers  42  create interface stacks in a bottom-up manner, i.e., they create lower-level interfaces first and then build up higher-level interfaces. 
         [0046]    In step  60  of  FIG. 6 , the interface manager  40  and the pseudo drivers  44  cooperate to create interface entries in the interface database  46  for the interface being created. These interface entries are available as MIB objects to the MIB clients  22 , and are also available to other types of clients  20 . In the case of a sub-stack type of interface, there will be interface entries for the top-level interface (e.g. FRAME RELAY  50  of  FIG. 5 ) and the sub-layer interfaces (e.g. SONET Path  52  and SONET  54 ) as necessary. The details of this cooperative operation are described below. 
         [0047]    In step  62 , a management client  20  requests a read or write of a MIB data element, for example in response to an SNMP GET or SET command issued by the NMS  10  of  FIG. 1 . The interface manager  40  responds by forwarding the request to the appropriate driver  42 . In step  64 , the driver  42  responds by satisfying the request. In the case of a real driver  16  which actually maintains the data underlying the MIB data element, it can either update the data (in the case of a write) or return the data to the interface manager  40  for forwarding on to the requesting client  20  (in the case of a read). The operation of a pseudo driver  44  involves a level of indirection as now described. 
         [0048]    As mentioned above, the sub-layer interfaces maintained by pseudo drivers  44  do not transmit or receive packets. Thus, the sub-layer interfaces by their nature are not represented in exactly the same way as are real interfaces. The representation of sub-layer interfaces relies in part on the notion of a “master” interface, which is used by a pseudo driver  44  to derive a representation of a sub-layer interface. As an example, a pseudo driver  44  can equate the operational status of a sub-layer SONET path to that of the master POS interface. More specifically, the pseudo driver  44  may derive the SONET path&#39;s operational status from the driver object (e.g., a IDB  18 ) representing the interface sub-stack of which the sub-layer interface is a part. 
         [0049]    In some cases, the master interface may be the top-most interface in the interface sub-stack containing the sub-layer interface. This would be the case in the examples of  FIG. 3 . In other cases, the master interface may be the subordinate interface to the interface sub-stack. For example, it may be desirable for the pseudo driver  44  to equate the operational status of a SONET path to that of the underlying SONET physical layer interface. More specifically, the pseudo driver derives the SONET path&#39;s operational status from the driver object (IDB  18 ) representing the SONET physical layer interface. There may be a variety of approaches that a pseudo driver  44  might use to derive a representation for a pseudo interface. As a general matter, the interface index for a pseudo interface should not be in any way dependent on a master interface; interface indexes should be allocated and managed for pseudo interfaces in the same way as for real interfaces. The interface type will be that of the sub-layer, e.g. SONET Path. Data elements such as the interface description and operational status might simply be equal to the corresponding values of the master interface, or in appropriate cases a null value. 
         [0050]    The interface manager  40  can query the pseudo driver  44  for managed data relating to a pseudo interface through an Interface Data Get function that is registered by the pseudo driver  44 . In supporting this function, the pseudo driver  44  may need to derive certain managed data from elsewhere, as discussed above, and in such cases requires access to managed data maintained by the associated master interface. A pseudo driver  44  can obtain access to this managed data in one of two ways: 
         [0051]    1. Client Services of the Interface Manager  40 —This is the connection  48  in  FIG. 4  in which the pseudo drivers  44  act as clients of the interface manager  40 . That is, a pseudo drive  44  can request access to data maintained by a real driver  16  in the same manner as the clients  20 . These services might be the most straightforward to employ. However, they add to the overhead of the interface manager  40  and may present a performance issue. 
         [0052]    2. Driver Callbacks—The pseudo drivers  44  may have access to “callback” functions of the real drivers  16  that provide a direct method for accessing managed data relating to the master interface. To utilize such a technique, a pseudo driver  44  must identify the real driver  16  maintaining the master interface and the signature of the master. Second, the pseudo driver  44  needs to determine the appropriate callbacks. Finally, to use these callbacks, the pseudo driver  44  must determine the interface handle of the master interface. All of these actions can be supported by providing appropriate services within the system. 
         [0053]      FIG. 7  illustrates the detailed operation of steps  58  and  60  of  FIG. 6  for a specific example, namely the layered POS-FRAME-RELAY interface  28  of  FIG. 5 . At the top are shown the interface manager  40  as well as three drivers  42 : a POS real driver  16 - 1 , a SONET Path pseudo driver  44 - 1 , and a SONET pseudo driver  44 - 2 . Time progresses in the vertical downward direction, and thus the operation of each driver  16 - 1 ,  44 - 1 ,  44 - 2  and the interface manager  40  is shown in a corresponding vertically oriented operation box  66 ,  68 ,  70 , and  72 . The operation box  72  of the interface manager  40  includes sub-boxes  72 - 1  and  72 - 2  for reasons described below. 
         [0054]    Interface creation starts with the POS real driver  16 - 1 , as described above with reference to step  58  of  FIG. 6 . After the POS driver  16 - 1  has created or initialized the IDB  18  for a POS-FRAME-RELAY interface, the following operations ensue: 
         [0055]    1. The POS interface driver  16 - 1  invokes a Create Interface service of the interface manager  40  (shown at  74 ). 
         [0056]    2. The interface manager  40  creates an interface entry  76  in the MIB interfaces table with a standardized IANA type of ‘pos’. This entry corresponds to the frame relay interface  50  of  FIG. 5 . As part of this operation, the interface manager  40  allocates an interface index to the new interface entry. 
         [0057]    3. The interface manager 40 then determines whether it is necessary to create any sub-layer interfaces to provide the standardized MIB representation that may be needed by the clients  20 . The details of this determination are described below. If no sub-layer interface is needed, then the interface manager  40  merely returns the value of the interface index to the requestor for its future use in accessing the interface entry. If one or more sub-layer interfaces is needed, then the interface manager  40  initiates the creation of such sub-layer interfaces. In the example of  FIG. 7 , sub-layer interfaces for the SONET Path and the SONET physical layer (SONET) are required, and thus the interface manager  40  proceeds to have them created. 
         [0058]    4. In the example of  FIG. 7 , the interface manager  40  first invokes the SONET Path sub-layer interface pseudo driver  44 - 1  (operation box  68 ) to create a sub-layer pseudo interface to represent the SONET Path underlying the frame relay interface  50 . This operation is indicated at  78 . 
         [0059]    5. The SONET path sub-layer interface pseudo driver  44 - 1  creates a sub-layer pseudo interface, which as mentioned above has all the attributes of a real interface except that it does not handle packet traffic. Part of the creation of the sub-layer pseudo interface is to establish how it will be represented to the MIB clients  20 , as discussed above with reference to  FIG. 6 . Then as shown at  80 , the SONET Path pseudo driver  44 - 1  invokes the Create Interface service of the interface manager  40  in order to register this new interface with the network management system. Note that this action represents a reentrance into the interface manager  40 --the Create Interface service of the interface manager  40  is being invoked again before the first invocation  74  has completed. Thus, the Create Interface service of the interface manager  40  is preferably implemented in a reentrant manner to support the iterative creation of sub-layer pseudo interfaces. 
         [0060]    6. This first reentrance into the interface manager  40  is indicated by operation box  72 - 1 . 
         [0061]    As part of this operation, the interface manager  40  creates an interface entry  82  in the MIB interfaces table with a standardized IANA type of ‘sonetPath’. This entry corresponds to the SONET Path sub-layer interface  52  of  FIG. 5 . 
         [0062]    7. The above steps  4 - 6  are now repeated for the SONET sub-layer interface  54  of  FIG. 5 . The operations are indicated at  84  and  86  and the resulting interface entry at  88 . It will be appreciated that the operation box  72 - 2  represents a second reentrance into the interface manager  40  and the deepest level of nesting or iteration of the overall process. 
         [0063]    8. As generally indicated at  90 , the interface manager  40  and the various drivers  16 - 1 ,  44 - 1  and  44 - 2  then “unwind” from the nesting. Specifically, at  92  the interface manager  40  passes an interface index for the SONET interface entry  88  to the SONET pseudo driver  44 - 2  for its future use in accessing the interface entry  88 . At this point the operations of the interface manager  40  represented by operation box  72 - 2  are complete. At step  94  the SONET pseudo driver  44 - 2  provides an indication to the interface manager  40  that the SONET sub-layer interface  54  has been created. This indication is handled in the context of operation box  72 - 1  of the interface manager  40 . Specifically, the interface manager  40  now creates a stack relationship between the SONET interface entry  88  and the SONET Path interface entry  82 , by making an appropriate addition to the interfaces stack table of the MIB  14 . At  96  and  98 , operations are performed between the interface manager  40  and the SONET Path pseudo driver  44 - 1  that are analogous to the operations  92  and  94  respectively, and after which the interface manager  40  makes an analogous addition to the interfaces stack table to create a stack relationship between the SONET Path interface entry  82  and the POS interface entry  76 . At  100  the interface manager  40  passes the interface index for the POS interface entry  76  to the POS real driver  16 - 1  for its future use in accessing the interface entry  76 , and the entire interface creation process is complete. 
         [0064]    As mentioned above, part of the operation of the Create Interface service of the interface manager  40  is to determine whether there is a sub-layer interface that should be created. It does this based on the signature of the interface being created as well as the type of subordinate interface as reported by the requesting driver. If the subordinate interface is of an appropriate type based on the interface signature, then no sub-layer interface is needed. But if the subordinate interface is an inappropriate type, indicating that a required sub-layer is missing, then the interface manager  40  takes steps to have the missing sub-layer interface created. It should be noted that the driver  42  may use a “null” value to indicate that there is no subordinate interface. Whether the subordinate interface is “appropriate” is dependent on the interface signature or type. Recall that a POS-FRAME-RELAY sub-stack, for example, should include frame relay, SONET path, and SONET sub-layers. If a driver  42  creates a POS-FRAME-RELAY interface and reports a null subordinate interface, this indicates to the interface manager  40  that the SONET path and SONET sub-layer interfaces are missing. When interface sub-stacks have been properly formed as described herein, only the lowest-level pseudo interface (e.g., SONET) properly has a null value for its subordinate interface. In the process of  FIG. 7 , the invocation  74  by the POS driver  16 - 1  will have an inappropriate null value for the subordinate interface, which indicates to the interface manager that there are missing sub-layers. In contrast, the invocation  86  by the SONET pseudo driver  44 - 2  has an appropriate null value—the SONET sub-layer  54  is a physical layer and thus should have no subordinate interfaces—and thus the interface manager  40  can conclude in response that no additional sub-layers are needed. 
         [0065]    As mentioned above, the interface manager  40  may be implemented as a common part and a plurality of “extensions”, where the common part supports generic operations (such as providing access to packet counters) and the extensions support operations that are more specific to particular interface types. In such a case, there is necessarily a software interface (application programming interface or API) between the common part and the extensions for purposes of signaling the forwarding of requests to the extensions and the return of results by the extensions. In particular, the common part may be the primary actor responding to a Create Interface request of a driver  42  for purposes of registering a newly created interface and determining whether any sub-layer interfaces are to be created. In the case that a sub-layer interface is needed, then the common part would signal the appropriate extension, which would in turn invoke the appropriate pseudo driver. The subsequent reentrance into the interface manager  40  by the pseudo driver would be via the extension in the first instance, which would then signal back up to the common part. 
         [0066]    While this invention has been particularly shown and described with references to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.