IP Library Granted Patent US 7,512,061
Granted Patent B2
US 7,512,061 · App. 11/099,540 · Granted Mar 31, 2009

Recovery of state information of a first tunnel end-point

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,512,061
App. No.
11/099,540
Granted
Mar 31, 2009
Kind
B2
Abstract

A method for recovering state information of a first tunnel endpoint of a point to point connection between the first tunnel endpoint and a second tunnel endpoint, the state information comprising a first state variable comprising a sequence number for sent messages and a second state variable comprising a sequence number for received messages. The method comprises detecting a crash of the first tunnel endpoint with a backup tunnel endpoint of the first tunnel endpoint, sending, from the backup tunnel endpoint, at least one request message to the second tunnel endpoint, and recovering the first state variable and the second state variable of the first tunnel endpoint based on the state variables present in at least one response message from the second tunnel endpoint.

Claims (137)

1. A method comprising:

detecting a crash of a first tunnel endpoint with a backup tunnel endpoint of the first tunnel endpoint;

sending a hello message to a second tunnel endpoint from the backup tunnel endpoint, wherein state variables in the hello message are set as current first and second state variables of the backup tunnel endpoint;

receiving a response message from the second tunnel endpoint, wherein state variables in the response message comprise first and second state variables of the second tunnel endpoint;

setting the second state variable of the backup tunnel endpoint as the first state variable in the response message incremented by one;

recovering the first state variable of the first tunnel endpoint when the second state variable in the response message equals the first state variable of the backup tunnel endpoint incremented by one;

initiating a new session between the backup tunnel endpoint and the second tunnel endpoint;

sending a session initiation request message from the backup tunnel endpoint to the second tunnel endpoint, wherein state variables in the session initiation request message are set as current first and second state variables of the backup tunnel endpoint;

receiving a session initiation response message from the second tunnel endpoint, wherein the state variables in the session initiation response message comprise the first and second state variables of the second tunnel endpoint;

recovering the second state variable of the first tunnel endpoint from the first state variable of the second tunnel endpoint present in the session initiation response message; and

disconnecting the initiated session,

wherein the first state variable comprises a sequence number for sent messages and the second state variable comprises a sequence number for received messages.

2. The method according to claim 1 , wherein when the second state variable of the second tunnel endpoint in the response message does not equal the first state variable of the backup tunnel endpoint incremented by one, the method further comprises:

setting the first state variable of the backup tunnel endpoint as the second state variable in the response message;

sending a hello message to the second tunnel endpoint from the backup tunnel endpoint, wherein the state variables in the hello message are set as current first and second state variables of the backup tunnel endpoint;

receiving a response message from the second tunnel endpoint, wherein the state variables in the response message comprise the first and second state variables of the second tunnel endpoint;

setting the second state variable of the backup tunnel endpoint as the first state variable in the response message incremented by one; and

recovering the first state variable of the first tunnel endpoint when the second state variable in the response message equals the first state variable of the backup tunnel endpoint incremented by one.

3. The method according to claim 1 , wherein the first state variable comprises the sequence number of a last sent message and the second state variable comprises a next sequence number expected to receive.

4. The method according to claim 1 , wherein the point to point connection is a Layer Two Tunneling Protocol tunnel.

5. An apparatus, comprising:

a detector configured to detect a crash of a first tunnel endpoint,

a transmitter configured to send a hello message to a second tunnel endpoint, wherein state variables in the hello message are set as current first and second state variables of the apparatus,

a receiver configured to receive a response message from the second tunnel endpoint, wherein state variables in the response message comprise first and second state variables of the second tunnel endpoint,

a recovering entity configured to set the second state variable of the apparatus as the first state variable in the response message incremented by one, wherein

the recovering entity is configured to recover the first state variable of the first tunnel endpoint when the second state variable in the response message equals the first state variable of the apparatus incremented by one,

the transmitter is configured to initiate a new session between the apparatus and the second tunnel endpoint by sending a session initiation request message to the second tunnel endpoint, wherein state variables in the session initiation request message are set as current first and second state variables of the apparatus,

