IP Library Granted Patent US 7,623,519
Granted Patent B2
US 7,623,519 · App. 10/873,547 · Granted Nov 24, 2009

Rule based routing in a switch

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,623,519
App. No.
10/873,547
Granted
Nov 24, 2009
Kind
B2
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.

Claims (39)

1. 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 an 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 an index to the table; and

b) selecting a preferred result from among all of the results obtained from the multiple routing rules.

2. The method of claim 1 , further comprising:

c) determining whether the address for internal routing in the preferred result is assigned to an grouping of interswitch links, and, if so, using a first portion of the address for internal routing and an indicator as to a source port for the data as an index to an ISL group routing table, the ISL group routing table then assigning a new address for internal routing based upon that first portion and that source port.

3. The method of claim 1 , further comprising:

c) after selecting a preferred result, assigning a violation port address as the address for internal routing if the zoning determination in the result indicates a zoning violation.

4. The method of claim 1 , wherein the step of selecting a preferred result includes

i) determining how many rules are determined to apply to the data,

ii) if only one rule applies, accepting the routing result from the one applicable rule, and

iii) if more than one rule applies, applying a precedence analysis and accepting the routing result from the highest priority rule that applies to the data.

5. 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.

6. 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.

7. The method of claim 6 , further comprising:

i) transmitting the data over an interswitch link using one of a plurality of virtual channels that exist on the link, the one virtual channel being determined by the priority for the data.

8. The method of claim 6 , wherein the routing information entry further comprises a plurality of destination enable bits, one for each port sharing the routing module, wherein the destination enable bits are used to determine whether a particular destination is enabled for a particular input port.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2018
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047270/0247 →
CHANGE OF NAME Recorded Dec 13, 2017
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: BROCADE COMMUNICATIONS SYSTEMS LLC
Reel/Frame 044891/0536 →
RELEASE OF SECURITY INTEREST Recorded Jan 22, 2015
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC
Reel/Frame 034804/0793 →
RELEASE OF SECURITY INTEREST Recorded Jan 21, 2015
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: BROCADE COMMUNICATIONS SYSTEMS, INC.; INRANGE TECHNOLOGIES CORPORATION; FOUNDRY NETWORKS, LLC
Reel/Frame 034792/0540 →
SECURITY AGREEMENT Recorded Jan 20, 2010
From: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC; INRANGE TECHNOLOGIES CORPORATION; MCDATA CORPORATION; MCDATA SERVICES CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 023814/0587 →
SECURITY AGREEMENT Recorded Dec 22, 2008
From: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, INC.; INRANGE TECHNOLOGIES CORPORATION; MCDATA CORPORATION
To: BANK OF AMERICA, N.A. AS ADMINISTRATIVE AGENT
Reel/Frame 022012/0204 →
MERGER Recorded Dec 10, 2008
From: COMPUTER NETWORK TECHNOLOGY CORPORATION
To: MCDATA SERVICES CORPORATION
Reel/Frame 021952/0245 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2004
From: TORNETTA, ANTHONY G.; WORKMAN, JASON; PEARSON, JERELD W.; WRIGHT, JAMES C.; KOELLNER, GREGORY L.
To: COMPUTER NETWORK TECHNOLOGY CORPORATION
Reel/Frame 015985/0492 →