Packet routing and switching device
First Claim
Patent Images
1. A method for storing a packet in a memory of a router, comprising:
- parsing a packet header to extract an Internet Protocol (IP) address and Quality of Service (QoS) data, the IP address and QoS data used, in part, to create a packet context;
assigning an Interface Ordinal Descriptor (IOD) number to the packet, the IOD specifying a port upon which the packet was received;
passing the IP address of the packet through a systolic array pipeline to perform a forwarding table lookup using a trie search of tries stored in a forwarding table;
based on at least a portion of the IP address of the packet obtained from the forwarding table lookup, assigning the packet to at least one outgoing link of the router; and
storing the packet in the memory based on the assigning operation.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for routing and switching data packets from one or more incoming links to one or more outgoing links of a router. The method comprises receiving a data packet from the incoming link, assigning at least one outgoing link to the data packet based on the destination address of the data packet, and after the assigning operation, storing the data packet in a switching memory based on the assigned outgoing link. The data packet extracted from the switching memory, and transmitted along the assigned outgoing link. The router may include a network processing unit having one or more systolic array pipelines for performing the assigning operation.
-
Citations
29 Claims
-
1. A method for storing a packet in a memory of a router, comprising:
-
parsing a packet header to extract an Internet Protocol (IP) address and Quality of Service (QoS) data, the IP address and QoS data used, in part, to create a packet context; assigning an Interface Ordinal Descriptor (IOD) number to the packet, the IOD specifying a port upon which the packet was received; passing the IP address of the packet through a systolic array pipeline to perform a forwarding table lookup using a trie search of tries stored in a forwarding table; based on at least a portion of the IP address of the packet obtained from the forwarding table lookup, assigning the packet to at least one outgoing link of the router; and storing the packet in the memory based on the assigning operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. In a router for routing and switching data packets from one or more incoming links to one or more outgoing links, each data packet including a packet header specifying a Internet Protocol (IP) address and Quality of Service (QoS) data for the data packet, a method for routing and switching a data packet comprising:
-
receiving the data packet from the incoming link, and assigning an Interface Ordinal Descriptor (IOD) number to the data packet, the IOD specifying a port upon which the data packet was received; passing the IP address of the packet through a systolic array pipeline to perform a forwarding table lookup using a trie search of tries stored in a forwarding table; assigning at least one outgoing link to the data packet based on the IP address of the data packet, the IP address being obtained from the forwarding table lookup; after the assigning operation, storing the data packet in a switching memory based on the assigned outgoing link for the data packet; extracting the data packet from the switching memory; and transmitting the data packet to the assigned outgoing link. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. In a router having one or more incoming links and one or more outgoing links, a method of routing and switching data packets where each data packet has a packet header specifying a destination internet protocol (IP) address for the packet, the method comprising:
-
providing a systolic array pipeline in communications with a forwarding table; receiving a data packet from an incoming link; looking-up the destination IP address of the data packet in the forwarding table using the systolic array pipeline, the looking-up performed using a trie search of tries stored in the forwarding table; assigning an outgoing link to the data packet; storing the data packet in a memory based on the assigning operation; extracting the data packet from the memory as cells in a contiguous order stored in an assigned destination queue; and transmitting the packet to the assigned outgoing link. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. In a router for routing and switching a data packet from an incoming link in a packet switched network to an outgoing link in the packet switched network, the data packet including a packet header having a Internet Protocol (IP) address for the packet, a method of routing and switching the data packet comprising:
-
receiving the data packet from the incoming link; parsing a packet header to extract an Internet Protocol (IP) address and Quality of Service (QoS) data, the IP address and QoS data used, in part, to create a packet context;
assigning an Interface Ordinal Descriptor (IOD) number to the packet, the IOD specifying a port upon which the packet was received;determining the outgoing link for the data packet using a systolic array pipeline to perform a forwarding table lookup using a trie search of tries stored in a forwarding table; writing a portion of the data packet to a memory as cells in a contiguous order; and transmitting the data packet to the outgoing link. - View Dependent Claims (26, 27, 28, 29)
-
Specification