Rule based routing in a switch
First Claim
1. A method for routing data within a switch to a destination port, the data having a destination identifier, the method comprising:
- a) applying multiple routing rules to the data in parallel, each rule;
i) determining whether the rule applies to the data, and, at the same time, ii) determining a routing result for the data, the result including an address for internal routing within the switch;
b) selecting a preferred result from among all of the results obtained from the multiple routing rules.
8 Assignments
0 Petitions
Accused Products
Abstract
A routing module applies a plurality of routing rules simultaneously to determine routing for a Fibre Channel frame. Each rule independently determines whether the rule applies to the frame as well as a routing result for the frame. The routing result includes a port address, a zoning indicator, and a priority designation that can be used to route the frame over a virtual channel in an interswitch link. A selector chooses between the results returned by the rules. A component receives routing results specifying an ISL group and selects a physical ISL for the frame. An in-band priority determined by the content of the frame header can also be used in place of the priority designation in the routing result.
-
Citations
13 Claims
-
1. A method for routing data within a switch to a destination port, the data having a destination identifier, the method comprising:
-
a) applying multiple routing rules to the data in parallel, each rule;
i) determining whether the rule applies to the data, and, at the same time, ii) determining a routing result for the data, the result including an address for internal routing within the switch;
b) selecting a preferred result from among all of the results obtained from the multiple routing rules.
-
-
2. A method for routing data within a switch to a destination port, the data having a destination identifier with a region address portion and a port address portion, the method comprising:
-
a) applying multiple routing rules to the data in parallel, each rule determining whether the rule applies to the data by examining the destination identifier, and determining a routing result for the data, the routing result including an address for internal routing within the switch, a priority value for the routing request, and a zoning determination, the multiple routing rules include the following rules;
i) a plurality of split region rules, each rule applying to a specific region, wherein (1) each split region rule is determined to apply by examining the region address portion of the destination identifier, and (2) each split region rule determines the routing result by examining a routing table using the port address portion of the destination identifier as the index to the table, and ii) a single lumped region rule that applies to all data, wherein the lumped region rule determines the routing result by examining a routing table using the region address portion of the destination identifier as the index to the table; and
b) selecting a preferred result from among all of the results obtained from the multiple routing rules. - View Dependent Claims (3, 4, 5)
-
-
6. A method for routing Fibre Channel frames in a switch comprising:
-
a) receiving the Fibre Channel frame over a port;
b) storing at least a portion of the Fibre Channel frame in a buffer memory at a location;
c) submitting a header from the Fibre Channel frame to a request queue module that forms a routing request containing i) a source port identifier indicating the port that received the Fibre Channel frame, ii) a destination identifier taken from the header;
iii) a buffer memory location specifying the location of the Fibre Channel frame in buffer memory;
d) taking the routing request from the request queue maintaining FIFO order;
e) using at least a portion of the destination identifier as a lookup in a routing table to find a table entry;
f) determining the switch port for the destination identifier based upon the table entry; and
g) determining a priority for the destination identifier base upon the table entry and the source port identifier.
-
-
7. A method for routing data in a switch comprising:
-
a) receiving the data over an input port, the input port sharing a routing module with a plurality other ports;
b) submitting to the routing module a destination identifier for the data and a source port identifier indicating the input port;
c) using at least a portion of the destination identifier to look up a routing information entry in a routing table, the routing information entry having;
i) a single destination port identifier for all ports that share the routing module;
ii) a separate priority field for each port sharing the routing module;
d) using the single destination port identifier for the routing of the data; and
e) using the source port identifier to select the priority field for the input port, and using the selected priority field contents as the priority for the data. - View Dependent Claims (8)
-
-
9. A method for routing data in a switch comprising:
-
a) receiving the data over an input port;
b) submitting to a routing module a destination identifier for the data and a type value indicating a protocol used by the data;
c) creating a protocol index based upon the type value;
d) using at least a portion of the destination identifier to look up a routing information entry in a routing table, the routing information entry having;
i) a single destination port identifier for all type values;
ii) a plurality of zoning indicators, at least one zoning indicator for each type value;
e) using the single destination port identifier for the routing of the data;
f) using the protocol index to select the zoning indicator within the routing information entry; and
g) using the zoning indicator to perform zoning in the switch.
-
-
10. A method for routing data in a switch comprising:
-
a) receiving the data over an input port, the input port sharing a routing module with a plurality other ports;
b) submitting to the routing module a destination identifier for the data, type value indicating a protocol used by the data, and a source port identifier indicating the input port;
c) creating a protocol index based upon the type value;
d) using at least a portion of the destination identifier to look up a routing information entry in a routing table, the routing information entry having;
i) a single destination port identifier for all ports that share the routing module, ii) a plurality of zoning indicators, at least one zoning indicator for each type value, and iii) a plurality of priority fields, at least one priority field for each port sharing the routing module;
e) using the single destination port identifier for the routing of the data;
f) using the protocol index to select the zoning indicator within the routing information entry;
g) using the zoning indicator to perform zoning in the switch; and
h) using the source port identifier to select the priority field for the input port, and using the selected priority field contents as the priority for the data. - View Dependent Claims (11, 12)
-
-
13. A data switch comprising:
-
a) means for applying multiple routing rules to incoming data in parallel, each rule;
i) determining whether the rule applies to the data, and, at the same time, ii) determining a routing result for the data, the result including an address for internal routing within the switch;
b) means for selecting a preferred result from among all of the results obtained from the multiple routing rules.
-
Specification