Method and system for facilitating automatic annotation and dynamic display of switch configuration
The configuration management system performs preprocessing and label annotation on the switch configuration file, and dynamically generates directory entries, which solves the problem of switch configuration file navigation and management in the existing technology, and achieves efficient configuration management and navigation.
Patent Information
- Application Number
- CN202111244454.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-04-29
- Filing Date
- 2021-10-26
- Publication Date
- 2025-01-24
- Estimated Expiration
- 2041-10-26
AI Technical Summary
The prior art is difficult to effectively navigate and manage a large number of configuration commands in switch configuration files, resulting in administrators facing the risk of difficulties and errors during configuration and modification.
The switch configuration file is preprocessed through the configuration management system (CMS), the line specifications in the switch syntax are used to match configuration commands, and the configuration file is annotated with tags to dynamically generate table of contents (ToC) entries to achieve dynamic management and navigation of configuration files.
It improves the efficiency of administrators in navigating and managing switch configuration files and reduces the occurrence of errors. Through the use of labels and ToC, administrators can quickly locate and modify the required configuration commands.
Smart Images

Figure CN115277402B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to communication networks and more particularly to methods and systems for facilitating automatic annotation and dynamic display of switch configurations. BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Figure 1 An exemplary network is shown that facilitates automatic annotation and dynamic display of switch configurations according to an embodiment of the present application.
[0003] Figure 2A Exemplary automatic annotation of a switch configuration file and dynamic entry generation of a table of contents (ToC) of a switch configuration according to an embodiment of the present application are shown.
[0004] Figure 2B An exemplary generation of sub-tags for automatic annotation of a switch configuration file and dynamic entry generation of a ToC according to an embodiment of the present application is shown.
[0005] Figure 2C An exemplary generation of reference tags in a switch configuration file according to an embodiment of the present application is shown.
[0006] Figure 2D An exemplary generation of distributed tags for automatic annotation of switch configuration files and dynamic entry generation of ToC according to an embodiment of the present application is shown.
[0007] Figure 2E An exemplary selective display of a switch configuration file and a ToC based on annotations and references according to an embodiment of the present application is shown.
[0008] Figure 3A An exemplary tag-based rendering of a switch configuration according to an embodiment of the present application is shown.
[0009] Figure 3B An exemplary regular expression-based rendering of a switch configuration according to an embodiment of the present application is shown.
[0010] Figure 4A The flowchart shows a process of a configuration management system parsing a switch configuration file to perform automatic annotation and dynamically generating corresponding entries in a ToC according to an embodiment of the present application.
[0011] Figure 4B A flowchart of a process in which a configuration management system according to an embodiment of the present application parses a switch configuration file based on a regular expression and dynamically generates corresponding entries in a ToC is shown.
[0012] Figure 4CA flowchart illustrating a process of generating a reference tag in a switch configuration file by a configuration management system according to an embodiment of the present application is presented.
[0013] Figure 4D A flowchart illustrating a process of a configuration management system selectively displaying switch configuration files and corresponding entries in a ToC according to an embodiment of the present application is presented.
[0014] Figure 5A A flow chart illustrating a process of generating a row specification group for a grammar of a switch by a configuration management system according to an embodiment of the present application is presented.
[0015] Figure 5B A flow chart illustrating a process of generating a regular expression for a switch grammar of a switch by a configuration management system according to an embodiment of the present application is presented.
[0016] Figure 6 An exemplary computer system that facilitates a configuration management system according to an embodiment of the present application is shown.
[0017] Figure 7 An exemplary device that facilitates configuration management system according to an embodiment of the present application is shown.
[0018] In the drawings, like reference numerals refer to the same drawing elements. DETAILED DESCRIPTION
[0019] The following description is intended to enable those skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Therefore, the present invention is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the claims.
[0020] Overview
[0021] The Internet is a delivery medium for various applications running on physical and virtual devices. Such applications bring about an ever-increasing business demand. Therefore, equipment vendors compete to build switches with multiple functions. To this end, switches can run different protocols and services. Network administrators may need to configure protocols and services, each of which may require a large number of configuration commands. Generally, a switch configuration file may be used to store configuration commands. Lines in the configuration file may correspond to configuration commands (e.g., configuration commands in text form). When the switch starts, the switch may parse the configuration file and configure protocols and services based on the lines of the configuration file. In this way, the switch can conveniently facilitate the control plane and the data plane based on the configuration file.
[0022] Switch configuration files can become large due to the large number of configuration commands that may be included in the configuration files. For example, it is not uncommon for configuration files to contain thousands of lines of configuration commands. In order to review or modify the configuration of a switch, an administrator may prefer to view the contents of a configuration file. An administrator can use an interface (such as a graphical user interface (GUI)) that can display configuration files. However, the configuration commands in the configuration files may not be organized. Therefore, it can be cumbersome to navigate through a large number of lines of text. Even if the configuration commands are organized, the administrator may need to know specific phrases of the commands to search the configuration files. Although a GUI can bring many desirable features to displaying configuration files, some issues regarding locating relevant commands in the configuration files of a switch remain unresolved.
[0023] One embodiment of the present technology provides a system for dynamically managing configuration files of a switch. During operation, the system can determine one or more groups of line specifications in a specification file. The corresponding line specifications can indicate the format of corresponding variations of configuration commands of the switch. The system can then annotate the corresponding groups in the specification file with corresponding tags. Subsequently, the system can associate corresponding configuration commands of the configuration file with the tags of the groups based on matching the configuration commands with the groups.
[0024] In a variation of this embodiment, the system may match configuration commands with groups by matching the configuration commands with regular expressions of the groups.
[0025] In a further variation, the system can generate a regular expression based on the keyword and unique identifier of the group's row specification. The system can then incorporate the regular expression into the specification file.
[0026] In a variation of this embodiment, the system can match configuration commands to groups by matching the configuration commands to the format indicated by the groups.Then, the system can use tags to annotate configuration commands in the configuration file.
[0027] In further variations, the system may identify the plurality of configuration commands with the group and annotate the plurality of configuration commands with the label.
[0028] In a variation of this embodiment, the system may associate a configuration command with an entry of a directory of configuration files. Here, an entry may correspond to a group.
[0029] In a further variation, the system may selectively display in a graphical user interface (GUI) one or more configuration commands associated with a tag in the configuration file in response to input of an entry of the directory.
[0030] In further variations, the system may identify subcommands of the configuration command. The system may also annotate the subcommands with subtags within the context of the tag. The system may then generate subentries under the entry in the directory.
[0031] In a variation of this embodiment, the system may group multiple non-contiguous configuration commands associated with a tag into adjacent lines of the configuration file.
[0032] In a variation of this embodiment, the system can annotate a first configuration command that declares a configuration object with a first tag. The system can also annotate a second configuration command that references the configuration object with a second tag. The system can then link the first tag to the second tag.
[0033] In a variation of this embodiment, the system can determine one or more groups by determining a level of match between one or more terms in a line specification and one or more other line specifications. If the level of match is greater than a threshold, the system can group the line specification with the one or more other line specifications.
[0034] Embodiments described herein address the problem of efficiently navigating different parts of a switch configuration file by (i) annotating the configuration file with tags based on the switch syntax; and (ii) dynamically generating a table of contents (ToC) entry based on the tags. The switch syntax may indicate the format of a corresponding line (e.g., a configuration command) of the configuration file. The configuration management system may allow an administrator to use the ToC to navigate different parts of the configuration file.
[0035] Configuration files may include thousands of lines for different services and protocols deployed by the switch. Therefore, navigating the configuration files may be challenging. Using existing techniques, administrators can use a text editor to view the configuration files. The editor may be equipped with a scroll bar that can be used to scroll up or down to view different parts of the configuration file. The scroll bar may be annotated with pop-up help, which may indicate page numbers, section titles, or a small thumbnail view of the current view content. The editor may also allow administrators to search for specific text in the configuration file. By accessing matching instances (e.g., by providing input about them), the corresponding text can be located within the configuration file. In addition, if the configuration file is annotated with markers indicating titles and subtitles, the editor may incorporate the annotations into the table of contents. However, some of these techniques may require manual intervention. In addition, even using these techniques, navigating in the configuration file may still be cumbersome.
[0036] To address this issue, the editor can be enhanced with a configuration management system (CMS). The system can pre-process the text of the configuration file before presenting the text to the administrator. The processing can include matching the corresponding lines of the configuration file with the syntax definitions in the switch syntax and creating merge and overlay views for all documents in the session. The syntax of the switch can be stored in a syntax file and indicate the format of the corresponding configuration commands supported by the switch. The syntax can include a set of line specifications, each of which can indicate the format of all variants of the configuration command, including a unique identifier (or word) and keywords. The line specification can be called a line specification (linespec). Since the syntax file stores the line specifications, the syntax file can also be called a specification file.
[0037] In some embodiments, the system can parse the grammar and determine similar line specifications that may appear adjacent to each other within the grammar. The system can then assign common labels to the grouped line specifications. The grouped line specifications can be referred to as a line specification group. The system can group multiple line specifications if the number of words and keywords shared by the corresponding commands exceeds a threshold. The system may maintain an exclusion list to prevent known commands with similar appearances from being grouped. For example, there may be multiple commands corresponding to server settings (e.g., related to ports, descriptions, locations, and contacts associated with the settings).
[0038] If the number of words and keywords associated with a command for server setup exceeds a threshold, the system can group the corresponding line specifications into a single "server setup" line specification group. The system can then assign a single tag to the line specification group. The system can also include other group features in the grammar, such as group priorities (e.g., for priority-based sorting relative to other groups) and regular expressions representing line specification groups. Based on the grouping, a line specification group in the grammar can include a single line specification labeled with a tag. Therefore, a tag can correspond to one or more line specifications in the grammar. After incorporating the tags into the grammar, the system can parse the configuration file of the switch.
[0039] To present the preprocessed configuration file to the user, the system can match the corresponding lines of the configuration file to the line specification of the syntax. Once the match is completed, the editor can display the resulting configuration file to the administrator as a rich and editable document. In response to the corresponding edits to the configuration file, the system can repeat the preprocessing operation. To further enhance the preprocessing operation, the system can dynamically generate tags (or tags) corresponding to the tags that match the line specification and annotate the configuration file with the tags. If multiple configuration lines (i.e., configuration commands) in the configuration file match the same line specification, the system can associate these configuration lines with the same tag.
[0040] For example, multiple configuration lines associated with different virtual local area networks (VLANs) may match the same line specification associated with the configuration of the VLANs. Based on the match, the system can obtain a tag corresponding to the VLAN from the syntax and annotate the configuration line with the tag. If command lines with tags are sparsely defined in the configuration file, the system can update the configuration file so that the configuration lines are merged or adjacent. In this way, the system can sort the configuration file based on the order of matches to the syntax line specifications. Therefore, by marking the first instance of a line specification match, the system can insert tags in the configuration file where subsequent instances of the line specification match may occur.
[0041] In addition, the system can also dynamically generate a ToC based on a combination of the text of the annotated configuration line and the corresponding line specification in the grammar. When multiple configuration lines correspond to the same line specification, the system can use a unique phrase to generate a subtitle. For example, if the system annotates multiple configuration lines with tags corresponding to VLANs, the system can generate a ToC entry for the VLAN. Assume that a tag associated with "VLAN" annotates the configuration lines of VLANx, y, and z. Then, the system can generate a ToC entry with subtitles for VLAN x, y, and z. By annotating the configuration file with tags that match the corresponding line specifications and generating a ToC, the system can allow users to efficiently navigate different parts of the configuration file.
[0042] In this disclosure, the word "switch" is used in a general sense, and it can refer to any stand-alone or structural switch operating in any network layer. "Switch" should not be interpreted as limiting the embodiments of the present invention to Layer 2 networks. Any device that can forward traffic to external devices or other switches can be referred to as a "switch". Any physical or virtual device that can forward traffic to a terminal device (such as a virtual machine or switch running on a computing device) can be referred to as a "switch". Examples of "switch" include, but are not limited to, a Layer 2 switch, a Layer 3 router, a routing switch, a component of a Gen-Z network, or a structural switch containing multiple similar or heterogeneous smaller physical and / or virtual switches.
[0043] The word "packet" refers to a group of bits that can be transmitted together through a network. "Packet" should not be interpreted as limiting embodiments of the present invention to layer 3 networks. "Packet" can be replaced by other words referring to a group of bits, such as "message", "frame", "cell", "datagram" or "transaction". In addition, the word "port" can refer to a port that can receive or transmit data. "Port" can also refer to hardware, software and / or firmware logic that can facilitate the operation of the port.
[0044] Network Architecture
[0045] Figure 1An exemplary network that facilitates automatic annotation and dynamic display for switch configuration according to an embodiment of the present application is shown. Network 100 may include switches 102, 104, and 106. Network 100 may also include a management device 108 coupled to switch 104 (e.g., via one or more links and / or nodes). Management device 108 may allow a user 120 (e.g., a network administrator) to configure a corresponding switch of network 100, such as switch 104. In some embodiments, network 100 is a Gen-Z network, and a corresponding switch of network 100, such as switch 104, is a Gen-Z component. In this case, communication between switches in network 100 is based on memory semantic communication. Each packet forwarded via network 100 may be referred to as a transaction, and the corresponding data unit may be a flit. In some further embodiments, network 100 may be an Ethernet, InfiniBand, or other network, and a corresponding communication protocol may be used, such as Internet Protocol (IP), Fibre Channel over Ethernet (FCoE), or other protocols.
[0046] The configuration file 112 of the switch 104 may include the configuration upon which the switch 104 operates. The configuration file 112 may include thousands of lines for different services and protocols deployed by the switch 104. Therefore, navigating the configuration file 112 may be challenging. Using existing techniques, the user 120 may use a text editor to view the configuration file 112. The editor may be equipped with a scroll bar that may be used to scroll up or down to view different portions of the configuration file 112. The scroll bar may be annotated with pop-up help that may indicate a page number, a section title, or a small thumbnail view of the contents of the current view of the configuration file 112.
[0047] The editor may also allow the user 120 to search for specific text in the configuration file 112. By accessing matching instances (e.g., by providing input about them), the corresponding text may be located within the configuration file 112. In addition, if the configuration file 112 is annotated with tags indicating headings and subheadings, the editor may incorporate the annotations into the table of contents. However, some of these techniques may require manual intervention. Moreover, even using these techniques, navigating through the configuration file 112 may still be cumbersome. Therefore, configuring a large number of switches in the network 100 by editing lines of corresponding configuration files may be error-prone and tedious.
[0048] To address this issue, the configuration management system 140 can present an enhanced version of the configuration editor on the interface 110. Examples of the interface 110 can include, but are not limited to, a text interface (e.g., a command line interface or CLI), a graphical user interface (GUI), a virtual or augmented reality interface, an interface based on voice commands, and an interface based on gestures. The system 140 can run on the switch 104 or the management device 108 (e.g., as a configuration server). The system 140 can also operate in a client-server mode and operate on both the switch 104 and the management device 108. The system 140 can pre-process the text of the configuration file 112 before presenting the text to the user 120. The processing can include matching the corresponding lines of the configuration file 112 with the grammar definitions in the switch grammar 114, and creating merged and overlay views for all documents in the session. Since the grammar 114 stores line specifications, the grammar 114 can also be referred to as a specification file.
[0049] The grammar 114 may store a switch grammar, which may indicate the format of a corresponding line of the configuration file 112 (e.g., a configuration command). In other words, the grammar 114 may indicate the format of a corresponding configuration command supported by the switch 104. The switch grammar in the grammar 114 may include a set of line specifications, each of which may indicate the format of all variants of a configuration command, including a unique identifier and a keyword. The line specifications of the grammar 114 may be referred to as line specifications. For example, a configuration command for configuring a VLAN with an identifier of 100 in the switch 104 may be "vlan 100" or "VLAN 100". Here, "VLAN" may be a keyword and "100" may be a unique identifier because "100" uniquely identifies the configured VLAN.
[0050] To present the pre-processed version of the configuration file 112 to the user 120, the system 140 may match the corresponding lines of the configuration file 112 with the line specifications in the grammar 114. The interface 110 may then display the pre-processed configuration file 112 to provide the user 120 with a rich and editable document. In response to the corresponding edits to the configuration file 112 via the interface 110, the system 140 may repeat the pre-processing operation. To further enhance the pre-processing operation, the system 140 may annotate one or more line specifications with a tag. The tag may indicate the type of configuration command indicated by the line specification. For example, if the line specification set indicates the format of a configuration command that can configure a VLAN in the switch 104, the system 140 may annotate the line specification with a "VLAN" tag. After incorporating the tags into the grammar 114, the system 140 may parse the configuration file 112. The system 140 may dynamically generate tags corresponding to the tags of the matching line specifications and annotate the configuration file 112 with the tags. If multiple configuration lines (i.e., configuration commands) in the configuration file 112 match the same line specification, the system 140 may associate the configuration lines with the same tag.
[0051] For example, multiple configuration lines associated with different VLANs configured for the switch 104 may match the same line specification associated with the configuration of the VLANs. Based on the match, the system 140 may obtain the VLAN tag from the grammar 114 and annotate the configuration line with the VLAN tag. If the command lines with the VLAN tag are sparsely defined in the configuration file 112, the system 140 may update the configuration file 112 so that the configuration lines are combined in the configuration file 112 or adjacent in the configuration file 112. In this way, the system 140 may sort the configuration file 112 based on the order in which the line specifications are matched. Therefore, by marking the first instance of a line specification match, the system 140 may insert a tag in the configuration file 112 where subsequent instances of the line specification match may occur. In addition, the system 140 may also dynamically generate the ToC 116 based on the combination of the text of the annotated configuration line in the configuration file 112 and the corresponding line specification in the grammar 114.
[0052] In some embodiments, the system 140 may allow the user 120 to define tags (or sub-tags) for configuration lines in the configuration file 112. The system 140 may then record and store the user-defined tags associated with the configuration lines. The system 140 may use the user-defined tags when the configuration file 112 is displayed on the interface 110. For example, the user 120 may annotate the configuration file 112 with user-defined tags to specify ports to an administrator. For such user-defined tags, the system 140 may sort the tags based on the configuration of the switch 104. The user 120 may also define tags that may apply to all configuration lines that map to the same row specification of the grammar 114.
[0053] Figure 2A An exemplary automatic annotation of a switch configuration file and dynamic entry generation of a ToC of a switch configuration according to an embodiment of the present application is shown. To annotate the configuration file 112, the system 140 can determine a set of tags for annotation. In some embodiments, the system 140 can parse the grammar 114 and determine similar line specifications that may appear adjacent to each other within the grammar 114. The system can then assign a common tag to the grouped line specifications (or line specification groups). For example, the grammar 114 can include multiple line specifications for different configuration elements, such as:
[0054]
[0055] System 140 may determine line specifications for different configuration commands that may configure a Simple Network Management Protocol (SNMP) on switch 104. System 140 may then group these line specifications into a common "GROUP_SNMP" line specification group that indicates the format of SNMP configuration commands and annotate the line specification group with a tag 206 corresponding to SNMP.
[0056] The system 140 may group multiple row specifications of the grammar 114 if the number of words and keywords that the corresponding commands have in common exceeds a threshold. The system 140 may maintain an exclusion list to prevent known similar-looking commands from being grouped. In the above example, since common words and keywords in configuration commands associated with SNMP may exceed a threshold, the system 140 may group the corresponding row specifications. Therefore, the system 140 may then assign a single label 206 to the row specification group. The system may also include other group features in the grammar 114, such as a group priority (e.g., for priority-based sorting relative to other groups) and a regular expression representing a row specification group.
[0057] In some embodiments, the system 140 may generate a group table in the grammar 114 and store information associated with the corresponding row specification groups in the table, such as group names, corresponding labels, and group features. For example, the grammar 114 may include the following group table:
[0058]
[0059] Here, the label 206 of the "GROUP_SNMP" line specification group may be "SNMP". Based on the grouping, a line specification group in the grammar 114 may include a single line specification marked with a label. Thus, a label may correspond to one or more line specifications in the grammar 114. After incorporating the label into the grammar 114, the system 140 may parse the configuration file 112.
[0060] The system 140 may then match the corresponding lines of the configuration file 112 with the line specifications of the grammar 114. The system 140 may dynamically generate a tag corresponding to the matched line specifications and annotate the configuration file 112 with the tag. If multiple configuration lines in the configuration file 112 may match the same set of line specifications in the grammar 114, the system 140 may annotate the configuration lines with the corresponding tags. For example, multiple configuration lines in the configuration block 200 of the configuration file 112 may match the same set of line specifications associated with the VLAN configuration. Based on the match, the system 140 may obtain the tag 202 from the grammar 114 and annotate the configuration line in the configuration block 200 with the corresponding tag 204. Similarly, the system 140 may obtain the tag 206 from the grammar 114 and annotate the matched configuration line with the corresponding tag 208. In some embodiments, the tags 202 and 204 may be the same tag. The system 140 may also maintain a mapping between the tags 202 and 204. In this way, the interface 110 may allow for quick navigation between the configuration file 112 and the grammar 114.
[0061] If the command lines with the VLAN tag 204 are sparsely defined in the configuration file 112, the system 140 can update the configuration file 112 so that the configuration lines are grouped or made adjacent in the configuration block 200. Similarly, the system 140 can update the configuration file 112 so that the configuration lines associated with the interface are grouped or made adjacent. In this way, the system 140 can sort the configuration file 112 based on the order of matching the line specifications of the grammar 114. For example, if the line specification of the VLAN appears before the line specification of the interface in the grammar 114, the configuration line of the VLAN can appear before the configuration line of the interface in the configuration file 112. In other words, the order in which the line specification groups appear in the grammar 114, the corresponding configuration lines can appear in the configuration file 112 in the same order.
[0062] Thus, by marking the first instance of a line specification match, such as a VLAN line specification match, the system 140 can insert a tag 204 in the configuration file 112 where subsequent instances of VLAN line specification matches may occur (i.e., subsequent lines of the configuration block 200). In addition, the system 140 can also dynamically generate the ToC 116 based on a combination of the text of the configuration file 112 and the corresponding line specifications in the grammar 114. For example, the system 140 can obtain the keyword "VLAN" from the configuration line associated with the tag 204 and generate a corresponding ToC entry 200 for VLAN. Similarly, the system 140 can obtain the keyword "SNMP" from the configuration line associated with the tag 208 and generate a corresponding ToC entry 212 for SNMP.
[0063] In addition, when multiple configuration lines correspond to the same line specification group, the system 140 can generate a sub-heading (or sub-entry) using a unique phrase (e.g., a word and an identifier). For example, if the system 140 annotates multiple configuration lines with a tag 204 corresponding to a VLAN, the system 140 can generate a ToC entry 210 for the VLAN. In the configuration file 112, the tag 204 is associated with "VLAN" and annotates the configuration lines of VLANs 100, 200, and 300. Since the unique identifiers of the VLANs are 100, 200, and 300, the system 140 can generate a ToC sub-entry with a sub-heading for VLANs 100, 200, and 300. For example, since the configuration block 200 includes the configuration of VLAN 300, the system 140 can generate a sub-entry 214 for VLAN 300 under the entry 210 for VLAN. By annotating the configuration file 210 with tags that match the corresponding line specifications in the grammar 114 and generating the ToC 116, the system 140 can allow the user 120 to efficiently navigate different parts of the configuration file 112 via the interface 110. For example, user 120 may select entry 210 from ToC 116 , which may move the current view of interface 110 to include code block 200 . Additionally, system 140 may also highlight code block 200 in interface 110 .
[0064] When the corresponding line specifications in the grammar 114 are not completely consistent, the system 140 can also map similar but not equal words. For example, the system 140 can identify that "vlan([0-9]+)" can correspond to "vlan\1" and "(attribute|advertise|suppress)-map(\w+)" can correspond to "route-map\1". Here, the special character "\1" can refer to "match the first line specification group of the regular expression", and the special character "\w" can refer to "any string with [A-Za-z0-9_]".
[0065] Figure 2BAn exemplary generation of sub-tags for automatic annotation of switch configuration files and dynamic entry generation of ToC according to an embodiment of the present application is shown. The line specification group of the grammar 114 may correspond to a large number of configuration lines in the configuration file 112. As a result, a single label of the line specification group may not provide sufficient granularity for effective navigation of the configuration file 112. For example, the system 140 may annotate the configuration file 112 with a label 222 indicating "interface" based on the corresponding label 220 of the "GROUP_Interface" line specification group of the grammar 114. However, the user 120 may define a large number of VLAN interfaces for the switch 104 in the configuration block 228. The corresponding VLAN interfaces may correspond to multiple configuration lines in the configuration file 112. Therefore, the label 222 may correspond to a large number of configuration lines in the configuration block 228.
[0066] To provide more fine-grained annotations, the system 140 can parse a unique identifier (e.g., a word or phrase) from a matching line specification to generate a sub-tag within the context of an outer high-order tag. The corresponding configuration line of the configuration block 228 can match the "GROUP_Interface" line specification group of the grammar 114 based on the following line specification:
[0067]
[0068] System 140 may automatically generate a subtag definition based on information from a matching row specification (i.e., a definition from the "GROUP_Interface" row specification group). Since the row specification indicates that the unique identifier should be at index = 2, system 140 may indicate in the subtag definition that the unique identifier should appear at a position corresponding to index value 2. For example, system 140 may generate the following subtag definition for the corresponding VLAN interface:
[0069]
[0070] In the subtag definition, the "subtag" field may indicate the format of the subtag. The format may indicate that the subtag should include the phrase "VLAN" followed by the configuration value at index 2 of the matching configuration line.
[0071] Based on the subtag definition, the system 140 may generate a subtag 224 corresponding to “VLAN 1” for the configuration line with “interface vlan 1”. Similarly, the system 140 may generate a subtag 226 corresponding to “VLAN 999” for the configuration line with “interface vlan999”. For the corresponding subtags, the system 140 may also generate subentries with subtitles in the ToC 116. For the entry 216 of “Interface” in the ToC 116, the system 140 may generate subentries with corresponding subtitles, which indicate the corresponding VLAN interface in the configuration block 228. For example, for the subtag 226, the system 140 may generate a subentry 218 of interface VLAN 999 under the entry 216 of the ToC 116.
[0072] In some embodiments, the system 140 may include the reference within the configuration file 112 . Figure 2C An exemplary generation of reference tags in a switch configuration file according to an embodiment of the present application is shown. A configuration line in the configuration file 112 can declare (or define) a configuration object, such as a VLAN or an interface, or reference a declared configuration object. A declaration can be defined as a configuration line that declares (or instantiates) a configuration object for the configuration of the switch 104. A reference can refer to a declaration (i.e., a declaration can be implied from a reference). It should be noted that references to undeclared configuration objects may result in configuration errors.
[0073] For example, configuration file 112 may include a declaration of VLAN 100. Subsequently, configuration file 112 may include a configuration line that may define an interface of VLAN 100, thereby referencing the declaration of VLAN 100. In this way, configuration file 112 may include a large number of references to the declared configuration objects. System 140 may annotate the declaration of VLAN 100 with a declaration tag 232. On the other hand, system 140 may annotate the declaration of interface VLAN 100 with a reference tag 234 that may reference tag 232. Thus, user 120 may navigate from the configuration line of interface VLAN 100 to the declaration of VLAN 100 based on tags 232 and 234 (e.g., by providing input in interface 110). However, if a VLAN interface is defined for a VLAN that has not been declared, system 140 may indicate a configuration error.
[0074] The line specification in the grammar 114 may not include distinguishing features that distinguish references from declarations. Therefore, the system 140 can compare the corresponding configuration line with the line format to determine whether the configuration is a declaration or a reference. If the configuration line begins with one or more keywords followed by a unique identifier, the system 140 can determine that the configuration line is a declaration of a configuration object associated with the unique identifier. On the other hand, if the configuration line includes but does not begin with one or more keywords followed by a unique identifier, the system 140 can determine that the configuration line references a configuration object associated with the unique identifier. The keyword set can indicate the type of declaration or reference.
[0075] Figure 2D An exemplary generation of distributed tags for automatic annotation of switch configuration files and dynamic entry generation of ToC according to an embodiment of the present application is shown. Some configuration lines in the configuration file 112 may correspond to the same tag but may not appear adjacent to each other. As a result, configuration lines corresponding to the same tag or sub-tag may span multiple non-contiguous configuration lines. Figure 2D In the example of FIG. 2 , a tag 242 indicating “ID” is associated with a configuration row that appears in a non-contiguous configuration row. To link different segments of the configuration file 112 associated with the tag 242, the system 140 can generate sub-tags for the corresponding segments of the configuration file 112 and form a link chain between the sub-tags. Therefore, the tag 242 can be a distributed (or split) tag.
[0076] In the configuration file 112, some configuration lines may match line specifications corresponding to both an SNMP server and an identifier. Since some system identifiers are defined in the context of an SNMP server, the system 140 may first organize these configuration lines based on the tags of the SNMP server. The system 140 may then associate the configuration lines associated with the identifiers with tags 242. The system 140 may use sub-tags to link segments of configuration lines. The system 140 may also generate sub-entries for the corresponding configuration lines in the ToC 116, corresponding to the identifiers under the entry 244 of "Identifiers". For example, the system 140 may generate a sub-entry 246 with a corresponding sub-title indicating the identifier of the system contact person regarding the SNMP server. It should be noted that the text of the sub-entry may not be the final phrase of the command line. The sub-entry may include a combination of phrases from a command and external data (e.g., network status) that is not present in the configuration file 112.
[0077] If the user 120 provides input to the ToC 116 via the interface 110 to select the entry 244 (e.g., clicks or touches "identification"), the system 140 can present the configuration rows associated with the label 242. For the corresponding input, the system 140 can navigate from one sub-label to the next sub-label in the sub-label chain. The system 140 can also navigate from one segment of configuration rows to the next non-contiguous segment accordingly. The system 140 can only present the configuration rows associated with the label 242 on the interface 110 (i.e., the current view of the interface 110 is reduced to include the configuration rows associated with the label 242). In this way, even if some related configuration rows appear as non-contiguous segments in the configuration file 112, the system 140 can facilitate efficient navigation of non-contiguous segments based on annotations.
[0078] Figure 2E An exemplary selective display of a switch configuration file and ToC based on annotations and references according to an embodiment of the present application is shown. In order to allow the user 120 to efficiently navigate the configuration file 112, the system 140 can selectively display a simplified view of the configuration file 112 on the interface 110. The simplified view can include only configuration lines associated with a tag or sub-tag selected from the ToC 116. Such a line may include a configuration line annotated with a tag and a reference to the annotated configuration line. The system 140 can also highlight information related to the reference in the selective display. If the selected tag corresponds to a statement, the system 140 can also display a reference to the statement. On the other hand, if the selected tag corresponds to a reference, the system 140 can also display a statement linked to the reference.
[0079] In this way, the selective display can display configuration lines related to the selected tag, subtag, or configuration line. The user 120 can determine whether the selective display is dynamically updated as new lines are selected. For example, if the user 120 selects entry 254 of the ToC 116 corresponding to VLAN 100, the system 140 can display configuration lines related to VLAN 100 in the selective display 250 on the interface 110. Assume that the tag 252 is associated with VLAN 100. The related configuration lines can then include the segment of the configuration file 112 annotated with the tag 252, the configuration lines referenced by the annotated segment, and the configuration lines that reference VLAN 100. The system 140 can provide highlighting 256 (e.g., a declaration of VLAN 100) for the configuration line annotated with the tag 252. Since the entry 254 corresponds to the declaration of VLAN 100, the system 140 can also use highlighting 258 to display the configuration line with a reference to the declaration, which can highlight the reference to VLAN 100.
[0080] Figure 3AAn exemplary tag-based drawing of a switch configuration according to an embodiment of the present application is shown. Operations of the system 140 can be performed at a centralized location (e.g., an access device 108 operating as a management server), a switch 104, or a combination of both. Because switch grammars for the same class of switches are available for switches belonging to that class, switch grammars may not be specific to a single switch. Therefore, the system 140 can modify the grammar 114 with tags at the device 108 (e.g., on the server side) (operation 302). The system 140 can parse the configuration file 112 at the switch 104 or the device 108 (operation 304). It should be noted that once processing is initiated at the switch 104, subsequent steps can be performed at the switch 104.
[0081] Based on the parsing, the system 140 may match the corresponding configuration lines of the configuration file 112 with the line specifications of the grammar 114 (operation 306) and annotate the configuration file 112 with tags accordingly (operation 308), such as in conjunction with Figure 2A The system 140 may also identify references and declarations in the configuration file 112 (operation 310). Based on the annotations, the system 140 may insert links from the identified references to the corresponding declarations (operation 312), such as in conjunction with Figure 2C The system 140 may then draw the configuration file 112 and the ToC 116 (operation 314). The drawing operation includes generating the ToC 116 based on the tags and subtags of the configuration file 112. The ToC 116 may exclude unmatched tags of the grammar 114. Such tags may exist in the grammar 114 but may not match the configuration line of the configuration file 112.
[0082] In some embodiments, system 140 may use regular expressions (regex) to match configuration lines to line specifications. Figure 3B An exemplary regular expression-based drawing of a switch configuration according to an embodiment of the present application is shown. To facilitate regular expression-based matching and drawing, the system 140 may modify the grammar 114 with a tag (operation 322). The system 140 may add a regular expression to the row specification based on the definition specified in the row specification. In other words, the regular expression may be generated from the switch grammar. For example, a regular expression that matches a row specification associated with a VLAN interface may be "^interface vlan[0-9]+". The system 140 may generate the regular expression based on the format of the corresponding configuration command defined in the row specification.
[0083] The system 140 may also include regular expressions for corresponding tags and subtags (operation 324). To generate a regular expression for a tag, the system 140 may combine keywords from a row specification associated with the tag. These keywords may appear verbatim in the regular expression. The regular expression for the unique identifier may correspond to the format of the unique identifier. For example, if the unique identifier can be represented in a numeric format, such as "<1-4094>", the system 140 may indicate "[0-9]+" as the corresponding regular expression. This regular expression may match more values (e.g., 4095 and 5000) than a direct match with the row specification. However, even with multiple matches, the system 140 may efficiently navigate the configuration file 112. Similarly, if the unique identifier can be expressed using alphabetic characters (e.g., a "word" format), the system 140 may indicate "\w+" as the corresponding regular expression. If multiple row specifications are mapped to the same tag, the regular expressions of the corresponding row specifications may be logically merged (e.g., using a logical "OR") into the regular expression.
[0084] The system 140 may parse the configuration file 112 (operation 326) and match the configuration line with the corresponding line specification (or multiple line specifications) based on the regular expression (operation 328). Since the corresponding line of the configuration file 112 can be compared with the regular expression in the grammar 114, the configuration file 112 can be modified without tags and sub-tags, thereby avoiding the need to modify the configuration file 112. The system 140 can then draw the configuration file 112 and the ToC 116 (operation 330). The system 140 can dynamically build the ToC 116 using the regular expressions of the corresponding tags and sub-tags. The system 140 can then navigate the configuration file 112 using the regular expressions associated with the corresponding entries of the ToC 116. For example, if the user 120 selects an entry, the system 140 can use the regular expression of the entry to find an instance in the configuration file 112. By using regular expressions, the system 140 can reduce pre-processing overhead.
[0085] operate
[0086] Figure 4A A flowchart illustrating a process of a configuration management system parsing a switch configuration file for automatic annotation and dynamically generating a corresponding entry in a ToC according to an embodiment of the present application is presented. During operation, the system can select a configuration line by parsing the configuration file (operation 402) and match the configuration line with a corresponding line specification in a grammar (operation 404). The system can identify a tag from the grammar and generate a reference to a corresponding line specification group in the grammar (operation 406). The reference allows the system to navigate to a matching line specification group. The identified tag may include a subtag of another tag.
[0087] The system may then determine whether the configuration row has tag continuity (operation 408). Tag continuity indicates whether the configuration row is associated with the same tag as the previous configuration row. After determining tag continuity for the configuration row, the system may associate the configuration row with a tag incorporated into the configuration file (i.e., the tag used to annotate the previous row) (operation 418). On the other hand, if the configuration row does not have tag continuity, the system may associate the configuration row with the identified tag (operation 410). The system may then determine whether the configuration row requires organization (operation 412). If a previously parsed configuration row was associated with the same tag and the current configuration row is not associated with another alternate tag, the configuration row may require organization.
[0088] If organization is required, the system can identify the previous configuration row(s) associated with the same tag (operation 414) and move the configuration row next to the identified configuration row(s) (operation 416). Upon associating the configuration row with the tag incorporated in the configuration file (operation 418) or if organization is not required (operation 412), the system can determine whether a ToC entry is required for the configuration row (operation 420). If a ToC entry is required, the system can generate a ToC entry for the configuration row (operation 422).
[0089] If a ToC entry is not needed, the system can identify the ToC entry for the configuration row (operation 424). After generating or identifying the ToC entry, the system can establish a bidirectional reference between the label and the ToC entry (operation 426) and determine whether parsing is complete (operation 428). The bidirectional reference allows the user to navigate between the configuration row and the entry. For example, clicking or touching one can navigate to the other. If parsing is complete, the system can continue to select the next configuration row by parsing the configuration file (operation 402).
[0090] Figure 4B A flowchart of a process for a configuration management system according to an embodiment of the present application to parse a switch configuration file based on a regular expression and dynamically generate corresponding entries in a ToC is presented. During operation, the system can select a configuration line by parsing the configuration file (operation 432) and compare the configuration line with a corresponding regular expression in a grammar (operation 434). Then, the system can identify line specification groups and subgroups from the grammar based on the corresponding regular expression (operation 436).
[0091] The system can then determine whether a ToC entry is required for the configuration row (operation 438). If a ToC entry is required, the system can generate a ToC entry for the configuration row (operation 440). If a ToC entry is not required, the system can identify the ToC entry for the configuration row (operation 442). After generating or identifying the ToC entry, the system can establish a bidirectional reference between the label and the ToC entry (operation 444). The system can then determine whether parsing is complete (operation 446). If parsing is complete, the system can continue to select the next configuration row by parsing the configuration file (operation 432).
[0092] Figure 4C A flow chart illustrating a process of generating a reference tag in a switch configuration file by a configuration management system according to an embodiment of the present application is presented. During operation, the system can select a configuration line by parsing the configuration file (operation 452) and determine whether a reference is detected in the configuration line (operation 454). If a reference is not detected, the system can determine whether a declaration is detected (operation 456). If a declaration is detected, the system can annotate the configuration line with a declaration tag of the declared configuration object (operation 458). On the other hand, if a reference is detected, the system can annotate the configuration line with a reference tag of the referenced configuration object (operation 462).
[0093] The system can then determine whether there is a declaration for the reference (operation 464). If there is a declaration for the reference, the system can generate a link from the reference to the declaration (operation 468). The link can be established based on the tag. On the other hand, if the declaration for the reference does not exist, the system can indicate an inconsistency with the reference (e.g., an error can be indicated) (operation 466). When the configuration line is annotated with a declaration tag, an inconsistency is indicated, or a link is generated, or if a declaration or reference is not detected (operation 456, 458, 466, or 468), the system can determine whether parsing is complete (operation 460). If parsing is complete, the system can continue to select the next configuration line by parsing the configuration file (operation 452).
[0094] Figure 4D A flowchart illustrating a process for a configuration management system to selectively display a switch configuration file and a corresponding entry in a ToC according to an embodiment of the present application is presented. During operation, the system can determine a selection from a user interface (e.g., an input to a ToC entry) (operation 482) and determine a configuration line associated with the selection based on a tag or a regular expression (operation 484). The system can then select the relevant configuration line and ToC entry in the configuration file (operation 484). Subsequently, the system can selectively display the selected configuration line and ToC entry via the user interface (operation 488).
[0095] Figure 5AA flow chart illustrating a process for a configuration management system according to an embodiment of the present application to generate a row specification group for a grammar of a switch is presented. During operation, the system can select a row specification by parsing the grammar (operation 502) and compare the row specification to the previous row (operation 504). The system can then determine whether the match is greater than a threshold based on the comparison (operation 506). For example, the threshold can be based on the number of characters or phrases that match. If the match is greater than the threshold, the system can then determine whether there is a row specification group for the matching row specification (operation 508).
[0096] If the row specification group does not exist, the system can generate a new row specification group in the grammar (operation 510). If the group exists or when a new row specification group is generated (operation 508 or 510), the system can associate the row specification with the row specification group (operation 512). If the match is not greater than the threshold or the row specification is associated with the row specification group (operation 506 or 512), the system can determine whether parsing is complete (operation 514). If parsing is complete, the system can continue to select the next row specification by parsing the grammar (operation 502).
[0097] Figure 5B A flowchart illustrating a process of generating a regular expression for a switch grammar of a switch according to an embodiment of the present application is presented. During operation, the system can select a row specification by parsing the grammar (operation 552) and determine a row specification group for the row specification (operation 554). The system can then generate a regular expression for the row specification (operation 556) and determine whether there are multiple regular expressions for the row specification group (operation 558). If there are multiple regular expressions, the system can associate the multiple regular expressions with the row specification group using an "OR" condition (operation 560).
[0098] On the other hand, if there are not multiple regular expressions, the system can associate the regular expression with the row specification group (operation 562). If a subsequent row specification is added to this row specification group, the regular expression of the subsequent row specification can be associated with the row specification group using an OR condition. When the (multiple) regular expressions are associated with the row specification group (operation 560 or 562), the system can determine whether parsing is complete (operation 564). If parsing is complete, the system can continue to select the next row specification by parsing the grammar (operation 502).
[0099] Exemplary Systems
[0100] Figure 6An exemplary computer system that facilitates a configuration management system according to an embodiment of the present application is shown. Computer and communication system 600 includes processor 602, memory device 604, and storage device 608. Memory device 604 may include a volatile memory device (e.g., a dual in-line memory module (DIMM)). In addition, computer and communication system 600 may be coupled to display device 610, keyboard 612, and pointing device 614. Storage device 608 may store operating system 616, configuration management system 618, and data 636. Configuration management system 618 may facilitate the operation of system 110.
[0101] The configuration management system 618 may include instructions that, when executed by the computer and communication system 600, may cause the computer and communication system 600 to perform the methods and / or processes described in the present disclosure. Specifically, the configuration management system 618 may include instructions for annotating the configuration files of the switch with tags by matching the configuration lines with the line specifications of the switch syntax (annotation logic block 620). In addition, the configuration management system 618 may include instructions for grouping the line specifications into line specification groups (grouping logic block 622).
[0102] If desired, the configuration management system 618 may also include instructions for annotating configuration files with sub-tags (sub-tag logic block 624). Furthermore, if desired, the configuration management system 618 may include instructions for annotating configuration files with distributed or split tags (split tag logic block 626). Furthermore, the configuration management system 618 may include instructions for determining declarations and references of configuration objects (reference logic block 628). The configuration management system 618 may then include instructions for linking references to corresponding declarations (reference logic block 628).
[0103] The configuration management system 618 may include instructions for generating a regular expression for a corresponding line specification (expression logic block 630). In addition, the configuration management system 618 may include instructions for matching a corresponding configuration line to a line specification based on the corresponding regular expression (expression logic block 630). The configuration management system 618 may also include instructions for selectively displaying selected sections of a configuration file (display logic block 632). The configuration management system 618 may also include instructions for sending and receiving messages (communication logic block 634).
[0104] Data 636 may include any data that may facilitate the operation of configuration management system 618. Data 636 may include, but is not limited to, information related to configuration files, switch syntax, ToCs, tags, subtags, regular expressions, declarations, and references.
[0105] Figure 7An exemplary apparatus for facilitating configuration management system according to an embodiment of the present application is shown. Event analysis apparatus 700 may include multiple units or apparatuses, which may communicate with each other via wired, wireless, quantum optical or electrical communication channels. Apparatus 700 may be a switch in a network. Apparatus 700 may be implemented using one or more integrated circuits and may include, for example, Figure 7 In addition, the apparatus 700 may be integrated in a computer system or implemented to be able to communicate with other computer systems and / or devices. Specifically, the apparatus 700 may include units 702-716, which perform similar Figure 6 The functions or operations of modules 620-634 of the computer and communication system 600 include: an annotation unit 702; a grouping unit 704; a sub-tag unit 706; a split tag unit 708; a reference unit 710; an expression unit 712; a display unit 714; and a communication unit 716.
[0106] The data structures and codes described in this detailed description are typically stored on a computer-readable storage medium, which can be any device or medium that can store code and / or data for use by a computer system. Computer-readable storage media include, but are not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disks, tapes, CDs (compact disks), DVDs (digital versatile disks or digital video disks), or other media capable of storing computer-readable media now known or later developed.
[0107] The methods and processes described in the detailed description section may be embodied as code and / or data, which may be stored in a computer-readable storage medium as described above. When a computer system reads and executes the code and / or data stored on a computer-readable storage medium, the computer system executes the methods and processes embodied as data structures and code and stored in the computer-readable storage medium.
[0108] The methods and processes described herein may be performed by and / or included in hardware modules or devices. These modules or devices may include, but are not limited to, application specific integrated circuit (ASIC) chips, field programmable gate arrays (FPGAs), dedicated or shared processors that execute a specific software module or piece of code at a specific time, and / or other programmable logic devices now known or later developed. When the hardware modules or devices are activated, they execute the methods and processes included therein.
[0109] The foregoing descriptions of the embodiments of the present invention are for illustration and description purposes only. They are not intended to be exhaustive or to limit the present disclosure. Therefore, many modifications and variations will be apparent to those skilled in the art. The scope of the present invention is defined by the appended claims.
Claims
1. A method for dynamically managing a configuration file of a switch, the method comprising: determining, by a computer system, one or more sets of line specifications in a specification file, wherein respective line specifications indicate a format of respective variants of configuration commands of the switch; annotating, by the computer system, corresponding groups of row specifications in the specification file with corresponding tags; Associating, by the computer system, the configuration command with a tag of the group based on matching a corresponding configuration command of the configuration file with the group; associating, by the computer system, the configuration command with an entry of a directory for the configuration file, wherein the entry corresponds to the tag; as well as In response to input of the entry of the directory, one or more configuration commands associated with the tag in the configuration file are selectively displayed by the computer system in a graphical user interface (GUI). 2 . The method of claim 1 , wherein matching the configuration command to the group further comprises matching the configuration command to a regular expression of the group.
3. The method according to claim 2, further comprising: generating the regular expression based on a keyword and a unique identifier of a row specification of the group; as well as The regular expression is incorporated into the specification file.
4. The method of claim 1 , wherein matching the configuration command with the group further comprises: matching the configuration command to a format indicated by the group; as well as The configuration command is annotated with the tag in the configuration file.
5. The method according to claim 4, further comprising: identifying a plurality of configuration commands using the group; as well as The plurality of configuration commands are annotated with the label.
6. The method according to claim 1, further comprising: Identify a subcommand of the configuration command; as well as annotating the subcommand with a subtag in the context of the tag; as well as A subentry is created under the entry in the directory.
7. The method of claim 1, further comprising grouping a plurality of non-contiguous configuration commands associated with the tag into adjacent lines of the configuration file.
8. The method according to claim 1, further comprising: annotating a first configuration command declaring a configuration object with a first label; annotating a second configuration command referencing the configuration object with a second label; as well as The second label is linked to the first label.
9. The method of claim 1, wherein determining the one or more groups further comprises: determining a level of matching of one or more terms in a line specification to one or more other line specifications; as well as In response to the level of matching being greater than a threshold, the row specification is grouped together with the one or more other row specifications.
10. A computer system comprising: processor; A non-transitory computer-readable storage medium storing instructions, which when executed by the processor causes the processor to perform a method for dynamically managing a configuration file of a switch, the method comprising: determining one or more sets of line specifications in a specification file, wherein respective line specifications indicate a format of respective variants of configuration commands for the switch; annotating, by the computer system, corresponding groups of row specifications in the specification file with corresponding tags; Associating, by the computer system, the configuration command with a tag of the group based on matching a corresponding configuration command of the configuration file with the group; and associating, by the computer system, the configuration command with an entry of a directory for the configuration file, wherein the entry corresponds to the tag; and In response to input of the entry of the directory, one or more configuration commands associated with the tag in the configuration file are selectively displayed by the computer system in a graphical user interface (GUI).
11. The computer system of claim 10, wherein matching the configuration command to the group further comprises matching the configuration command to a regular expression of the group.
12. The computer system of claim 11, wherein the method further comprises: generating the regular expression based on a keyword and a unique identifier of a row specification of the group; as well as The regular expression is incorporated into the specification file.
13. The computer system of claim 10, wherein matching the configuration command with the group further comprises: matching the configuration command to a format indicated by the group; as well as The configuration command is annotated with the tag in the configuration file.
14. The computer system of claim 13, wherein the method further comprises: identifying a plurality of configuration commands using the group; as well as The plurality of configuration commands are annotated with the label.
15. The computer system of claim 10, wherein the method further comprises: Identify a subcommand of the configuration command; as well as annotating the subcommand with a subtag in the context of the tag; as well as A subentry is created under the entry in the directory.
16. The computer system of claim 10, wherein the method further comprises grouping a plurality of non-contiguous configuration commands associated with the tag into adjacent lines of the configuration file.
17. The computer system of claim 10, wherein the method further comprises: annotating a first configuration command declaring a configuration object with a first label; annotating a second configuration command referencing the configuration object with a second label; as well as The second label is linked to the first label.
18. The computer system of claim 10, wherein determining one or more groups further comprises: determining a level of matching of one or more terms in a line specification to one or more other line specifications; as well as In response to the level of matching being greater than a threshold, the row specification is grouped together with the one or more other row specifications.
Citation Information
Patent Citations
Text indexing and passage retrieval
US20160078102A1
Method and system for generating documentation from operating system command syntax
US6996769B1