IP Library › Granted Patent US 12,470,485
Granted Patent B2
US 12,470,485 · App. 18/063,346 · Granted Nov 11, 2025

Deadlock prevention of switch memory overflow

Inventor: Andrea Enrici (Bourg la Reine, FR)
Assignee: Nokia Solutions and Networks Oy
H04L47/12H04L45/02H04L47/30
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 12,470,485
App. No.
18/063,346
Granted
Nov 11, 2025
Kind
B2
Abstract

Example embodiments disclose a method for avoiding deadlock in a network includes generating a finite state machine indicating possible routing decisions of incoming packets for a plurality of switches, analyzing the finite state machine, determining at least one memory overflow state based on the analyzing, generating at least one anti-deadlock rule in response to determining the at least one memory overflow state, and transmitting the at least one anti-deadlock rule to the plurality of switches.

Claims (49)

1 . A method for avoiding deadlock in a network, the method comprising:

generating, in response to a first switch updating a routing table of the first switch, a finite state machine indicating possible routing decisions of incoming packets for a plurality of switches including first switch;

analyzing the finite state machine;

determining at least one memory overflow state of a buffer memory of at least one switch of the plurality of switches based on the analyzing;

generating at least one anti-deadlock rule in response to determining the at least one memory overflow state; and

transmitting the at least one anti-deadlock rule to the plurality of switches.

2 . The method of claim 1 , wherein the at least one memory overflow state indicates a transition between a state, in the finite state machine, of a second switch, of the plurality of switches, with a memory occupancy that is larger than an available memory space of the second switch.

3 . The method of claim 1 , wherein the transmitting transmits the at least one anti-deadlock rule to the plurality of switches for use in routing the incoming packets at the plurality of switches.

4 . The method of claim 1 , further comprising:

analyzing the finite state machine to determine a deadlock path within the network based on the at least one memory overflow state,

wherein the generating the at least one anti-deadlock rule includes generating the at least one anti-deadlock rule based on the deadlock path.

5 . The method of claim 4 , wherein the generating the at least one anti-deadlock rule comprises:

generating, for switches along the deadlock path, at least one forbidden routing rule, the forbidden routing rule indicating

a set of memory buffers of the switches along the deadlock path associated with the forbidden routing rule, and

a list of forbidden routing rules local to a switch of the plurality of switches.

6 . The method of claim 5 ,

wherein the analyzing includes noting a plurality of buffer allocations, in the finite state machine, between states of the plurality of switches, and

wherein the generating the at least one anti-deadlock rule generates the at least one anti-deadlock rule based on a set of memory buffers, of the plurality of switches along the deadlock path, based on buffer allocations, of the plurality of buffer allocations, along the deadlock path.

7 . The method of claim 1 , wherein the generating the finite state machine comprises:

generating a plurality of individual routing rule finite state machines, each individual routing rule finite state machine of the plurality of individual routing rule finite state machines describing switch memory evolution, of the buffer memory of the plurality of switches, as a consequence of an application of a routing rule; and

combining the plurality of individual routing rule finite state machines to generate the finite state machine.

8 . The method of claim 1 , wherein the finite state machine describes all possible evolutions of buffer memories of the plurality of switches according to routing decisions that can be taken by the plurality of switches on incoming packets.

9 . An apparatus for avoiding deadlock in a network, the apparatus comprising:

a memory; and

processing circuitry configured to cause the apparatus to

generate, in response to a first switch updating a routing table of the first switch, a finite state machine indicating possible routing decisions of incoming packets for a plurality of switches including the first switch,

analyze the finite state machine,

determine at least one memory overflow state of a buffer memory of at least one switch of the plurality of switches based on the analysis,

generate at least one anti-deadlock rule in response to determining the at least one memory overflow state, and

transmit the at least one anti-deadlock rule to the plurality of switches.

10 . The apparatus of claim 9 , wherein the at least one memory overflow state indicates a transition between a state, in the finite state machine, of a second switch, of the plurality of switches, with a memory occupancy that is larger than an available memory space of the second switch.

11 . The apparatus of claim 9 , wherein the processing circuitry is further configured to cause the apparatus to transmit the at least one anti-deadlock rule to the plurality of switches for use in routing the incoming packets at the plurality of switches.

