Method, system and medium for resolving configuration errors

By aggregating configuration files, identifying and updating errors, the problem of row specifications and row sorting errors in network switch configuration files is solved, and the verification efficiency and accuracy of configuration files are improved.

CN116980296BActive Publication Date: 2025-02-11HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211313936.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2022-04-21
Filing Date
2022-10-25
Publication Date
2025-02-11
Estimated Expiration
2042-10-25

AI Technical Summary

Technical Problem

The prior art is difficult to effectively solve the line specification errors and line sorting errors in network switch configuration files, resulting in configuration errors and verification delays.

Method used

Generate common configuration files by aggregating multiple configuration files, identifying row specification errors and row sort errors in it, and comparing these errors with the term replacement database, updating the database to verify multiple switches.

Benefits of technology

Dynamic fix of configuration errors for multiple network switches is realized, which improves verification efficiency and reduces latency caused by configuration errors.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116980296B_ABST
    Figure CN116980296B_ABST
Patent Text Reader

Abstract

Some embodiments of the present disclosure relate to automatic global configuration error removal of cluster network devices. Embodiments facilitate dynamic repair of system grammar. The system can determine the presence of an error in a common configuration file. The system can use this determination to compare the common configuration file with a term replacement dictionary to determine solution options. If the error or solution to the error is not in the term replacement dictionary, the system can update the term replacement dictionary.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] A programming language is defined by its syntax, which may restrict the commands, parameters, and syntax that can be used in the language. Configuration files used to configure network switches often conform to a similar syntax, but one that is specific to the configuration of that switch. Summary of the invention

[0002] According to one embodiment, a method for resolving configuration errors by a server includes: aggregating multiple configuration files to generate a first public configuration file; determining one or more line specification errors or line ordering errors in the first public configuration file, wherein the line specification errors are one or more errors associated with one or more line specifications; comparing the first public configuration file with a term replacement database; updating the term replacement database with the determined one or more line specification errors or line ordering errors; updating a second public configuration file corresponding to a plurality of switches; and verifying the plurality of switches with the second public configuration file.

[0003] In other embodiments, the plurality of profiles is a first plurality of profiles, and the method further comprises: identifying one or more additional row specification errors or row ordering errors within a second plurality of profiles, wherein at least one of the one or more additional row specification errors or row ordering errors is a row specification error or row ordering error within the first plurality of profiles; and reclassifying at least one of the one or more additional row specification errors or row ordering errors within the second plurality of profiles.

[0004] In other embodiments, the method further includes updating the user interface to display at least one of one or more additional row specification errors or row ordering errors within the second plurality of configuration files.

[0005] In other embodiments, the method further includes updating the user interface to display one or more row specification errors or row ordering errors based on the type of error.

[0006] In other embodiments, generating the common configuration file includes replacing one or more of the plurality of line specifications with one or more standardized line specifications, wherein each standardized line specification represents the plurality of line specifications.

[0007] In other embodiments, at least one of the errors comprises a row ordering error, and the method further comprises performing a normalized reordering of the row specifications to account for the at least one row ordering error.

[0008] In other embodiments, the method further includes prompting a user to correct one or more row specification errors or row ordering errors.

[0009] In other embodiments, the method further includes receiving user input to correct one or more row specification errors or row ordering errors, and updating the term replacement database with the user input.

[0010] In other embodiments, the method further includes determining that the user input does not resolve an error with the ordering of the row specifications and removing the user input from the term replacement database.

[0011] In other embodiments, the method further comprises sending a notification that the term replacement database has been updated.

[0012] According to another embodiment, a system includes a hardware processor and a non-transitory machine-readable storage medium encoded with instructions, the instructions executable by the hardware processor to perform a method including the following steps: aggregating multiple configuration files to generate a first public configuration file; determining one or more row specification errors or row ordering errors in the first public configuration file, wherein the row specification errors are one or more errors associated with one or more row specifications; comparing the first public configuration file to a term replacement database; updating the term replacement database with the determined one or more row specification errors or row ordering errors; updating a second public configuration file corresponding to a plurality of switches; and validating the plurality of switches with the second public configuration file.

[0013] In other embodiments, the system further comprises a plurality of firmwares, wherein at least one configuration file from the plurality of configuration files corresponds to each firmware.

[0014] In other embodiments, the term replacement database is stored in a cloud network.

[0015] In other embodiments, the cloud network also includes a central configuration center.

[0016] According to another embodiment, a non-transitory computer-readable storage medium stores a plurality of instructions executable by one or more processors, wherein the plurality of instructions, when executed by the one or more processors, causes the processor to: aggregate a plurality of configuration files to generate a first public configuration file; determine one or more row specification errors or row ordering errors in the first public configuration file, wherein the row specification error is one or more errors associated with one or more row specifications; compare the first public configuration file to a term replacement database; update the term replacement database with the determined one or more row specification errors or row ordering errors; update a second public configuration file corresponding to a plurality of switches; and verify the plurality of switches with the second public configuration file.

[0017] In other embodiments, the plurality of profiles is a first plurality of profiles, and wherein the plurality of instructions further cause the processor to: identify one or more additional row specification errors or row ordering errors within the second plurality of profiles, wherein at least one of the one or more additional row specification errors or row ordering errors is a row specification error or row ordering error within the first plurality of profiles, and reclassify at least one of the one or more additional row specification errors or row ordering errors within the second plurality of profiles.

