IP Library Granted Patent US 9,077,590
Granted Patent B2
US 9,077,590 · App. 12/820,384 · Granted Jul 7, 2015

Systems and methods for providing link management in a multi-core system

Inventors: Deepak Goel (Karnataka, IN); Sandhya Gopinath (Karnataka, IN); Jyotheesh Rao Kurma (Karnataka, IN)
Assignee: CITRIX SYSTEMS, INC.
H04L29/12028H04L29/1282H04L61/103H04L61/6013
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 9,077,590
App. No.
12/820,384
Granted
Jul 7, 2015
Kind
B2
Abstract

The present application is directed towards systems and methods for providing link management in a multi-core system. In some embodiments, the present application describes solutions for managing address resolution in IPv4 networks in a multi-core system. In other embodiments, the present application describes solutions for managing neighbor discovery in IPv6 networks in a multi-core system. In still other embodiments, the present application describes solutions for managing network bridging in a multi-core system. In yet other embodiments, the present application describes solutions for managing link aggregation in a multi-core system. And in still other embodiments, the present application describes solutions for managing virtual routers in a multi-core system.

Claims (79)

1. A method for handling resolution of a protocol address via an address resolution protocol (ARP) in a multi-core device, the method comprising:

receiving, by a first core of a plurality of cores of a multi-core device, a first request to transmit data to a protocol address;

determining, by a first address resolution protocol (ARP) manager of the first core, that an entry is not found in a first local ARP table of the first core that matches the protocol address;

transmitting, by the first ARP manager to a second core designated as a master ARP core, a second request for resolution of the protocol address;

transmitting, by a second ARP manager of the second core, a corresponding ARP request for resolution of the protocol address to a second device, responsive to receiving the second request from the first ARP manager;

receiving, by a third ARP manager of a third core from the second device, an ARP message identifying a hardware address corresponding to a sender protocol address;

determining, by the third ARP manager, that the received ARP message is not a response to an ARP request of the third ARP manager; and

transmitting, by the third ARP manager responsive to the determination that the received ARP message is not a response to an ARP request of the third ARP manager, the ARP message identifying the sender protocol address and the hardware address to the master ARP manager.

2. The method of claim 1 , wherein determining that an entry is not found in the first local ARP table of the first core that matches the protocol address further comprises determining, by the first ARP manager, that the first core is not the designated master core for ARP.

3. The method of claim 1 , further comprising determining, by the second ARP manager of the second core, whether an entry is found in a second local ARP table of the second core that matches the protocol address.

4. The method of claim 3 , further comprising determining, by the second ARP manager, that the entry in the second ARP table matching the protocol address is not found and transmitting a broadcast ARP request to resolve the protocol address.

5. The method of claim 3 , further comprising determining, by the second ARP manager, that the entry in the second ARP table matching the protocol address is found and determining a hardware address from the entry and communicating a response to the first core to resolve the protocol address.

6. The method of claim 5 , further comprising:

receiving, by the first core, the response from the second ARP manager, the response including the hardware address; and

adding the hardware address, by the first ARP manager, to the first local ARP table.

7. The method of claim 4 , further comprising:

receiving, by the second ARP manager, a response to the broadcast ARP request, the response including a hardware address for the requested protocol address;

adding, by the second ARP manager, the hardware address to the second ARP table; and

transmitting, by the second ARP manager to the first ARP manager, the response to the second request for resolution of the protocol address.

8. The method of claim 7 , further comprising:

receiving, by the first core, the response from the second ARP manager, the response including the hardware address; and

adding the hardware address, by the first ARP manager, to the first local ARP table.

9. A method for handling resolution of a protocol address via an address resolution protocol (ARP) in a multi-core device, the method comprising:

receiving, by a first core of a plurality of cores of a multi-core device, a first request to transmit data to a protocol address;

determining, by a first address resolution protocol (ARP) manager of the first core, that an entry is not found in a first local ARP table of the first core that matches the protocol address;

transmitting, by the first ARP manager to a second core designated as a master ARP core, a second request for resolution of the protocol address;

transmitting, by a second ARP manager of the second core, a corresponding ARP request for resolution of the protocol address to a second device, responsive to receiving the second request from the first ARP manager;

receiving, by a third ARP manager of a third core, an ARP message identifying a hardware address corresponding to a sender protocol address;

determining, by the third ARP manager, that the received ARP message is not a response to an ARP request of the third ARP manager;

identifying, by the third ARP manager, that a current entry exists in a third local ARP table of the third core matching the sender protocol address;

determining, by the third ARP manager responsive to the identification, whether a target protocol address of the ARP message (i) is owned by a core of the multi-core device, or (ii) is not owned a core of the multi-core device; and