the receiver is configured to receive a session initiation response message from the second tunnel endpoint, wherein state variables in the session initiation response message comprise the first and second state variables of the second tunnel endpoint,

the recovering entity is configured to recover the second state variable of the first tunnel endpoint from the first state variable of the second tunnel endpoint present in the session initiation response message, and

the transmitter is configured to disconnect the initiated session by sending a disconnecting message to the second tunnel endpoint,

wherein the first state variable comprises a sequence number for sent messages and the second state variable comprises a sequence number for received messages.

6. The apparatus according to claim 5 , wherein when the second state variable of the second tunnel endpoint in the response message does not equal the first state variable of a backup tunnel endpoint incremented by one

the recovering entity is configured to set the first state variable of the apparatus as the second state variable in the response message,

the transmitter is configured to send a hello message to the second tunnel endpoint, wherein the state variables in the hello message are set as current first and second state variables of the apparatus,

the receiver is configured to receive a response message from the second tunnel endpoint, wherein the state variables in the response message comprise first and second state variables of the second tunnel endpoint,

the recovering entity is configured to set the second state variable of the apparatus as the first state variable in the response message incremented by one, and

the recovering entity is configured to recover the first state variable of the first tunnel endpoint when the second state variable in the response message equals the first state variable of the apparatus incremented by one.

7. The apparatus according to claim 5 , wherein

the transmitter is configured to send an incoming call request message to the second tunnel endpoint as the session initiation request message, and

the receiver is configured to receive an incoming call reply message as the session initiation response message.

8. The apparatus according to claim 5 , wherein

the transmitter is configured to send an outgoing call request message to the second tunnel endpoint as the session initiation request message, and

the receiver is configured to receive an outgoing call reply message as the session initiation response message.

9. The method according to claim 1 , further comprising:

sending an incoming call request message to the second tunnel endpoint as the session initiation request message; and

receiving an incoming call reply message as the session initiation response message.

10. The method according to claim 1 , further comprising:

sending an outgoing call request message to the second tunnel endpoint as the session initiation request message; and

receiving an outgoing call reply message as the session initiation response message.

11. The apparatus according to claim 5 , wherein the first state variable comprises the sequence number of a last sent message and the second state variable comprises a next sequence number expected to receive.

12. The apparatus according to claim 5 , wherein the apparatus comprises a Layer Two Tunneling Protocol tunnel endpoint.

13. A system, comprising:

a first tunnel endpoint;

a backup tunnel endpoint for the first tunnel endpoint;

a second tunnel endpoint;

a point to point connection between the first tunnel endpoint and the second tunnel endpoint;

a first state variable in each of the first and second tunnel endpoints comprising a sequence number for sent messages; and

a second state variable in each of the first and second tunnel endpoints comprising a sequence number for received messages, wherein the backup tunnel endpoint comprises

a detector configured to detect a crash of the first tunnel endpoint,

a transmitter configured to send a hello message to the second tunnel endpoint, wherein state variables in the hello message are set as current first and second state variables of the apparatus,

a receiver configured to receive a response message from the second tunnel endpoint, wherein state variables in the response message comprise the first and second state variables of the second tunnel endpoint,

a recovering entity confirmed to set the second state variable of the apparatus as the first state variable in the response message incremented by one, wherein

the recovering entity is configured to recover the first state variable of the first tunnel endpoint when the second state variable in the response message equals the first state variable of the apparatus incremented by one,

the transmitter is configured to initiate a new session between the apparatus and the second tunnel endpoint by sending a session initiation request message to the second tunnel endpoint, wherein state variables in the session initiation request message are set as current first and second state variables of the apparatus,

the receiver is configured to receive a session initiation response message from the second tunnel endpoint, wherein the state variables in the session initiation response message comprise the first and second state variables of the second tunnel endpoint,

the recovering entity is configured to recover the second state variable of the first tunnel endpoint from the first state variable of the second tunnel endpoint present in the session initiation response message, and