[0018] In other embodiments, generating the common configuration file includes replacing one or more of the plurality of line specifications with one or more standardized line specifications, wherein each standardized line specification represents the plurality of line specifications.

[0019] In other embodiments, at least one of the errors comprises a row ordering error, and the plurality of instructions, when executed by one or more processors, further cause the processors to: perform a normalized reordering of row specifications to resolve the at least one row ordering error.

[0020] In other embodiments, the plurality of instructions, when executed by the one or more processors, further cause the processor to: receive user input to correct one or more row specification errors or row ordering errors, and update the term replacement database with the user input.

[0021] In other embodiments, the plurality of instructions, when executed by the one or more processors, further cause the processor to: determine that the user input does not resolve an error with the ordering of the row specification, and remove the user input from the term replacement database. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] The present disclosure according to one or more various embodiments is described in detail with reference to the following drawings. The drawings are provided for illustration purposes only and merely depict typical or example embodiments.

[0023] Figure 1 Illustrated is one example of a network topology that may be implemented for an organization such as an enterprise, educational institution, government entity, healthcare institution, or other organization.

[0024] Figure 2 is a block diagram of an example system in which embodiments described herein may be implemented.

[0025] Figure 3 Pictured Figure 2 An example of using a file in the system.

[0026] Figure 4A An example system according to one embodiment is illustrated.

[0027] Figure 4B An example implementation of a method according to one embodiment is illustrated.

[0028] Figure 5 Depicted is a block diagram of an example computer system in which various embodiments described herein may be implemented.

[0029] The drawings are not exhaustive and do not limit the disclosure to the precise forms disclosed. DETAILED DESCRIPTION

[0030] Embodiments facilitate dynamic repair of system syntax when editing configuration files for multiple network switches into a single file or "common configuration file." The system can determine the presence of configuration errors, i.e., errors in individual row specifications or in the ordering of row specifications. The system can use this determination to compare the common configuration file to a term replacement dictionary, which is a database that stores information about resolving various configuration errors and can provide repairs or solutions to achieve repairs. If the error or the solution to the error is not in the term replacement dictionary, the system can update the term replacement dictionary. The repair can be completed automatically or through user prompts. However, although various embodiments are described in terms of editing a common configuration file for a network switch, it should be noted that the techniques described herein can be adopted to edit a common configuration file for any configurable device.

[0031] Returning to the example of a network switch, the switches may have the same or different models and may therefore employ the same or different configuration syntaxes. The basic syntax of each switch may be obtained directly from the switch or from other sources. The basic syntax of the switch is a definition of which commands are valid in which context on the switch and the syntax for each command. A patch syntax may be identified for each network switch. Each patch syntax may include (i) syntax that is known to be supported by the switch but is not included in the basic syntax of the switch, and (ii) syntax that allows these syntaxes to be combined with the syntax of other switches. The basic syntax and patch syntax of multiple switches may be combined to form a single syntax, referred to herein as an "augmented grammar". The augmented syntax allows the configuration files of the switch to be displayed, verified, and edited as a single common configuration file. After verification, the corresponding configuration files may be modified or generated for each switch and installed at the corresponding switch. In various implementations, multiple configuration files may be edited into a single common configuration file.

[0032] In order to form a common configuration file, similar row specifications in multiple configuration files are merged so that each row specification in the common configuration file represents the row specifications in multiple configuration files. For example, if the first row specification in each configuration relates to a specific command, the first row specification in the common configuration file will relate to the same command. If the accompanying input or prerequisite for the command is different in the configuration file, the common configuration file will display all different types of inputs at the row specification. For example, if two configuration files have matching inputs, and two other configuration files have matching inputs different from the first two, the common configuration file will reflect a merged row specification based on the first pair and a second merged row specification based on the second part. The common configuration file can also merge all different inputs into one row specification, wherein all inputs are represented in one row specification. For example, if the first row specification in multiple configuration files is composed of "vlan 1", "vlan2", "vlan 3", the first row specification in the common configuration file can be "vlan 1-3". The format for the common configuration file can be different to accommodate all differences between configuration files. It should be noted that the common configuration can involve other non-file objects, such as databases. As an example, multiple databases can be edited by using a single common configuration database by aggregating parameters on the multiple databases to reflect one aggregate parameter.

[0033] The syntax serves as an instruction set for verification and activation of the switch. By forming a common configuration file, instructions on multiple switches can be updated simultaneously and dynamically so that the updates on all switches are consistent because they are only implemented once. In various implementations, updates to the common configuration file can further enable simultaneous updates to multiple switches by providing automatic edits to shorten the verification process. These automatic updates also provide dynamic edits that can also help with verification of future switches that have not yet been configured.

[0034] The verification can be performed almost entirely in an "off box" manner, i.e., on a platform separate from the switch. The final verification of the resulting public profile is performed in an "on box" manner, but as a single operation of the public profile that has been verified "off box". Therefore, the operation of each switch may not be affected until the verified public profile is installed in the switch.

