IP Library Granted Patent US 7,756,015
Granted Patent B1
US 7,756,015 · App. 11/900,728 · Granted Jul 13, 2010

Fast failover recovery for stackable network switches

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,756,015
App. No.
11/900,728
Granted
Jul 13, 2010
Kind
B1
Abstract

A stack unit for a stackable network switch, the stack unit having corresponding methods and computer programs, comprises a network port to exchange packets with a network; two stacking interfaces each to exchange the packets over a respective stacking link with another stack unit, wherein each stacking interface is assigned to the other stacking interface as an alternate stacking interface; and a forwarding engine to transfer the packets among the stacking interfaces and network port; wherein when one of the stacking links is down, the respective stacking interface toggles a loop flag in each packet received from the forwarding engine, and returns each received packet to the forwarding engine; and wherein the forwarding engine transfers each packet received from one of the stacking interfaces to the respective alternate stacking interface when the loop flag for the packet is set.

Claims (58)

1. A stack unit for a stackable network switch, the stack unit comprising:

a network port to exchange packets with a network;

two stacking interfaces each to exchange the packets over a respective stacking link with another stack unit, wherein each stacking interface is assigned to the other stacking interface as an alternate stacking interface; and

a forwarding engine to transfer the packets among the stacking interfaces and the network port;

wherein when one of the stacking links is down, the respective stacking interface toggles a loop flag in each packet received from the forwarding engine, and returns each received packet to the forwarding engine; and

wherein the forwarding engine transfers each packet received from one of the stacking interfaces to the respective alternate stacking interface when the loop flag for the packet is set.

2. The stack unit of claim 1 :

wherein each stacking interface comprises a failure detect unit to detect failure of the respective stacking link.

3. The stack unit of claim 1 :

wherein the forwarding engine transfers a packet to the network port only when the loop flag for the packet is not set.

4. The stack unit of claim 1 :

wherein the stack unit has a device identifier;

wherein the stack unit adds the device identifier as a source device identifier, and adds a device identifier of another stack unit as a target device identifier, to each packet received from the network by the stack unit; and

wherein the forwarding engine transfers a packet to the network port only when the loop flag for the packet is not set, or when the packet is a unicast packet and the target device identifier of the packet is the device identifier of the stack unit.

5. The stack unit of claim 1 :

wherein the stack unit has a device identifier;

wherein the stack unit adds the device identifier as a source device identifier to each packet received from the network by the stack unit;

wherein the forwarding engine sets a drop-on-source flag in each packet received from one of the stacking interfaces when the loop flag for the packet is set and the source device identifier of the packet is the device identifier for the stack unit; and

wherein the forwarding engine drops a packet received by the forwarding engine when the loop flag for the packet is set, the drop-on-source flag for the packet is set, and the source device identifier of the packet is the device identifier for the stack unit.

6. The stack unit of claim 1 :

wherein the stacking links connect the stack unit to another stack unit in a dual ring topology.

7. A stackable network switch incorporating the stack unit of claim 1 .

8. A method for operating a stack unit, the method comprising:

exchanging packets with a network via a network port;

exchanging the packets through two stacking interfaces of the stack unit over respective stacking links with another stack unit, wherein each stacking interface is assigned to the other stacking interface as an alternate stacking interface;

transferring the packets among the stacking interfaces and the network port using a forwarding engine;

when one of the stacking links is down, toggling a loop flag in each packet received by the respective stacking interface from the forwarding engine and returning each received packet to the forwarding engine; and

transferring each packet received by the forwarding engine from one of the stacking interfaces to the respective alternate stacking interface when the loop flag is set.

9. The method of claim 8 , further comprising:

detecting failure amongst the stacking links.

10. The method of claim 8 , further comprising:

transferring a packet from the forwarding engine to the network port only when the loop flag for the packet is not set.

11. The method of claim 8 , wherein the stack unit has a device identifier, the method further comprising:

adding the device identifier of the stack unit as a source device identifier to a packet received from the network by the stack unit;

adding a device identifier of another stack unit as a target device identifier to the packet; and

transferring a packet from the forwarding engine to the network port only when the loop flag for the packet is not set, or when the packet is a unicast packet and the target device identifier of the packet is the device identifier of the stack unit.

12. The method of claim 8 :

wherein the stack unit has a device identifier; and

wherein the stack unit adds the device identifier as a source device identifier to a packet received from the network by the stack unit;

the method further comprising

setting a drop-on-source flag in a packet received by the forwarding engine from another stack unit when the loop flag for the packet is set and the source device identifier of the packet is the device identifier for the stack unit, and

dropping a packet received by the forwarding engine when the loop flag for the packet is set, the drop-on-source flag for the packet is set, and the source device identifier of the packet is the device identifier for the stack unit.

13. The method of claim 8 :

wherein the stacking links connect the stack unit to another stack unit in a dual ring topology.

14. A method for operating a stack unit, the method comprising:

exchanging packets with a network via a network port;

exchanging the packets through two stacking interfaces of the stack unit over respective stacking links with another stack unit, wherein each stacking interface is assigned to the other stacking interface as an alternate stacking interface;

when one of the stacking links is down, toggling a loop flag in a packet received by the respective stacking interface, and transferring the packet to the respective alternate stacking interface;

adding a device identifier of the stack unit as a source device identifier to a packet received from the network by the stack unit;

adding a device identifier of another stack unit as a target device identifier to the packet; and

transferring a packet to the network port only when the loop flag for the packet is not set, or when the packet is a unicast packet and the target device identifier of the packet is the device identifier of the stack unit.

15. A method for operating a stack unit, the method comprising:

exchanging packets with a network;

exchanging the packets through two stacking interfaces of the stack unit over respective stacking links with another stack unit, wherein each stacking interface is assigned to the other stacking interface as an alternate stacking interface;

when one of the stacking links is down, toggling a loop flag in a packet received by the respective stacking interface, and transferring the packet to the respective alternate stacking interface;

wherein the stack unit adds a device identifier of the stack unit as a source device identifier to a packet received from the network by the stack unit;

setting a drop-on-source flag in a packet received from another stack unit when the loop flag for the packet is set and the source device identifier of the packet is the device identifier for the stack unit, and

dropping a packet when the loop flag for the packet is set, the drop-on-source flag for the packet is set, and the source device identifier of the packet is the device identifier for the stack unit.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2010
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 024184/0802 →
CHANGE OF NAME Recorded Jul 1, 2008
From: MARVELL SEMICONDUCTOR ISRAEL LTD.
To: MARVELL ISRAEL (M.I.S.L) LTD.
Reel/Frame 021180/0912 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2007
From: AVIVI, AMIT
To: MARVELL SEMICONDUCTOR ISRAEL LTD.
Reel/Frame 020290/0445 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2007
From: BISHARA, NAFEA
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 019860/0296 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2007
From: DANIEL, TSAHI; AVIVI, AMIT
To: MARVELL SEMICONDUCTOR ISRAEL LTD.
Reel/Frame 019860/0292 →