the transmitter is configured to disconnect the initiated session by sending a disconnecting message to the second tunnel endpoint,

wherein the first state variable comprises a sequence number for sent messages and the second state variable comprises a sequence number for received messages.

14. The system according to claim 13 , wherein when the second state variable in the response message does not equal the first state variable of the backup tunnel endpoint incremented by one

the recovering entity is configured to set the first state variable of the backup tunnel endpoint as the second state variable in the response message,

the transmitter is configured to send a hello message to the second tunnel endpoint, wherein the state variables in the hello message are set as current first and second state variables of the backup tunnel endpoint,

the receiver is configured to receive a response message from the second tunnel endpoint, wherein the state variables in the response message comprise first and second state variables of the second tunnel endpoint,

the recovering entity is configured to set the second state variable of the backup tunnel endpoint as the first state variable in the response message incremented by one; and

the recovering entity is configured to recover the first state variable of the first tunnel endpoint when the second state variable in the response message equals the first state variable of the backup tunnel endpoint incremented by one.

15. The system according to claim 13 , wherein

the transmitter is configured to send an incoming call request message to the second tunnel endpoint as the session initiation request message, and

the receiver is configured to receive an incoming call reply message as the session initiation response message.

16. The system according to claim 13 , wherein

the transmitter is configured to send an Outgoing call Request message to the second tunnel endpoint as the session initiation request message, and

the receiver is configured to receive an Outgoing call reply message as the session initiation response message.

17. The system according to claim 13 , wherein the first state variable comprises the sequence number of a last sent message and the second state variable comprises a next sequence number expected to receive.

18. The system according to claim 13 , wherein the tunnel endpoints comprise Layer Two Tunneling Protocol tunnel endpoints.

19. A computer program embodied on a computer readable medium, the computer program being configured to control a data processing device to perform:

detecting a crash of a first tunnel endpoint with a backup tunnel endpoint of the first tunnel endpoint;

sending a hello message to the second tunnel endpoint from the backup tunnel endpoint, wherein state variables in the hello message are set as current first and second state variables of the backup tunnel endpoint,

receiving a response message from the second tunnel endpoint, wherein state variables in the response message comprise first and second state variables of the second tunnel endpoint,

setting the second state variable of the backup tunnel endpoint as the first state variable in the response message incremented by one,

recovering the first state variable of the first tunnel endpoint when the second state variable in the response message equals the first state variable of the backup tunnel endpoint incremented by one,

initiating a new session between the backup tunnel endpoint and the second tunnel endpoint,

sending a session initiation request message from the backup tunnel endpoint to the second tunnel endpoint, wherein state variables in the session initiation request message are set as current first and second state variables of the backup tunnel endpoint,

receiving a session initiation response message from the second tunnel endpoint, wherein state variables in the session initiation response message comprise the first and second state variables of the second tunnel endpoint,

recovering the second state variable of the first tunnel endpoint from the first state variable of the second tunnel endpoint present in the session initiation response message, and

disconnecting the initiated session,

wherein the first state variable comprises a sequence number for sent messages and the second state variable comprises a sequence number for received messages.

20. The computer program according to claim 19 , wherein when the second state variable of the second tunnel endpoint in the response message does not equal the first state variable of the backup tunnel endpoint incremented by one, said program is further configured to perform

setting the first state variable of the backup tunnel endpoint as the second state variable in the response message;

sending a hello message to the second tunnel endpoint from the backup tunnel endpoint, wherein the state variables in the hello message are set as current first and second state variables of the backup tunnel endpoint;

receiving a response message from the second tunnel endpoint, wherein the state variables in the response message comprise the first and second state variables of the second tunnel endpoint;

setting the second state variable of the backup tunnel endpoint as the first state variable in the response message incremented by one; and

recovering the first state variable of the first tunnel endpoint when the second state variable in the response message equals the first state variable of the backup tunnel endpoint incremented by one.

21. The computer program according to claim 19 , wherein said program further configured to perform:

sending an incoming call request message to the second tunnel endpoint as the session initiation request message; and