[0035] Embodiments of the present application describe various technical improvements, including speeding up the verification process on multiple network switches simultaneously. Previously, errors associated with verification checks could significantly delay the verification process, particularly in the case of configuring new parameters or features for a particular switch, where the system lacks knowledge about the new parameters or features, referred to herein as "false negatives." Embodiments of the present application can determine whether a potential "error" reflects a false negative, at which point the system will never determine the error. In addition, embodiments of the present application provide previously unavailable automatic solutions, such as standardized reordering and prompts to resolve errors locally, where the system provides the user with detailed information about the determined errors, including potential solutions. Therefore, embodiments of the present application describe various technical improvements to the verification process for network switches.

[0036] Before describing embodiments of the disclosed systems and methods in detail, it is useful to describe example network installations in which these systems and methods may be implemented in various applications. Figure 1 An example of a network topology 100 that may be implemented for an organization such as an enterprise, educational institution, government entity, healthcare institution, or other organization is illustrated. The figure illustrates an example of a configuration that may be implemented for an organization having multiple users (or at least multiple client devices 110A-110J) and possibly multiple physical or geographic sites 102, sites 132, sites 142. The network topology 100 may include a primary site 102 in communication with a network 120. The network topology 100 may also include one or more remote sites 132, sites 142 in communication with the network 120.

[0037] The primary site 102 may include a primary network, which may be, for example, an office network, a home network, or other network installation. The primary site 102 network may be a private network, such as a network that may include security and access controls to limit access to authorized users of the private network. Authorized users may include, for example, employees of a company at the primary site 102, residents of a residence, customers of a business, and the like.

[0038] In the illustrated example, the master site 102 includes a controller 104 that communicates with a network 120. The controller 104 can provide communication with the network 120 for the master site 102, although it may not be the only point of communication for the master site 102 with the network 120. A single controller 104 is illustrated, but the master site may include multiple controllers and / or multiple points of communication with the network 120. In some embodiments, the controller 104 communicates with the network 120 through a router (not illustrated). In other embodiments, the controller 104 provides router functionality to devices in the master site 102.

[0039] The controller 104 can be operated to configure and manage network devices such as at the main site 102, and can also manage network devices at remote sites 132, 134. The controller 104 can be operated to configure and / or manage switches, routers, access points, and / or client devices connected to the network. The controller 104 itself can be an access point or provide the functionality of an access point.

[0040] The controller 104 may communicate with one or more switches 108 and / or wireless access points (APs) 106A-AP 106C. The switches 108 and wireless APs 106A-AP 106C provide network connectivity to various client devices 110A-client devices 110J. Using the connection to the switches 108 or APs 10A-AP 10C, the client devices 110A-client devices 110J may access network resources, including the (primary site 102) network and other devices on the network 120.

[0041] Examples of client devices may include: desktop computers, laptop computers, servers, web servers, authentication servers, authentication-authorization-accounting (AAA) servers, domain name system (DNS) servers, dynamic host configuration protocol (DHCP) servers, Internet Protocol (IP) servers, virtual private network (VPN) servers, network policy servers, mainframes, tablet computers, e-readers, netbook computers, televisions and similar monitors (e.g., smart TVs), content receivers, set-top boxes, personal digital assistants (PDAs), mobile phones, smart phones, smart terminals, dumb terminals, virtual terminals, video game consoles, virtual assistants, Internet of Things (IOT) devices, and the like.

[0042] Within the primary site 102, a switch 108 is included as an example of an access point to a network established in the primary site 102 for wired client devices 110I-110J. Client devices 110I-110J can connect to the switch 108 and can access other devices within the network topology 100 through the switch 108. Client devices 110I-110J can also access the network 120 through the switch 108. Client devices 110I-110J can communicate with the switch 108 through a wired connection 112. In the illustrated example, the switch 108 communicates with the controller 104 through the wired 112 connection, although the connection can also be wireless.

[0043] Wireless APs 106A-AP 106C are included as another example of access points to a network established for client devices 110A-client devices 110H in the main site 102. Each of APs 106A-AP 106C may be a combination of hardware, software, and / or firmware configured to provide wireless network connectivity to wireless client devices 110A-client devices 110H. In the illustrated example, APs 106A-AP 106C may be managed and configured by the controller 104. APs 106A-AP 106C communicate with the controller 104 and the network via connections 112, which may be wired or wireless interfaces.

[0044] Network topology 100 may include one or more remote sites 132. Remote sites 132 may be located in a different physical or geographic location than primary site 102. In some cases, remote sites 132 may be in the same geographic location as primary site 102, or perhaps the same building, but lack direct connectivity to a network located within primary site 102. Instead, remote sites 132 may utilize connectivity over a different network (e.g., network 120). Figure 1 132 may be, for example, a satellite office, another floor or room in a building, etc. The remote site 132 may include a gateway device 134 for communicating with the network 120. The gateway device 134 may be a router, a digital-to-analog modem, a cable modem, a digital subscriber line (DSL) modem, or some other network device configured to communicate with the network 120. The remote site 132 may also include a switch 138 and / or an AP 136 that communicate with the gateway device 134 via a wired or wireless connection. The switch 138 and the AP 136 provide connectivity to the network for the various client devices 140A-140D.

