Input and Output Forwarding Engines Input and Output Switch Interfaces

OPTICAL PACKET SWITCHES 306 Ž . header can be sent to the output packet filter OPF for outbound filtering Ž . and then to the output forwarding engine OFE for another IP route lookup Ž . to decide which outgoing interface s this packet should be destined for. The Ž . packets are then broadcast at the output line interface OLI to all desirable interfaces. Each interface can maintain two FIFOs supporting two traffic Ž . Ž . priorities: real-time RT and non-real-time NRT packets.

11.4.3 Router Module and Route Controller

The RMs interconnected by the OIN perform packet forwarding in a dis- tributed manner, as shown in Figure 11.20. The tasks of running unicast and multicast routing protocols and other control protocols are carried out by the RC centrally in order to expedite the data transport at each RM. Each RM Ž . mainly consists of inputroutput line interface ILIrOLI , switch interface Ž . Ž . Ž . ISIrOSI , packet filter IPFrOPF , and forwarding engine IFErOFE . The line interfaces terminate OC3, OC12, OC-48, or Gigabit Ethernet connec- tions. The switch interfaces bridge the line interfaces and the OIN for switching. The packet filters check inbound and outbound packets for net- work security and flow classification. The forwarding engines perform dis- tributed IP route lookup. Below the forwarding engines and the switch interfaces are now described.

11.4.3.1 Input and Output Forwarding Engines

The IP route lookup function is performed by the IFE and the OFE in each IRM and ORM, respectively, as shown in Figure 11.20. Several high-speed route lookup w x techniques have recently been proposed 48, 49, 50, 47, 51 . IFEs and OFEs show slight difference in performing packet forwarding. An IFE, when receiving an incoming packet, will first validate its IP header. If the header is invalid, the packet is simply discarded. Otherwise, the IFE will determine whether this packet belongs to control messages or data, and then proceed accordingly. For control messages, the IFE forwards the packet via a control path, such as a PCI bus, or through the OIN to the RC. For data, depending on whether this packet is for unicast or multicast, the IFE will perform unicast or multicast table lookup, find out its destined Ž . ORM s , and pass this information to the ISI. The ISI will then forward the Ž . packet via the OIN to the ORM s , as will be described in Section 11.4.3.2. Since the control messages are handled by IFEs, OFEs deal with data only. Refer to Section 11.4.2.2. An OFE performs similar IP route lookup for received packets, determines their outgoing interfaces to the next-hop router or host, and passes this information to the OSI. The OSI will then forward Ž . each packet to its outgoing interface s , as will be described in the following.

11.4.3.2 Input and Output Switch Interfaces

Figures 11.23 and 11.24 depict the components and the functions within an ISI and an OSI, respec- Ž . Ž . tively. The functions of an ISI include: 1 packet segmentation, 2 buffering OPTICAL INTERCONNECTION NETWORK FOR TERABIT IP ROUTERS 307 Fig. 11.23 Input switch interface. Fig. 11.24 Output switch interface. Ž . of data segments, and 3 controlling the segment forwarding at the input port of the OIN. While a packet starts being segmented, its IP header is extracted and sent to the IPF for inbound filtering, then to the IFE, which w handles IP table lookup and outputs the destination information called the Ž .x multicast pattern MP of the packet into a MP FIFO. Meanwhile, a one-bit header is added to each segment to indicate whether it is the last segment of a packet. This information is used to determine the packet boundary. The segments are buffered in a data FIFO with its HOL segment entering the IPC for transmission. The IPC fetches the multicast pattern from the MP FIFO whenever the first segment of a packet comes. In every time slot, the IPC keeps sending the request signals to the PAU, waiting for the grant signals, and updating the multicast pattern for preparing the next request. If all requests are granted, which means the current segment has been for- warded to all its destinations, then the IPC reads a new segment from the OPTICAL PACKET SWITCHES 308 data FIFO and checks if it is the first segment of a packet. If not, the current MP is used for the segment. If so, the IPC gets a new MP from the MP FIFO and repeats the procedure. Upon being transmitted in the OIN, each segment is marked with a number identifying the input port in order to facilitate packet reassembly at the outputs. At each OSI, data segments from the OIN are stored in the data segment memory, which is organized as linked lists connecting all segments of each packet as in a shared-memory switch. There is an idle-pointer FIFO keeping the unused memory pointers. A separate pointer memory indexed by the input port number is used to store the head and tail pointers of the linked lists of the packets being transmitted over the OIN to the output. Once all segments of a packet have arrived, the entire linked list is completed and the Ž . segment header processor SHP will forward its head pointer to the head pointer FIFO for packet departure scheduling. The head and tail pointers of the packet, which are no longer necessary, will be deleted from the pointer memory to prepare for the next packet arrival from the same input port. The Ž . head pointer FIFO keeps the packets in the order of their last segments’ Ž . arrival times. The packet reassembly unit PRU fetches the HOL packet and schedules its segment transmission.

11.4.3.3 Route Controller