IP Library Granted Patent US 8,830,820
Granted Patent B2
US 8,830,820 · App. 13/274,230 · Granted Sep 9, 2014

Semi-centralized routing

Inventors: Subhasree Mandal (San Jose, CA); Subbaiah Venkata (Sunnyvale, CA); Leon Poutievski (Santa Clara, CA); Amit Gupta (San Jose, CA); Min Zhu (Palo Alto, CA); Rajiv Ramanathan (Cupertino, CA); James M. Wanderer (Palo Alto, CA); Joon Ong (Cupertino, CA)
Assignee: Google Inc.
H04L45/64
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 8,830,820
App. No.
13/274,230
Granted
Sep 9, 2014
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for semi-centralized routing. In one aspect, a computer-implemented method receives a network protocol packet at a router adapted for routing data packets to one or more additional routers. The network protocol packet conforms to a routing protocol that provides distributed routing computation. The method also sends the network protocol packet, through a controller, to a selected one of a plurality of route control servers. The method also processes the network control packet at the selected route control server to generate a routing computation result that conforms to the routing protocol. The method also generates routing information based on the routing computation. The routing information conforms to a control protocol that provides centralized routing computation. The method also sends the routing information to the router for routing of data packets based on the control protocol.

Claims (88)

1. A computer-implemented method comprising:

receiving a network protocol packet at a router adapted for routing data packets to one or more other routers, wherein the network protocol packet conforms to a routing protocol that provides distributed routing computation;

sending the network protocol packet, through a controller, to a selected one of a plurality of route control servers;

processing the network protocol packet at the selected route control server to generate a routing computation result that conforms to the routing protocol;

generating routing information based on the routing computation result, wherein the routing information conforms to a control protocol that provides centralized routing computation;

sending the routing information to the router for routing of data packets based on the control protocol;

detecting a failure in the controller;

assigning a second controller to manage communications between the router and the plurality of route control servers; and

transmitting, from the second controller, a message to the plurality of route control servers and the router, wherein the message comprises controller status information.

2. The computer-implemented method of claim 1 wherein the router is configured to use a centralized control protocol.

3. The computer-implemented method of claim 1 further comprising:

using the routing computation result to generate a network protocol packet that conforms to the routing protocol; and

sending the generated network protocol packet to a second router connected to the router, wherein the second router is adapted to route data packets using the routing protocol.

4. The computer-implemented method of claim 1 further comprising:

prior to receiving the network protocol packet at the router:

at the controller, receiving a message from the selected route control server, wherein the message comprises router assignment information to form a mapping between the selected route control server and the router.

5. The computer-implemented method of claim 4 , wherein the router assignment information comprises data indicating that the selected route control server is associated with the router.

6. The computer-implemented method of claim 1 further comprising:

accessing a mapping prior to sending the network protocol packet to select the selected route control server.

7. The computer-implemented method of claim 1 wherein generating the routing information based on the routing computation result comprises converting the routing computation result to a flow, wherein the routing information comprises the flow.

8. The computer-implemented method of claim 1 wherein the control protocol comprises an OpenFlow protocol.

9. The computer-implemented method of claim 1 wherein the routing protocol comprises a border gateway protocol or an open shortest path first protocol.

10. The computer-implemented method of claim 1 wherein the second controller receives a message from the selected route control server, wherein the message comprises router assignment information to form a mapping between the selected route control server and the router.

11. The computer-implemented method of claim 1 further comprising:

sending, by the controller, network topology information to the selected route control server, wherein the selected route control server generates the route computation result using the network protocol packet received at the router and the network topology information.

12. A system, comprising:

a router, wherein the router is configured to:

route data packets to one or more other routers; and

receive a network protocol packet, wherein protocol packet conforms to a routing protocol that provides distributed routing computation;

a controller coupled to the router, wherein the controller is configured to:

receive the network protocol packet from the router and send the network protocol packet to a selected one of a plurality of route control servers; and

the plurality of route control servers, wherein the selected one of the plurality of route control servers is configured to:

process the network protocol packet to generate a routing computation result that conforms to the routing protocol; and

send the routing computation result to the controller;

the controller is further configured to:

generate routing information based on the routing computation, wherein the routing information conforms to a control protocol that provides centralized routing computation;

sending the routing information to the router for routing of data packets based on the control protocol;

wherein the router, the selected one of the plurality of route control servers, or a second controller is configured to:

detect a failure in the controller;

assign the second controller to manage communications between the router and the plurality of route control servers; and

transmit, from the second controller, a message to the plurality of route control servers and the router, wherein the message comprises controller status information.