[0045] In various embodiments, the remote site 132 may communicate directly with the primary site 102 such that client devices 140a-140d at the remote site 132 access network resources at the primary site 102 as if these client devices 140a-140D were located at the primary site 102. In such embodiments, the remote site 132 is managed by the controller 104 at the primary site 102, and the controller 104 provides the necessary connectivity, security, and accessibility to enable the remote site 132 to communicate with the primary site 102. Once connected to the primary site 102, the remote site 132 may function as part of the private network provided by the primary site 102.

[0046] In various embodiments, the network topology 100 may include one or more smaller remote sites 142 that include only a gateway device 144 and a wireless AP 146 for communicating with the network 120, through which various client devices 150A-client devices 150B access the network 120. Such a remote site 142 may represent, for example, the home of an individual employee or a temporary remote office. The remote site 142 may also communicate with the main site 102 so that the client devices 150A-client devices 150B at the remote site 142 access network resources at the main site 102, as if these client devices 150A-client devices 150B are located at the main site 102. The remote site 142 may be managed by the controller 104 at the main site 102 to make this transparency possible. Once connected to the main site 102, the remote site 142 may be used as part of the private network provided by the main site 102.

[0047] The network 120 may be a public or private network such as the Internet, or other communication network that allows connectivity between the various sites 102, sites 130 to sites 142 and allows access to the servers 160A-160B. The network 120 may include third-party telecommunication lines, such as telephone lines, broadcast coaxial cables, fiber optic cables, satellite communications, cellular communications, and the like. The network 120 may include any number of intermediate network devices, such as switches, routers, gateways, servers, and / or controllers, that are not directly part of the network topology 100 but facilitate communications between the various parts of the network topology 100 and between the network topology 100 and other network-connected entities. The network 120 may include various content servers 160A-160B. The content servers 160A-160B may include various providers of multimedia downloadable and / or streaming content, including audio, video, graphics, and / or text content or any combination thereof. Examples of content servers 160A-160B include, for example, web servers, streaming radio and video providers, and cable and satellite television providers. Client devices 110A-110J, client devices 140A-140D, and client devices 150A-150B can request and access multimedia content provided by content servers 160A-160B.

[0048] Figure 2 is a block diagram of an example system 200 in which the embodiments described herein may be implemented. Figure 2, the example system 200 includes a plurality of network switches 202a-202n connected to a network 204, and a network administrator interface 206 also connected to the network 204. The network switch 202 may include a control plane 208 and a data plane 210. The control plane 208 may include a processor 212, a control interface 214, and a memory 216. The memory 216 may store a common configuration file 222, according to which the network switch 202 operates. The control interface 214 may be connected to the network 204. The data plane 210 includes a switch fabric 220 and a plurality of network interfaces 218a-218n. The network interfaces 218a-218n may be connected to the network 204.

[0049] The network administrator interface 206 may be used by a network administrator to configure the network switch 202 through the control interface 214 of the network switch 202. For example, the network administrator may use the network administrator interface 206 to obtain, edit, and replace or modify a public configuration file 222 stored in the memory 216 of the network switch 202, as described in detail below.

[0050] The described embodiments employ several different files. Figure 3 The diagram shows these files in Figure 2 For clarity, reference is made here to Figure 3 Describes these files. Figure 3 , illustrates additional details of the network administrator interface 206. Specifically, the network administrator interface 206 includes a processor 302, a memory 304, and a database 306. The database 306 can store basic files for each network switch 202. That is, the database 306 can store basic files Ba-basic files Bn for the network switches 202a-202n, respectively. Each basic file B represents the configuration syntax present in the corresponding network switch 202. The basic files Ba-basic files Bn can be obtained directly from the network switches 202a-202n, from other sources, or from any combination thereof.

[0051] The database 306 can store corresponding patch files Pa-patch files Pn for each network switch 202a-network switch 202n. Each patch file P represents an extended grammar that is not provided by the corresponding network switch 202 but is used by various embodiments to extend the corresponding basic grammar B, so that the configuration file 222 of the network switch 202 can be displayed, verified and edited as a public configuration file. Figure 3 Shown in.

[0052] Figure 4Ais a block diagram of an example computing component or device 400 for repairing a public configuration file according to one embodiment. The computing component 400 may be, for example, a server computer, a controller, or any other similar computing component capable of processing data. Figure 4A In an example implementation of , computing component 400 includes a hardware processor 402 and a machine-readable storage medium 404. In some embodiments, computing component 400 may be an embodiment of processor 302 of network administrator interface 206, processor 212 of network switch 202, or any combination thereof.

[0053] The hardware processor 402 may be one or more central processing units (CPUs), semiconductor-based microprocessors, and / or other hardware devices suitable for retrieving and executing instructions stored in the machine-readable storage medium 404. The hardware processor 402 may extract, decode, and execute instructions for the components 406, 408, 410, and 412 to control the process or operation of the dynamic syntax expansion for editing multiple network switch configuration files into a common configuration file. As an alternative or in addition to retrieving and executing instructions, the hardware processor 402 may include one or more electronic circuits including functional electronic components for executing one or more instructions, such as a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or other electronic circuits.

