Patent Document

CROSS REFERENCE TO RELATED APPLICATION 
     This is a continuation application of prior application Ser. No. 08/603,061 filed on Feb. 20, 1996, now U.S. Pat. No. 5,819,042 on Oct. 6, 1998, the disclosure of which is incorporated herein by reference. 
     This application is related to U.S. patent application Ser. No. 08/603,062, now U.S. Pat. No. 5,838,907 issued Nov. 17, 1998 filed on even date herewith, entitled “CONFIGURATION MANAGER FOR NETWORK DEVICES AND AN ASSOCIATED METHOD FOR PROVIDING CONFIGURATION INFORMATION THERETO”, assigned to the Assignee of the present application and hereby. incorporated by reference as if reproduced in its entirety. 
    
    
     A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This application generally relates to computer networks and internetworks and, more particularly, to a software tool which configures devices to be included in a computer network or internetwork. 
     2. Description of Related Art 
     Generally speaking, a network is a collection of user devices, generally classified as data terminal equipment (or “DTE”), interconnected for bi-directional exchanges of information. For example, visual displays, computer systems and office workstations are all electronic devices classified as DTEs. A local area network (or “LAN”) is an interconnection of plural computer systems distributed around a single site. A wide area network (or “WAN”) is an interconnection of plural computer systems located at different sites. Traditionally, computer systems have used modems to connect to a WAN via the public switched telephone network (or “PSTN”) or public switched data network (or “PSDN”). In recent years, WANs which utilize integrated services digital networks (or “ISDNs”), which enable data to be transmitted without modems, to interconnect computer systems have become more common. Finally, an internetwork is a collection of networks interconnected by a WAN. 
     Devices are initially unconfigured when delivered by the factory. Configuration is a process during which the hardware and software of an unconfigured device is organized and interconnected so that the configured device will be able to perform the tasks desired thereof. As is well appreciated in the art, the wide variety of devices which may be installed on a network, as well as the variety of networks which may be connected to form an internetwork, makes the configuration of networks and internetworks a difficult task which requires highly detailed technical knowledge of the various networks, the protocols used to link with the various networks and the devices to be installed thereon. Thus, configuration of network devices is often one of the most daunting tasks facing a network administrator, particularly for those in charge of small and medium size networks have between 100 and 1,000 nodes. While such networks are relatively complex, their administrators often have only minimal training in internetworking administration and may be unfamiliar with routing technology and/or WAN technology. 
     For example, data link protocols are used to control access to networks. A LAN typically uses the logical link control (or “LLC”) subclass of the high-level data link control (or “HDLC”) protocol as its data link protocol. However, an X.25-type packet-switching WAN uses link access procedure, balanced (or “LAPB”), a protocol based on HDLC, as its data link protocol. The data link protocol for an ISDN-type WAN, on the other hand, may either be a connection-orientated protocol known as frame switching or a connectionless protocol known as frame relay. 
     Thus, it can be readily seen from the foregoing that it would be desirable to simplify the task of configuring network devices. It is, therefore, the object of this invention to provide an apparatus and associated method for guiding a user through the complex task of configuring a network device. 
     SUMMARY OF THE INVENTION 
     In one embodiment, the present invention is of an apparatus and associated method, implemented on a computer system, for constructing a configuration file for a network device. The apparatus includes a configuration script stored in a memory subsystem of the computer system and a software module executable by a processor subsystem of the computer system. The configuration script contains a series of executable instructions for constructing a configuration file for a first specified type of network device. By executing the instructions contained in the configuration script, the software module may construct a configuration file suitable for upload to a network device of the first specified type for configuration such that the network device may be configured using the configuration file constructed by the software module. 
     In one aspect of this embodiment of the invention, the configuration script includes a first section which contains a series of configuration commands which generate requests for information such that information received by the software module in response to the requests for information is used to construct the configuration file. In another aspect of this embodiment of the invention, the configuration script includes a second section which contains a set of connection rules for connecting the first specified type of network device to at least one other specified type of network device. In a related aspect thereof, the first section includes a first portion which corresponds to each of the at least one other specified type of network device specified in the connection rules contained in the second section of the configuration script. Each such portion contains a subset of the series of configuration commands contained in the first section of the configuration script. Each such subset of configuration commands are executed only if the network device for which the configuration file is being constructed is connected to a network device of the other specified type of network device. 
     In another aspect thereof, the configuration script further includes a third section which defines a backplane bitmap for the network device. In a related aspect thereof, the third section of the configuration script further includes first, second and third portions. The first portion defines a bitmap file for generating the backplane bitmap, the second portion provides locational information for connected interfaces on the backplane bitmap and the third portion defines an overlay bitmap for the backplane bitmap for each of the at least one other specified type of network device specified in the connection rules contained in the second section of the configuration script. In another related aspect thereof, the configuration script further includes a fourth section which contains a user selectable set of commands for each of the connected interfaces. 
     In another embodiment, the present invention is of an apparatus and associated method, implemented on a computer system, for constructing a network configuration map comprised of at least two interconnected network entities selected from a series of network entities. The apparatus includes a series of configuration scripts, each corresponding to one of the series of network entities, stored in the memory subsystem and a first software module, executable by the processor subsystem. Each one of the series of configuration scripts includes a first section comprised of first and second portions. The first portion contains an icon file for generating an icon representative of the corresponding one of the series of network entities while the second portion contains a set of connection rules for the corresponding one of the series of network entities. The software module constructs the network configuration map by generating a workspace, placing at least two icons on the workspace in response to a first input received from a user interface and connecting first and second ones of the icons placed on the workspace in response to a second input received from the user interface if the set of connection rules contained in the second portion of the configuration scripts corresponding to first and second network entities represented by the first and second icons permit connection of the first and second network entities. 
     In one aspect of this embodiment of the invention, at least one of the series of configuration scripts further includes a second section which contains a series of executable instructions for constructing a configuration file for the network entity. In this aspect, the apparatus further comprises a second software module, executable by the processor subsystem in response to a third input received from the user interface which selects an icon previously placed on the network configuration map for configuration, for constructing a configuration file if the configuration script corresponding to the selected icon is one of the configuration scripts having the second section. The configuration file is constructed by executing the series of instructions contained in the second section of the configuration script and appending the constructed configuration file to the selected icon. In a further aspect thereof, the series of instructions contained in the second section of the configuration scripts includes a series of configuration commands which generate requests for information such that information received by the second software module in response to the requests for information is used to construct the configuration file. 
     In another aspect thereof, the second section of the configuration scripts further include a first portion corresponding to each one of the series of network entities specified in the set of connection rules contained in the first portion of the first section of the configuration script. This portion contains a subset of the series of configuration commands which are executed only if the network entity for which the configuration file is being constructed is connected to a network entity specified in the set of connection rules. In yet another aspect thereof, the first section of the configuration scripts further include a third portion which contains a name for the corresponding one of the series of network entities. During construction of the network configuration map, the first software module places the name on the network configuration map if the icon corresponding to the configuration script is placed on the map. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     The present invention may be better understood, and its numerous objects, features and advantages will become apparent to those skilled in the art by reference to the accompanying drawing, in which: 
     FIG. 1A is a simplified block diagram of a computer system on which a network device configuration tool may be installed; 
     FIG. 1B is a block diagram of a network device configuration tool constructed in accordance with the teachings of the present invention; 
     FIG. 2A is a block diagram of a configuration scripts portion of the network device configuration tool of FIG. 1; 
     FIG. 2B is an expanded block diagram of an attributes section of a configuration script of FIG. 2A; 
     FIG. 2C is an expanded block diagram of a bitmap section of a configuration script of FIG. 2A; 
     FIG. 2D is an expanded block diagram of a bitmap menu section of a configuration script of FIG. 2A; 
     FIG. 2E is an expanded block diagram of a guided configuration section of a configuration script of FIG. 2A; 
     FIG. 3A is a flow chart of a method for guiding configuration of a network device in accordance with the teachings of the present invention; 
     FIG. 3B is a flow chart of a map edit portion of the flow chart of FIG. 3A; 
     FIG. 3C is a flow chart of a method for determining whether a pair of network devices are connectable; 
     FIG. 3D is a flow chart of a method of connecting devices and/or entities, in accordance with an embodiment of the invention; 
     FIG. 4 illustrates a configuration manager GUI for constructing a map of configured network devices with a preconstructed network configuration map in a network workspace portion thereof; 
     FIG. 5 illustrates an exemplary guided configuration GUI for constructing a configuration script for a network device; 
     FIG. 6 illustrates a backplane bitmap for a configured network device; 
     FIG. 7 illustrates the configuration manager GUI of FIG. 4 with the preconstructed network configuration map modified to include newly added and configured devices therein; 
     FIG. 8 is a flowchart of a method of configuring a remote network device in accordance with another aspect of the present invention; and 
     FIG. 9 illustrates a pop-up bootP GUI in which an unconfigured network device is requesting configuration information. 
    
    
     DETAILED DESCRIPTION 
     Referring first to FIG. 1A, a computer system  2  suitable for installing a network device configuration tool thereon may now be seen. The computer system  2  is comprised of a processor subsystem  4 , for example, a type P6 Pentium processor manufactured by Intel Corporation of Santa Clara, Calif., coupled to a memory subsystem  6 , for example, a hard drive or other auxiliary memory device capable of storing large amounts of data infrequently used by the processor subsystem  4 , by a system bus  8 , preferably, a 32-bit wide peripheral connection interface (or “PCI”) bus. Also coupled to the system bus  8  is a user interface  9 . Commonly, the user interface is comprised of three peripheral devices a video display, a keyboard and a pointing device. 
     Referring now to FIG. 1B, a network device configuration tool  10  constructed in accordance with the teachings of the present invention will now be described in greater detail. The network device configuration tool  10  is graphical user interface (or “GUI”) based software launchable from a suitable platform installed on the computer system  2 . For example, Windows 95 and Windows NT 3.51, both manufactured by Microsoft of Redmond, Wash., are suitable platforms from which the network device configuration tool  10  may be launched. 
     In its broadest sense, the network device configuration tool  10  provides a GUI in which the so-called “drag and drop” process is used to construct a network configuration map comprised of a series of interconnected network devices and/or network entities, for example, a LAN, WAN or other network, from a combination of user inputs, network configuration maps, configuration scripts and local configuration files. 
     In constructing the network configuration map, a series of local configuration files are constructed for the network devices and appended to the network configuration map. The local configuration files contain information, for example, internet protocol (or “IP”) address, default gateway, router name and simplified network management protocol (or “SNMP”) community strings, necessary for the network device, for example, a router, to properly communicate on the network. 
     For each network device for which a local configuration file has been constructed, the network device configuration tool  10  may also construct a network device configuration file suitable for export to the network device itself. In this manner, remote configuration of network devices is enabled. 
     As shown in FIG. 1B, the network device configuration tool  10  may be representatively illustrated as being comprised of two software modules, map editor  14  and configuration guide  18 , both of which are executable by the processor subsystem  4 , which retrieve data and programming instructions from various locations within the memory subsystem  8  of the computer system  2  on which the network device configuration tool  10  is installed. 
     The data and programming instruction are stored in the memory subsystem  6  as a series of files which may be selectively accessed by the map editor  14  and/or the configuration guide  18 . Files which are accessible to the map editor  14  and/or the configuration guide  18  are configuration scripts  12 , map files  16 , local configuration files  20  and network configuration files  22 . The configuration scripts  12  identify the types of network devices and network entities which may be placed on the network configuration map and interconnected with other network entities and network devices. The configuration scripts  12  also identify the network devices which are configurable by the network device configuration tool  10  and contain information necessary to construct configuration files for those network devices. If a particular network device does not have a configuration script, a configuration file cannot be constructed by the network device configuration tool  10 . The map files  16  contain a series of network configuration maps, each comprised of a series of interconnected network devices and network entities, constructed using the network device configuration tool  10 . The local configuration files  20  contain information which, if uploaded to the corresponding network device  26 , would enable configuration of that device. If local configuration files  20  are constructed for the network devices illustrated on the network configuration map(s)  16  produced using the network device configuration tool  10 , such local configuration files  20  are associated with the corresponding network device such that they may be directly accessed from the network configuration maps  16 . 
     The network configuration files  22  are similar in content to the local configuration files  20  except that the files have been formatted for upload to a network device  26  coupled to the configuration tool in a manner to be more fully described below. Broadly speaking, a local configuration file  20  is modified for upload to the corresponding network device  26  by formatting the local file into the appropriate IP address for the target network device  26 . Finally, the network device configuration tool  10  includes a reverse parser  24  coupled to the local configuration files  20  and the network configuration files  22 . The reverse parser  24  is used to construct a local configuration file  20  from a network configuration file  22  downloaded to the network configuration tool  10  by the network device  26 . 
     It is contemplated that the network device configuration tool  10  would be installed in the computer system  2  operated by a network administrator and that plural network devices  26  and other network entities, only one of which is shown in FIG. 1B for ease of illustration, would be coupled to the network device configuration tool  10 . Utilizing the network device configuration tool  10 , the network administrator may build a representative network configuration map for the network. The network administrator may then configure remotely located network devices by uploading configuration files constructed during the process of building the network configuration map to the devices. Thus, by using the network configuration tool, the network administrator can, from a central location, design a suitable configuration network and then configure any number of remotely located devices included in the network. 
     The network device configuration tool  10  is coupled to the network device  26  by an asynchronous interface  28  and a boot protocol (or “bootp”)/trivial file transfer. protocol (or “TFTP”) manager  30 . Under the control of an asynchronous manager (not shown), a software process within the processor subsystem  4 , the asynchronous interface  28  is used to exchange configuration information, for example, a network configuration file  20 , by either an in-band transfer via in-band connection  29   a , for example, via telnet, or by an out-of-band transfer via out-of-band connection  29   b , for example, via modem. Additionally, the bootp/TFTP manager  30 , another software process within the processor subsystem  4 , controls the exchange of bootp and TFTP messages between the network device configuration tool  10  and the network device  26 . Generally, a bootp exchange is used to transfer raw address and other basic information so that a TFTP exchange may then be used to transfer configuration information. The bootp/TFTP manager  30  also controls accesses to bootptab files  32 . 
     As will be more fully described with respect to FIG. 3, below, the configuration scripts  12  are used to direct map editor  14  and configuration guide  18  in a guided configuration of a selected network device  26  by guiding in the construction of a configuration file for the device. Accordingly, turning momentarily to FIG. 2A, the configuration scripts  12  used to guide the configuration of a selected network device  26  will now be described in greater detail. As may now be seen, the configuration scripts  12  are comprised of a series of separate scripts  12 - 1  through  12 -N, one for each type of device which may configured by the configuration tool  12 . Each script  12 - 1  through  12 -N is comprised of an attributes section  34 , a bitmap section  36 , a bitmap menu section  38  and a guided configuration section  40 . Each of these sections  34 ,  36 ,  38  and  40  is a selectively executable set of commands which may be used during configuration of a device of the type corresponding to a particular script  12 - 1  through  12 -N. 
     Turning now to FIG. 2B, the attributes section  34  is comprised of an icon portion  34   a , a network entity portion  34   b , a description portion  34   c  and a series of connection portions  34   d - 1  through  34   d -N. A valid icon filename identifying the graphical icon to be associated with the device type corresponding to the configuration script  12 -N is contained in the icon portion  34   a . As will be more fully described below, this icon will appear in a device window of a configuration GUI and can be dragged onto a network workspace to add a device of that type to a network configuration map. The network entity portion  34   b  provides a unique name for the type of device and appears in the device window under the icon. The description portion  34   c  defines a default description for the device which pre-populates the dialog box when a device type is dragged onto the network workspace. Finally, the connection portions  34   d - 1  though  34   d -N provides connection statements for the device type. Specifically, a connection portion  34   d  will be provided for port, modular slot or other type of connection interface for the device type. Each connection statement will include a physical name for the port or other type of connection interface and the network entity names for all other types of devices which may be connected to the port. For example, if the network device was a modular router having 4 PCI slots, each connectable to ethernet, X.25, frame relay, PPP and IDSN type entities, and an ethernet port connectable to an ethernet entity, the attributes section  34  could be as set forth in the following code: 
     :ATTRIBUTES 
     ICON ROUTER.ICO 
     NETENTITY “Compaq Router” 
     DESCRIPTION “Modular and Fast” 
     CONNECT “PCI SLOT  1 ” “Ethernet” “X.25” “Frame Relay” “PPP” “ISDN” 
     CONNECT “PCI SLOT  2 ” “Ethernet” “X.25” “Frame Relay” “PPP” “ISDN” 
     CONNECT “PCI SLOT  3 ” “Ethernet” “X.25” “Frame Relay” “PPP” “ISDN” 
     CONNECT “PCI SLOT  4 ” “Ethernet” “X.25” “Frame Relay” “PPP” “ISDN” 
     CONNECT “Ethernet Port” “Ethernet” 
     ©1995 Compaq Computer Corporation 
     Turning next to FIG. 2C, the bitmap section  36  defines the “drill down” bitmap which is presented to the network administrator upon requesting subsequent configuration of a configured network device. The bitmap section  36  also defines any necessary overlay bitmaps as well as provides the locations of “hot spots” on the bitmap. The bitmap is a graphical representation of the backplane of the configured device which provides connection information for the ports thereof. “Hot spots” on the bitmap are paths to additional information related to the connected ports for the configured network device. 
     Bitmap file portion  36   a  names a valid window bitmap format file which will be displayed in its own window when the network administrator double clicks on a configured network device. For each connected port of the configured network device, the bitmap section  36  will also include a location port portion  36   b - 1  through  36   b -N which provides the location of the hot spot for the connected port on the bitmap. Finally, the bitmap section includes an overlay device bitmap file  36   c - 1  through  36   c -x for each type of network device or entity which is connectable to the configured network device. Then, if the configured device is connected to that particular network entity, the network entity can be represented on the bitmap. 
     For example, if the bitmap  36  is comprised of a bitmap file  36   a , port locations  36   b - 1  and  36   b - 2  and overlay device file  36   c - 1  as set forth in the sample code below: 
     BITMAP “router.bmp” 
     LOCATE “Slot  1 ” 20 40 
     LOCATE “Port  1 ” 50 90 70 120 
     OVERLAY “Ethernet” “TLAN.BMP” 
     ©1995 Compaq Computer Corporation 
     The bitmap  36  will include a representation of an ethernet-type network entity stored at TLAN.BMP drawn on top of the representation of a backplane of a router stored at ROUTER.BMP at coordinates  20 ,  40  if the “Ethernet”-type network entity is plugged into “Slot  1 ”. 
     The bitmap menu section  38  defines a menu hierarchy presented to the user for hot spots, for example, connected slots, on the bitmap and the executable commands for each item included in a command menu. The command menu is displayed when the network administrator clicks on a connected slot on the bitmap. The bitmap menu section  38  is subdivided into network entity command sections  38   a - 1  through  38   a -x. Specifically, for each network entity for which connection to the device is allowed, a corresponding network entity command section is provided such that, if that network entity is connected to the device, the commands defined in the section will be displayed to the network administrator for selective execution thereof. 
     The guided configuration section  40  defines the GUIs used to guide a user through configuration of a device and controls the configuration file to be constructed using user responses to the GUIs. As illustrated in FIG. 2D, the guided configuration section  40  is subdivided into a general script command portion  40   a  and a port script command portion  40   b - 1  through  40   b -N for each port to which the device is connectable. A guided configuration script for a Cisco 2514 router is set forth in Appendix A by way of example and will be described in greater detail with respect to FIGS. 3-D, below. 
     Returning now to FIG. 1B, the network device configuration tool  10  will now be described in greater detail. Generally, the map editor  14  controls the generation of a map of a network configuration while delegating the task of configuring unconfigured devices placed on the network configuration map to the configuration guide  18 . Upon initiation of the configuration process, the map editor  14  selectively retrieves a map file  16 , or creates a blank map, for editing. To add a device of a selected type to the network configuration map, the map editor  14  retrieves the corresponding configuration script  12 -N from the configuration scripts  12  and, using the information contained in the retrieved configuration script  12 -N, places an unconfigured device of the selected type on the network configuration map and appends a name for the device to the map. The map editor  14  performs all operations in which editing of the network configuration map is proposed. For example, if a connection between two devices placed on the network configuration map is proposed, the map editor  14  reviews the configuration scripts  12  for the devices and, if a connection between the two devices is permitted, the map editor  14  completes the proposed connection and appends the connection information to the network configuration map. 
     If a request to configure a device placed on the network configuration map is received, the map editor  14  transfers the name and connection information for the device to the configuration guide  18  and instructs the configuration guide  18  to perform the requested configuration task. For example, if configuration of a network device is requested, the configuration guide  18  will retrieve the configuration script  12 -N for that type of network device and execute the instructions contained in the guided configuration section  40  thereof. Using the information provided by the configuration script  12 , the map editor  14  and input provided by the network administrator in response to execution of the instructions contained in the guided configuration section  40 , the configuration guide  18  builds a local configuration file, associated with the device, for use by the network administrator and a corresponding network configuration file suitable for upload to the network device to enable configuration of the network device. 
     Referring next to FIG. 3A, the method for guiding configuration of a network device by constructing a configuration file for the network device which.is the subject of the present invention shall now be described in greater detail. It should be clearly understood, however, that the illustrated order of steps is purely exemplary and should not be construed as limiting the scope of the invention. The method commences at step  42  by launching the network device configuration tool  10  from a platform such as Windows &#39;95 by selecting an icon previously designated as providing a path to the network device configuration tool  10 . 
     Proceeding to step  44 , once launched, the network device configuration tool  10  generates a configuration manager GUI  100  (see FIG. 4) which provides a network workspace  102  and a device window  104 . In the network workspace  102 , a map comprised of any number of interconnected network devices, each having a configuration tied thereto, may be produced. The device window  104 , on the other hand, displays all of the types of network devices which may be placed on the network workspace  102 . Continuing on to step  46 , for each type of network device for which a configuration script  12 -N has been prepared and stored in the memory subsystem  6 , the network device configuration tool  10  places an icon representative of the network device type in the device type window  104  to indicate to the user which types of network devices are configurable by the network device configuration tool  10 . For example, the device window  104  illustrated in FIG. 4 includes icons representative of a PPP link, a vendor specific modular router, an ISDN-type WAN, an Ethernet-type LAN, a non-vendor specific computer subsystem, an X.25-type packet-switching WAN, and an ISDN-type WAN which subscribes to frame relay-mode service. At step  48 , the network device configuration tool  10  loads a blank map into the network workspace  102 . At this stage, the network device configuration tool  10  has completed loading the configuration manager GUI  100  and is ready to execute selected commands in response to inputs received from the network administrator via the user interface  9 . 
     Proceeding on to step  50 , the network administrator selects a command, either from one of the pull-down menus listed on the pull-down menu bar  108  or by depressing a command button displayed on command button bar  110 . The menus displayed on the pull-down menu bar  108  are “file”, “edit”, “network”, “window” and “help”. By selecting one of these menus, a series of commands, each of which relates to the selected menu, are displayed. Available file commands are “new”, “open”, “save”, “save as”, “print”, “print setup” and “exit”. The new command clears the network workspace  102  of any network configuration map placed thereon. The open command allows the network administrator to select a network configuration map to be placed on the network workspace  102 . The save and save as commands stores the map placed on the network workspace  102  to the memory subsystem  6 . The print command prints the network configuration map placed on network workspace  102 . The print setup command displays the printer configuration for the computer system  10 . The exit command closes the network configuration tool. 
     Commands available under the edit menu are “draw mode”, “move mode”, “workspace properties”, “edit device”, “view/configure device”, “delete device”, “all ports connected configuration”, “update configuration”, “retrieve configuration”, “associate configuration”, “telnet to this device”. The draw mode command allows the network administrator to draw connections between devices displayed on the network workspace  102 . The workspace properties command is, in fact, a second pull-down menu which allows the network administrator to tailor the map placed in the network workspace  102 . Commands available under the workspace properties menu are “view entity name”, “view entity description”, “view entity connections”, “view ip addresses”, “view ipx addresses”, all of which add.the listed information to the display of each device on the map, and the “snap to grid” and “view grid”, both of which orientate the map to a grid. 
     The edit device command accesses the configuration information associated with a selected network device. The view/configure command displays a view of the backplane of a selected configured network device or, if the selected network device is unconfigured, defaults to the configuration dialog set forth in greater detail below. The delete device command removes a selected network device or entity from the network workspace. The all ports configured, update configuration provides access to a selected device&#39;s configuration file. The retrieve configuration file allows the network administrator to directly access a configuration file stored in the memory subsystem  6  while the associate configuration command permits the network administrator to append a configuration file to a device. The telnet to the device command initiates an in-band transfer of configuration information from the network device configuration tool  10  to the network device  26 . 
     Commands available under the network menu are “bootptab maintenance”, “enable bootp server”, “disable bootp server”, “enable TFTP server”, “disable TFTP server” and “view network activity log”. All of these commands are relate to the exchange of configuration information between the network device configuration tool  10  and the network device  26 . More specifically, the bootptab maintenance command enables the network administrator to review previously constructed bootptab files  32 . The enable/disable bootp server commands control the operation of the computer system  2  on which the network device configuration tool  10  operates as a bootp server, i.e. is capable of sending and/or receiving bootp messages via the bootp/TFTP manager  30 . When enabled as a bootp server, the computer system  2  listens for bootp requests placed on the network by devices requesting configuration information. The enable/disable TFTP server commands control operation of the computer system  2  on which the network device configuration tool  10  operates as a TFTP server, i.e. is capable of sending and/or receiving TFTP messages via the bootp/TFTP interface  30 . Finally, the view network activity log provides a historical display of exchanges between the network device configuration tool  10  and network devices requesting configuration. 
     Commands under the window menu are “arrange”, “configuration files” “workspace”, “requesting router”and “network devices”. The arrange command is a pull-down menu which provides a set of commands which modify the appearance of the configuration management GUI  100 . The configuration files command displays the configuration files stored in the memory subsystem. The workspace and network device commands respectively move the network administrator to the network workspace  102  and the device window  104 . Finally, the requesting router command provides a list of network devices  26  requesting IP addresses and configuration files from the network device configuration tool  10 . 
     The command button bar  110  provides immediate execution of selected commands available from the pull-down menus  108 . The commands which may be executed from the command button bar  110  are new, open, save, print, draw mode, move mode, network devices, workspace, requesting router, view network activity log and help. 
     Proceeding to step  52 , the network administrator executes the command selected at step  50 . For example, if the network administrator decides to retrieve an existing network configuration map stored in memory, the network administrator may click on the “open map” command button on the command button bar to display a list of map files  16  stored in memory and then select a map file to be opened. An exemplary network configuration map  106  which may be stored in memory is illustrated in FIG.  4 . The network configuration map  106  is comprised of a vendor specific device  112 , here, a modular router manufactured by Compaq Computer Corporation of Houston, Texas, having a first peripheral connection interface (or “PCI”) slot coupled to a first ethernet-type LAN  114 , a second PCI slot coupled to a second ethernet-type LAN  116 , a third PCI slot coupled to a frame relay-type WAN  118  and an ethernet port coupled to a third ethernet-type LAN  120 . 
     Continuing on to step  54 , the network administrator then decides whether to edit the network configuration map  106  displayed in the network workspace  102 . If the network administrator decides not to edit the network configuration map  106 , the method proceeds to step  56  where the network administrator decides whether to execute another command. If so, the method returns to step  56 . Otherwise, the network administrator closes the network configuration tool at step  58  to end the method. 
     Returning now to step  54 , if the network administrator decides to go to the network workspace  102  to edit either the blank map initially loaded into the network workspace  102  at step  48  or, if a saved map was retrieved from the map files  16  by executing an “open file” command at step  52 , the retrieved map loaded into the network workspace at step  52 , the method proceeds to step  59  (FIG. 3B) where the network administrator decides whether to edit the map displayed in the network workspace  102 . If the network administrator decides not to edit the map, the method returns to step  56  (FIG.  3 A). If, however, the network administrator decides to edit the configuration network map  106  displayed in the network workspace  102  the method proceeds to step  60  where editing of the map commences. 
     At step  60 , the network administrator may select a device type displayed in device type window  104  and add a device of the selected type to the map  106  displayed in network workspace  102 . Proceeding to step  62 , to add a device of a type displayed in the device type window  104  to the network configuration map  106  displayed in the network workspace  102 , the user selects an icon representing a desired device type and, using the “drag and drop” process, places the icon on the network configuration map  106  displayed in the network workspace  102 . For example, using a mouse or other conventional pointing device, the user would point to an icon representing the desired device type, select the device type by holding a leftmost button on the mouse in the depressed position, point to the desired position on the map and release the button. By doing so, a new device of the selected type is added to the network map. For example, in FIG. 7, a single network device, i.e., a modular router  122  manufacture by Compaq Computer Corporation, and a pair of network entities, i.e., ethernet type LANs  124  and  126  have been added to the network configuration map  106 . 
     Each network device and/or network entity added to the network configuration map  106  is associated with a corresponding one of the configuration scripts  12 -N. Accordingly, at step  64 , the map editor  14  displays the name of the network device or entity contained in the attributes section  34  of the corresponding configuration script  12 -N as the name of the newly added network device or entity. For example, the name of the network device  122  added to the network configuration map  106  is “Compaq Router”. 
     Upon placing the, as yet unconnected, network device  122  and entities  124 ,  126  on the network configuration map  106 , or if it was decided at step  60  to not add a network device or entity to the network configuration map  106 , the method proceeds to step  66  where the network administrator decides whether to connect the newly added network devices and entities  122 ,  124  and  126  to other network devices or entities. For example, the network administrator may decide to connect the Compaq router  122  to the frame relay-type WAN  118 , the ethernet-type LAN  124  and the ethernet-type LAN  126 . If the network administrator decides to connect the Compaq router  122  to the ethernet-type LAN  124 , the method proceeds to step  68  where the network administrator would select the Compaq router  122  by holding a leftmost button on the mouse in the depressed position while pointing to the Compaq router  122 , draw a connection between the Compaq router  122  and the ethernet-type LAN  124  by repositioning the mouse to point at the ethernet-type LAN  124  while the button is depressed and releasing the button to complete the connection. 
     Continuing on to step  70 , the map editor  14  determines whether the proposed connection is permissible. If the proposed connection is permitted, the line drawn by the network administrator is completed at step  72 . The connection interface(s) for the origination device are then placed on the network configuration map  106  and the method continues on to step  74  for further editing of the network configuration map  106 . For example, as shown in FIG. 7, PCI slot  1  of the Compaq router  122  has been used to connect the device to the ethernet-type LAN  126 , PCI slot  2  to connect to the frame relay-type WAN  118  and PCI slot  4  to connect to the ethernet-type LAN  124 . If, however, the proposed connection is not permitted, the line drawn by the user is deleted at step  76  before continuing on to step  74 . 
     Returning to step  70 , the method by which the map editor  14  determines whether the proposed connection is permitted will now be described in greater detail. An initial determination as to whether the proposed connection is permissible is made based upon the contents of the attributes section  34  of the configuration scripts  12 -N for the devices placed on the map  106 . For example, the configuration script for a Cisco 2514 router is set forth in the attached appendix. A portion of the attributes section of the configuration script contains the following code: 
     CONNECT “ETHERNET 0 ” “Ethernet” 
     CONNECT “ETHERNET 1 ” “Ethernet” 
     CONNECT “SERIAL 0 ” “X.25” “Frame Relay” “PPP” “HDLC” 
     CONNECT “SERIAL 1 ” “X.25” “Frame Relay” “PPP” “HDLC” 
     ©1995 Compaq Computer Corporation 
     This portion of the configuration script code contains considerable connection information for the device. Specifically, the device has four connection interfaces—two ethernet ports and two serial ports. Furthermore, the two ethernet ports are only connectable to an ethernet-type LAN entities device while the two serial ports are connectable only to X.25, frame relay, PPP and HDLC entities. Accordingly, at step  70 , the mapper compares the list of network device or entity types which are connectable for the two devices and/or entities for which connection is proposed. If the devices and/or entities are connectable, the method proceeds to step  72  where connection of the two devices and/or continues. 
     Turning momentarily to FIG. 3D, the step of connecting the two devices and/or entities will now be described in greater detail. The method commences at step  150  and continues on to step  152  where the configuration file for the origination device or entity is reviewed to determine if the origination device or entity has an available slot which is connectable to the destination device or entity and to step  154  where the configuration file for the destination device or entity is reviewed to determine if the destination device or entity has an available slot which is connectable to the origination device or entity. If either the origination or destination device or entity do not have an available slot which is connectable to the other device or entity, a determination is made at step  156  that the devices/entities cannot be connected. The proposed connection is then deleted at step  158  and, continuing on to step  166 , the method returns to step  72 . 
     Returning to step  154 , if it is determined that both the origination and destination devices or entities have available slots, the method proceeds to step  160  where a connection interface is selected for the originating device and on to step  162  where a connection interface is selected for the destination device or entity. At both of these steps, the network administrator may select any one of a list of available connection interfaces overlayed on the network configuration map  106  by the network device configuration tool  10 . If only one connection interface is available for a device or entity, however, the map will automatically select the available interface and indicate its selection of the connection interface to the network administrator. Upon selecting connection interfaces for the devices or entities, the method proceeds to step  164  where the selected connection interface for the device  122  is displayed on the network configuration map  106  and on to step  166  for a return to step  72 . 
     Upon either a decision not to connect devices or entities at step  66 , a completion of a proposed connection at step  72  or a deletion of a proposed connection at step  76 , the method proceeds to step  74  where the network administrator decides whether to configure a device. To initiate configuration of a selected unconfigured device, the network administrator double clicks on the device to be configured. At step  78  (FIG. 3C) the configuration guide  18  retrieves the guided configuration section  40  from the configuration script  12 -N for the type of device to be configured and, proceeding to step  80 , executes the script commands contained in the general script commands portion  40   a  of the guided configuration section  40 . In turn, the execution of the script commands causes a series of questions to be asked of the network administrator, the answers to which are used to construct a configuration file. For example, if the script commands set forth in the guided configuration section of the configuration script set forth in Appendix A were executed during configuration of a Cisco 2514 router, the network administrator would be asked to name the router, indicate whether to configure internet protocol (or “IP”) for the router, indicate which IP routing protocol should be used for the router, whether to configure IPX for the router, indicate whether the router should be password protected, choose a password for the router, indicate whether the configuration mode for the router should be password protected and choose a password for the configuration mode. 
     Proceeding to step  82 , the configuration guide  18  determines whether any ports of the device being configured are connected to a second device or entity. If any of the ports are connected, the method proceeds to step  84  where the configuration guide  18  executes the script commands for the connected ports. For example, if serial port  1  of a Cisco router 2514 was connected to a WAN, the configuration guide  18  would execute the script commands set forth in serial portion of the script commands set forth in Appendix A. Thus, in this example, the network administrator would be asked whether the serial port should be configured, the IP address and mask for the port, the IPX network number, whether the port should be configured for frame relay, the type of connector being used for the port, the local data link connection identifier (or “DLCI”), the Committed Information Rate (or “CIR”) and the Excess Information Rate (or “EIR”) for the port and whether to use compression. 
     The configuration guide  18  collects the information necessary to configure the device by engaging the network administrator in a dialog during which the configuration guide  18  generates a series of GUIs, each of which displays a request for information and provides areas in which the requested information may be inputted and buttons for guiding the network administrator through the dialogue. By way of example, an IP address GUI  200  is illustrated in FIG.  5 . The network administrator may input the IP address and mask for the indicated slot and device by respectively entering the IP address and mask in areas  202  and  204 . The network administrator may also review a prior GUI in the dialogue by depressing button  206 , proceed to the next GUI in the dialogue by depressing button  208 , request help by depressing button  210  or exit the configuration dialog by depressing button  212 . 
     Upon successful execution of the script commands for the connected ports at step  84 , or if it was determined at step  82  that no ports are connected for the device being configured, the configuration dialog is completed at step  86  and, at step  88 , the information provided by the network administrator during the dialogue is used to construct a local configuration file  20  for the device. If desired, the network administrator may view the local configuration file  20  constructed during this process at step  90 , directly edit any of the configuration commands contained therein at step  92  before saving the constructed local configuration file  20  to the memory subsystem and associating it with the device. Selected portions of the configuration information contained in the local configuration file  20  may be displayed on the network configuration map  106 . For example, FIG. 7 displays the IP address and mask for PCI slot  1  of the Compaq router  122  which was input by the network administrator during configuration of the device. The network configuration map  106  may also include a indicator  128 , for example, a loop surrounding a device, which indicates that a device has been configured. 
     Having successfully constructed a local configuration file  20  and associated it with the device being configured, the method proceeds to step  96  (FIG. 3B) where the network administrator decides whether to upload the configuration file to the device. If upload is selected, the method proceeds to step  97  where the constructed configuration file is uploaded to the network device  26 . Various mechanisms may be used to upload a constructed configuration file to the network device  26 . For example, in many circumstances, an in-band transfer of the configuration file via telnet may be used. In other circumstances, other mechanisms more fully described below may be necessary to transfer configuration information to the network device  26 . 
     While constructing a local configuration file for a device, the network device configuration tool  10  also constructs a bootptab file for the device. The bootptab file is particularly useful in those situations where the network administrator decides not to upload the configuration file upon completing the construction thereof, for example, if the network device is unconnected, powered down or otherwise unavailable. A bootptab file for a device contains the serial number for the device to be configured, an IP address to assign to the device to be configured and the configuration file to be uploaded to the device. As will be more fully described with respect to FIGS. 8-9, below, the bootptab file provides information necessary for unattended remote configuration of network devices as they are connected to the network. 
     Returning now to FIG. 3B, after completing upload of the configuration file at step  97 , or if the network administrator decided at step  96  not to upload the configuration file, the method proceeds to step  98  where the network administrator decides whether to perform subsequent configuration on a device on the network configuration map  106 . If subsequent configuration of a device is selected, the method proceeds to step  99  where subsequent configuration of a selected device is performed from a backplane bitmap of the selected device. To select a device for subsequent configuration, the network administrator double clicks on a configured device included on the network configuration map  106 . By doing so, a bitmap of the backplane of the selected configured device is displayed. 
     FIG. 6 illustrates a backplane bitmap  220  for the Compaq router  122  of FIG.  7 . As may now be seen, the various connection interfaces used to connect the router  122  to network entities, as well as unconnected connection interfaces, are graphically displayed on the backplane bitmap  220  using the information contained in the bitmap section  36  of the configuration script  12 -N and the local configuration file  20  for the Compaq router  122 . Specifically, for the Compaq router  122 , PCI slot  1  has been used to provide a first ethernet connection  222 , PCI slot  2 , an HSSI connection  224  and PCI slot  4 , a second ethernet  226 . PCI slot  3 , however, remains unconnected. From the backplane bitmap  220 , the network administrator may view the settings for a port by double clicking on a selected port or, by depressing the right mouse button, bring up a pull down menu of commands contained in the network entity commands section  38   a -x of the bitmap menu  38  for the network entity connected to the selected port and select any of the configuration commands listed on the pull down menu for execution. 
     After completing subsequent configuration of the device at step  99 , or if the network administrator decided at step  98  not to perform subsequent configuration, the method returns to step  56  (FIG.  3 A). 
     Turning next to FIG. 8, a method of transmitting configuration information to a network device  26  in accordance with the teachings of the present invention shall now be described in greater detail. The method commences at step  250  by launching the network device configuration tool  10 . As previously stated with respect to FIG. 3A, launch of the network device configuration tool  10  initiates the generation of the configuration manager GUI  100 . In addition, launch of the network device configuration tool  10  initiates listening, by the network device configuration tool  10  at step  252 , for the presence of unconfigured network devices  26  on the network. 
     Proceeding to step  254 , the network device configuration tool  10  will detect bootp packets transmitted on the network and determine if the bootp packet was issued by a device requesting configuration information from the network device configuration tool  10 . More specifically, if an unconfigured network device  26  powers up on the network, the unconfigured network device  26  will periodically issue a bootp packet which contains a medium access code (or “MAC”) address for the device and a code which indicates that the device is requesting configuration information. For example, the code may be placed in the vendor specific field of the bootp packet. If a detected bootp packet does not contain a request for configuration information, the method returns to step  252  where the configuration tool continues to listen for bootp packets. 
     If, however, the network device configuration tool  10  determines at step  256  that the issuing device is requesting configuration information, for example, by matching a request code held by the network device configuration tool  10  with a corresponding code contained in the detected bootp packet, the method proceeds to step  258  where the network device configuration tool  10  will determine if the device requesting configuration information has a corresponding bootptab file  32  and if the description of the device requesting configuration information matches the device drawn on the network configuration map  106 . 
     In order to determine whether the device requesting configuration information has a corresponding bootptab file  32  and if the description of the device matches the device drawn on the network configuration map, the attributes section  34  must be modified to include two additional portions—bootpid and subdeviceid. The bootpid portion contains a number unique to a particular device type and model number. The subdeviceid identifies the type of devices installed in the device. For example, if the network device was a modular router having 4 PCI slots, each connectable to ethernet, X.25, frame relay, PPP and IDSN type entities, and an ethernet port connectable to an ethernet entity with a ThunderLan board connectable to ethernet entities, a W-Adapter connectable to X.25, frame relay and PPP entities and a Basic Rate ISDN Board connectable to ISDN entities installed therein, the attributes section  34  could be as set forth in the following code: 
     :ATTRIBUTES 
     ICON ROUTER.ICO 
     NETENTITY “Compaq Router” 
     DESCRIPTION “Modular and Fast” 
     CONNECT “PCI SLOT  1 ” “Ethernet” “X.25” “Frame Relay” 
     “PPP” “ISDN” 
     CONNECT “PCI SLOT  2 ” “Ethernet” “X.25” “Frame Relay” “PPP” “ISDN” 
     CONNECT “PCI SLOT  3 ” “Ethernet” “X.25” “Frame Relay” “PPP” “ISDN” 
     CONNECT “PCI SLOT  4 ” “Ethernet” “X.25” “Frame Relay” “PPP” “ISDN” 
     CONNECT “Ethernet Port” “Ethernet” 
     bootpid  103   
     subdeviceid  11  “ThunderLan board” “Ethernet” 
     subdeviceid  12  “W-Adapter” “X.25” *2 “Frame Relay” *2 “PPP” *2 
     subdeviceid  13  “Basic Rate ISDN Board” “ISDN” 
     ©1995 Compaq Computer Corporation 
     The guided configuration section would be similarly modified to include an additional command script portion which, upon execution thereof, will issue any additional requests for information, for example, installed devices, necessary to construct the bootptab file described herein such that a determination as to whether the description of the device requesting configuration matches the device drawn on the network configuration map  106 . 
     Proceeding to step  260 , if the device requesting configuration has a matching bootptab file, i.e., the bootptab file has a bootpid which matches the serial number of a device having a bootptab file and if the devices installed in the device requesting configuration match the devices identified in the subdeviceid portion of the configuration file for the matching bootptab file, the network device configuration tool  10  issues a bootp reply at step  260 . The bootp reply contains the filename which matches the configuration file described in the matching bootptab file. Using the filename contained in the bootp reply, at step  262 , the device requesting configuration may issue a TFTP request for configuration information to the network device configuration tool  10  which identifies the configuration file containing its configuration information. 
     Continuing on to step  264 , in response to the TFTP request containing the filename of a configuration file issued by the device requesting configuration, the network device configuration tool  10  responds by issuing the requested configuration file to the device. At step  266 , the unconfigured network device configures itself using the information contained in the configuration file transmitted thereto by the network device configuration tool  10  and, at step  268 , the method ends. 
     Returning to step  258 , if the device requesting configuration does not have a matching bootptab file, the method proceeds to step  270  where the network device configuration tool  10  generates a pop-up requesting device GUI  300  which overlays a portion of the configuration manager GUI  100 . A requesting device GUI  300  is illustrated in FIG.  9 . As illustrated herein, the requesting device GUI  300  includes an icon representing the unconfigured network device  302  requesting configuration. 
     Proceeding to step  272 , the network administrator may select one of two options to configure the device requesting configuration. If the network administrator decides that the device  302  is a new device, the requesting device may be dropped onto the network workspace  102 , thereby adding the requesting device to the network configuration map  106  as an unconnected device. Proceeding on to step  274 , the method would return to step  64  (FIG. 3B) wherein the previously discussed process of constructing a configuration file and uploading the configuration file to the unconfigured network device may be completed to configure the device requesting configuration. 
     Returning to step  272  and, now proceeding to step  276 , the network administrator may instead opt to drop the device  302  requesting configuration onto an existing device, for example, router  112 , already included on the network configuration map  106 . By dropping the device  302  requesting configuration onto an existing device on the network configuration map  106 , the network administrator is indicating that the device  302  requesting configuration is the same device that is already on the network configuration map  106  but, due to a difference between the description of the device  302  in the bootptab and the description of the device  112  contained in the corresponding configuration file, the network device configuration tool  10  is unable to recognize that the two are the same device. 
     Proceeding on to step  278 , the network device configuration tool  10  would reconcile the configuration file and the bootptab file for the device. If the two are irreconcilable, the method terminates at step  280 . If the two can be reconciled, the configuration file is revised appropriately at step  282  and the method then returns to step  264  so that the network device configuration tool  10  may issue the revised configuration file to the device  302  requesting configuration in the manner previously described. To reconcile the device  302  requesting configuration and an existing device such as the router  112 , the network device configuration tool  10  reviews the devices installed on the device requesting configuration match the devices installed. If the installed devices match, then the configuration file is modified using the contents of the bootptab file. The method then proceeds to step  264  so that the network device configuration tool  10  may issue the revised configuration file to the device  302  requesting configuration. 
     Thus, there has been described and illustrated herein an apparatus and associated method for constructing a configuration file for a network device suitable for upload to the network device to enable the configurement thereof. However, those skilled in the art will recognize that many modifications and variations besides those specifically mentioned may be made in the techniques described herein without departing substantially from the concept of the present invention. Accordingly, it should be clearly understood that the form of the invention described herein is exemplary only and is not intended as a limitation on the scope of the invention.

Technology Category: 5