receiving an incoming call reply message as the session initiation response message.

22. The computer program according to claim 19 , wherein said program further configured to perform:

sending an outgoing call request message to the second tunnel endpoint as the session initiation request message; and

receiving an outgoing call reply message as the session initiation response message.

23. The computer program according to claim 19 , wherein the first state variable comprises the sequence number of a last sent message and the second state variable comprises a next sequence number expected to receive.

24. An apparatus, comprising:

detecting means for detecting a crash of a first tunnel endpoint;

sending means for sending a hello message to the second tunnel endpoint from the backup tunnel endpoint, wherein state variables in the hello message are set as current first and second state variables of the backup tunnel endpoint,

receiving means for receiving a response message from the second tunnel endpoint, wherein state variables in the response message comprise first and second state variables of the second tunnel endpoint,

setting means for setting the second state variable of the backup tunnel endpoint as the first state variable in the response message incremented by one,

recovering means for recovering the first state variable of the first tunnel endpoint when the second state variable in the response message equals the first state variable of the backup tunnel endpoint incremented by one,

initiating means for initiating a new session between the backup tunnel endpoint and the second tunnel endpoint, wherein

the sending means are configured to send a session initiation request message from the backup tunnel endpoint to the second tunnel endpoint, wherein state variables in the session initiation request message are set as current first and second state variables of the backup tunnel endpoint,

the receiving means receives a session initiation response message from the second tunnel endpoint, wherein state variables in the session initiation response message comprise the first and second state variables of the second tunnel endpoint,

the recovering means recovers the second state variable of the first tunnel endpoint from the first state variable of the second tunnel endpoint present in the session initiation response message, and

disconnecting means for disconnecting the initiated session,

wherein the first state variable comprises a sequence number for sent messages and the second state variable comprises a sequence number for received messages.

25. A system, comprising:

a first tunnel endpoint;

a backup tunnel endpoint for the first tunnel endpoint;

a second tunnel endpoint;

a point to point connection between the first tunnel endpoint and the second tunnel endpoint;

a first state variable in each of the first and second tunnel endpoints comprising a sequence number for sent messages; and

a second state variable in each of the first and second tunnel endpoints comprising a sequence number for received messages, wherein the backup tunnel endpoint comprises

detecting means for detecting a crash of the first tunnel endpoint,

sending means for sending a hello message to the second tunnel endpoint from the backup tunnel endpoint, wherein state variables in the hello message are set as current first and second state variables of the backup tunnel endpoint,

receiving means for receiving a response message from the second tunnel endpoint, wherein state variables in the response message comprise the first and second state variables of the second tunnel endpoint,

setting means for setting the second state variable of the backup tunnel endpoint as the first state variable in the response message incremented by one,

recovering means for recovering the first state variable of the first tunnel endpoint when the second state variable in the response message equals the first state variable of the backup tunnel endpoint incremented by one,

initiating means for initiating a new session between the backup tunnel endpoint and the second tunnel endpoint, wherein

the sending means sends a session initiation request message from the backup tunnel endpoint to the second tunnel endpoint, wherein state variables in the session initiation request message are set as current first and second state variables of the backup tunnel endpoint,

the receiving means receives a session initiation response message from the second tunnel endpoint, wherein state variables in the session initiation response message comprise the first and second state variables of the second tunnel endpoint,

the recovering means recovers the second state variable of the first tunnel endpoint from the first state variable of the second tunnel endpoint present in the session initiation response message, and

disconnecting means for disconnecting the initiated session,

wherein the first state variable comprises a sequence number for sent messages and the second state variable comprises a sequence number for received messages.

Assignments (11)
PATENT SECURITY AGREEMENT Recorded Aug 6, 2024
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 068328/0674 →
RELEASE OF LIEN ON PATENTS Recorded Aug 5, 2024
From: BARINGS FINANCE LLC
To: RPX CORPORATION
Reel/Frame 068328/0278 →
PATENT SECURITY AGREEMENT Recorded Apr 22, 2023
From: RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 063429/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2015
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 035442/0984 →