[0054] A machine-readable storage medium such as machine-readable storage medium 404 may be any electrical, magnetic, optical, or other physical storage device containing or storing executable instructions. Thus, machine-readable storage medium 404 may be, for example, a random access memory (RAM), a non-volatile RAM (NVRAM), an electrically erasable programmable read-only memory (EEPROM), a storage device, an optical disk, and the like. In some embodiments, machine-readable storage medium 404 may be a non-transitory storage medium, wherein the term "non-transitory" does not include a transient propagating signal. As described in detail below, machine-readable storage medium 404 may be encoded with executable instructions for component 406, component 408, component 410, and component 412.

[0055] Figure 4B An example implementation of a method according to an embodiment is illustrated. At block 405, a machine-readable storage medium 404 aggregates multiple configuration files to form a common configuration file. As described above, a common configuration file can be formed by merging row specifications so that each row specification in the common configuration file represents a row specification in multiple configuration files. The common configuration file can also take the form of a non-file object such as a database. The format of the common configuration file can be different to accommodate all differences between the configuration files.

[0056] At block 407, the system determines whether there are one or more errors associated with one or more row specifications ("row specification errors") and errors associated with the ordering of row specifications ("row ordering errors"). Row specification errors may occur when parameters or prerequisites for an individual row specification are incorrect. For example, if a particular command requires a prerequisite with a value between 1 and 7, and the row specification lists a value of 8, then a row specification error will occur. The system can determine that the value is not part of the appropriate range, thereby signaling a row ordering error. The system can also determine that there is a row specification error if the switch accepts the row specification but the syntax is more restricted, or vice versa. As another example, the system can also mark a row specification error if the command in the row specification does not match any valid command. On the other hand, a row ordering error occurs when multiple row specifications are not in the correct order. This may occur because one row specification provides a statement for a subsequent command, or there is a non-default prerequisite that must be met before a subsequent row specification. For example, if a line specification lists "vlan 3" where vlan3 provides declarations, and the command "interface vlan 3" precedes the declarations, then a line ordering error may have occurred because the declarations need to occur before the interface commands. In other words, the correct ordering should be:

[0057] vlan 3

[0058] interface vlan 3

[0059] No shutdown

[0060] ip address 44.42.9.0 / 24

[0061] ipv6 address de:fec8:d00:d00:caca:fee:ccc:2 / 96interface lag 2

[0062] vlan access 3

[0063] No shutdown

[0064] No routing

[0065] The system can determine row ordering errors by reviewing a term replacement database accessed when a public configuration file is loaded. The term replacement database can be located in a cloud network that will be accessed via a wired or wireless connection. The same cloud network can also have a central configuration center where users can access various public configuration files. The term replacement database can include model ordering of commands, default values ​​or ranges, customized commands and / or values, dictionaries of valid commands, and other information about formatting public configuration files. The term replacement database can receive information specific to various models or versions of firmware, or can receive information about new parameters or features associated with other users and / or purposes associated with public configuration files. The term replacement database can list specific commands, statements required for commands, and required positions in the ordering of row specifications for commands. If the ordering in the term replacement database does not match the public configuration file, the system can determine that there is a row ordering error.

[0066] At block 409, the system compares the public configuration file with the term replacement database. The system compares the public configuration file and the term replacement database according to similar models or versions of firmware to determine any differences between the public configuration file and the entries in the database. At block 411, the system updates the term replacement database with the difference (i.e., the determined error). The system can update the term replacement dictionary with the row sorting error by changing the standardized sorting. The system can also create a separate standardized sorting to reflect the difference while maintaining the default standardized sorting. This can be associated with a specific model or firmware. For errors within the row specification, the system can add the error as a valid entry for one or more commands applicable to the row specification. The system can distinguish between the determined errors that reflect the new parameters or features of the switch and the determined errors that can be solved by one or more solutions, which will be further described below. If the determined error can be solved, the system can avoid updating the term replacement database, or if the error reflects a false negative that has been stored in the term replacement database for a different model, the system can avoid updating the database. For example, as demonstrated by similar row rankings stored in a term replacement database, if a particular row ranking is determined to be a false negative, the system can simply note that the row ranking can be applied to various models, but otherwise not update any standardized row ranking when it is applied to new features or parameters.

[0067] Once the term replacement database is updated, the system may be able to determine if similar "errors" occur in later public configuration files. For example, multiple network switches may correspond to different multiple configuration files. These configuration files may be verified as a second public configuration file. When multiple network switches are verified, the system may notice that the second public configuration file corresponds to new features or parameters added to the term replacement database from the first public configuration file. Multiple network switches will then be verified more quickly because the system will avoid determining any errors associated with the second public configuration file that would otherwise delay the verification process. If subsequent network switches are verified with similar public configuration files, the system can continue to avoid determining errors.

[0068] There are various solutions that can be applied once the system determines that there is a row specification error or a row sorting error. In one embodiment, the system can prompt the user to manually resolve the error. This can be done by displaying a prompt that gives the user the choice between manually resolving the error, applying an automatic solution, or determining that the public profile has no errors. The user can edit the public profile to resolve any errors, and subsequent verification will not have a prompt to resolve the error. The alleged errors can be marked in the row specification so that the user can locate the error. For example, if a row specification error occurs, the row specification can be marked to show the error within the row specification. If a row sorting error occurs, the system can mark the row specification that needs to be declared. The system can also search the row specification to see if any row specification matches the required declaration-unless in the wrong position. The row can also be marked so that the user can locate the declaration and move the row specification accordingly. Even if the system does not determine any errors, the system can also provide the user with the option of warning the system that there are errors. The system can prompt the user to pay attention to these errors or can prompt the user to confirm that there are no errors.

