Abstract:
Diversity constraints with respect to connections or links in a client layer are conveyed to a server layer where those links or connections are served by paths in the server layer. A network device in the server layer stores data associated paths in the server layer with identifiers for connections in the client layer. The network device in the server layer receives from a network device in the client layer a request to set up a path in the server layer for a connection in the client layer. The network device in the server layer receives information describing the diversity requirements associated with connections in the client layer. The server layer network device computes a route in the server layer for the connection specified in the request based on the diversity requirements.
Abstract:
A network device routes data packets by storing the packets in a switching memory as a function of a destination address of the packet. The switching memory comprises switching memory queues that are mapped to ports of the device. A header of a received packet is examined to determine the network destination address to which it is to be routed, and a destination queue is assigned to the packet based on the destination address. Thereafter, the packet is divided into cells, and the cells are written to contiguous locations in the destination queue.
Abstract:
A method for tracking a transmission status of one or more data elements to one or more devices. In one example, the method includes providing a list including one or more devices and one or more data elements; processing the list to determine a data element of the one or more data elements to transmit to a device of one of the one or more devices; and upon successfully transmitting the data element to the device, adjusting the list so that the list indicates that the device has received the transmitted data element. In this manner, the status of whether a particular data element has been sent to a particular device can be easily derived from the list.
Abstract:
A method and system for determining an output port upon which to transmit a packet in a router having a plurality of output ports adapted to be coupled with an adjacent router. In one embodiment, a list is created of output ports that are coupled with the adjacent router, and the list is modified based on network traffic. A port is selected from the list of ports, and the packet is transmitted over the selected port. In one example, the list is modified continuously as a background process based on network traffic. The list may be modified by determining a port which is under-utilized, determining a port which is over-utilized, and substituting in the list one or more instances of the port which is over-utilized with one or more instances of the port which is under-utilized. In this manner, a router can adaptively and evenly distribute the packet transmission traffic over the output ports.
Abstract:
A system and protocol are provided for routing data packets from a host on a LAN through a virtual address belonging to a group of routers. The host is configured to point to the virtual address so that the packets it sends out of its LAN are always directed to a virtual router which may be any one of the group of routers. An active router in the group of routers emulates the virtual router. A standby router, also from the group of routers, backs up the active router so that if the active router becomes inoperative, the standby router automatically begins emulating the virtual router. The host router does not know which router from the group is actually handling the data packets it sends. If the standby router becomes inoperative or takes over for the active router, other routers in the group hold an election to determine which of them should take over for the standby router.
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.
Abstract:
Methods of routing and switching a packet from an incoming link to an outgoing link of a router. In one example, the method includes assigning a destination queue to the packet, determining if the router is implemented in a scaled-down configuration, remapping the destination queue to one or more remapped destination queues, and storing the packet in the one or more remapped destination queues. In one embodiment, the method may also include requesting a packet from the destination queue, translating the request to the remapped destination queue, and transmitting the packet from the remapped destination queue.
Abstract:
A router and method therefore for routing and switching a packet from an incoming link to an outgoing link. The router may include a plurality of network processing units, a plurality of switching engines, and a plurality of connections between the plurality of network processing units and the plurality of switching engines defining a rotational symmetric topology. The router may also include a means for connecting the plurality of network processing units to the plurality of switching engines, as well as means for connecting the plurality of switching engines to the plurality of line card units. In one example, the plurality of line card units is connected with the plurality of switching engines in a full mesh topology.
Abstract:
A method for tracking a transmission status of one or more data elements to one or more devices. In one example, the method includes providing a list including one or more devices and one or more data elements; processing the list to determine a data element of the one or more data elements to transmit to a device of one of the one or more devices; and upon successfully transmitting the data element to the device, adjusting the list so that the list indicates that the device has received the transmitted data element. In this manner, the status of whether a particular data element has been sent to a particular device can be easily derived from the list.
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.