12 . The apparatus of claim 9 , wherein the processing circuitry is further configured to cause the apparatus to:

analyze the finite state machine to determine a deadlock path within the network based on the at least one memory overflow state; and

generate the at least one anti-deadlock rule based on the deadlock path.

13 . The apparatus of claim 12 , wherein the processing circuitry is further configured to cause the apparatus to generate the anti-deadlock rule by generating, for switches along the deadlock path, at least one forbidden routing rule, the forbidden routing rule indicating

a set of memory buffers of the switches along the deadlock path associated with the forbidden routing rule, and

a list of forbidden routing rules local to a switch of the plurality of switches.

14 . The apparatus of claim 13 , wherein the processing circuitry is further configured to cause the apparatus to

note a plurality of buffer allocations, in the finite state machine, between states of the plurality of switches during the analysis of the finite state machine, and

generate the at least one anti-deadlock rule based on a set of memory buffers, of the plurality of switches along the deadlock path, based on buffer allocations, of the plurality of buffer allocations, along the deadlock path.

15 . The apparatus of claim 9 , wherein the processing circuitry is further configured to cause the apparatus to:

generate a plurality of individual routing rule finite state machines, each individual routing rule finite state machine of the plurality of individual routing rule finite state machines describing switch memory evolution, of the buffer memory of the plurality of switches, as a consequence of an application of a routing rule; and

generate the finite state machine by combining the plurality of individual routing rule finite state machines.

16 . A method for avoiding deadlock in a network, the method comprising:

routing, by a first switch of a plurality of switches, a data packet according to at least one anti-deadlock rule, the at least one anti-deadlock rule based on a deadlock path within the network, the deadlock path in the network being determined by an analysis of a finite state machine indicating at least one memory overflow state of a buffer memory of at least one switch of the plurality of switches, the finite state machine having been generated in response to a second switch of the plurality of switches updating a routing table of the second switch.

17 . The method of claim 1 , wherein

the analyzing analyzes the finite state machine to determine at least one deadlock path within the network, and

the generating the at least one anti-deadlock rule includes generating at least one respective anti-deadlock rule based on each deadlock path of the at least one deadlock path.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2022
From: ALCATEL-LUCENT INTERNATIONAL S.A.
To: NOKIA SOLUTIONS AND NETWORKS OY
Reel/Frame 062178/0653 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2022
From: ENRICI, ANDREA
To: ALCATEL-LUCENT INTERNATIONAL S.A.
Reel/Frame 062178/0667 →
Continuity (1)
Related Publication 20240195742A1 · Jun 13, 2024
References Cited (13)
US 5781546A · Sethu · 1998 [cited by applicant]
US 9042222B2 · Kwan et al. · 2015 [cited by applicant]
US 9244880B2 · Philip · 2016 [cited by examiner]
US 9519523B2 · Dunn et al. · 2016 [cited by applicant]
US 20050174942A1 · Betker · 2005 [cited by applicant]
J. Wu ‘A Fault-Tolerant and Deadlock-Free Routing Protocol in 2D Meshes Based on Odd- Even Turn Model’ [cited by applicant]
J. Sancho et al ‘An Effective Methodology to Improve the Performance of the Up*/Down* Routing Algorithm’ [cited by applicant]
M. Karol et al ‘Prevention of Deadlocks and Livelocks in Lossless Backpressured Packet Networks’ [cited by applicant]
T. Skeie et al ‘Layered Shortest Path (LASH) Routing in Irregular System Area Networks,’ Jan. 2002, pp. 1-8. [cited by applicant]
B. Stephens et al ‘Practical DCB for Improved Data Center Networks’ [cited by applicant]
Extended European Search Report dated Mar. 14, 2024 for corresponding European Application No. 23210726.8. [cited by applicant]
S. Das et al. ‘Formal Modeling of Network-on-Chip Using CFSM and Its Application in Detecting Deadlock’ IEEE Transactions on very large scale integration (VLSI) systems, vol. 28, No. 4, 2020, pp. 1016-1029. [cited by applicant]
Y. Zhang et al. ‘An Interactive Protocol Synthesis Algorithm Using a Global State Transition Graph’ 8198 IEEE Transactions on Software Engineering, 14, No. 3, 1988, pp. 394-404. [cited by applicant]