[0069] Once the user attempts to resolve the error, the system can determine whether the user's edits resolve the error. This can be determined by comparing the edits to the term replacement dictionary to find similarities between the edits, the standardized ordering in the term replacement dictionary, and / or the new features or parameters. For example, if an edit was made and the ordering of the rows after the edit now matches the term replacement dictionary, the system can determine that the user's edits resolve the error. As another example, if the edit looks similar to another new feature or parameter stored in the term replacement dictionary, the system can determine that the user's edits resolve the error. If the new feature or parameter is similar to the edit, but for differences between models or firmware, the system can still determine that the user's edits resolve the error and store the new feature or parameter that also applies to the current model or firmware.

[0070] After comparing the term substitution dictionary to the public configuration file, if the error is not resolved, the system may refrain from updating the term substitution database, or may revert the row specification to a previous iteration. The system may notify the user that the error is not resolved and display the above prompts to resolve the error. The system may send the public configuration file after a predetermined number of attempts to resolve the error. Once the public configuration file reaches the central configuration center, other users may resolve the identified errors.

[0071] In another embodiment, the system can apply an automatic solution to resolve the error. For example, if the system determines that the row is ordered incorrectly, the system can locate the row specification that matches the declaration as described above. The system can automatically move the row specification to the appropriate location. For row specification errors, the system can replace the inappropriate parameters with default values ​​or legal values ​​that are closest to the values ​​specified in the error row. If the system cannot automatically resolve the error, the system can prompt the user as described above. The system can also send a public configuration file to a central configuration center so other users can resolve the error.

[0072] Figure 5 A block diagram of an example computer system 500 is depicted in which various embodiments described herein may be implemented. The computer system 500 includes a bus 502 or other communication mechanism for communicating information, one or more hardware processors 504 coupled to the bus 502 for processing information. The hardware processor(s) 504 may be, for example, one or more general purpose microprocessors.

[0073] Computer system 500 also includes a main memory 506, such as a random access memory (RAM), cache, and / or other dynamic storage device, coupled to bus 502 for storing instructions and information to be executed by processor 504. Main memory 506 may also be used to store temporary variables or other intermediate information during execution of instructions to be executed by processor 504. Such instructions, when stored in a storage medium accessible to processor 504, render computer system 500 into a special-purpose machine customized to perform the operations specified in the instructions.

[0074] Computer system 500 also includes a read only memory (ROM) 508 or other static storage device coupled to bus 502 for storing static information and instructions for processor 504. A storage device 510, such as a magnetic disk, optical disk, or USB thumb drive (flash drive), is provided and coupled to bus 502 for storing information and instructions.

[0075] The computer system 500 may be coupled to a display 512, such as a liquid crystal display (LCD) (or touch screen), via the bus 502 for displaying information to a computer user. An input device 514, including alphanumeric and other keys, is coupled to the bus 502 for communicating information and command selections to the processor 504. Another type of user input device is a cursor control 516, such as a mouse, trackball, or cursor direction keys, for communicating direction information and command selections to the processor 504 and for controlling cursor movement on the display 512. In some embodiments, the same direction information and command selections as a cursor control may be achieved via receiving touches on a touch screen without a cursor.

[0076] The computing system 500 may include a user interface module for implementing a GUI, which may be stored in a mass storage device as executable software code executed by the computing device(s). This and other modules may include, by way of example, components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, procedures, subroutines, program code segments, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables.

[0077] In general, the words "component", "engine", "system", "database", "data repository", etc. as used herein may refer to logic embodied in hardware or firmware, or to a collection of software instructions written in a programming language that may have entry points and exit points, such as, for example, Java, C, or C++. Software components may be compiled and linked into executable programs installed in dynamic link libraries, or may be written in interpreted programming languages ​​such as BASIC, Perl, or Python. It should be understood that software components may be called from other components or from themselves, and / or may be called in response to detected events or interrupts. Software components configured for execution on a computing device may be provided on a computer-readable medium, such as a compressed disk, a digital video disk, a flash drive, a magnetic disk, or any other tangible medium, or as a digital download (and may be initially stored in a compressed or installable format that requires installation, decompression, or decryption before execution). Such software code may be stored in part or in whole on a memory device of an executing computing device for execution by the computing device. Software instructions may be embedded in firmware such as an EPROM. It should also be appreciated that hardware components may be comprised of connected logic units, such as gates and flip-flops, and / or may be comprised of programmable units, such as programmable gate arrays or processors.

[0078] Computer system 500 may implement the techniques described herein using custom hardwired logic, one or more ASICs or FPGAs, firmware, and / or program logic that, in combination with a computer system, makes computer system 500 a special purpose machine or is programmed therefor. According to one embodiment, the techniques herein are performed by computer system 500 in response to processor 504 executing one or more sequences of one or more instructions contained in main memory 506. Such instructions may be read into main memory 506 from another storage medium such as storage device 510. Execution of the sequences of instructions contained in main memory 506 causes processor(s) 504 to perform the process steps described herein. In alternative embodiments, hardwired circuitry may be used in place of or in combination with software instructions.

