Constraint-based language configuration files for updating and verifying system constraints
First Claim
Patent Images
1. A method for initializing a hardware device, the hardware device having a configuration file and a memory, said configuration file including values, the method including:
- loading a specification file into the memory, said specification file having constraints;
loading a fail-safe specification file into the memory, said fail-safe specification file having constraints;
adjusting the constraints of said specification file to conform to the constraints in said fail-safe specification file;
loading said configuration file into the memory;
loading a fail-safe configuration file into the memory, said fail-safe configuration file having values; and
performing a translation test between the values in the configuration file, said values in said fail-safe configuration file, and said constraints in said specification file to determine if they are consistent.
1 Assignment
0 Petitions
Accused Products
Abstract
Configuration files may define settings and parameters for hardware and software devices in a computer system. In an embodiment of the present invention, constraint-based language configuration files may be used for the dynamic update of configuration files, as well as for verification of accuracy or compatibility of these configuration files.
155 Citations
74 Claims
-
1. A method for initializing a hardware device, the hardware device having a configuration file and a memory, said configuration file including values, the method including:
-
loading a specification file into the memory, said specification file having constraints;
loading a fail-safe specification file into the memory, said fail-safe specification file having constraints;
adjusting the constraints of said specification file to conform to the constraints in said fail-safe specification file;
loading said configuration file into the memory;
loading a fail-safe configuration file into the memory, said fail-safe configuration file having values; and
performing a translation test between the values in the configuration file, said values in said fail-safe configuration file, and said constraints in said specification file to determine if they are consistent. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
representing said specification file as a binary tree;
representing said fail-safe specification file as a binary tree;
overlaying said specification file binary tree onto said fail-safe specification file binary tree; and
pruning said specification file binary tree to match at least a portion of said fail-safe specification file binary tree if said specification file binary tree does not match at least a portion of said fail-safe specification file binary tree.
-
-
3. The method of claim 1, further including modifying the values in said configuration file to make them consistent with said values in said fail-safe configuration file and said constraints in said specification file if necessary.
-
4. The method of claim 1, further including updating said fail-safe configuration file to match the configuration file.
-
5. The method of claim 1, wherein said values in said configuration file includes hardware settings and the method further includes executing commands to configure the hardware device to match said hardware settings.
-
6. The method of claim 5, wherein said commands include initializing hardware registers.
-
7. The method of claim 5, wherein said commands include software commands.
-
8. The method of claim 7, wherein said software commands include starting an operating system kernel.
-
9. The method of claim 7, wherein said software commands include starting application services.
-
10. The method of claim 5, wherein said commands include setting global values as runtime parameters.
-
11. The method of claim 1, wherein said hardware device is a router.
-
12. The method of claim 11, wherein said configuration file is stored in Flash ROM on said router.
-
13. The method of claim 11, wherein said specification file is stored in Flash ROM on said router.
-
14. The method of claim 1, wherein said configuration file, fail-safe configuration file, specification file, and fail-safe specification file are created using constraint-based programming.
-
15. The method of claim 1, wherein said configuration file and said fail safe-configuration file are XML documents.
-
16. The method of claim 1, wherein said specification file and said fail-safe configuration file are XML Document Type Declarations.
-
17. The method of claim 2, further including modifying the values in said configuration file to make them consistent with said values in said fail-safe configuration file and said constraints in said specification file if necessary.
-
18. The method of claim 2, further including updating said fail-safe configuration file to match the configuration file.
-
19. The method of claim 2, wherein said values in said configuration file includes hardware settings and the method further includes executing commands to configure the hardware device to match said hardware settings.
-
20. The method of claim 19, wherein said commands include initializing hardware registers.
-
21. The method of claim 19, wherein said commands include software commands.
-
22. The method of claim 21, wherein said software commands include starting an operating system kernel.
-
23. The method of claim 21, wherein said software commands include starting application services.
-
24. The method of claim 19, wherein said commands include setting global values as runtime parameters.
-
25. The method of claim 2, wherein said hardware device is a router.
-
26. The method of claim 25, wherein said configuration file is stored in Flash ROM on said router.
-
27. The method of claim 25, wherein said specification file is stored in Flash ROM on said router.
-
28. The method of claim 2, wherein said configuration file, fail-safe configuration file, specification file, and fail-safe specification file are created using constraint-based programming.
-
29. The method of claim 2, wherein said configuration file and said fail safe-configuration file are XML documents.
-
30. The method of claim 2, wherein said specification file and said fail-safe configuration file are XML Document Type Declarations.
-
31. A method for verifying a specification file on a hardware device, the hardware device having a memory, said specification file including constraints, the method including:
-
loading the specification file into the memory;
loading a fail-safe specification file into the memory, said fail-safe specification file having constraints;
representing said specification file as a binary tree;
representing said fail-safe specification file as a binary tree;
overlaying said specification file binary tree onto said fail-safe specification file binary tree; and
pruning said specification file binary tree to match at least a portion of said fail-safe specification file binary tree if said specification file binary tree does not match at least a portion of said fail-safe specification file binary tree. - View Dependent Claims (32, 33, 34, 35)
-
-
36. A method for verifying a configuration file on a hardware device, the hardware device having a memory, said configuration file including values, the method including:
-
loading said configuration file into the memory;
loading a fail-safe configuration file into the memory, said fail-safe configuration file having values;
loading a specification file into the memory, said specification file having constraints; and
performing a translation test between the values in the configuration file, said values in said fail-safe configuration file, and said constraints in said specification file to determine if they are consistent. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A hardware initializer for initializing a hardware device, the hardware device having a configuration file and a memory, said configuration file including values, the intializer including:
-
a specification file loader configured to load a specification file into the memory, said specification file having constraints;
a fail-safe specification file loader configured to load a fail-safe specification file into the memory, said fail-safe specification file having constraints;
a specification file binary tree representer configured to represent said specification file as a binary tree and coupled to said specification file loader;
a fail-safe specification file representer configured to represent said fail-safe configuration file as a binary tree and coupled to said fail-safe specification file loader;
a specification file binary tree to fail-safe specification file binary tree overlayer configured to overlay said specification file binary tree onto said fail-safe specification file binary tree and coupled to said specification file binary tree representer and said fail-safe specification file representer;
a specification file binary tree pruner configured to prune said specification file binary tree to match at least a portion of said fail-safe specification file binary tree if said specification file binary tree does not match at least a portion of said fail-safe specification file binary tree and coupled to said specification file binary tree to fail-safe specification file binary tree overlayer;
a configuration file loader configured to load a configuration file into the memory;
a fail-safe configuration file loader configured to load a fail-safe configuration file loader into the memory, the fail-safe configuration file having values; and
a translation tester configured to perform a translation test between the values in the configuration file, said values in said fail-safe configuration file, and said constraints in said specification file to determine if they are consistent and coupled to said configuration file loader, said fail-safe configuration file loader, and said specification file loader. - View Dependent Claims (50, 51, 52, 53, 54, 55, 56, 57)
-
-
58. A hardware initializer for verifying a specification file on a hardware device, the hardware device having a memory, said specification file including constraints, the intializer including:
-
a specification file loader configured to load the specification file into the memory;
a fail-safe specification file loader configured to load a fail-safe specification file into the memory, said fail-safe specification file having constraints;
a specification file binary tree representer configured to represent said specification file as a binary tree and coupled to said specification file loader;
a fail-safe specification file representer configured to represent said fail-safe configuration file as a binary tree and coupled to said fail-safe specification file loader;
a specification file binary tree to fail-safe specification file binary tree overlayer configured to overlay said specification file onto said fail-safe specification file binary tree and coupled to said specification file binary tree representer and said fail-safe specification file representer; and
a specification file binary tree pruner configured to prune said specification file binary tree to match at least a portion of said fail-safe specification file binary tree if said specification file binary tree does not match at least a portion of said fail-safe specification file binary tree and coupled to said specification file binary tree to fail-safe specification file binary tree overlayer. - View Dependent Claims (59, 60, 61, 62)
-
-
63. A hardware initializer for verifying a configuration file on a hardware device, the hardware device having a memory, said configuration file including values, the intializer including:
-
a configuration file loader configured to load said configuration file into the memory;
a fail-safe configuration file loader configured to load a fail-safe configuration file into the memory, said fail-safe configuration file having values;
a specification file loader configured to load a specification file into the memory; and
a translation tester configured to perform a translation test between the values in the configuration file, said values in said fail-safe configuration file, and said constraints in said specification file to determine if they are consistent and coupled to said configuration file loader, said fail-safe configuration file loader, and said specification file loader. - View Dependent Claims (64, 65, 66, 67, 68, 69, 70)
-
-
71. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method for initializing a hardware device, the hardware device having a configuration file and a memory, said configuration file including values, the method including:
-
loading a specification file into the memory, said specification file having constraints;
loading a fail-safe specification file into the memory, said fail-safe specification file having constraints;
adjusting the constraints of said specification file to conform to the constraints in said fail-safe specification file;
loading said configuration file into the memory;
loading a fail-safe configuration file into the memory, said fail-safe configuration file having values; and
performing a translation test between the values in the configuration file, said values in said fail-safe configuration file, and said constraints in said specification file to determine if they are consistent.
-
-
72. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method for initializing a hardware device, the hardware device having a configuration file and a memory, said configuration file including values, the method including:
-
loading a specification file into the memory, said specification file having constraints;
loading a fail-safe specification file into the memory, said fail-safe specification file having constraints;
representing said specification file as a binary tree;
representing said fail-safe specification file as a binary tree;
overlaying said specification file binary tree onto said fail-safe specification file binary tree;
pruning said specification file binary tree to match at least a portion of said fail-safe specification file binary tree if said specification file binary tree does not match at least a portion of said fail-safe specification file binary tree;
loading said configuration file into the memory;
loading a fail-safe configuration file into the memory, said fail-safe configuration file having values; and
performing a translation test between the values in the configuration file, said values in said fail-safe configuration file, and said constraints in said specification file to determine if they are consistent.
-
-
73. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method for verifying a specification file on a hardware device, the hardware device having a memory, said specification file including constraints, the method including:
-
loading the specification file into the memory;
loading a fail-safe specification file into the memory, said fail-safe specification file having constraints;
representing said specification file as a binary tree;
representing said fail-safe specification file as a binary tree;
overlaying said specification file binary tree onto said fail-safe specification file binary tree; and
pruning said specification file binary tree to match at least a portion of said fail-safe specification file binary tree if said specification file binary tree does not match at least a portion of said fail-safe specification file binary tree.
-
-
74. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method for verifying a configuration file on a hardware device, the hardware device having a memory, said configuration file including values, the method including:
-
loading said configuration file into the memory;
loading a fail-safe configuration file into the memory, said fail-safe configuration file having values;
loading a specification file into the memory; and
performing a translation test between the values in the configuration file, said values in said fail-safe configuration file, and said constraints in said specification file to determine if they are consistent.
-
Specification