1. A slack value setting method for setting a slack value to each of the transit pins of plural gates on data paths with respect to an electronic circuit having plural data paths between a start point to an end point, the slack value setting method comprising:
a worst path selecting step for selecting a worst path having the largest path delay in said plural data paths,
a first slack value calculating step for calculating the slack value to be set up to each of the transit pins on the worst path,
a first slack value setting step for setting up the slack value calculated in the first slack value calculating step to each of the transit pins on said worst path,
a worst path branching pin table generating step for generating a worst path branching pin table registered with the branching pins in a predetermined order by carrying out a backward trace from the end point toward the start point of the worst path to pick out the branching pins in the backward direction of the worst path,
a second slack value calculating step for calculating the slack value to be set up to each of the transit pins on another paths other than the worst path in said plural data paths, and
a second slack value setting step for setting up the slack value calculated in the second slack value calculating step to each of the transit pins on the another paths by carrying out backward trace on the another paths from the branching pins stored in the worst path branching pin table based on the worst path branching pin table generated in the worst path branching pin table generating step.
2. The slack value setting method according to claim 1, further comprising a slack value setting determination step for determining whether or not the slack value has been set up with respect to the transit pins on said data paths, wherein in the slack value setting determination step, the second slack value calculating step and the second slack value setting step are repeatedly carried out until it is determined that the slack value has been set up to all of the transit pins on the data paths.
3. The slack value setting method according to claim 2, further comprising:
an another path branching pin table generating step for generating an another path branching pin table registered with the branching pins in a predetermined order by carrying out backward trace on the another paths from the branching pin to pick out the branching pins in the backward direction of the another paths,
a third slack value calculating step for calculating the slack value to be set up to each of the transit pins on the another paths, and
a third slack value setting step for setting the slack value calculated in the third slack value calculating step to each of the transit pins on the another paths by carrying out backward trace on the another paths from the branching pin stored in the another path branching pin table based on the another path branching pin table generated in the another path branching pin table generating step, wherein
the another path branching pin table generating step, the third slack value calculation step and the third slack value setting step are repeatedly carried out until it is determined that the slack value has been set up to all of the transit pins on the data paths in the slack value setting determination step.
4. A slack value setting method for setting a slack value to each of the transit pins of plural gates on data paths with respect to an electronic circuit having plural data paths between a start point to an end point, the slack value setting method comprising:
a slack value calculation step for calculating the slack value to be set up to each of the transit pins on the data paths,
a branching pin table generating step for generating a branching pin table registered with the branching pins in a predetermined order by carrying out backward trace from the end point to the start point of the data path to pick out branching pins in the backward direction of the data path,
a slack value setting step for setting the slack value calculated in the slack value calculation step to each of the transit pins on the data paths by carrying out backward trace on the data path from the branching pins stored in the branching pin table based on the branching pin table generated in the branching pin table generating step, and
a slack value setting determination step for determining whether or not the slack value has been set up with respect to the branching pins on said data path, wherein
the slack value calculation step, the branching pin table generating step and the slack value setting step are repeatedly carried out until it is determined that the slack value has set up to all of the branching pins on the data paths in the slack value setting determination step.
5. A slack value setting device for setting a slack value to each of the transit pins of plural gates on data paths with respect to an electronic circuit having plural data paths between a start point to an end point, the slack value setting device comprising:
a worst path selecting section for selecting a worst path having the largest path delay in said plural data paths,
a first slack value calculating section for calculating the slack value to be set up to each of the transit pins on the worst path,
a first slack value setting section for setting up the slack value calculated in the first slack value calculating section to each of the transit pins on said worst path,
a worst path branching pin table generating section for generating a worst path branching pin table registered with the branching pins in a predetermined order by carrying out a backward trace from the end point toward the start point of the worst path to pick out the branching pins in the backward direction of the worst path,
a second slack value calculating section for calculating the slack value to be set up to each of the transit pins on another paths other than the worst path in said plural data paths, and
a second slack value setting section for setting up the slack value calculated in the second slack value calculating section to each of the transit pins on the another paths by carrying out backward trace on the another paths from the branching pins stored in the worst path branching pin table based on the worst path branching pin table generated in the worst path branching pin table generating section.
6. The slack value setting device according to claim 5, further comprising a slack value setting determination section for determining whether or not the slack value has been set up with respect to the transit pins on said data paths, wherein
the second slack value calculating section and the second slack value setting section repeatedly carry out the calculation of said slack value and the setting of said slack value respectively until it is determined that the slack value has been set up to all of the transit pins on the data paths by the slack value setting determination section.
7. The slack value setting device according to claim 6, further comprising:
an another path branching pin table generating section for generating an another path branching pin table registered with the branching pins in a predetermined order by carrying out backward trace on the another paths from the branching pin to pick out the branching pins in the backward direction of the another paths,
a third slack value calculating section for calculating the slack value to be set up to each of the transit pins on the another paths, and
a third slack value setting section for setting the slack value calculated in the third slack value calculating section to each of the transit pins on the another paths by carrying out backward trace on the another paths from the branching pin stored in the another path branching pin table based on the another path branching pin table generated in the another path branching pin table generating section, wherein
the another path branching pin table generating section, the third slack value calculating section and the third slack value setting section repeatedly carry out the generation of said another path branching pin table, the calculation of said slack value and the setting of said slack value until it is determined that the slack value has been set up to all of the transit pins on the data paths by the slack value setting determination section.
8. A recording medium recording therein a slack value setting program readable by a computer, which causes the computer to execute slack value setting function to set up slack values to transit pins of plural gates on the data path with respect to an electronic circuit having plural data paths between a start point and an end point, wherein
the slack value setting program causes the computer to execute:
a worst path selecting step for selecting a worst path having the largest path delay in said plural data paths;
a first slack value calculating step for calculating the slack value to be set up to each of the transit pins on the worst path;
a first slack value setting step for setting up the slack value calculated in the first slack value calculating step to each of the transit pins on said worst path;
a worst path branching pin table generating step for generating a worst path branching pin table registered with the branching pins in a predetermined order by carrying out a backward trace from the end point toward the start point of the worst path to pick out the branching pins in the backward direction of the worst path;
a second slack value calculating step for calculating the slack value to be set up to each of the transit pins on another paths other than the worst path in said plural data paths; and
a second slack value setting step for setting up the slack value calculated in the second slack value calculating step to each of the transit pins on the another paths by carrying out backward trace on the another paths from the branching pins stored in the worst path branching pin table based on the worst path branching pin table generated in the worst path branching pin table generating step.
9. The recording medium recording therein a slack value setting program readable by a computer according to claim 8, wherein
the slack value setting program causes the computer to execute a slack value setting determination step for determining whether or not the slack value has been set up with respect to the transit pins on said data paths,
and further causes the computer to repeatedly execute the second slack value calculation step and the second slack value setting step until it is determined that the slack value has been set up to all of the transit pins on the data paths in the slack value setting determination step.
10. The recording medium recording therein a slack value setting program readable by a computer according to claim 9, wherein
the slack value setting program causes the computer to execute:
an another path branching pin table generating step for generating an another path branching pin table registered with the branching pins in a predetermined order by carrying out backward trace on the another paths from the branching pin to pick out the branching pins in the backward direction of the another paths;
a third slack value calculating step for calculating the slack value to be set up to each of the transit pins on the another paths; and
a third slack value setting step for setting the slack value calculated in the third slack value calculating step to each of the transit pins on the another paths by carrying out backward trace on the another paths from the branching pin stored in the another path branching pin table based on the another path branching pin table generated in the another path branching pin table generating step,
and further causes the computer to execute the another path branching pin table generating step, the third slack value calculation step and the third slack value setting step repeatedly until it is determined that the slack value has been set up to all of the transit pins on the data paths in the slack value setting determination step.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method performed by a packet switching device, with the method comprising:
establishing a smaller plurality of next-hop candidates based on architectural role policy filtering a plurality of next-hop candidates for backing up a plurality of routes over one or more links to a first packet switching device in a network, with the smaller plurality of next-hop candidates consisting of fewer next-hops than in the plurality of next-hop candidates;
determining a shortest-path, loop free backup route for each of the plurality of routes by considering each of the smaller plurality of next-hop candidates and not all of the plurality of next-hop candidates; and
installing, in a routing data structure, routing information corresponding to each of said determined shortest-path, loop free backup routes for use in backing up corresponding routes of the plurality of routes.
2. The method of claim 1, wherein said determining a shortest-path, loop free backup route for each of the plurality of routes includes calculating, from the perspective of each of the smaller plurality of next-hop candidates, routing information for each of the plurality of routes.
3. The method of claim 1, including routing packets according to routing information in the routing data structure, which includes routing one or more packets according to one of said determined shortest-path, loop free backup routes.
4. The method of claim 1, comprising: receiving, via a routing protocol from one or more other appliances in the network, policy information specifying that said one or more particular next-hops are not to be considered as a backup candidate; and
wherein said policy filtering of the plurality of next-hop candidates includes: excluding each particular next-hop of said one or more particular next-hops from being in the smaller plurality of next-hop candidates based on said identification that said particular next-hop is said not to be considered as a backup candidate.
5. The method of claim 4, wherein each said particular next-hop of said one or more particular next-hops advertises, via the routing protocol, from being in the smaller plurality of next-hop candidates based on said identification that said particular next-hop is said not to be considered as a backup candidate.
6. The method of claim 1, wherein said policy filtering of the plurality of next-hop candidates includes: excluding said each particular next-hop of said one or more particular next-hops from being in the smaller plurality of next-hop candidates based on an identification of the absolute physical locations of the particular packet switching device and said particular next-hop.
7. The method of claim 1, wherein said policy filtering of the plurality of next-hop candidates includes: excluding said each particular next-hop of said one or more particular next-hops from being in the smaller plurality of next-hop candidates based on an identification of a trust or security level of said particular next-hop.
8. The method of claim 1, wherein a next-hop candidate of plurality of next-hop candidates corresponds to a neighboring node and a communications path from the particular packet switching device to the neighboring node.
9. The method of claim 8, wherein the plurality of next-hop candidates in the network includes: a first communications path to a first neighboring node in the network, and a second communications path to the first neighboring node; and wherein the smaller plurality of next-hop candidates includes the first communications path to the first neighboring node, but not the second communications path to the first neighboring node.
10. The method of claim 9, wherein the first communications path is identified with a first security or trust level, and the second communications path is identified with a second security or trust level different than the first security or trust level; and
wherein said policy filtering of the plurality of next-hop candidates comprises: excluding said next-hop identified by the second communications path to the first neighboring node based on the second security or trust level, and including said next-hop identified by the first communications path to the first neighboring node based on the first security or trust level.
11. The method of claim 8, wherein a communications path is identified by an interface of the particular packet switching device coupled to a link between the particular packet switching device and a neighboring node, or a communications path is identified by a link between the particular packet switching device and a neighboring node.
12. A method performed by a packet switching device, with the method comprising:
establishing a smaller plurality of next-hop candidates based on architecture role policy a plurality of next-hop candidates for backing up a plurality of routes over one or more links to a first packet switching device in a network, with the smaller plurality of next-hop candidates consisting of fewer next-hops than in the plurality of next-hop candidates;
determining a shortest-path, loop free backup route for each of the plurality of routes by considering each of the smaller plurality of next-hop candidates and not all of the plurality of next-hop candidates; and
installing, in a routing data structure, routing information corresponding to each of said determined shortest-path, loop free backup routes for use in backing up corresponding routes of the plurality of routes;
wherein the first packet switching device is identified as performing a first architectural role;
wherein each of one or more particular next-hops of the plurality of next-hop candidates is identified as performing a second architectural role; and
wherein said policy filtering of the plurality of next-hop candidates includes: excluding said each particular next-hop of said one or more particular next-hops from being in the smaller plurality of next-hop candidates based on said identification of the first packet switching device performing the first architectural role and said identification of said particular next-hop performing the second architectural role.
13. The method of claim 12, wherein the first and second architectural roles are the same.
14. The method of claim 12, wherein each of the first and second architectural roles includes being an edge router.
15. The method of claim 12, comprising: receiving, via a routing protocol from one or more other appliances in the network, router architectural information that the architectural role of each of said one or more particular next-hops includes said performing the second architectural role.
16. An apparatus, comprising:
a plurality of interfaces configured for sending and receiving packets with other devices in a network; and
one or more processing mechanisms configured for maintaining routing information in the apparatus for use in forwarding packets;
wherein said maintaining routing information includes:
establishing a smaller plurality of next-hop candidates based on architectural role policy filtering a plurality of next-hop candidates for backing up one or more routes over one or more links to a first packet switching device in a network, with the smaller plurality of next-hop candidates consisting of fewer next-hops than in the plurality of next-hop candidates;
determining a shortest-path, loop free backup route for each of said one or more routes by considering each of the smaller plurality of next-hop candidates and not all of the plurality of next-hop candidates; and
installing, in a routing data structure, routing information corresponding to each of said determined shortest-path, loop free backup routes for use in backing up corresponding routes of said one or more routes.
17. The apparatus of claim 16, wherein said determining a shortest-path, loop free backup route for each of said one or more routes includes calculating, from the perspective of each of the smaller plurality of next-hop candidates, shortest-path routing information for each of said one or more routes.
18. The apparatus of claim 16, wherein the first packet switching device is identified as performing a first architectural role;
wherein each of one or more particular next-hops of the plurality of next-hop candidates is identified as performing a second architectural role; and
wherein said policy filtering of the plurality of next-hop candidates includes: excluding said each particular next-hop of said one or more particular next-hops from being in the smaller plurality of next-hop candidates based on said identification of the first packet switching device performing the first architectural role and said identification of said particular next-hop performing the second architectural role.
19. The apparatus of claim 18, wherein said maintaining routing information includes: receiving, via a routing protocol from one or more other appliances in the network, router architectural information that the architectural role of each of said one or more particular next-hops includes said performing the second architectural role.
20. The apparatus of claim 16, wherein a next-hop candidate of plurality of next-hop candidates corresponds to a neighboring node and a communications path from the particular packet switching device to the neighboring node.