A method, apparatus, and instructions for
processing packets within a routing switch uses a
multiprocessor architecture. The routing switch includes a switch fabric, a
Routing Table Processing Unit, at least one packet buffer for queuing incoming and outgoing packets, at least one
Packet Processing Unit, and a
shared memory for storing a
routing table. A
Packet Processing Unit retrieves packets from a packet buffer memory, which may be a
shared memory accessible to more than one of the
Packet Processing Units depending upon the internal configuration of the components. The Packet
Processing Unit categorizes the packets into routing information packets and data packets. The Packet
Processing Unit forwards a routing information packet to a
Routing Table Processing Unit and processes any other data packet by retrieving forwarding information from a
routing table, updating the packet with the retrieved forwarding information, and forwarding the updated packet using a switch fabric connected to the Packet Processing Unit. A
locking mechanism within the
routing table memory provides synchronization between the activities of the various
processing units. In response to receiving a routing information packet, the
Routing Table Processing Unit locks a portion of the routing table, updates the locked portion of the routing table with information from the routing
table information packet, and then unlocks the locked portion of the routing table. The Packet Processing Unit waits for a necessary portion of the routing table to be unlocked before retrieving any forwarding information. If more than one packet buffer memory is employed, the routing switch may be configured to support a
wavelength division multiplexed (WDM) enabled network such that each input / output interface receives packets over a particular
wavelength and queues the packets within separate packet buffers.