Nesting transaction updates to minimize communication
US-9602421-B2 · Mar 21, 2017 · US
US9847937B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9847937-B2 |
| Application number | US-201414223795-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 24, 2014 |
| Priority date | Mar 25, 2013 |
| Publication date | Dec 19, 2017 |
| Grant date | Dec 19, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
The present disclosure describes techniques for hardware acceleration for routing programs. In some aspects communications between a routing determination program and a packet router are monitored in a router, both the routing determination program and the packet router being part of a software layer of the router. The communications include the routing determination program providing configuration data to the packet router. Based on the monitored communications, a packet processor is changed to reflect the configuration data, the packet processor being part of a hardware layer of the router. The packet processor performs packet routing operations of receiving packets, determining the next routers in the paths to the target destinations of the packets, and sending the packets to the next routers independent of the software layer.
Opening claim text (preview).
What is claimed is: 1. A method comprising: monitoring, by a call-monitoring program in a router having a hardware layer and a software layer, communications between a routing determination program and a packet router, the routing determination program identifying one or more paths to each of multiple possible target destinations for packets in a network, the packet router being implemented in a kernel space of the software layer and configured to maintain a forwarding information base identifying selected ones of the one or more paths, the communications including the routing determination program providing first configuration data to the packet router that identifies the selected ones of the one or more paths, the routing determination program and the packet router both being part of the software layer of the router, the routing determination program and the packet router configured to communicate with the hardware layer of the router via a first communication channel; sending, by the call-monitoring program, the monitored communications to a hardware configuration program, the hardware configuration program configured to: communicate with a hardware switch via a second communication channel, the hardware switch being part of the hardware layer of the router; translate the monitored communications into a format compatible with the hardware switch; and change, based on the monitored communications, second configuration data stored in a memory of a packet processor to reflect the first configuration data communicated to the packet router, the packet processor being part of the hardware switch. 2. The method of claim 1 , the first and second configuration data comprising, for each of the multiple possible target destinations, a selected one path to the target destination. 3. The method of claim 2 , further comprising, independent of the software layer of the router: receiving packets by the packet processor; and for each received packet, identifying a next router based on both a target destination of the packet and the second configuration data, and sending the packet to the next router. 4. The method of claim 1 , the first and second configuration data further identifying types of packets or target destinations of packets to be provided to the routing determination program by the packet processor. 5. The method of claim 4 , further comprising the packet processor providing a received packet to the routing determination program in response to the second configuration data in the packet processor indicating the received packet is to be provided to the routing determination program. 6. The method of claim 1 , further comprising: monitoring, by the call-monitoring program in the router, additional communications that are between a service program and the packet router, the additional communications including the service program providing additional configuration data to the packet router, the service program being part of the software layer of the router; and sending, by the call-monitoring program, the monitored additional communications to the hardware configuration program, the hardware configuration program further configured to change, based on the monitored additional communications, the second configuration data stored in the memory of the packet processor to reflect the additional configuration data. 7. The method of claim 6 , further comprising the packet processor providing a received packet to the service program in response to the additional configuration data reflected in the second configuration data stored in the memory of the packet processor indicating the received packet is to be provided to the service program. 8. The method of claim 1 , the hardware configuration program further configured to communicate with the hardware switch via a device driver, the device driver configured to change the second configuration data stored in the memory of the packet processor. 9. The method of claim 1 , the packet router further configured to communicate with the packet processor, the communications among the routing determination program, the packet router, and the packet processor comprising a separate communication channel from the second communication channel consisting of communications among the call-monitoring program, the hardware configuration program, and the packet processor. 10. The method of claim 1 , wherein the communications comprise native, open-source Linux code. 11. The method of claim 1 , wherein the format compatible with the hardware switch is vendor proprietary. 12. A router comprising: a packet processor implemented in a hardware layer of the router; one or more programs implemented in a software layer of the router, the one or more programs including a call-monitoring program and a hardware configuration program: the call-monitoring program configured to: monitor communications between a routing determination program and a packet router, the communications including the routing determination program providing first configuration data to the packet router, the routing determination program and the packet router both being part of the software layer of the router, the routing determination program being implemented in a user space of the software layer and the packet router being implemented in a kernel space of the software layer, the routing determination program and the packet router configured to communicate with the hardware layer of the router via a first communication channel; send the monitored communications to the hardware configuration program; and the hardware configuration program configured to: communicate with the hardware layer via a second communication channel; translate the monitored communications into a format compatible with the packet processor; and change, based on the monitored communications, second configuration data stored in a memory of the packet processor to reflect the first configuration data provided to the packet router. 13. The router of claim 12 , the first and second configuration data comprising one or more paths of a forwarding information base. 14. The router of claim 13 , the packet processor being configured to, independent of the software layer of the router: receive packets; and for each received packet, identify a next router based on both a target destination of the packet and the forwarding information base, and send the packet to the next router. 15. The router of claim 12 , the first and second configuration data comprising identification of types of packets or target destinations of packets to be provided to the routing determination program by the packet processor. 16. The router of claim 15 , the packet processor being configured to provide a received packet to the routing determination program in response to the second configuration data in the packet processor indicating the received packet is to be provided to the routing determination program. 17. A computer-readable memory device comprising computer-executable instructions that, when executed, implement a router to: monitor, by a call-monitoring program in the router, communications between a routing determination program and a packet router, the communications including the routing determination program providing first configuration data to the packet router, the routing determination program and the packet router both being part of a software layer of the router, the routing determination program being implemented in a user space of the software layer and the packet router being implemented in a kernel space of the so
characterised by the conditions triggering a change of settings · CPC title
Organization of routing tables · CPC title
Routing software · CPC title
Routing instructions carried by the data packet, e.g. active networks · CPC title
Router architectures · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.