[0079] As used herein, the term "non-transitory media" and similar terms refer to any medium that stores data and / or instructions that cause a machine to operate in a particular manner. Such non-transitory media may include non-volatile media and / or volatile media. Non-volatile media include, for example, optical or magnetic disks, such as storage device 510. Volatile media include dynamic memory, such as main memory 506. Common forms of non-transitory media include, for example, floppy disks, flexible disks, hard disks, solid-state drives, magnetic tapes or any other magnetic data storage media, CD-ROMs, any other optical data storage media, any physical media with a pattern of holes, RAM, PROMs and EPROMs, FLASH-EPROMs, NVRAMs, any other memory chips or cassettes, and networked versions thereof.

[0080] Non-transitory media are different from transmission media, but can be used in conjunction with transmission media. Transmission media participate in the transfer of information between non-transitory media. For example, transmission media include coaxial cables, copper wires, and optical fibers, including the wires that make up bus 502. Transmission media can also take the form of sound waves or light waves, such as those generated during radio wave and infrared data communications.

[0081] Computer system 500 also includes a communication interface 517 coupled to bus 502. Network interface 517 provides bidirectional data communication coupled to one or more network links connected to one or more local area networks. For example, communication interface 517 can be an integrated services digital network (ISDN) card, a cable modem, a satellite modem, or a modem for providing a data communication connection to a corresponding type of telephone line. As another example, network interface 517 can be a local area network (LAN) card to provide a data communication connection to a compatible LAN (or a WAN component communicating with a WAN). Wireless links can also be implemented. In any such implementation, network interface 517 sends and receives electrical, electromagnetic or optical signals carrying digital data streams representing various types of information.

[0082] A network link typically provides data communications to other data devices through one or more networks. For example, a network link may provide a connection to a host computer or to data devices operated by an Internet Service Provider (ISP) through a local area network. The ISP, in turn, provides data communications services through a global packet data communications network now commonly referred to as the "Internet." Both local area networks and the Internet use electrical, electromagnetic, or optical signals that carry digital data streams. The signals through the various networks and the signals on the network link and through the communication interface 517 are all example forms of transmission media that carry digital data to and from the computer system 500.

[0083] Computer system 500 can send messages and receive data, including program code, through network(s), network links and communication interface 517. In the Internet example, a server can transmit the requested code for an application program through the Internet, an ISP, a local area network and communication interface 517.

[0084] The received code may be executed by processor 504 as it is received, and / or stored in storage device 510 or other non-volatile storage for later execution.

[0085] Each of the processes, methods, and algorithms described in the foregoing sections may be embodied in a code component executed by one or more computer systems or computer processors including computer hardware, and may be fully or partially automated by it. One or more computer systems or computer processors may also be operable to support the execution of related operations in a "cloud computing" environment or operate as "software as a service" (SAAS). The processes and algorithms may be implemented in part or in whole in a dedicated circuit. The various features and processes described above may be used independently of each other, or may be combined in various ways. Different combinations and sub-combinations are intended to fall within the scope of the present disclosure, and certain methods or processing blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular order, and the blocks or states associated therewith may be executed in other appropriate orders, or may be executed in parallel, or in some other manner. Blocks or states may be added to or removed from the disclosed example embodiments. The execution of certain operations or processes may be distributed between computer systems or computer processors, which may reside in a single machine or may be deployed on several machines.

[0086] As used herein, any form of hardware, software or its combination can be utilized to realize circuit.For example, one or more processors, controllers, ASIC, PLA, PAL, CPLD, FPGA, logic components, software routines or other mechanisms can be realized to constitute circuit.In implementation, various circuits described herein can be implemented as discrete circuits, or described functions and features can be shared between one or more circuits in part or in whole.Even if various features or functional elements can be described or claimed individually as separated circuits, these features and functionality can also be shared between one or more common circuits, and such description should not require or imply that separated circuits are needed to realize such features or functionality.In the case where the circuit is implemented in whole or in part using software, such software can be implemented as operating together with a computing or processing system (such as computer system 500) that can perform the functionality described therein.

[0087] As used herein, the term "or" may be interpreted in an inclusive or exclusive sense. In addition, descriptions of resources, operations, or structures in the singular should not be interpreted as excluding the plural. Unless otherwise expressly stated or otherwise understood in the context of use, conditional language such as "may," "can," "could," or "might" is generally intended to convey that certain embodiments include certain features, elements, and / or steps, while other embodiments do not include certain features, elements, and / or steps.

[0088] Unless expressly stated otherwise, the terms and phrases used in this document and variations thereof should be interpreted as open ended and not restrictive. Adjectives such as "conventional," "traditional," "normal," "standard," "known," and terms of similar meaning should not be interpreted as limiting the items described to a given time period or items available at a given time, but should be interpreted as covering conventional, traditional, normal, or standard technologies that may be available or known at any time now or in the future. In some cases, the presence of broad words and phrases such as "one or more," "at least," "but not limited to," or other similar phrases should not be interpreted as meaning that a narrower situation is intended or required where such broad phrases may not be present.

