IP Library Granted Patent US 9,325,564
Granted Patent B1
US 9,325,564 · App. 13/773,164 · Granted Apr 26, 2016

GRE tunnels to resiliently move complex control logic off of hardware devices

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,325,564
App. No.
13/773,164
Granted
Apr 26, 2016
Kind
B1
Abstract

A forwarding device, such as a router, in a network may communicate with a service device according to a networking protocol. According to exemplary embodiments, logic for communicating according to the networking protocol may be relocated from the forwarding device to one or more remote controllers. The remote controllers may encapsulate networking messages and forward the networking messages to the forwarding device using a tunnel, thereby allowing the messages to follow the same path through the network as the messages would have followed if the messages had originated at the forwarding device. Accordingly, the forwarding device can be made simpler, updates to the networking protocol or remote controllers may be made without ceasing operations at the forwarding device, errors in the network may be quickly diagnosed, and a backup remote controller may take responsibility for communications in the network if a primary controller is rendered inoperable.

Claims (42)

1. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to:

connect to a remote forwarding device separated from the one or more processors by at least one network link in a network;

generate a message, the message relating to a networking protocol used in the network, the message including an identifier identifying a sender of the message, the identifier indicating that the sender of the message is the remote forwarding device;

encapsulate the message to form an encapsulating message; and

send the encapsulating message to the remote forwarding device via the at least one network link.

2. The medium of claim 1 , further comprising instructions for:

directly contacting the remote forwarding device; and

directly programming the remote forwarding device with instructions related to the tunnel.

3. The medium of claim 1 , wherein the remote forwarding device is not programmed to communicate using the networking protocol.

4. The medium of claim 1 , wherein the networking protocol is Border Gateway Protocol (BGP).

5. The medium of claim 1 , wherein connecting to the remote forwarding device comprises generating a tunnel to the remote forwarding device.

6. The medium of claim 5 , wherein generating the tunnel is performed using tunneling logic, and the tunneling logic causes the message to follow a same path to a destination device as messages that originate at the remote forwarding device.

7. The medium of claim 6 , further comprising instructions for:

identifying a transmission error related to the sending of the encapsulating message; and

diagnosing a network error based on the identifying.

8. An electronic device-implemented method comprising:

receiving, by a forwarding device, a first message encapsulating a second message, the first message specifying a first sending address and the second message specifying a second sending address different from the first sending address, wherein the first sending address is of a remote controller and the second sending address is of the forwarding device, the encapsulated second message containing one or more networking protocol instructions;

extracting the encapsulated second message from the encapsulating first message; and

sending, by the forwarding device, the second message to a destination device.

9. The method of claim 8 , wherein the first sending address identifies a plurality of remote controllers.

10. The method of claim 9 , wherein one of the plurality of remote controllers ceases communication with the forwarding device, and another of the plurality of remote controllers sends networking protocol instructions to the forwarding device.

11. The method of claim 8 , wherein the networking protocol instructions are described by a networking protocol, and further comprising:

receiving a third message according to the networking protocol, the third message including a third sending address from a service device; and

forwarding the third message to the remote controller.

12. The method of claim 11 , wherein forwarding the third message comprises using a tunneling protocol to send the third message to the remote controller.

13. A system comprising: a memory for storing:

connection logic for directly connecting to a forwarding device using a first connection,

networking logic describing a networking protocol, and

tunneling logic for communicating with the forwarding device; and

a processor configured to:

open a second connection to the forwarding device using the tunneling logic, the second connection comprising a tunnel, the second connection being distinct from the first connection,

generate a first message encapsulating a second message according to the networking logic, the second message specifying an address of the forwarding device as a sending address and the second message describing a forwarding technique defined by the networking logic, and

send the first message encapsulating the second message towards the forwarding device using the second connection.

14. The system of claim 13 , wherein the processor is further configured to directly contact the forwarding device and program the forwarding device with instructions related to the tunnel.

15. The system of claim 13 , wherein the forwarding device is not programmed to communicate using the networking protocol.

16. The system of claim 13 , wherein the networking protocol is Border Gateway Protocol (BGP).

17. The system of claim 13 , wherein generating the first message comprises encapsulating the second message.

18. The system of claim 13 , wherein the tunneling logic causes the second message to follow a same path to a destination device as messages that originate at the remote forwarding device.

19. The system of claim 13 , wherein the processor is further configured to:

identify a transmission error related to the sending of the encapsulated second message; and

diagnose a network error based on the identifying.

20. The system of claim 13 , wherein the processor is further configured to receive a third message from a service device, the third message received via a tunnel created with the tunneling logic.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044566/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2013
From: CONTAVALLI, CARLO; EISENBUD, DANIEL EUGENE
To: GOOGLE INC.
Reel/Frame 030051/0928 →