Hardware acceleration for routing programs

US9847937B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9847937-B2
Application numberUS-201414223795-A
CountryUS
Kind codeB2
Filing dateMar 24, 2014
Priority dateMar 25, 2013
Publication dateDec 19, 2017
Grant dateDec 19, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • characterised by the conditions triggering a change of settings · CPC title

  • Organization of routing tables · CPC title

  • H04L45/56Primary

    Routing software · CPC title

  • H04L45/566Primary

    Routing instructions carried by the data packet, e.g. active networks · CPC title

  • Router architectures · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9847937B2 cover?
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 configura…
Who is the assignee on this patent?
Marvell World Trade Ltd
What technology area does this patent fall under?
Primary CPC classification H04L45/56. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 19 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).