Claims

1. A method for resolving a configuration error, comprising: aggregating, by a system including a hardware processor, a plurality of configuration files to generate a first common configuration file; determining, by the system, a row specification error or a row ordering error in the first public configuration file, wherein the row specification error is an error associated with a row specification, and wherein the row ordering error indicates that a plurality of row specifications are not in a correct order; comparing, by the system, the first public profile to a term replacement database; updating, by the system, the term replacement database with the determined row specification error or row ordering error; The system updates a second common configuration file corresponding to the plurality of switches; as well as validating, by the system, the second public profile using the updated term replacement database; as well as The second common configuration file is caused to be installed on the plurality of switches as part of activating the plurality of switches.

2. The method of claim 1 , wherein the plurality of configuration files is a first plurality of configuration files, and the method further comprises: identifying additional row specification errors or additional row ordering errors within the second plurality of configuration files, wherein the additional row specification errors or the additional row ordering errors are row specification errors or row ordering errors within the first plurality of configuration files; as well as The additional row specification errors or the additional row ordering errors within the second plurality of configuration files are reclassified.

3. The method according to claim 2, further comprising: The user interface is updated to display the additional row specification errors or the additional row ordering errors within the second plurality of configuration files.

4. The method according to claim 1, further comprising: A user interface is updated to display the row specification error or the row ordering error based on a type of the error.

5. The method according to claim 1, wherein generating the first public configuration file comprises: A line specification in a configuration file of the plurality of configuration files is replaced with a standardized line specification, wherein the standardized line specification represents a plurality of line specifications.

6. The method according to claim 1, further comprising: The row specifications in the first public configuration file are reordered to resolve the row ordering error.

7. The method of claim 1, wherein the row specification error is based on a parameter, command, or prerequisite of the row specification being incorrect.

8. The method according to claim 1, further comprising: receiving user input to correct the row specification error or the row ordering error; and The term replacement database is updated with the user input.

9. The method according to claim 8, further comprising: determining that the user input does not resolve the row specification error or the row ordering error; as well as The user input is removed from the term replacement database.

10. The method of claim 1, wherein the row ordering error is an error in the ordering of row specifications in the first public configuration file.

11. A system comprising: Hardware processor; as well as A non-transitory machine-readable storage medium storing instructions executable on the hardware processor to: aggregating the plurality of profiles to generate a first public profile; determining a row specification error or a row ordering error in the first public configuration file, wherein the row specification error is an error associated with a row specification, and wherein the row ordering error indicates that a plurality of row specifications are not in a correct order; comparing the first public profile to a term replacement database; updating the term replacement database with the determined row specification error or the row ordering error; updating a second public configuration file corresponding to the plurality of switches; as well as validating said second public profile using said updated term replacement database; as well as The second common configuration file is caused to be installed on the plurality of switches as part of activating the plurality of switches.

12. The system of claim 11, further comprising firmware, wherein a configuration file of the plurality of configuration files corresponds to the firmware.

13. The system of claim 11, wherein the row specification error is based on a parameter, command, or a prerequisite of the row specification being incorrect. The system of claim 11 , wherein the row ordering error is an error in the ordering of row specifications.

15. A non-transitory computer-readable storage medium storing instructions that, when executed, cause a system to: aggregating the plurality of profiles to generate a first public profile; determining a row specification error or a row ordering error in the first public configuration file, wherein the row specification error is one or more errors associated with a row specification, and wherein the row ordering error indicates that a plurality of row specifications are not in a correct order; comparing the first public profile to a term replacement database; updating the term replacement database with the determined row specification error or row ordering error; updating a second public configuration file corresponding to the plurality of switches; validating said second public profile using said updated term replacement database; as well as The second common configuration file is caused to be installed on the plurality of switches as part of activating the plurality of switches.

16. The non-transitory computer-readable storage medium of claim 15, wherein the plurality of configuration files is a first plurality of configuration files, and wherein the instructions, when executed, further cause the system to: identifying additional row specification errors or additional row ordering errors within the second plurality of configuration files, wherein the additional row specification errors or additional row ordering errors are row specification errors or row ordering errors within the first plurality of configuration files; and The additional row specification errors or the additional row ordering errors within the second plurality of configuration files are reclassified.

17. The non-transitory computer-readable storage medium of claim 15, wherein generating the first public configuration file comprises: A line specification in a configuration file is replaced with a standardized line specification, wherein the standardized line specification represents a plurality of line specifications.

18. The non-transitory computer-readable storage medium of claim 15, wherein the instructions, when executed, cause the system to: reorder row specifications to resolve the row ordering error.

19. The non-transitory computer-readable storage medium of claim 15, wherein the row specification error is based on a parameter, command, or a prerequisite of the row specification being incorrect.

20. The non-transitory computer-readable storage medium of claim 15, wherein the row ordering error is an error in the ordering of row specifications.

Citation Information

Patent Citations

  • Configuration file storage and recovery method of data communication equipment and data communication equipment

    CN104166626A

  • Method, device and system for unified management of configuration files in multiple projects

    CN108073390A