responsive to the determination of whether a target protocol address of the ARP message (i) is owned by a core of the multi-core device, or (ii) is not owned a core of the multi-core device, either (i) transmitting an ARP response to the sender, or (ii) bridging the ARP message.

10. The method of claim 1 , further comprising:

identifying, by the third ARP manager, that a current entry in a third local ARP table of the third core matching the sender protocol address either does not exist or is not current; and

responsive to the identification, either adding or updating the entry in the third local ARP table identifying the sender protocol address and the hardware address; and

wherein transmitting, by the third ARP manager to the master ARP manager, the ARP message identifying the sender protocol address and the hardware address, is further performed responsive to the identification.

11. A system for handling resolution of a protocol address via an address resolution protocol (ARP) in a multi-core device, the system comprising:

a multi-core device comprising a plurality of cores;

a first core of the plurality of cores executing a first address resolution protocol (ARP) manager, the first ARP manager configured for:

receiving a first request to transmit data to a protocol address,

determining that an entry is not found in a first local ARP table of the first core that matches the protocol address, and

transmitting, to a second core of the plurality of cores designated as a master ARP core, a second request for resolution of the protocol address, a second ARP manager of the second core transmitting a corresponding ARP request for resolution of the protocol address to a second device; and

a third core of the plurality of cores executing a third ARP manager, the third ARP manager configured for:

receiving, from the second device, an ARP message identifying a hardware address corresponding to a sender protocol address,

determining that the received ARP message is not a response to an ARP request of the third ARP manager, and

transmitting, responsive to the determination that the received ARP message is not a response to an ARP request of the third ARP manager, the ARP message identifying the sender protocol address and the hardware address to the master ARP manager.

12. The system of claim 11 , wherein the first ARP manager is further configured for determining that the first core is not the designated master core for ARP.

13. The system of claim 11 , wherein the system further comprises the second core executing a second ARP manager, and wherein the second ARP manager is configured for determining whether an entry is found in a second local ARP table of the second core that matches the protocol address.

14. The system of claim 13 , wherein the second ARP manager is further configured for:

determining that the entry in the second ARP table matching the protocol address is found,

determining a hardware address from the entry, and

communicating a response to the first core to resolve the protocol address.

15. The system of claim 14 , wherein the first ARP manager is further configured for:

receiving the response from the second ARP manager, the response including the hardware address, and

adding the hardware address to the first local ARP table.

16. The system of claim 13 , wherein the second ARP manager is further configured for determining that the entry in the second ARP table matching the protocol address is not found, and transmitting a broadcast ARP request to resolve the protocol address.

17. The system of claim 16 , wherein the second ARP manager is further configured for:

receiving a response to the broadcast ARP request, the response including a hardware address for the requested protocol address,

adding the hardware address to the second ARP table, and

transmitting, to the first ARP manager, the response to the second request for resolution of the protocol address.

18. The system of claim 17 , wherein the first ARP manager is further configured for:

receiving the response from the second ARP manager, the response including the hardware address, and

adding the hardware address to the first local ARP table.

19. A system for handling resolution of a protocol address via an address resolution protocol (ARP) in a multi-core device, the system comprising:

a multi-core device comprising a plurality of cores;

a first core of the plurality of cores executing a first address resolution protocol (ARP) manager, the first ARP manager configured for:

receiving a first request to transmit data to a protocol address,

determining that an entry is not found in a first local ARP table of the first core that matches the protocol address, and

transmitting, to a second core of the plurality of cores designated as a master ARP core, a second request for resolution of the protocol address, a second ARP manager of the second core transmitting a corresponding ARP request for resolution of the protocol address to a second device; and

a third core of the plurality of cores executing a third ARP manager,-the third ARP manager configured for:

receiving an ARP message identifying a hardware address corresponding to a sender protocol address;

determining that the received ARP message is not a response to an ARP request of the third ARP manager;

identifying that a current entry exists in a third local ARP table of the third core matching the sender protocol address;

determining, responsive to the identification, that a target protocol address of the ARP message is not owned by a core of the multi-core device; and

responsive to the determination that a target protocol address of the ARP message is not owned a core of the multi-core device, bridging the ARP message.

20. The system of claim 11 , wherein the third ARP manager is further configured for:

identifying that a current entry in a third local ARP table of the third core matching the sender protocol address either does not exist or is not current;

responsive to the identification, either adding or updating the entry in the third local ARP table identifying the sender protocol address and the hardware address; and

wherein transmitting, to the master ARP manager, the ARP message identifying the sender protocol address and the hardware address, is further performed responsive to the identification.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2010
From: GOEL, DEEPAK; GOPINATH, SANDHYA; KURMA, JYOTHEESH RAO
To: CITRIX SYSTEMS, INC.
Reel/Frame 024638/0420 →
Continuity (2)
Provisional Application 61219275 · Jun 22, 2009
Related Publication 20100325257A1 · Dec 23, 2010