The invention relates to computer networks and, more particularly, to managing network routers.
A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network, such as the Internet, the computing devices communicate data by dividing the data into small blocks called packets. The packets are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
Devices within the network, often referred to as routers, maintain tables of routing information that describe available routes through the network. Each route defines a path between two locations on the network. Upon receiving an incoming data packet, the router examines header information within the packet to identify the destination for the packet. Based on the header information, the router accesses the routing table, selects an appropriate route for the packet and forwards the packet accordingly.
A router management interface provides access to software modules and other resources residing on the router. In particular, the router management interface permits various entities, such as human users and automated scripts, to configure the router and obtain operational information. Using the router management interface, the entities can make changes to the present router configuration and more efficiently manage router resources, policies and relationships with other routers. In addition, the router management interface provides access to a variety of information relating to router configuration, protocols, firewalls, interfaces, router chassis inventory, system parameters, routing policies, forwarding options, network flow statistics, error logs, and performance metrics.
The invention provides a network router management interface with different presentation modes for viewing configuration and operational information encoded in extensible markup language output obtained from a network router. The network router management interface provides an application programming interface (API) that permits client applications to formulate configuration and operational requests according to an extensible markup language, such as XML. XML is one example of an extensible markup language in the class encompassed by the Standard Generalized Markup Language (SGML) specification, and will be described herein for purposes of illustration.
In response to the configuration and operational requests submitted by a client application, the router produces XML output. In operation, the client application ordinarily renders the XML output graphically or textually for viewing by a user or archival to a file. On a selective basis, however, the user may elect to view or archive the XML output in an unrendered format. In other words, the network router management interface can be configured to present, at the client's option, either the rendered XML output or the raw XML output. As an example, the network router management interface may, in response to a command from a client application, emit XML output for display in an unrendered format. In general, the network router management interface may emit substantially the same XML output in either mode, but include a command for the client application, following a client request to display unrendered output, indicating whether the XML output should be rendered or presented in an unrendered form.
In one embodiment, the invention provides a network router management interface comprising a client interface that receives, from a network router client, configuration requests and operational requests encoded with extensible markup language tags. A storage device stores a network management interface schema that maps the extensible markup language tags to configuration and operational information associated with software modules running on a network router. The software modules include a chassis software module that defines an inventory of components in the network router chassis, a device configuration software module that defines a physical configuration of the network router, and a routing protocol module that administers protocols supported by the network router. A management server software module parses the configuration requests and the operational requests received at the client interface and accesses the corresponding configuration and operational information associated with the chassis software module, the device configuration software module, and the routing control software module according to the network management interface schema. The management server module emits to the client interface replies encoded with extensible markup language tags according to the network management interface schema. In response to a selection made by a user, the management server module emits the replies for presentation in either a rendered or unrendered format.
In another embodiment, the invention provides a method comprising receiving, at a client interface of a network router, configuration requests and operational requests encoded with extensible markup language tags. The method further includes accessing a network management interface schema that maps the extensible markup language tags to configuration and operational information associated with software modules running on a network router. The software modules include a chassis software module that defines an inventory of components in the network router chassis, a device configuration software module that defines a physical configuration of the network router, and a routing protocol module that administers protocols supported by the network router. The method also involves parsing the configuration requests and the operational requests, and accessing the corresponding configuration and operational information associated with the chassis software module, the device configuration software module, and the routing control software module according to the network management interface schema. In addition, the method includes communicating, to a network router client, replies encoded with extensible markup language tags according to the network management interface schema and, in response to a selection made by a user, emitting the replies for presentation in either a rendered or unrendered format. A computer-readable medium that carries instructions for performing such a method is also contemplated.
In an added embodiment, the invention provides a system comprising a client interface to transmit configuration requests and operational requests encoded with extensible markup language tags to a network router, and receive replies encoded with extensible markup language tags from the network router, and a management server module that emits the replies to a user for presentation in either a rendered or unrendered form in response to a selection made by the user.
In a further embodiment, the invention provides a method comprising transmitting configuration requests and operational requests encoded with extensible markup language tags to a network router, receiving replies encoded with extensible markup language tags from the network router, and presenting the replies to a user in either a rendered or unrendered form in response to a selection made by the user. A computer-readable medium that carries instructions for performing such a method is also contemplated.
A network router management interface and method consistent with the principles of the invention can provide a number of advantages. For example, at its option, a user can readily view unrendered XML output produced by the router. In particular, a client interface associated with the network router management interface can be configured to present replies to a user for presentation in either a rendered or unrendered form in response to a selection made by the user. When a client requests that XML output be displayed in an unrendered format, the network router management interface may respond by including with subsequent XML output a command that instructs the client application not to render the XML output. Thus, the XML output may be the same in either mode, but the response of the client application is different. In this manner, clients such as network administrators, installation and maintenance technicians and applications developers can view the raw XML output on a selective basis for use in development and debugging. With this capability, the user may be better equipped to trace the root of a problem and correct it.
The above summary of the invention is not intended to describe every embodiment of the invention. The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.
Routing engine 14 maintains and updates the routing information within routing table 21. Forwarding engine 16 analyzes the contents of routing table 21 prior to receiving packets and pre-selects routes to be used when forwarding packets. Forwarding engine 16 then stores the selected routes in forwarding table 23. Upon receiving an inbound packet, forwarding engine 16 examines information within the packet to identify the destination of the packet. Based on the destination, forwarding engine 16 selects an available route and forwards the packet to one of the IFCs 18. IFCs 18 may be configured according to one of several different network protocols.
As discussed in detail below, control unit 12 provides a network router management interface with two different output modes for viewing configuration and operational information encoded in extensible markup language output obtained from a router. The network router management interface provides an application programming interface (API) that permits client applications to formulate configuration and operational requests according to an extensible markup language, such as XML.
In response to the configuration and operational requests submitted by a client application, router 10 produces XML output. At the user's election, the client application either renders the XML output graphically or textually or presents XML output in an unrendered format, i.e., a format that permits the user to view the raw XML tags associated with the output. In this manner, clients such as network administrators, installation and maintenance technicians and applications developers can view the raw XML output on a selective basis for use in development and debugging.
As examples, routing engine 14 may include a chassis module 26, a device configuration module 28, and a routing protocol module 30 running as processes within the operating environment of operating system 24. A management server module 32 provides a user interface for interaction with software modules 26, 28, 30. Chassis module 24 defines an inventory and status of components installed in the chassis of network router 10, including IFCs 18. Device configuration module 28 defines and controls the physical configuration of network router 10. Routing protocol module 30 administers protocols supported by network router 10. For example, routing protocol module 30 may implement protocols for exchanging route information with other routing devices and for updating routing table 21 (shown in
Management server module 32 communicates with one or more client interface modules running on routing engine 14. In the example of
In the example of
Management server module 32 presents an XML API 44. A variety of clients such as CLI client 46, web browser client 48, or script client 50 may establish independent communication sessions with management server module 32 via XML API 44. Management server module 32 and XML API 44 together present a network router management interface 35. CLI client 46 may take the form of a remote computer operated by a human user who enters CLI commands encoded with XML tags that conform to the API. In this case, the client application running on CLI client 46 may render the XML output received from management server module 32 as command line output, e.g., in a textual form. Web browser client 48 may graphically render the XML output for human users, e.g., using style sheets communicated or identified by management server module 32 with particular XML replies. Script client 50 may take the form of an automated script application running on a remote client computer, and may render XML output into reports, logs, and the like. In addition, script client 50 may respond to XML replies with additional requests according to script code loaded into the script client.
In operation, management server module 32 receives both configuration requests and operational requests encoded with XML tags from clients 46, 48, 50. Configuration requests include requests to change router configuration or obtain information about the current configuration. Management server module 32 can make changes to the router configuration by modifying configuration records in database 40. The configuration information may be stored hierarchically in database 40, which may reside on a hard disk or other data storage medium. Operational requests include requests for information about router status such as network flow and performance. Management server module 32 can obtain operational information from database 40 or directly from modules 36, 38.
Management server module 32 serves requests received from clients 46, 48, 50 by parsing the extensible markup language tags, and accessing schema 42 to map the tags to pertinent configuration or operational information associated with modules 36, 38, database 40, or both. The tags may include, for example, chassis tags pertaining to information about the chassis components installed in the router chassis, device configuration tags pertaining to information about the physical configuration of the network router, and routing protocol tags pertaining to information about the protocols supported by the network router. Upon accessing the corresponding configuration and operational information according to the network management interface schema, management server module 32 emits replies encoded with extensible markup language tags.
With further reference to
Clients 46, 48, 50 parse the respective XML replies, extract pertinent information, and present the XML output as specified by the client application. Consistent with the principles of the invention, clients 46, 48, 50 either render the XML output graphically or textually, or present the XML output in a raw, unrendered format, dependent on the nature of the replies emitted by management server module 32. Client applications 56, 58, 60 may parse the XML tags in the replies using a parser that implements a standard API such as the Document Object Model (DOM) or Simple API for XML (SAX). DOM implementations are available for several programming languages, including C, C++, Perl, and Java. Management server module 32 may parse the requests using a similar API. XML API 44 greatly facilitates the parsing of requests and replies. Tag names and structural rules provided by a DTD or XML Schema Language file make the tag streams highly structured and predictable.
The following are some examples of operational and configuration requests made by client applications 46, 48, 50 according to XML API 44 and corresponding replies emitted by management server module 32. The examples are from the JUNOScript™ API. Again, an operational request may be a request for information about router status. As a first example, the following request is for detailed information about a router interface called “ge-2/3/0”:
The reply from management server module 32 for the operational request described above provides reply tags for all of the request tags, as specified by XML API 44. For example, management server module 32 returns the information requested by the <get-interface-information> tag in a response tag called <interface-information>, and the information requested by the <get-chassis-inventory> tag in a response tag called <chassis-inventory>. The following sample reply includes information about the interface called “ge-2/3/0”:
The client application associated with a client 46, 48, 50 is configured to accept user input that specifies whether the XML reply from management server module 32 should be rendered or presented in an unrendered format. If rendered output is desired, the above reply could be displayed in any graphical or textual format as follows:
Interface Name: ge-2/3/0
Interface Index: 20
.
.
.
If unrendered output is desired, however, the client application simply presents the raw XML output communicated by management server module 32 as follows:
Typically, the client application may have a default mode in which all XML output is rendered by client 46, 48, 50. In this case, a |display xml| pipe, or other command, entered by the user overrides the default mode and instructs the management server module 32 to transmit output for presentation of the XML output with a command that specifies an unrendered format. In other cases, the client application may include no default mode, and require that the user select one of the modes at the beginning of a session. In general, management server module 32 emits substantially the same XML output in either case. Following the |display xml| pipe, however, the XML output produced by management server module 32 is accompanied by a command to the client application indicating that the XML output should not be rendered. The command may precede the XML output, and may be in effect for an entire rpc reply. In response, CLI client 46 does not render the XML output, and instead displays it in a raw, unrendered format.
Generally, a user associated with a CLI client 46 or web browser client 48 should be able to change the presentation mode during a session. When the client application is in render mode, for example, a user may provide user input that instructs management server module 32 to change modes. In this case, management server module 32 may stay in the requested mode until additional user input instructs otherwise. Alternatively, the mode change command could be interpreted to enter a different mode for only one, or a series of, requests, and then revert back to a default mode. In one embodiment, a CLI client 46 does not commence rendering again until it receives the next closed XML tag, e.g., </rpc reply>.
In any event, the user is able to selectively control the presentation mode of the client application to view either rendered XML output or raw, unrendered XML output. The presentation of raw, unrendered XML output may be advantageous to application developers, network administrators, and installation and maintenance technicians in development and debugging. If management server module 32 seems to be producing erroneous output, for example, analysis of the raw XML output may permit inspection of the output emitted by a particular software module 36, 38 or database 40. With this capability, the user may be better equipped to trace the root of a problem and correct it.
Before emitting a reply to client 46, 48, or 50, management server module 32 determines whether it is in a presentation mode that requires rendering of the XML output or presentation of the XML output in a raw, unrendered format. For example, management server module 32 may determine whether a user has entered a command such as the |display xml| pipe (62). If not, management server module 32 emits a normal reply formulated for presentation as rendered XML output by the client application 46, 48, 50. The reply is not accompanied by a command that would instruct the client application to not render the XML output. Accordingly, in this case, the client application renders the XML output graphically or textually and presents the rendered output to the user via a display, archive file, or other output medium (64). If the user has entered a command such as the |display xml| pipe, however, management server module 32 emits a reply formulated for presentation of the output in an unrendered format. In particular, management server module 32 emits the same XML output, but may precede the output with a command that instructs the client application not to render the output. In this case, the client application 46, 48, 50 simply presents the XML output in a raw, unrendered form (66) for inspection by the user.
Management server module 32 then receives a reply from the pertinent router resource (88). If management server module 32 receives an ASCII format reply from the router resource, it “wraps” the ASCII format reply in appropriate XML tags specified by the XML API 44. As an alternative, management server module 32 could include a translator that translates ASCII into corresponding XML tags based on a heuristic translation engine. If management server module 32 receives an XML-encoded reply, there may be no need for additional encoding. Alternatively, management server module 32 may include additional XML tags within the reply to further encode and integrate the XML-encoded output received from router resources 36, 38, 40
In each case, management server module 32 transmits the XML-encoded reply to the client application. Management server module 32 first determines whether it is in a default mode or the ‘display xml’ mode (90). In the default mode, management server module 32 presents output for presentation by the client application in a rendered format. If the display xml mode applies, management server module 32 adds to the XML reply a command (92) that the client application should not render the XML reply. Instead, the client application should respond by preparing the XML reply for presentation in a raw, unrendered format. With the exception of the “display xml” indication, the XML output emitted by management server module 32 otherwise may be the same in both modes. If the ‘display xml’ mode does not apply, management server module 32 transmits the XML reply to the client application (94). The client application parses the XML reply (96). In the event the XML reply is not accompanied by a ‘display xml’ mode command (98), the client application accesses the render library (100) for rendering support, and renders output based on the contents of the XML reply (102) and any style sheets, ODL files, or other information provided by the render library. If the XML reply instructs the client application to present the XML reply in an unrendered format, the client application merely presents the XML code without additional textual or graphical rendering (104).
Various embodiments of the invention have been described. These and other embodiments are within the scope of the following claims.
This application is a continuation of U.S. application Ser. No. 09/871,046, filed May 31, 2001, the entire content of which is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5011405 | Lemchen | Apr 1991 | A |
5648795 | Vouri et al. | Jul 1997 | A |
5822525 | Tafoya et al. | Oct 1998 | A |
5835710 | Nagami et al. | Nov 1998 | A |
5937393 | O'Leary et al. | Aug 1999 | A |
5964844 | Rosenthal | Oct 1999 | A |
6108701 | Davies et al. | Aug 2000 | A |
6167446 | Lister et al. | Dec 2000 | A |
6212559 | Bixler et al. | Apr 2001 | B1 |
6225999 | Jain et al. | May 2001 | B1 |
6269398 | Leong et al. | Jul 2001 | B1 |
6279038 | Hogan et al. | Aug 2001 | B1 |
6282575 | Lin et al. | Aug 2001 | B1 |
6335919 | Maegawa | Jan 2002 | B1 |
6359859 | Brolin et al. | Mar 2002 | B1 |
6393415 | Getchius et al. | May 2002 | B1 |
6434543 | Goldberg et al. | Aug 2002 | B1 |
6438594 | Bowman-Amuah | Aug 2002 | B1 |
6446110 | Lection et al. | Sep 2002 | B1 |
6448980 | Kumar et al. | Sep 2002 | B1 |
6510434 | Anderson et al. | Jan 2003 | B1 |
6553568 | Fijolek et al. | Apr 2003 | B1 |
6585778 | Hind et al. | Jul 2003 | B1 |
6594672 | Lampson et al. | Jul 2003 | B1 |
6632089 | Rubbert et al. | Oct 2003 | B2 |
6635089 | Burkett et al. | Oct 2003 | B1 |
6636877 | Doleac et al. | Oct 2003 | B1 |
6640241 | Ozzie et al. | Oct 2003 | B1 |
6654793 | Wollrath et al. | Nov 2003 | B1 |
6671869 | Davidson et al. | Dec 2003 | B2 |
6725231 | Hu et al. | Apr 2004 | B2 |
6735630 | Gelvin et al. | May 2004 | B1 |
6739869 | Taub et al. | May 2004 | B1 |
6745208 | Berg et al. | Jun 2004 | B2 |
6766368 | Jakobson et al. | Jul 2004 | B1 |
6772204 | Hansen | Aug 2004 | B1 |
6920492 | Richard | Jul 2005 | B2 |
6925595 | Whitledge et al. | Aug 2005 | B1 |
6944659 | Taggart et al. | Sep 2005 | B2 |
6947440 | Chatterjee et al. | Sep 2005 | B2 |
6990601 | Tsuneya et al. | Jan 2006 | B1 |
7054901 | Shafer | May 2006 | B2 |
7072946 | Shafer | Jul 2006 | B2 |
7076728 | Davis et al. | Jul 2006 | B2 |
7206934 | Pabla et al. | Apr 2007 | B2 |
7222187 | Yeager et al. | May 2007 | B2 |
7275102 | Yeager et al. | Sep 2007 | B2 |
7363351 | Shafer | Apr 2008 | B1 |
20010043600 | Chatterjee et al. | Nov 2001 | A1 |
20010053947 | Lenz et al. | Dec 2001 | A1 |
20020016815 | Hardy et al. | Feb 2002 | A1 |
20020021713 | Rezaie et al. | Feb 2002 | A1 |
20020059429 | Carpenter et al. | May 2002 | A1 |
20020065716 | Kuschill | May 2002 | A1 |
20020099735 | Schroeder et al. | Jul 2002 | A1 |
20020111972 | Lynch et al. | Aug 2002 | A1 |
20020124061 | Mossman | Sep 2002 | A1 |
20020133516 | Davis et al. | Sep 2002 | A1 |
20020143803 | Chen et al. | Oct 2002 | A1 |
20020143888 | Lisiecki et al. | Oct 2002 | A1 |
20020147847 | Brewster et al. | Oct 2002 | A1 |
20020147974 | Wookey | Oct 2002 | A1 |
20020161852 | Allen et al. | Oct 2002 | A1 |
20020169794 | Jones et al. | Nov 2002 | A1 |
20020178241 | Eriksson | Nov 2002 | A1 |
20020178243 | Collins | Nov 2002 | A1 |
20020184347 | Olson et al. | Dec 2002 | A1 |
20020191619 | Shafer | Dec 2002 | A1 |
20020194497 | McGuire | Dec 2002 | A1 |
20030005090 | Sullivan et al. | Jan 2003 | A1 |
20030014447 | White | Jan 2003 | A1 |
20030023628 | Girardot et al. | Jan 2003 | A1 |
20030028685 | Smith et al. | Feb 2003 | A1 |
20030028863 | Reichenthal | Feb 2003 | A1 |
20030048287 | Little et al. | Mar 2003 | A1 |
20030105854 | Thorsteinsson et al. | Jun 2003 | A1 |
20030135508 | Chorafakis et al. | Jul 2003 | A1 |
20030158947 | Bloch et al. | Aug 2003 | A1 |
20030193426 | Vidal | Oct 2003 | A1 |
20040220882 | Suto et al. | Nov 2004 | A1 |
20040230795 | Armitano et al. | Nov 2004 | A1 |
20040243929 | Jones et al. | Dec 2004 | A1 |
20050204020 | O'Brien et al. | Sep 2005 | A1 |
20060101114 | Sandhu et al. | May 2006 | A1 |
20060190575 | Harvey et al. | Aug 2006 | A1 |
Number | Date | Country | |
---|---|---|---|
Parent | 09871046 | May 2001 | US |
Child | 11301435 | US |