# A Design for an Internet Router with a Digital Optical Data Plane
## 3 Optical Forwarding  
Optical packet forwarding requires performing a longest prefix match on a potentially very large number of forwarding table patterns, each of which could be 24-64 bits long. This process is sometimes simplified in modern routers, so that the forwarding table uses only fixed-length entries, replicating entries where necessary to represent shorter patterns. As a result, longest-prefix matching can be implemented as fixed-length pattern match, which itself can be implemented optically by a set of correlators (Figure 3, left) [13]. The number and length of the correlators can be managed by compressing the forwarding table to represent the most frequently used entries, in which several hundred thousand entries often can be sufficiently represented by approximately 100 entries (Figure 3, right) [14]. Forwarding table entries indicate the egress port and next-hop link layer address for each matched destination address [2]. For shared output links, the next-hop link address indicates which node on the output link is the intended recipient. For networks whose links are point-to-point, as we assume, the next-hop link layer address can be omitted, thus the resulting table can often be compressed by considering entries to the same egress port. Analysis of the table in this manner frequently yields a very small number of patterns (e.g., <10) of a very small number (e.g., 5-8) of 0/1 (non-don't care) bits and this pattern might not start with the highest bit and its 0/1 values may not be adjacent, which differs from the original IP forwarding table patterns [15; 16; 17]. This analysis may result in a set of patterns that may be more feasible to implement, using only a small set of correlators that each examine a small number of bits. Such a compressed table may not match 100% of incoming packets, but an optical router can be coupled with a conventional electronic router in parallel, the latter to handle packets not matching this small number of compressed optimized patterns (Figure 4) [18]. We implemented a configurable header correlator based on this approach and measured its performance using 10 Gb/s non-return-to-zero (NRZ) encoded packet headers (Figure 5). The data rate was slower than desired due to the limitations of available lab equipment; given appropriate equipment, faster data rates can be simpler to implement due to the smaller size of the correlator device. Our correlators were able to match only \"1\" values in the NRZ encoded data, so we needed to match the \"1\" values and \"0\" values separately (don't care values were ignored and not matched). The \"1\" values were matched against the incoming data, and the \"0\" values were matched against the  
Figure 4: A fast optical booster that runs in parallel with a conventional (slow, electronic) router; packets matching the booster cache are discarded by the conventional router. Nearly all packets are processed on the fast optical path, but a few—whose destination addresses are not cached—must be forwarded on the slow electronic path. Figure 3: Optical header lookup as a pattern matching operation (**left**); distilling full routing to 10 correlators (**right**). complement of the incoming data. Threshold detectors combined the individual bit match signals to determine when the entire pattern matched, and then the correlator outputs were combined to control a \(2\times 2\) optical switch. The correlators were implemented using 0.5 cm micro-heaters deposited on 1 cm centers on a Fiber Bragg grating (FBG) (Figure 6, left), where the micro-heaters could be controlled to vary reflectivity Figure 6, right). The correlators were tuned to match two different header patterns (1010 and 1000), and the system successfully switched headers based on their value (Figure 7). Packet payloads would follow the same path as the header by latching the output of the correlator, either electronically or optically, until the beginning of the next packet.