IP Library Granted Patent US 7,646,767
Granted Patent B2
US 7,646,767 · App. 10/894,978 · Granted Jan 12, 2010

Method and system for programmable data dependant network routing

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,646,767
App. No.
10/894,978
Granted
Jan 12, 2010
Kind
B2
Abstract

A method and system for routing fiber channel frames using a fiber channel switch element is provided. The switch element includes, a hashing module whose output is used to select the column from a look up table to route frames. The method includes, indexing a look up table using domain, area, virtual storage area network identifier, a hashing module output and/or AL_PA values; selecting a column from the look up table based on a column select signal; and routing a frame if a route is valid. The hashing module takes a fiber channel header to generate a pseudo random value used for selecting a column from the look up table. The hashing module uses same field values in an exchange to generate the pseudo random value. A hash function is used on a frame's OX_ID, D_ID, S_ID, and/or RX_ID to route fiber channel frames.

Claims (29)

1. A method for routing fibre channel frames using a fibre channel switch element, comprising:

(a) receiving a fibre channel frame at a port of the fibre channel switch element;

(b) indexing a look up table by using an output value generated by a hashing module for the fibre channel switch element; a domain value for routing the fibre channel frame to another fibre channel switch, an area value for routing the fibre channel frame to a port of the fibre channel switch that received the fibre channel frame, a virtual storage area network identifier for routing the fibre channel frame within a virtual storage area network, and an arbitrated loop physical address (AL_PA) value included in a header of the fibre channel frame;

(c) selecting a column value from the look up table based on a column select signal generated by a hardware logic; wherein the column select signal is based on the output value generated by the hashing module; and wherein the output value is a pseudo random number value generated by the hashing module by applying a hash function on a field of a fibre channel frame header of the fibre channel frame; and the pseudo random number value is used for selecting the column value used for routing the frame; and

(d) based on the selected column value, routing the frame if a route is valid.

2. The method of claim 1 , wherein the hashing module uses a same field value from the fibre channel frame header for a same fibre channel exchange to generate the pseudo random number value.

3. The method of claim 1 , wherein the hash function is applied on an originator exchange identification field (OX_ID of the fibre channel frame to route the fibre channel frame.

4. A fibre channel switch element configured to select a route from amongst a plurality of routes, for routing fibre channel frames, the fibre channel switch element comprising:

at least one port for receiving and transmitting a fibre channel frame;

a look up table with a plurality of columns that are indexed by an output from a hashing module, a domain value for routing the fibre channel frame to another fibre channel switch element, an area value for routing the fibre channel frame to a port of the fibre channel switch that received the fibre channel frame, a virtual storage area network identifier for routing the fibre channel frame within a virtual storage area network and an arbitrated loop physical address (AL — PA) value; and

a hardware logic that receives a plurality of inputs and based on one of the inputs, a column select signal is generated, wherein the column select signal is used to select a value from one of toe plurality of columns to route the fibre channel frame; and wherein the column select signal is based on the output value generated by the hashing module; and wherein the output value is a pseudo random number value generated by the hashing module by applying a hash function on a field of a fibre channel frame header of the fibre channel frame for selecting the column value.

5. The fibre channel switch element of claim 4 , wherein the hashing module uses a same field value from the fibre channel frame header for a same fibre channel exchange to generate the pseudo random number value.

6. The fibre channel switch element of claim 4 , wherein the hash function is applied on an originator exchange identification field (OX_ID) of the fibre channel frame to route the fibre channel frame.

7. The fibre channel switch element of claim 4 , wherein the hash function, to route the fibre channel frame, is used on at least one or more of a destination identifier field (D_ID), a source identifier field (S_ID) and a responder exchange identifier field (RX_ID), included in the fibre channel frame header for the fibre channel frame.

8. The fibre channel switch element of claim 4 , wherein the hardware logic is a multiplexer and be plurality of inputs are a destination identifier field (D_ID), a source identifier field (S_ID), a virtual storage area network identifier, an originator exchange identification field (OX_D), the pseudo random number value generated by the hashing module, and a decode fibre channel header type field.

9. The fibre channel switch element of claim 8 , wherein the decode fibre channel header type field is decoded and then a derived value is used to select a column from the look table.

10. The method of claim 1 , wherein the bash function to route the fibre channel frame is used on at least one or more of a destination identifier field (D_ID), a source identifier field (S_ID) and a responder exchange identifier field (RX_ID), included in the fibre channel frame header for the fibre channel frame.

11. The method of claim 1 , wherein the column select signal is generated after a plurality of fields are input to the hardware logic and one of the input fields is selected to generate the column select signal.

12. The method of claim 11 , wherein the hardware logic is a multiplexer and the plurality of inputs are a destination identifier field (D_ID), a source identifier field (S_ID), a virtual storage area network identifier, an originator exchange identification field (OX_ID), the pseudo random number generated by the hashing module, and a decode fibre channel header type field.

13. A network system, comprising:

host computing system for sending and receiving information;

a least one storage system for storing information; and

a least one fibre channel switch element configured to select a route from amongst a plurality of routes, for routing fibre channel frames in the network, where the fibre channel switch element includes:

(a) at least one port for receiving and transmitting a fibre channel frame;

(b) a look up table with a plurality of columns that are indexed by an output from a hashing module, a domain value for routing the fibre channel frame to another fibre channel switch element, an area value for routing the fibre channel frame to a port of the fibre channel switch that received the fibre channel frame, a virtual storage area network identifier for routing the fibre channel frame within a virtual storage area network and an arbitrated loop physical address (AL_PA) value; and

c) a hardware logic that receives a plurality of inputs and based on one of the inputs, a column select signal is generated, wherein the column select signal is used to select a value from one of the plurality of columns to route the fibre channel frame; and wherein the column select signal is based on the output value generated by the hashing module; and wherein the output value is a pseudo random number value generated by the hashing module by applying a hash function on a field of a fibre channel frame header of the fibre channel frame for selecting the column value.

14. The system of claim 13 , wherein the hashing module uses a same field value from the fibre channel frame header for a same fibre channel exchange to generate the pseudo random number value.

15. The system of claim 13 , wherein the hash function, to route the fibre channel frame, is used on at least one or more of originator exchange identification field (OX_ID), a destination identifier field (D_ID), a source identifier field (S_ID and a responder exchange identifier field (RX_ID), included in a fibre channel frame header for the fibre channel frame.

16. The system of claim 13 , wherein the hardware logic is a multiplexer and the plurality of inputs are a destination identifier field (D_ID) a source identifier field (S_ID), a virtual storage area network identifier, an originator exchange identification field (OX_ID), the pseudo random number value generated by the hashing module, and a decode fibre channel header type field.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
MERGER Recorded Oct 18, 2017
From: QLOGIC CORPORATION
To: CAVIUM, INC.
Reel/Frame 044812/0504 →
SECURITY AGREEMENT Recorded Mar 1, 2017
From: QLOGIC CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041854/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2004
From: MCGLAUGHLIN, EDWARD C.; DROPPS, FRANK R.; BETKER, STEVEN M.
To: QLOGIC CORPORATION
Reel/Frame 015604/0069 →