Cell sharing to improve throughput within a network device
AssigneeJuniper Networks, Inc.
InventorsWing Leong Poon, Venkatraman Chandrasekaran, Srihari Vegesna, Sarin Thomas, David J. Ofelt
Life of this patent
Estimating the term…
Abstract
A method includes receiving packets from a network with a plurality of packet-forwarding engines (PFEs) of a router, wherein the plurality of PFEs are interconnected by a switch fabric, determining an egress one of the PFEs for each of the packets, and forming fixed-sized fabric cells that share data associated with the packets that are destined for the same egress PFE while preventing packets destined for different egress PFEs to share any of the fabric cells. The fabric cells are transmitted through the switch fabric to communicate the packets to the egress PFEs.
Claims40
A method comprising:
- receiving a plurality of packets from a network with one of a plurality of packet forwarding engines (PFEs) of a router, wherein the plurality of PFEs are interconnected by a switch fabric;
- determining an egress one of the PFEs for each of the packets;
- forming a fixed-sized fabric cell that shares data associated with the plurality of packets that are destined for the same egress PFE while preventing packets destined for different egress PFEs to share the fabric cell;
- and
- transmitting the fabric cell through the switch fabric to communicate the packets to the egress PFEs.
A method comprising:
- receiving a plurality of packets from a network with one of a plurality of packet forwarding engines (PFEs) of a router, wherein the plurality of PFEs are interconnected by a switch fabric;
- determining an egress one of the PFEs for each of the packets;
- forming a fixed-sized fabric cell that shares data associated with the plurality of packets that are destined for the same egress PFE while preventing packets destined for different egress PFEs to share the fabric cell;
- transmitting the fabric cell through the switch fabric to communicate the packets to the egress PFEs;
- maintaining a plurality of fabric queues within each of the PFEs to enqueue the packets prior to transmitting the packets through the switch fabric in the form of the fabric cells, wherein within each of the PFEs each of the fabric queues is assigned to one of the PFEs reachable through the switch fabric;
- upon receiving the packets from the network, enqueueing the packets with the plurality of fabric queues based on the egress PFEs determined for the packets so that only packets associated with the same egress PFE are assigned to the same fabric queue;
- dequeuing the packets from each of the fabric queues to form the fabric cells;
- and
- when dequeuing one of the packets from any of the fabric queues to form one of the fabric cells, dequeuing a portion of an additional packet from the same fabric queue to share the same fabric cell responsive to determining that sufficient data is present in the fabric queue to fill the shared fabric cell.
A router comprising:
- a plurality of interfaces for receiving a plurality of packets from a network;
- a plurality of packet forwarding engines (PFEs) each coupled to at least one or more of the plurality of interfaces;
- and
- a switch fabric that interconnects the plurality of PFEs;
- wherein an ingress one of the PFEs forms a fixed-sized fabric cell that shares data associated with the plurality of packets that are destined for the same egress PFE while preventing packets destined for different egress PFEs to share the fabric cell;
- and
- wherein the ingress one of the PFEs transmits the fabric cell through the switch fabric to communicate the packets to the egress PFEs.
A computer-readable storage medium comprising instructions for causing a programmable processor to:
- receive a plurality of packets from a network with one of a plurality of packet forwarding engines (PFEs) of a router, wherein the plurality of PFEs are interconnected by a switch fabric;
- determine an egress one of the PFEs for each of the packets;
- form a fixed-sized fabric cell that shares data associated with the plurality of packets that are destined for the same egress PFE while preventing packets destined for different egress PFEs to share the fabric cell;
- and
- transmit the fabric cell through the switch fabric to communicate the packets to the egress PFEs.
A method comprising:
- receiving a first packet with one of a plurality of packet forwarding engines (PFEs) of a router, wherein the plurality of PFEs are interconnected by a switch fabric;
- determining a destination PFE for the first packet;
- enqueuing chunks of data for the first packet in a queue associated with the destination PFE;
- determining a number of fixed-size cells needed for transmission of the chunks of data for the first fabric over a switch fabric to a fabric destination of the router;
- determining whether a fixed-size cell may be shared between a portion of the first packet having an end-of-packet and a portion of a second packet received by the one of the plurality of PFEs having a start-of-packet, wherein the second packet is destined for the same fabric destination as the first packet;
- and
- upon determining that the fixed-size cell may be shared, adjusting a number of fabric requests to be scheduled for the portion of the second one of the packets having the start-of-packet, such that the single fabric request is the only fabric request sent to request permission for transmitting the shared cell that includes both the end-of-packet of the first packet and the start-of-packet of the second packet.
A method comprising:
- receiving a plurality of packets from a network with one of a plurality of nodes of a network device, wherein the plurality of nodes are interconnected by paths;
- determining an egress one of the nodes for each of the packets;
- forming a fixed-sized fabric cell that shares data associated with the plurality of packets that are destined for the same egress node while preventing packets destined for different egress nodes to share the fabric cell;
- and
- transmitting the fabric cell through the paths to communicate the packets to the egress nodes.
Dependencies are inferred from the claim text.