Source: http://www.google.com/patents/US7421485?dq=5,966,702
Timestamp: 2014-07-14 16:17:44
Document Index: 481884969

Matched Legal Cases: ['art 605', 'art 610', 'art 615', 'art 620', 'art 625', 'art 630', 'art 635', 'art 640', 'art 645', 'art 650', 'art 655', 'art 660']

Patent US7421485 - Processing configuration group information to display or generate ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign in<nobr>Advanced Patent Search</nobr>PatentsAn interface permitting users (i) to create a group (also referred to as a �source�) containing configuration statements and (ii) to direct the inheritance of that group's statements in the rest of the configuration information (also referred to as a �target�). The same group can be applied to...http://www.google.com/patents/US7421485?utm_source=gb-gplus-sharePatent US7421485 - Processing configuration group information to display or generate configuration information, such as hierarchical configuration information for use by a data forwarding deviceAdvanced Patent SearchPublication numberUS7421485 B2Publication typeGrantApplication numberUS 11/487,804Publication dateSep 2, 2008Filing dateJul 17, 2006Priority dateFeb 26, 2001Fee statusPaidAlso published asUS7096256, US20060259654Publication number11487804, 487804, US 7421485 B2, US 7421485B2, US-B2-7421485, US7421485 B2, US7421485B2InventorsPhilip Austin ShaferOriginal AssigneeJuniper Networks, Inc.Export CitationBiBTeX, EndNote, RefManPatent Citations (2), Referenced by (1), Classifications (10), Legal Events (1) External Links: USPTO, USPTO Assignment, EspacenetProcessing configuration group information to display or generate configuration information, such as hierarchical configuration information for use by a data forwarding deviceUS 7421485 B2Abstract An interface permitting users (i) to create a group (also referred to as a �source�) containing configuration statements and (ii) to direct the inheritance of that group's statements in the rest of the configuration information (also referred to as a �target�). The same group can be applied to different sections of the configuration information. Different sections of one group's configuration statements can be inherited in different places in the configuration information. Supporting such configuration groups allows users to create smaller, more logically constructed configuration files, thereby making it easier to configure and maintain data forwarding device software. For example, users can group together statements that are repeated in many places in the configuration, such as when configuring interfaces, and thereby limit updates to just the group. Users can also use wildcards in a configuration group to allow configuration information of the configuration group to be inherited by any object(s) in the target configuration that matches a wildcard expression.
1. A method for displaying configuration information including a configuration group, the configuration group including a group name and configuration information, the method comprising, for each piece of configuration information:
a) determining whether or not the piece of configuration information is an instruction to apply the configuration group;
b) when it is determined that the piece of configuration information is an instruction to apply the configuration group,
i) replacing the piece of configuration information with the configuration information of the configuration group, and
ii) displaying, with visual emphasis, the configuration information of the configuration group; and
c) when it is determined that the piece of configuration information is not an instruction to apply the configuration group, displaying the piece of configuration information.
2. The method of claim 1 wherein when it is determined that the piece of configuration information is an instruction to apply the configuration group, further displaying the group name of the configuration group.
3. The method of claim 1 wherein the configuration information included in the configuration group includes chassis configuration information.
4. The method of claim 1 wherein the configuration information included in the configuration group includes class-of-service configuration information.
5. The method of claim 1 wherein the configuration information included in the configuration group includes firewall configuration information.
6. The method of claim 1 wherein the configuration information included in the configuration group includes interfaces configuration information.
7. The method of claim 1 wherein the configuration information included in the configuration group includes SNMP configuration information.
8. The method of claim 1 wherein the configuration group consists of a group name and a plurality of configuration statements.
9. A method for generating configuration information for use by a data forwarding device, the method comprising:
c) specifying a point in the target configuration to inherit the configuration information of the configuration group wherein the target configuration is arranged in a hierarchy, and
10. The method of claim 9 wherein when any values are specified at a particular level of the hierarchy of the target configuration, such values will override values that would otherwise be inherited from the configuration group.
11. The method of claim 9 wherein the configuration information includes a wildcard expression, the wildcard expression including a wildcard pattern part and associated wildcard configuration information, and
wherein when an existing statement in the target configuration matches the wildcard pattern, applying the wildcard configuration information from the wildcard expression to the existing statement.
12. The method of claim 9 wherein the configuration group consists of a group name and a plurality of configuration statements.
13. A machine-readable medium storing an instruction set for configuring a data processing device, the instruction set comprising:
c) a third command supporting user input of a point in the target configuration to inherit the configuration information of the configuration group.
wherein the target configuration is arranged in a hierarchy, and
14. The machine-readable medium of claim 13 wherein the first command supports user input of a wildcard expression as configuration information, the wildcard expression including a wildcard pattern part and associated wildcard configuration information, the instruction set further comprising:
d) means for applying the wildcard configuration information from the wildcard expression to an existing statement when the existing statement in the target configuration matches the wildcard pattern.
15. Apparatus for displaying configuration information including a configuration group, the configuration group including a group name and configuration information, the apparatus comprising:
a) means for determining, for a piece of configuration information, whether or not the piece of configuration information is an instruction to apply the configuration group;
b) means, when it is determined that the piece of configuration information is an instruction to apply the configuration group, for replacing the piece of configuration information with the configuration information of the configuration group; and
c) means for displaying
the configuration information of the configuration group with visual emphasis when the piece of configuration information was replaced with the configuration information of the configuration group, and
the piece of configuration information when it is determined that the piece of configuration information is not an instruction to apply the configuration group.
16. The apparatus of claim 15 wherein the means for displaying further display the group name of the configuration group when it is determined that the piece of configuration information is an instruction to apply the configuration group. Description
� 0. RELATED APPLICATIONS This application is a continuation of U.S. patent application Ser. No. 09/793,724, entitled �APPLYING CONFIGURATION GROUP INFORMATION TO TARGET CONFIGURATION INFORMATION�, filed on Feb. 26, 2001 now U.S. Pat. No. 7,096,256 and listing Philip Austin Shafer as the inventor. Benefit to that application is claimed under 35 U.S.C. �� 120. That application is expressly incorporated herein by reference.
� 2. SUMMARY OF THE INVENTION The present invention describes a method for generating configuration information for use by a data forwarding device. The method may (a) define a configuration group including a group name and configuration information, (b) define a target configuration and (c) specify a point in the target configuration to inherit the configuration information of the configuration group. The configuration information may include a configuration statement. A point in the target configuration to inherit the configuration information of the configuration group may be specified by entering an apply-group instruction, which identifies the group name of the configuration group, at the point in the target configuration.
� 3. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a high-level bubble chart diagram of a simple exemplary data forwarding device having a command line user interface with which the present invention may be used.
FIG. 16 a-16 c illustrate exemplary instructions and parameters for a routing-instances part of a set of router configuration information.
� 4. DETAILED DESCRIPTION The present invention involves novel methods, apparatus and data structures for creating and managing configuration information for use by a data forwarding device, such as a router for example. The following description is presented to enable one skilled in the art to make and use the invention, and is provided in the context of particular applications and their requirements. Various modifications to the disclosed embodiments will be apparent to those skilled in the art, and the general principles set forth below may be applied to other embodiments and applications. Thus, the present invention is not intended to be limited to the embodiments shown and the inventor regards his invention as the following disclosed methods, apparatus and data structures and any other patentable subject matter.
� 4.1 Exemplary Environments in Which the Present Invention May Operate The present invention may be used in (or with) a data forwarding device. Two exemplary data forwarding devices are introduced in �� 4.1.1 and 4.1.2 below.
� 4.1.1 First Exemplary Data Forwarding Device FIG. 1 is a high-level bubble chart diagram of a simple exemplary data forwarding device 100. As shown, a data forwarding operation 110 may use information in a forwarding table 120 to forward incoming data (e.g., packets) towards a final destination. For a simple data forwarding device, only these components are needed. However, in many data forwarding devices, the forwarding table 120 may be generated and updated by an optional (as indicated by phantom lines) path-to-forwarding information translation operation 130. The path-to-forwarding information translation operation 130 may perform its generation and update functions based on an optional (as indicated by phantom lines) path (e.g., routing) table 140 and device configuration information 150. The path (e.g., routing) table 140 may be generated by an optional (as indicated by phantom lines) path (e.g., route) determination operation 160 based on network state (e.g., link state) information, as well as device configuration information 150. For example, the path determination operation 160 may operate in accordance with known routing protocols to populate a routing table.
� 4.1.2 Second Exemplary Data Forwarding Device FIG. 2 is a high-level bubble chart diagram of an exemplary data forwarding device 200. The data forwarding device 200 may include a data (e.g., packet) forwarding facility 210 and a path (e.g., route) determination facility 260. Basically, the data forwarding facility 210 may function to forward data towards its ultimate destination, and the path determination facility 260 may function to generate and/or update a forwarding table 120′ based on path (e.g., route) determinations.
� 4.2 Functions That May Be Performed by the Present Invention The present invention may function to help users create smaller, more logically constructed configuration files, thereby simplifying the configuration and maintenance of software used by data forwarding devices, such as routers for example.
� 4.3 Exemplary Operations, Architecture, Methods nd Data Structures Operations that may be performed by the present invention are introduced in the following. Exemplary methods, data structures, and apparatus that may be used to effect such operations, are described in the following.
� 4.3.1 Exemplary Operations and Data Structures FIG. 3 is a high-level bubble diagram that illustrates exemplary command line user interface operations 170′″, of which the present invention may be a part. As was the case in the exemplary embodiment of FIG. 2, the command line user interface operations 170′″ may include user login and authentication operations 271′, configuration operations 272′ and control instruction edit operations 276′. The control instruction edit operations 276′ may be a part of operational mode operations 274. As shown, the configuration operations 272′ may include a �create configuration groups� operation 310, an �apply configuration groups� operation 320, a �display inheritance� operation 330 and an �optional overwrite� operation 340.
The display inheritance operation 330 may be used to display and visually emphasize (e.g., by pretending a double-pound symbol�## to inherited information) configuration statements and/or parameter values of an expanded sub-configuration that were inherited from a configuration group 452. Such inherited configuration statements and/or values may be rendered to a user via a display device 410. In one embodiment, inheritance is displayed by piping a �show� command through a �display inheritance� command.
FIG. 8 illustrates exemplary statements and parameters for a chassis configuration part 605 of an exemplary router configuration 150″. FIG. 9 illustrates exemplary statements and parameters for a class-of-service configuration part 610 of an exemplary router configuration 150″. FIG. 10 illustrates exemplary statements and parameters for a firewall configuration part 615 of an exemplary router configuration 150″. FIG. 11 illustrates exemplary statements and parameters for a forwarding options configuration part 620 of an exemplary router configuration 150″. FIG. 12 illustrates exemplary statements and parameters for a groups configuration part 625 of an exemplary router configuration 150″. FIG. 13, which includes FIGS. 13 a through 13 d, illustrates exemplary statements and parameters for an interfaces configuration part 630 of an exemplary router configuration 150″. FIG. 14 illustrates exemplary statements and parameters for a policy options configuration part 635 of an exemplary router configuration 150″. FIG. 15, which includes FIGS. 15 a through 15 k, illustrates exemplary statements and parameters for a protocols configuration part 640 of an exemplary router configuration 150″. FIG. 16, which includes FIGS. 16 a through 16 c, illustrates exemplary statements and parameters for a routing-instances configuration part 645 of an exemplary router configuration 150″. FIG. 17, which includes FIGS. 17 a through 17 c, illustrates exemplary statements and parameters for a routing-options configuration part 650 of an exemplary router configuration 150″. FIG. 18 illustrates exemplary statements and parameters for a simple network management protocol configuration part 655 of a router configuration 150″. Finally, FIG. 19 illustrates exemplary statements and parameters for a system configuration part 660 of an exemplary router configuration 150″.
protocols{ ospf{ area 0.0.0.0{ interface so-0/0/0{hello interval 5; } interface so-0/0/1{hello interval 5; } } } } is illustrated by the tree 640′ of FIG. 7.
� 4.3.2 Exemplary Methods for Configuration Operations FIG. 5 is a high-level flow diagram of an exemplary method 272″ that may be used to effect configuration operations 272′. As depicted in block 505 input (e.g., entered keystrokes) is accepted. Collectively, these inputs can correspond to configuration information.
groups { group-name { configuration-data; } } The �group-name� is the name of a configuration group. To configure multiple groups, more than one �group-name� are specified. The �configuration-data� contains the configuration statements applied elsewhere in the configuration with the apply-groups statement, to have the target configuration inherit the statements in the group.
apply-groups [ eight nine ten ] ;
apply-groups [ five six ] ;
apply-groups [ one two three ] ;
Referring once again to decision branch point 510, if the decoded input indicates an �expand configuration� line, for each line of the configuration information, as indicated by loop 541-547, it is determined whether or not the line is an �apply group� instruction, as indicated by decision branch point 543. If so, the lines of the configuration group �group-name� specified in the �apply group� instruction are retrieved.
Although not shown in FIG. 5, wildcards may be used to identify names and allow one (source) statement (e.g., in a configuration group) to provide data for a variety of (target) statements. For example, in the context of a router, grouping the configuration of the sonnet-options statement over all SONET/SDH interfaces or the dead interval for OSPF over all ATM interfaces simplifies the creation and maintenance of configuration files for a router. Wildcarding in normal configuration data may be done using the following met characters:
Asterisk (*)�Matches any string of characters. Question mark (?)�Matches any single character. Open bracket ([)�Introduces a character class. Close bracket (])�Indicates the end of a character class. If the close bracket is missing, the open bracket matches a [ ]rather than introducing a character class. A character class matches any of the characters between the square brackets. Character classes must be enclosed in quotation marks (��). Hyphen (-)�Specifies a range of characters. Exclamation point (!)�The character class can be complemented by making an exclamation point the first character of the character class. To include a �]� in a character class, make it the first character listed (after the �!�, if any). To include a minus sign, make it the first or last character listed. Wildcarding in configuration groups may use the same rules, but the wildcard pattern should be specially indicated by the user (e.g., enclosed in angle brackets (<pattern>)) to differentiate it from other wildcarding in the configuration file. For example:
[edit] groups { sonet-default { interfaces { <so-*> { sonet-options { payload-scrambler; rfc-2615; } } } } } Wildcard expressions match (and provide configuration data for) existing statements in the configuration that match their expression only. In the example above, the expression <so-*> passes its sonnet-options statement to any interface that matches the expression so-*.
Once again referring back to decision branch point 510, if the decoded input indicates a �display inheritance� (e.g., �show display inheritance�) line, for each line of the configuration information, as indicated by loop 561-569, it is determined whether or not the line is an �apply group� instruction as indicated by decision branch point 563. If so, the line that is inherited is visually emphasized, as indicated by block 567. The group-name from which the line was inherited may also be visually indicated. If, on the other hand, the line is not an �apply group� instruction, it is simply displayed as it would be under normal circumstances, as indicated by block 565.
� 4.3.3 Exemplary Hardware Architectures FIG. 20 is high-level block diagram of a machine 2000 which may effect one or more of the operations, and store one or more of the data structures, discussed above. The machine 2000 basically includes a processor(s) 2010, an input/output interface unit(s) 2030, a storage device(s) 2020, and a system bus(es) and/or a network(s) 2040 for facilitating the communication of information among the coupled elements. An input device(s) 2032 and an output device(s) 2034 may be coupled with the input/output interface(s) 2030. Operations of the present invention may be effected by the processor(s) 2010 executing instructions. The instructions may be stored in the storage device(s) 2020 and/or received via the input/output interface(s) 2030. The instructions may be functionally grouped into processing modules.
� 4.4 Operational Examples in Exemplary Embodiments Operational examples of creating and applying configuration groups, using wildcards, configuring sets of statements, configuring interfaces, configuring peer entities and establishing regional configurations are described in �� 4.4.1 through 4.4.6 below.
� 4.4.1 Operational Example of Create and Apply Configuration Groups Operations In this example, the simple network management protocol (�SNMP�) part of a router configuration is divided between the group basic and the normal configuration hierarchy. There are a number of advantages to placing the system-specific configuration (SNMP contact) into a configuration group and thus separating it from the normal configuration hierarchy. For example, the user can replace (using the load replace command) either section without discarding data from the other. In addition, setting a contact for a specific box is now possible because the group data would be hidden by the router-specific data.
� 4.4.2 Operational Example of Use Wildcards Operation The following example demonstrates the use of wildcarding. The interface �so-0/0/0� inherits data from the various SONET/SDH interface wildcard patterns in group �one�.
� 4.4.3 Operational Example of Configuring Sets of Statements When sets of statements exist in configuration groups, all values may be inherited. For example:
interface [ so-0/0/0.0 so-1/1/1.0 ] ;
� 4.4.4 Operational Example of Continuing Interfaces In a router, configuration groups may be used to separate common interface media parameters from interface-specific addressing information. The following example places configuration data for asynchronous transfer mode (�ATM�) interfaces into a group called atm-options:
� 4.4.5 Operational Example of Configuring Peer Entities In the following example, a group �some-isp�, that contains configuration data relating to another Internet service provider (�ISP�), is created. Apply-group statements may then be inserted at any point to allow any location in the configuration hierarchy to inherit this data.
## �remove-private� was inherited from group �some-isp�
� 4.4.6 Operational Example of Establishing Regional Configurations In the following example, one group is populated with configuration data that is standard throughout the company while another group contains regional deviations from this standard.
� 4.5 CONCLUSIONS As can be appreciated from the foregoing disclosure, by supporting configuration groups, the present invention allow users to create a (source) group containing configuration statements and to direct the inheritance of that group's statements at one or more places in the rest of the configuration (target). The same group can be applied to different sections of the configuration and different sections of one group's configuration statements can be inherited in different places in the configuration. In this way, configuration groups allow users to create smaller, more logically constructed configuration files, making it easier to configure and maintain, e.g., router, software. For example, users can group together statements that are repeated in many places in the configuration, such as when configuring interfaces, and thereby limit updates to just the group.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS6009081 *Sep 3, 1997Dec 28, 1999Internap Network ServicesPrivate network access point router for interconnecting among internet route providersUS6772204 *Oct 5, 1998Aug 3, 2004Hewlett-Packard Development Company, L.P.Method and apparatus of providing a configuration script that uses connection rules to produce a configuration file or map for configuring a network device* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS7818790 *Sep 20, 2006Oct 19, 2010Erf Wireless, Inc.Router for use in a monitored network* Cited by examinerClassifications U.S. Classification709/220, 709/250, 710/8, 709/221International ClassificationG06F15/177, G06F3/00Cooperative ClassificationH04L41/0893, H04L41/0213, H04L2012/5685European ClassificationH04L41/08FLegal EventsDateCodeEventDescriptionMar 2, 2012FPAYFee paymentYear of fee payment: 4RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google