13. The system of claim 12 wherein the router is further configured to use a centralized control protocol.

14. The system of claim 12 wherein the controller is further configured to:

use the routing computation result to generate a network protocol packet that conforms to the routing protocol; and

send the generated network protocol packet to a second router connected to the router, wherein the second router is adapted to route data packets using the routing protocol.

15. The system of claim 12 wherein the controller is further configured to:

receive a message from the selected route control server, wherein the message comprises router assignment information to form a mapping between the selected route control server and the router.

16. The system of claim 15 wherein the router assignment information comprises data indicating that the selected route control server is associated with the router.

17. The system of claim 12 wherein the generation of the routing information based on the routing computation result comprises converting the routing computation result to a flow, wherein the routing information comprises the flow.

18. The system of claim 12 wherein the control protocol comprises an OpenFlow protocol.

19. The system of claim 12 wherein:

the controller is further configured to send network topology information to the selected route control server; and

wherein the selected route control server is configured to generate the route computation result using the network protocol packet received at the router and the network topology information.

20. A non-transitory computer readable medium encoded with a computer program comprising instructions that, when executed, operate to cause a computer to:

receive a network protocol packet at a router adapted for routing data packets to one or more other routers, wherein the network protocol packet conforms to a routing protocol that provides distributed routing computation;

send the network protocol packet, through a controller, to a selected one of a plurality of route control servers;

process the network protocol packet at the selected route control server to generate a routing computation result that conforms to the routing protocol;

generate routing information based on the routing computation, wherein the routing information conforms to a control protocol that provides centralized routing computation;

send the routing information to the router for routing of data packets based on the control protocol;

detect a failure in the controller;

assign a second controller to manage communications between the router and the plurality of route control servers; and

transmit, from the second controller, a message to the plurality of route control servers and the router, wherein the message comprises controller status information.

21. The computer readable medium of claim 20 wherein the router is configured to use a centralized control protocol.

22. The computer readable medium of claim 20 further comprising instructions that, when executed, operate to cause the computer to:

use the routing computation result to generate a network protocol packet that conforms to the routing protocol; and

send the generated network protocol packet to a second router connected to the router, wherein the second router is adapted to route data packets using the routing protocol.

23. The computer readable medium of claim 20 further comprising instructions that, when executed, operate to cause the computer to:

prior to receiving the network protocol packet at the router:

at the controller, receive a message from the selected route control server, wherein the message comprises router assignment information to form a mapping between the selected route control server and the router.

24. The computer readable medium of claim 20 wherein the routing protocol comprises a border gateway protocol or an open shortest path first protocol.

25. The computer readable medium of claim 20 wherein the control protocol comprises an OpenFlow protocol.

26. The computer readable medium of claim 20 further comprising instructions that, when executed, operate to cause the computer to:

send, from the controller, network topology information to the selected route control server, wherein the generation of the route computation result uses the network protocol packet received at the router and the network topology information.

27. A method comprising:

establishing, by a controller, a connection with one or more route control servers and a connection with one or more routers, the one or more routers including a first router;

in response to detecting that a protocol packet is received at the first router, determining, by the controller, which of the one or more route control servers is associated with the first router;

sending, by the controller, the protocol packet and network topology information to the route control server determined to be associated with the first router;

receiving, by the controller, calculated route information from the determined route control server, wherein the route information is calculated from the protocol packet and the network topology information;

converting, by the controller, the received route information to a format compatible with centralized routing computation; and

sending, by the controller, the converted route information to the first router.

28. The method of claim 27 , further comprising:

receiving from the one or more route control servers information responsive to configuration messages;

generating, based on the responsive information, a mapping that represents relationships between the one or more routers and the one or more control servers, wherein the determining is based on the mapping; and

sending, by the controller, the mapping to a backup controller.

29. The method of claim 27 , further comprising:

receiving a message from the control server determined to be associated with the first router, wherein the message comprises router assignment information to form a mapping between the control server determined to be associated with the first router and the first router.

30. The method of claim 27 , further comprising:

accessing a mapping prior to providing the protocol packet to the control server determined to be associated with the first router.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044277/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2011
From: MANDAL, SUBHASREE; VENKATA, SUBBAIAH; POUTIEVSKI, LEON; GUPTA, AMIT; ZHU, MIN; RAMANATHAN, RAJIV; WANDERER, JAMES M.; ONG, JOON
To: GOOGLE INC.
Reel/Frame 027462/0815 →
Continuity (1)
Related Publication 20130094350A1 · Apr 18, 2013