# Patent

## Title
Network switches systems for optical communications networks

## Abstract

Optical subcarriers may be employed to transmit data in a point-to-multi-point network whereby a hub node including a network switch receives such data from a client and transmits information indicative of such data to multiple leaf or network nodes, where data intended for such leaf node is output. Often the rate at which data is supplied to the hub node is different than the rate at which information indicative of the data is transmitted. Moreover, the client data may have a format that is different than that associated with the transmitted information indicative of the client data. Consistent with the present disclosure, client data is inverse multiplexed to lower data rate streams and then multiplexed to a plurality of inputs, each of which corresponding to a respective optical subcarrier. Information indicative of the data may be allocated to multiple subcarriers, if the a single carrier lacks sufficient capacity or bandwidth to meet the bandwidth requirements of the leaf node. Buffer circuits may also be employed to “shape” or delay the outputs or flows of the multiplexer so that data is fed, for example, to a transmit portion of chip 200b of the network switch at a uniform rate rather than in non-uniform data bursts, which, under certain circumstances, could exceed the capacity of such transmit portion. In a further example, leaf nodes include circuitry for monitoring the amount of received data, and, if such received exceeds a certain threshold, a request is sent from the leaf node to the hub to transmit data at a rate equal to or substantially equal to the received data rate. As a result, symmetric data flows may be achieved whereby the leaf nodes transmit and receive data at the same or substantially the same rate.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Patent Application No. 62/913,354, filed Oct. 10, 2019, which is incorporated herein by reference in its entirety.


TECHNICAL FIELD
This disclosure relates to optical communications networks.
BACKGROUND
In an optical communications network, network nodes (e.g., computer devices) can exchange information using one or more of optical links (e.g., lengths of optical fiber) extending between them. For example, a first network node and a second network node can be interconnected by one or more optical links. The first network node can transmit data to the second network node by generating an optical signal, modulating the optical signal based on the data (e.g., using one more optical subcarriers), and transmitting the optical signal over the one or more optical links. The second node can receive the optical signal from the one or more optical links, and demodulate the optical signal to recover the data.
SUMMARY
In an aspect, an apparatus is provided that comprises a first chip including first circuitry, wherein the first chip is configured to be communicatively coupled to a first network device, and wherein the first chip is configured to: receive, from a plurality of second network devices via the first network device, a plurality of data streams to be transmitted to a plurality of third network devices over an optical communications network; identify, for each one of the data streams, a different respective subset of optical subcarriers for transmitting that data stream; and transmit each one of the data streams to a respective one of the third network devices over the optical communications network, wherein each of the data streams is transmitted using the different respective subset of optical subcarriers.
Other implementations are directed to systems, devices, and non-transitory, computer-readable media having instructions stored thereon, that when executed by one or more processors, cause the one or more processors to perform operations described herein.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features and advantages will be apparent from the description and drawings, and from the claims.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a diagram of an example optical communications network.
FIG. 2a is a diagram of an example network switch.
FIG. 2b shows a diagram of a chip included in the network switch shown in FIG. 2a. 
FIG. 3 is a power spectral density plot showing example optical subcarriers.
FIG. 4 is a diagram of an example of a transmit portion of a network switch.
FIG. 5 is a diagram of an example of a receive portion of a network switch.
FIG. 6 shows an example of a transmitter included in optical interface consistent with the present disclosure.
FIG. 7 shows an example of a receiver included the optical interface further consistent with the present disclosure.
FIGS. 8-10 show examples of transmission and reception of data by the network switch shown in FIG. 2a. 
FIG. 11 shows an example of transmission and reception of variable data rates between a network switch and network nodes consistent with an additional aspect of the present disclosure.
FIG. 12 shows an example of circuitry included in a network node shown in FIG. 11.
FIG. 13 shows an example of circuitry included in the network switch shown in FIG. 11.



Like reference numbers and designations in the various drawings indicate like elements.
Like reference numbers and designations in the various drawings indicate like elements.
DETAILED DESCRIPTION
The present disclosure describes network switches for routing data on an optical communications network.
Optical subcarriers may be employed to transmit data in a point-to-multi-point network whereby a hub node including a network switch receives such data from a client and transmits information indicative of such data to multiple leaf or network nodes, where data intended for such leaf node is output. Often the rate at which data is supplied to the hub node is different than the rate at which information indicative of the data is transmitted. Moreover, the client data may have a format that is different than that associated with the transmitted information indicative of the client data. Consistent with the present disclosure, client data is inverse multiplexed to lower data rate streams and then multiplexed to a plurality of inputs, each of which corresponding to a respective optical subcarrier. Information indicative of the data may be allocated to multiple subcarriers, if the a single carrier lacks sufficient capacity or bandwidth to meet the bandwidth requirements of the leaf node. Buffer circuits may also be employed to “shape” or delay the outputs or flows of the multiplexer so that data is fed, for example, to a transmit portion of chip 200b of the network switch at a uniform rate rather than in non-uniform data bursts, which, under certain circumstances, could exceed the capacity of such transmit portion. In a further example, leaf nodes include circuitry for monitoring the amount of received data, and, if such received exceeds a certain threshold, a request is sent from the leaf node to the hub to transmit data at a rate equal to or substantially equal to the received data rate. As a result, symmetric data flows may be achieved whereby the leaf nodes transmit and receive data at the same or substantially the same rate.
In some implementations, an optical communications network can include network nodes (e.g., computer devices) that are interconnected by one or more optical links (e.g., lengths of optical fiber). A network node can transmit data to another node using one or more of the optical links. For example, a first network node can transmit data to a second network node by generating an optical signal, modulating the optical signal based on the data (e.g., using one more optical subcarriers), and transmitting the optical signal over one or more optical links extending between them. The second node can receive the optical signal from the one or more optical links, and demodulate the optical signal to recover the data.
In some implementations, an optical communications network also can include one or more network switches for routing data between network nodes. As an example, a network switch can receive data from one or more network nodes (e.g., in the form of data packets), ascertain the intended destination of each of the data packets (e.g., other network nodes on the optical communications network), and route each of the data packets to its intended destination.
In some implementations, a network switch can route data by generating optical signals that are modulated according to one or more optical subcarriers that are associated with the intended destination or destinations of the data. For example, a network switch can receive data packets from one or more network nodes, ascertain the intended destination of each of the data packets, and identify one or more respective optical subcarriers that can be used to transmit data to each of those destinations. Based on this information, the network switch can generate one or more optical signals, modulate the optical signals according to the identified optical subcarriers, and transmit the modulated optical signals over one or more optical links to each of the intended destinations.
As an example, a network switch can receive a first set of data packets intended for a first network node and a second set of data packets intended for a second network node. Further, the network switch can identify a first optical subcarrier that is allotted for transmitting data to the first network node, and a second optical subcarrier that is allotted for transmitting data to the second network node. Based on this information, the network switch can generate a first optical signal, modulate the first optical signal based on the first data and according to the first optical subcarrier, and transmit the first optical signal to the first network node. Further, the network switch can generate a second optical signal, modulate the second optical signal based on the second data and according to the second optical subcarrier, and transmit the second optical signal to the second network node. The first network node and the second network node can demodulate the respective optical signals to recover the data.
Further, in some implementations, a network switch can generate an optical signal that is modulated to include multiple sets of optical subcarriers, where each set of optical subcarriers, including one or more optical subcarriers, is associated with a different intended destination for data. Each of the intended destinations can receive an instance of the optical signal (e.g., a respective power-divided instance of the optical signal), and selectively demodulate the optical signal to selectively process the set of optical subcarriers to which it is associated (e.g., to recover the data that is intended for it). Further, each of the intended destinations can selectively ignore, block, or otherwise not demodulate or process those sets of optical subcarriers to which it is not associated (e.g., such that it refrains from recovering or outputting the data that is not intended for it).
As an example, a network switch can receive a first set of data packets intended for a first network node and a second set of data packets intended for a second network node. Further, the network switch can identify a first optical subcarrier that is allotted for transmitting data to the first network node, and a second optical subcarrier that is allotted for transmitting data to the second network node. Based on this information, the network switch can generate an optical signal, modulate the optical signal based on the first data to provide a first optical subcarrier, and modulate the optical signal based on the second data and provide the second optical subcarrier. Further, the network switch can transmit an instance of the optical signal (e.g., a first power-divided instance of the optical signal) to the first network node and another instance of the optical signal (e.g., a second power-divided instance of the optical signal) to the second network node.
The first network node can demodulate or process the received optical signal to recover or output the first set of data packets associated with the first optical subcarrier. Further, the first network node can refrain from demodulating or processing the second optical subcarrier or otherwise not output packets associated with the second optical subcarrier. Similarly, the second network node can demodulate or process the received optical signal to recover or output the second set of data packets associated with the second optical subcarrier. Further, the second network node can refrain from demodulating or processing the first optical subcarrier or otherwise not output packets associated with the first optical subcarrier.
In some implementations, a network switch can establish data streams (e.g., a sequence of data) for transmitting data to network nodes, and allot particular amounts of network resources to each of the data streams. Further, each of the data streams can be associated with one or more respective optical subcarriers. As an example, a network switch can establish a first data stream for transmitting data to a first network node, and transmit data over that data stream according to a first set of optical subcarriers. Further, the network switch can allot a first set of network resources (e.g., a first amount of bandwidth) to the first data stream. Further, the network switch can establish a second data stream for transmitting data to a second network node, and transmit data over that data stream according to a second set of optical subcarriers. Further, the network switch can allot a second set of network resources (e.g., a second amount of bandwidth) to the second data stream.
Further, in some implementations, each of the data streams can be transmitted to multiple network nodes (e.g., using an optical signal modulated including multiple sets of optical subcarriers). Each of the network nodes can selectively recover or output the data stream that is intended for it (e.g., by demodulating the optical signal according to the set of optical subcarriers that is associated with the network node), while refraining from recovering or outputting the data streams that are intended for other network nodes.
Further still, the network switch can, in some implementations, dynamically adjust each of the data streams during operation. For example, if additional network nodes are coupled to the optical communications network, the network switch can establish additional data streams for those network nodes, associate respective sets of optical subcarriers with each of the additional data streams or change the bandwidth or capacity of individual optical subcarriers, and allot respective sets of network resources to each of the additional data streams. As another example, if network nodes are removed from the optical communications network, the network switch can remove the data streams associated with those network nodes or reduce the bandwidth or capacity of individual optical subcarriers, and reallot the optical subcarriers and/or network resources for the removed data streams to other data streams. As another example, the network switch can dynamically increase the number of optical subcarriers and/or the amount network resources (e.g., the bandwidth or capacity of individual optical subcarriers) that are allotted to or associated with certain data streams (e.g., to accommodate the transfer of a greater volume of data and/or the transfer of data according to a higher throughput to the corresponding network node). As another example, the network switch can dynamically reduce the number of optical subcarriers and/or the amount network resources e.g., the bandwidth or capacity of individual optical subcarriers) that are allotted to or associated with certain data streams (e.g., if the volume of data transmitted to the corresponding network node is sufficiently low and/or if the data can be transmitted according to a lower throughput, such that the optical subcarriers and/or network resources are better utilized elsewhere). This can be useful, for example, as it enables network sources to be used more efficiently on the optical communications network.
In some implementations, at least some of the subcarriers described herein can be Nyquist subcarriers. A Nyquist subcarrier is a group of optical signals, each carrying data, where (i) the spectrum of each such optical signal within the group is sufficiently non-overlapping such that the optical signals remain distinguishable from each other in the frequency domain, and (ii) such group of optical signals is generated by modulation of light from a single laser. In general, each subcarrier may have an optical spectral bandwidth that is at least equal to the Nyquist frequency, as determined by the baud rate of such subcarrier.
Example systems and techniques for routing data on an optical communications network are described in greater detail below and shown in the drawings.
I. Example Systems and Methods for Routing Data on an Optical Communications Network
FIG. 1 shows an example optical communications network 100. The optical communications network 100 includes multiple network nodes 104-1-104-n that are communicatively coupled to network switch 108 via a respective one of optical links 106-a-106n and optical splitter and combiner 109. In some implementations, the optical communications network 100 can be a part of a mesh network or a ring network.
Each of the network nodes 104-1-104-n can include one or more respective computer devices (e.g., server computers, client computers, etc.). In some implementations, the network nodes can be configured such that each of the network nodes transmits data to and/or receives data from one or more other network nodes. As an example, the network node 104a can be configured to transmit data to and/or receive data from 104-n network switch 108. In practice, an optical communications network 100 can include any number of network nodes greater than one (e.g., two, three, four, or more).
As shown in FIG. 1, the network nodes 104-1-104-n are communicatively coupled to one another by optical splitter and combiner 109 a corresponding one of optical links 106-a-106n extending between nodes 104-1-104-n and optical switch 108. Each of the optical links 106 can be implemented using one or more lengths of optical fiber and/or equipment interconnecting the optical fiber (e.g., line system components), such as optical amplifiers. For upstream data transmission from network switch 108 to nodes 104-1-104-n, optical signals output from network switch 108 are power split by the power splitter portion of splitter and combiner 109, and each power split portion of the optical signal is supplied via a respective one of optical links 106-a-106n to a corresponding one of network nodes 104-1-104-n. For downstream data transmission from nodes 104-1-104-n to network switch 108, optical signals output from each network node 104-1-104-n are supplied to the combiner portion of splitter and combiner 109, which combines the received optical signals and supplies such optical signals to optical switch 208.
As shown in FIG. 1, the network nodes 104-1-104-n are also communicatively coupled to another by a network switch 108. The network switch 108 is configured to route data to/from 104-1-104-n to a client. For example, the network switch 108 can receive data from a client via an and provide optical signals carrying information indicative of such data. The signals are power split as noted above and respective power split portions of the optical signals are supplied to corresponding one of nodes 1041 to 104-n. Each such node, in turn, is operable to output, based on the received power split portion, the client data intended for that node 104-n104-n 
In some implementations, the network switch 108 can include multiple chips, each including respective circuitry that is configured to perform certain tasks. For example, as shown in FIG. 2a, the network switch 108 can include a first chip 200a (“Chip A”) and a second chip 200b (“Chip B”). The first chip 200a can include circuitry that is configured to transmit/receive to/from a client one or more data streams 202 containing respective data packets or data frames and route the data packets or frames to/from the second chip 200b for further processing. Switch chip 200a For ease of explanation, “data packets,” as used herein, refers to data packets or data frames. In one example, switch chip 200a includes inputs I-1 to I-n and outputs O-1 to O-n. Switch chip 200a includes circuitry operable to switch data packets supplied to any one of inputs I-1 to I-n to any one of outputs O-1 to O-n. The circuitry in switch chip 200a is also operable to multiplex, such as time division multiplex, data packets supplied to two or more of inputs I-1 to I-n and provide such multiplexed data packets to any one of outputs O-1 to O-n. Further, the circuitry in switch chip 200a is operable to demultiplex a time division multiplexed stream of data packets and provided such demultiplexed data packets to one of inputs I-1 to I-n and supply such demultiplexed data packets to two or more of outputs O-1 to O-n. Switch chip 200a is also operable to block transmission of data packets provided to one or more of inputs I-1 to I-n.
The second chip 200b can include circuitry that is configured or operable to receive the data packets from one or more of outputs O-1 to O-n of first chip 200a, and process such packets for transmission of related data to respective destinations (e.g., one or more of the network nodes 104-1-104-n) 4. This can be beneficial, for example, as it enables the components of the network switch 108 to be implemented and/or replaced in a modular manner.
As further shown in FIG. 2a, outputs from Chip B may be supplied to an optical interface 200c, which based on such outputs, provides a modulated optical signal 204. In one example, modulated optical signal 204 includes a plurality of optical subcarriers. Each of the plurality of optical subcarriers is a Nyquist subcarrier, in a further example. Nyquist subcarriers are described in greater detail below.
As described above, in some implementations, the network switch 108 can establish multiple information or data streams intended for respective network nodes, where each data or information stream is associated with one or more respective optical subcarriers. As an example, the network switch 108 can establish a first data stream intended for a first network node, and transmit information indicative of the first data stream using a first subcarrier or first set of optical subcarriers. Further, the network switch can establish a second data stream intended for a second network node, and transmit information indicative of the second data stream using a second subcarrier or a second set of optical subcarriers.
Further, information indicative of each of the data streams can be transmitted to multiple network nodes (e.g., using an optical signal 204 modulated to include multiple sets of optical subcarriers). Based on such information, each of the network nodes can selectively output the data stream that is intended for it (e.g., by processing the information carried by a set of optical subcarriers intended for that network node), while refraining from outputting the data streams that are intended for other network nodes.
For example, referring to FIG. 1, the network switch 108 can generate an optical signal that is modulated to include multiple sets of optical subcarriers, where each set of optical subcarriers is associated with a different intended destination for data (e.g., a respective one of the network node 104-1-104-n). Further, the network switch 108 can transmit modulated optical signal 204 including a plurality of optical subcarriers to splitter/combiner 109, which provides respective power-divided portions of the modulatedoptical signal (e.g., optical signals 110-1-110-n) to each of the intended destinations. For example, if the total power of the modulated optical signal 204 is Ptotal, the power of each of the instances of the optical signal that are transmitted to the intended destinations 104-1-104-n can be P1, P2, . . . , Pn, respectively, where Ptotal=P1+P2+. . . +Pn.
Further, each of the intended destinations can receive a respective instance of the optical signal 110-1-1-110-n, and selectively demodulate the optical signal to provide client data associated with the set of optical subcarriers to which the particular one of nodes 104-1-n is associated (e.g., to recover the data that is intended for it). Further, each of the intended destinations can selectively ignore, block, or otherwise not demodulate the respective optical signal 110-1-110-n information or data carried not intended for that node 104 and carried by other sets of optical subcarriers (e.g., such that it refrains from recovering or outputting the data that is not intended for it).
As further shown in FIG. 1, modulated optical signals may be output from each of network nodes 104a-104n, and each such modulated optical signal can include one or more optical subcarriers. In one example, the aggregate number of optical subcarriers supplied by each of nodes 104a to 104n in the upstream direction is equal to the number optical subcarriers output from network switch 108 in the downstream direction.
FIG. 3 shows example of a power spectral density plot associated with optical subcarriers SC1-SC16, included in modulated optical signal 204 in the downstream direction from network switch 108 to network nodes 104a to 104n, that may be made available for use or output by the network switch 108. In this example, the optical subcarriers SC1-SC16 are output from optical interface 200c and carry data or information from the network switch 108 (e.g., the second chip 200b) to one or more network nodes (e.g., one or more of the network nodes 102a-102n and 104-1-104-n). Here, each of optical subcarriers SC1-SC16 has a respective one of frequencies f1-f16. In a further example, FIG. 3 also illustrates the power spectral density associated with optical subcarriers received from network nodes 104a-104n. 
In some implementations, each of the data streams can be associated with a single respective optical subcarrier. As an example, the network switch 108 can establish 16 data streams for transmitting information indicative of the data to 16 respective network nodes, and each data stream can be associated with a single respective optical subcarrier (e.g., SC1, SC2, SC3, etc.).
In some implementations, each of the data streams can be associated with multiple respective optical subcarriers. As an example, the network switch 108 can establish four data streams for transmitting information indicative of the data to four respective network nodes. A first data stream can be associated with eight optical subcarriers (e.g., SC1-SC8), a second data stream can be associated with four optical subcarriers (e.g., SC9-12), a third data stream can be associated with two optical subcarriers (e.g., SC13 and SC14), and fourth data stream can be associated with two optical subcarriers (e.g., SC15 and SC16).
In some implementations, some of the data streams can be associated with single respective optical subcarriers, and other ones of the data streams can be associated with multiple respective optical subcarriers. As an example, the network switch 108 can establish six data streams for transmitting information indicative of data to four respective network nodes. A first data stream can be associated with eight optical subcarriers (e.g., SC1-SC8), and a second data stream can be associated with four optical subcarriers (e.g., SC9-12). Further, each of a third data stream, a fourth data stream, a fifth data stream, and a sixth data stream can be associated with a single respective optical subcarrier (e.g., SC13-SC16, respectively).
In the example shown in FIG. 3, the optical subcarriers that are used by the network switch 108 to transmit data are spectrally contiguous with one another with respect to the frequency domain. For example, each of the optical subcarriers can be associated with a respective frequency or frequency range. Further, these frequencies or frequency ranges can collectively span a particular continuous range of frequencies.
In some implementations, at least some of the optical subcarriers can be spectrally separated from one another. For example, a first optical subcarrier can be associated with a first frequency or frequency range, and a second optical subcarrier can be associated with a second frequency or frequency range. Further, a third frequency or frequency range can be positioned spectrally between (i) the first frequency or frequency range and (ii) the second frequency or frequency range. In some cases, the third frequency or frequency range may be referred to as a “guard band.” In another example, frequency or spectral gaps (e.g., guard bands) may be provided between one or more adjacent pairs of adjacent subcarriers. Namely, a frequency or spectral gap may be provided between subcarriers SC9 and SC10, as well as between subcarriers SC3 and SC4. Moreover, the spectral gap between one pair of adjacent subcarriers may be different than the spectral gap between another pair of adjacent subcarriers.
In some implementations, at least some of the subcarriers described herein can be Nyquist subcarriers. A Nyquist subcarrier is a group of optical signals, each carrying data, where (i) the spectrum of each such optical signal within the group is sufficiently non-overlapping such that the optical signals remain distinguishable from each other in the frequency domain, and (ii) such group of optical signals is generated by modulation of light from a single laser. In general, each subcarrier may have an optical spectral bandwidth that is at least equal to the Nyquist frequency, as determined by the baud rate of such subcarrier.
Although FIG. 3 shows an example power spectral density plot of optical subcarriers SC1 to SC16 having a respective one of frequencies f1 to f16, this is merely an illustrative example of the optical subcarriers that may be output from and received by network switch 108. In practice, any number of optical subcarriers can be use by a network switch 108 to transmit/receive data to/from any number of network nodes. Further, some, none, or all of optical subcarriers can be spectrally contiguous with one another with respect to the frequency domain. Further, some, none, or all of optical subcarriers can be spectrally separated from one another with respect to the frequency domain (e.g., such that one or more guard bands are positioned spectrally between adjacent optical subcarriers in the frequency domain). In the example shown in FIG. 3, m=16 optical subcarriers are shown. It is understood that more or fewer optical subcarriers may be provided consistent with the present disclosure.
As shown in FIG. 2a, a network switch 108 can include multiples chips (e.g., a first chip 200a and a second chip 200b) that transmit and/or receive data. In some implementations, at least some of the chips can transmit and/or receive data using one or more Serializer/Deserializer (SerDes) interfaces, which are typically electrical interfaces that transmit or receive data or information in the electrical domain between chips 200a and 200b. A SerDes may also be provided to receive/transmit data from/to a client.
FIG. 4 shows an example of a transmit portion the second chip 200b (“Chip B”) of network switch 108 in greater detail. The components shown in FIG. 4 can be implemented, for example, in conjunction with the network switch 108.
As shown in FIG. 4, the second chip 200b includes demultiplexer 1006 that receives data packets or flows supplied from outputs O-1 to O-n of switch chip 200a. In one example, the data packets or flows are mapped by demultiplexer 1006 into a plurality of data stream or flows that have a lower data rate than the rate associated with the flows provided by outputs O-1 to O-n. In a further example, 50Gigabit Ethernet (GE), 100GE, 200GE & 400GE data flows may be input to demultiplexer 1006, and may be demultiplexed into lower rate flows of 25GE flows. A 25GE flow may also be input to demultiplexer 1006 and be output at the same 25GE rate. Table 1 below lists the GE flow that are supported consistent with an aspect of the present disclosure and the corresponding lower rate flows output by demultiplexer 1006.










TABLE 1







Input Flow
Number of 25GE Output Flows



















 25GE
1



 50GE
2



100GE
4



200GE
8



400GE
16










In another example, up-to m×N×25 Gbit (“G”) lower rate or granular flows can be output from demultiplexer 1006. Such granular flows are extracted from FlexE compliant flows input to demultiplexer 1006. In a further example or up-to m×N×25G granular flows are extracted from based on demultiplexer 1006 input L2 function-compliant flows. The granular or lower rate flows are asynchronously mapped and multiplexed or combined by multiplexer 1016 into multiple 1.25 G time slots per flow, for example. Such mapping & inverse multiplexing decouples the client/flow rate/bandwidth with the line rate/bandwidth, which allows various clients/flows all asynchronous to each other to be carried over a set of m sub-carriers, for example. The 1.25 G granular times lots are further interleaved in multiplexer 1016 to match the optical subcarrier bandwidth before being output to line Forward Error Correction (FEC) circuit 1018. Each client/flow may be associated with or mapped to one or more optical subcarriers based on the bandwidth of the client/flow and the optical subcarrier, as discussed in greater detail below.
Buffer or memory circuits 1014-1 to 1014-m, for example, are provided to temporarily store or queue data output from demultiplexer 1006. Often, the output from demultiplexer may be bursty, such that during some instances, relatively little data is output, and at other instances a significant amount of data. Buffer circuit 1014, as noted above, temporarily store such data and output the data at a uniform rate over time to demultiplexer 1016. Buffer circuits 1014 can queue data for transmission according to various scheduling policies, such as FIFO, LIFO, SJN, QoS prioritization, and/or any other scheduling policy. In some implementations, the queueing of data can be controlled, at least in part, by a remote schedule module (e.g., the remote schedule module 908 described below with reference to FIG. 9).
As further shown in FIG. 4, multiplexer 1016 receives buffer outputs BO1 to BO-Nxm and supplies m outputs, which in one example, is the number of optical subcarriers. Input data to line FEC 1018 based on such outputs is encoded and output as FEC frames. In the example shown in FIG. 4, such FEC frames are next supplied to a digital signal processor (DSP) 1020, which, based on the FEC frames, generates digital signal or data outputs. Based on such digital outputs, digital-to-analog converter (DAC) circuitry 1022 outputs analog signals or voltages to Tx optical interface 1024 included in optical interface 200c. 
Tx Optical interface 1024 is shown in greater detail in FIG. 5. As noted above, digital signals or data are supplied to digital-to-analog conversion circuits 904-1 to 904-4 of DAC circuitry 1022. As further shown in FIG. 5, Tx optical interface 1024 also includes modulator driver circuitry 906 (“driver circuits 906”) corresponding to each of Mach-Zehnder modulator driver (MZMD) 906-1, 906-2, 906-3, and 906-4. Each of driver circuits 906 is operable to output third electrical signals based on the second electrical signals output by each of the DAC 904.
The D/A and optics block 901 includes optical modulator circuitry 910 (“modulator 910”) corresponding to each of MZM 910-1, 910-2, 910-3, and 910-4. Each of modulators 910 is operable to supply or output first and second modulated optical signals based on the third electrical signals. The first modulated optical signal includes multiple optical subcarriers 300 carrying user data and is modulated to include control data to be transmitted between nodes of system 100, and the second modulated optical signal is, for example, polarization modulated, such as polarization shift-keyed (PolSK), based on the second (control) data. Generation and detection of the second modulated optical signal is described in further detail below with respect to FIGS. 10-17.
In one example, each of the modulators 910-1 to 910-4 is a Mach-Zehnder modulator (MZM) that modulates the phase and/or amplitude of the light output from laser 908. Collectively, modulators 910 may also be constitute a modulator. As further shown in FIG. 5, a light or optical signal output from laser 908 (also included in block 901) is split such that a first portion of the light is supplied to a first MZM pairing including MZMs 910-1 and 910-2 and a second portion of the light is supplied to a second MZM pairing including MZMs 910-3 and 910-4.
The first portion of the light is further split into third and fourth portions, such that the third portion is modulated by MZM 910-1 to provide an in-phase (I) component of an X (or TE) polarization component of a modulated optical signal, and the fourth portion is modulated by MZM 910-2 and fed to phase shifter 912-1 to shift the phase of such light by 90 degrees in order to provide a quadrature (Q) component of the X polarization component of the modulated optical signal.
Similarly, the second portion of the light is further split into fifth and sixth portions, such that the fifth portion is modulated by MZM 910-3 to provide an I component of a Y (or TM) polarization component of the modulated optical signal, and the sixth portion is modulated by MZM 910-4 and fed to phase shifter 912-2 to shift the phase of such light by 90 degrees to provide a Q component of the Y polarization component of the modulated optical signal.
The optical outputs of MZMs 910-1 and 910-2 are combined to provide an X polarized optical signal including I and Q components and fed to a polarization beam combiner (PBC) 914 provided in block 901. In addition, the outputs of MZMs 910-3 and 910-4 are combined to provide an optical signal that is fed to polarization rotator 913, further provided in block 901, that rotates the polarization of such optical signal to provide a modulated optical signal having a Y (or TM) polarization. The Y polarized modulated optical signal is also provided to PBC 914, which combines the X and Y polarized modulated optical signals to provide a polarization multiplexed (“dual-pol”) modulated optical signal onto optical fiber 916 corresponding to a fiber output to splitter 109. In some examples, optical fiber 916 may be included as a segment of optical fiber in an example optical communication path of system 100.
In some implementations, the modulated optical signal output from Tx optical interface 1024 includes subcarriers SC1-SC16 (of FIG. 3), for example, such that each data subcarrier 300 has X and Y polarization components and I and Q components.
Referring back to FIG. 1, the modulated optical signal, including optical subcarriers SC1 to SC16, for example, is provided to optical splitter 109, which power splits, in the upstream direction, the received optical signal and supplies a portion of the modulated optical signal including each of subcarriers SC1 to SC16 to each of network nodes 104a to 104n. Circuitry in each of such nodes processes the received optical signal and outputs data intended for that node, the data being associated with one or more of the optical subcarriers included in the modulated optical signal.
Downstream transmission from network switch 108 to network nodes 104 has been described above. Receipt and processing of upstream optical signals or optical subcarriers output from network nodes 104 will next be described with reference to FIGS. 6 and 7.
As noted above, each or network or leaf nodes supplies a modulated optical signal including at least one optical subcarrier. In one example, the number of optical subcarrier(s) output from each leaf node is equal to the number of upstream optical subcarriers associated with or designated for each such leaf node. The optical subcarriers supplied from each leaf node are combined in the combiner portion of element 109 shown in FIG. 1 and provided to a receiver portion of chip 200b network switch 108, an example of which is shown in FIG. 6. Typically, the number of combined subcarriers output from the combiner in element 109 is m (e.g. m=16) will have a power spectral density similar to that shown in FIG. 3. In a further example, each such upstream subcarrier has a corresponding one of frequencies f1 to f16.
Receive portion of chip 200b includes an Rx optical line interface 1024-2 that receives an optical signal including the optical subcarriers output from each of the leaf nodes 104. Rx optical line interface 1024-2 will next be described with reference to FIG. 7.
Rx optical line interface 1024-2, in conjunction with DSP 1020-2, may carry out coherent detection. Rx optical line interface 1024-2 may include a polarization beam splitter 1105 with first and second outputs, a local oscillator (LO) laser 1110, 90 degree optical hybrids or mixers 1120-1 and 1120-2 (referred to generally as hybrid mixers 1120 and individually as hybrid mixer 1120), detectors 1130-1 and 1130-2 (referred to generally as detectors 1130 and individually as detector 1130, each including either a single photodiode or balanced photodiode), and AC coupling capacitors 1132-1 and 1132-2.
In one example, one laser may be provided that is “shared” between the transmitter and receiver portions in transceivers 106 and/or transceivers 108. For example, a splitter can provide a first portion of light output from laser 908 to the MZMs 910 in the Tx optical line interface 1024. Further, the splitter can provide a second portion of such light acting as a local oscillator signal fed to 90 degree optical hybrids 1120 in the Rx optical line interface 1024-2. In that case example, laser 1110 may be omitted.
Rx optical line interface 1024-2 also includes trans-impedance amplifiers/automatic gain control circuits 1134 (“TIA/AGC 1134”) corresponding to TIA/AGC 1134-1 and 1134-2, analog-to-digital conversion circuitry 1022-2 corresponding collectively to ADCs 1140-1 and 1140-2. ADCs 1140-1 and 1140-2 may be referred to generally as ADCs 1140 and individually as ADC 1140.
Polarization beam splitter (PBS) 1105 may include a polarization splitter that receives an input polarization multiplexed optical signal including optical subcarriers SC1 to SC16 supplied by optical fiber link 1101 from the splitter 109 and leaf nodes 104, which may be, for example, an optical fiber segment as part of one of optical communication paths of system 100. PBS 1105 may split the incoming optical signal into the two X and Y orthogonal polarization components. The Y component may be supplied to a polarization rotator 1106 that rotates the polarization of the Y component to have the X polarization. Hybrid mixers 1120 may combine the X and rotated Y polarization components with light from local oscillator laser 1110. For example, hybrid mixer 1120-1 may combine a first polarization signal (e.g., the component of the incoming optical signal having a first or X (TE) polarization output from a first port of PBS 1105) with light from local oscillator laser 1110, and hybrid mixer 1120-2 may combine the rotated polarization signal (e.g., the component of the incoming optical signal having a second or Y (TM) polarization output from a second port of PBS 1105) with the light from local oscillator laser 1110.
Detectors 1130 may detect mixing products output from the optical hybrids, to form corresponding voltage signals, which are subject to AC coupling by capacitors 1132-1 and 1132-2, as well as amplification and gain control by TIA/AGCs 1134-1 and 1134-2. In some implementations, the TIA/AGCs 1134 are used to smooth out or correct variations in the electrical signals output from detector 1130 and AC coupling capacitors 1132.
As further shown in FIG. 7, the outputs of TIA/AGCs 1134-1 and 1134-2 are supplied to ADCs 1140 of ADC circuitry 1022-2, which convert the outputs of the TIA/AGCs, which are analog voltage signals, for example, to digital samples or digital signals or data. Namely, two detectors or photodiodes 1130-1 may detect the X polarization signals to form the corresponding voltage signals, and a corresponding two ADCs 1140-1 may convert the voltage signals to digital samples associated with the first polarization signals after amplification, gain control and AC coupling. Similarly, two detectors 1130-2 may detect the rotated Y polarization signals to form corresponding voltage signals, and a corresponding two ADCs 1140-2 may convert such voltage signals to digital samples associated with the second polarization signals (Y polarization) after amplification, gain control and AC coupling. DSP 1020-2 may process the digital samples associated with the X and Y polarization components to output data associated with subcarriers SC1 to SC16 from the leaf nodes 104.
While FIGS. 4-7 show optical receiver and transmit portions as including a particular quantity and arrangement of components, in some implementations, the receiver and transmit portions may include additional components, fewer components, different components, or differently arranged components. The quantity of detectors 1130 and/or ADCs 1140 may be selected to implement Rx optical line interface that is capable of receiving and detecting a polarization-multiplexed signal. In some instances, one of the components illustrated in FIGS. 4-7 may carry out a function described herein as being carry outed by another one of the components illustrated in these figures.
Returning to FIG. 6, the outputs form DSP 1020-2, which, in one example are m such outputs, are fed to line FEC decoder circuit to correct errors that may have occurred during transmission and decode the encoding carried out by FEC encoder 1018. As shown in the example depicted in FIG. 6, m outputs (e.g., m=16) are output to demultiplexer 1016-2 that output granular data flows or lower rate flows similar to those noted above to a corresponding one of buffers 1014a-1 to 1014a-m, which queue the received data in a manner similar to that described above in order to provide a uniform output of data over time to inputs DI-1 to DI-Nxm of multiplexer 1006-2. Multiplexer 1006-2, in turn multiplexes the lower rate/granular data flows into data flows, such as GE flows noted above, to be received by and output to the client via switch chip 200a. 
It is noted that the connections between the transmit and receive portions of chips 200b and switch chip 200a may be via a Serdes. In addition, the physical connections may be realized or implemented with wires, traces, etc. such signals can be exchanged between chips 200a and 200b. 
Further details of the line FEC encode and decode will next be described. The line FEC 1018 encodes the data in each of the time slots along with parity information (e.g., an error correcting code, ECC) for controlling errors in the encoded data. The parity information can be used, for example, to provide redundant information regarding the encoded data, such that the recipient of the data can reconstruct the data despite unreliable and/or noisy line conditions. In some implementations, the parity information can include block codes or bits, convolutional codes or bits, repetition codes or bits, and/or other codes or bits generated according to any FEC scheme. The line FEC module 1018 provides the encoded data to a digital signal processor (DSP) 1020 for further processing.
The DSP 1020 receives the encoded data from the line module 1018, and generates drive signals for producing an optical signal using a Tx optical line interface 1024. For example, the DSP 1020 can include one or more bits-to-symbol circuits that map encoded bits of data to symbols on a complex plane in accordance with a particular modulation format for each subcarrier. Further, each of the symbols output from the bit-to-symbol circuits can be supplied to a respective overlap and save buffer. Each of the overlap and save buffers can combine some or all of the symbols, and output the combined symbols to a fast Fourier transform (FFT) circuit. The FFT circuit can convert the received symbols to the frequency domain (e.g., using a fast Fourier transform), and provide the converted symbols to one or more switches blocks 1121a-1121p (which may be referred to collectively as bins and switches blocks. Each of the bins and switches blocks can include, for example, memories or registers (e.g., frequency bins (FB) or points), that store frequency components associated with each optical subcarrier.
Further, replicator components or circuits can replicate the contents of the frequency bins FB and store such contents (e.g., for T/2 based filtering of the subcarrier) in a respective one of the plurality of replicator components. Such replication can increase the sample rate. In addition, the replicator components or circuits can arrange or align the contents of the frequency bins to fall within the bandwidths associated with pulse shaped filter circuits, as described below.
Each of the pulse shape filter circuits can apply a pulse shaping filter to the data stored in the frequency bins of a respective one of the replicator components or circuits to thereby provide a respective one of a plurality of filtered outputs, which are multiplexed and subject to an inverse FFT. The pulse shape filter circuits can calculate the transitions between the symbols and the desired subcarrier spectrum so that the subcarriers can be packed together spectrally for transmission (e.g., with a close frequency separation). The pulse shape filter circuits can also may be used to introduce timing skew between the subcarriers to correct for timing skew induced by links between network nodes. Further, a multiplexer component can receive the filtered outputs from the pulse shape filter circuits, and multiplex or combine such outputs together to form an element vector.
Further, an IFFT circuit or component can receive the element vector and provide a corresponding time domain signal or data based on an inverse fast Fourier transform (IFFT). In one example, the time domain signal can have a rate of 64 GSample/s. Further, a take last buffer or memory circuit can select the last N samples from an output of the IFFT component or circuit and supply the samples to one or more DACs 1022.
The DAC 1022 convers the digital signal received from the DSP 1020 into an analog signal, and provides the analog signal to the Tx line module 1024, which a modulated optical signal based on the received analog signal, as described above. As further noted above, a laser driver of the transmission module 1024 can generate optical signals based on the analog signals. The optical signals can be provided to one or more modulators (e.g., one or more Mach-Zehnder modulators, MZMs) that modulate the optical signals according to one or more optical subcarriers (e.g., one or more optical subcarriers SC1-SC16).
As an example, the first chip 200a of the network switch 108 can receive data from a client or transmit data to the client via a first set of SerDes interfaces. In one example, first chip 200a and the second chip 200b can exchange data via a second set of SerDes interfaces. Further, the second chip 200b can be used in connection with transmission of data or information to one or more network nodes (e.g., to one or more of the network nodes 102a-102n and 104-1-104-n) via a third set of SerDes interfaces.
In some implementations, at least some of the sets of SerDes interfaces can include a single respective SerDes interface. In some implementations, at least some of the sets of SerDes interfaces can include a multiple respective SerDes interfaces. In the example shown in, the first set of SerDes interfaces includes eight SerDes interfaces, each configured to transmit data according to a throughput of 56 Gbit/s. Further, the second set of SerDes interfaces includes eight SerDes interfaces, each configured to transmit data according to a throughput of 56 Gbit/s. Further, the third set of SerDes interfaces includes sixteen SerDes interfaces, each configured to transmit data according to a throughput of 28 Gbit/s.
Although an example configuration of SerDes interfaces is described herein, this is merely an illustrative example. In practice, the first chip 200a and the second chip 200b can transmit and/or receive data according to any number of SerDes interfaces, each configured to transmit data according to any throughput.
As described above, the network switch 108 can establish one or more data streams for transmitting and/or receiving data. Further, the network switch 108 can allot particular amounts of network resources to each of the data streams. Further, each of the data streams can be associated with one or more respective optical subcarriers.
To illustrate, FIG. 8 shows an example data routing operation of the network switch 108 shown in FIG. 1. Here, client data is provided to chip 200a. The client data in this example is supplied as a 100GE data flow, two 50GE data flows, and a 200GE data flow. Chip 200a inputs/outputs these flows as eight flows, each being a 50GE flow. That is, the 100GE flow corresponds to inputs/outputs AIO-1 and AIO-2 of switch chip 200a. Each of the two 50GE data flows corresponds to the inputs/outputs AIO-3 and AIO-4, and the 200GE flow corresponds to the 50GE inputs/outputs AIO-5 to AIO-8. Inputs/outputs AIO-1 to AIO-8 are coupled to a respective one of inputs/outputs of AIO-5 to AIO-8 of chip 200B. Circuitry in chip 200b noted above allocates these flows in a manner such that outputs from chip 200b are provied to optical interface 200c to output subcarriers SC1 to SC4 associated with the 100GE flow, subcarriers SC5 and SC6 are associated with the 50GE flow, optical subcarriers SC7 and SC8 are associated with the other 50GE flow, and optical subcarriers SC9-SC16 are associated with the 200GE flow. In this example, each optical subcarrier SC1 to SC16 carries data at a rate of 28G. Alternatively, eight subcarriers may be transmitted, each carrying 56G each. In that case two such subcarriers are associated with the 100GE flow, one subcarrier is associated with one 50GE flow and another is associated with the other 50GE flow, and four subcarriers are associated with the 200GE flow.
In this example, the first chip 200a receives four data streams 404a-404d using the first set of SerDes interfaces 402a (e.g., from one or more of the network nodes 102a-102n and 104-1-104-n), and routes the data therein to the second chip 200b as four data streams 406a-406d using the second set of SerDes interfaces 402b. The second chip 200b determines the intended destination or destinations for the received data, and transmits the data to its intended destination or destinations as four data streams 408a-408d using the third set of SerDes interfaces 402c. In some implementations, each of the data streams 408a-408d can correspond to a different respective destination (e.g., a particular one of the network nodes 102a-102n and 104-1-104-n).
Further, the network switch 108 can allot particular amounts of network resources to each of the data streams. For instance, in the example shown in FIG. 4B, the data stream 404a can be allotted network resources that enable data to be transmitted according to a throughput of 100 Gbit/s (e.g., allotted use of two SerDes interfaces of the first set of SerDes interfaces 402a), each of the data streams 404b and 404c can be allotted network resources that enable data to be transmitted according to a throughput of 50 Gbit/s (e.g., allotted use of one SerDes interface of the first set of SerDes interfaces 402a each), and the data stream 404d can be allotted network resources that enable data to be transmitted according to a throughput of 200 Gbit/s (e.g., allotted use of four SerDes interfaces of the first set of SerDes interfaces 402a).
As another example, the data stream 406a can be used to route data received from the data stream 404a, and can be allotted network resources that enable data to be transmitted according to a throughput of 100 Gbit/s (e.g., allotted use of two SerDes interfaces of the second set of SerDes interfaces 402b). Further, each of the data streams 406b and 406c can be used to route data received from the data streams 404b and 404c, respectively, and each can be allotted network resources that enable data to be transmitted according to a throughput of 50 Gbit/s (e.g., allotted use of one SerDes interface of the second set of SerDes interfaces 402b each). Further, the data stream 406d can be used to route data received from the data stream 404d, and can be allotted network resources that enable data to be transmitted according to a throughput of 200 Gbit/s (e.g., allotted use of four SerDes interfaces of the second set of SerDes interfaces 402b).
As another example, the data stream 408a can be used to route data received from the data stream 406a, and can be allotted network resources that enable data to be transmitted according to a throughput of 100 Gbit/s (e.g., allotted use of four SerDes interfaces of the third set of SerDes interfaces 402c). Further, each of the data streams 408b and 408c can be used to route data received from the data streams 406b and 406c, respectively, and each can be allotted network resources that enable data to be transmitted according to a throughput of 50 Gbit/s (e.g., allotted use of two SerDes interfaces of the third set of SerDes interfaces 402c each). Further, the data stream 408d can be used to route data received from the data stream 406d, and can be allotted network resources that enable data to be transmitted according to a throughput of 200 Gbit/s (e.g., allotted use of eight SerDes interfaces of the third set of SerDes interfaces 402c).
Further, as discussed above, each of the data streams transmitted by the second chip 200b can be associated with one or more respective optical subcarriers.
In some implementations, each of the data streams 408a-408d can be transmitted to multiple different network nodes (e.g., using an optical signal modulated according to multiple sets of optical subcarriers). Each of the network nodes can selectively recover the data stream that is intended for it (e.g., by demodulating the optical signal according to the set of optical subcarriers that is associated with the network node), while refraining from recovering the data streams that are intended for other network nodes.
For example, referring to FIG. 4B, the network switch 108 can generate an optical signal, and modulate the optical signal according to the optical subcarriers SC1-SC4 such that it carries data intended for a first network node as a data stream 408a. Further, the network switch 108 can modulate the optical signal according to the optical subcarriers SC5 and SC6 such that it carries data intended for a second network node as a data stream 408b. Further, the network switch 108 can modulate the optical signal according to the optical subcarriers SC7 and SC8 such that it carries data intended for a third network node as a data stream 408c. Further, the network switch 108 can modulate the optical signal according to the optical subcarriers SC9-SC16 such that it carries data intended for a fourth network node as a data stream 408d. The network switch 108 can transmit an instance of the modulated optical signal (e.g., a respective power-divided instance of the optical signal) to each of these network nodes.
Further, each of the network nodes can selectively demodulate the optical signal that it receives according to the set of optical subcarriers to which it is associated (e.g., to receive the data that is intended for it). For example, the first network node can demodulate the optical signal that it receives according to the optical subcarriers SC1-SC4 to recover the data that is intended for it (e.g., the data stream 408a). Further, the second network node can demodulate the optical signal that it receives according to the optical subcarriers SC5 and SC6 to recover the data that is intended for it (e.g., the data stream 408b). Further, the third network node can demodulate the optical signal that it receives according to the optical subcarriers SC7 and SC8 to recover the data that is intended for it (e.g., the data stream 408c). Further, the fourth network node can demodulate the optical signal that it receives according to the optical subcarriers SC9-SC16 to recover the data that is intended for it (e.g., the data stream 408d). Further, each of the intended destination can selectively ignore, block, or otherwise not demodulate the optical signal according to the sets of optical subcarriers to which it is not associated (e.g., such that it refrains from recovering the data that is not intended for it).
In the example shown in FIG. 8, the first chip 200a and the second chip 200b exchange data using a set of SerDes interfaces. However, this need not always be the case. For example, in some implementations, the first chip 200a and the second chip 200b exchange data according to an interface implemented according to the Flexible Ethernet (FlexE) communications protocol (e.g., specified by the Optical Internetworking Forum, OIF) or other appropriate protocol.
As an example, FIG. 9 shows a network switch 108 having a first chip 200a and a second chip 200b. In general, the first chip 200a and the second chip 200b can be similar to those described above. Further, the first chip 200a can receive data and the second chip 200b can transmit data in a similar manner as described above. For example, the network switch 108 can include a set of SerDes interfaces that enable the first chip 200a to receive data (e.g., from one or more network nodes), and another set of SerDes interfaces that enable the second chip 200b to transmit data (e.g., to one or more network nodes).
However, this in example, instead of having a set of SerDes interfaces to exchange data between the first chip 200a and the second chip 200b, the network switch 108 includes components that enable the first chip 200a and the second chip 200b to exchange data according to the FlexE communications protocol. For instance, the first chip 200a can include a first FlexE shim 502a, and the second chip 200b can include a second FlexE shim 502b. Further, the first FlexE shim 502a and the second FlexE shim 502b are communicatively coupled to one another by a set of FlexE interfaces (e.g., Ethernet links) extending between them. For instance, in this example, the first FlexE shim 502a and the second FlexE shim 502b are interconnected by a set of four FlexE interfaces, each configured to transmit data according to a throughput of 100 Gbit/s.
During operation for the network switch 108, the first FlexE shim 502a and the second FlexE shim 502b can exchange data streams by transmitting each data stream using a single FlexE interface or using multiple FlexE interfaces.
To illustrate, FIG. 9 shows an example of a data routing operation of the network switch 108. In this example, the FlexE shim 502a of the first chip 200a receives four data streams 100GE, 50GE, 50GE, and 200GE using the first set of SerDes interfaces (e.g., from one or more of the network nodes 102a-102n and 104-1-104-n), and routes the data therein to the FlexE shim 502b of the second chip 200b as four data streams each at 100GE using the set of FlexE interfaces 504. The FlexE shim 502a can transmit the data received from each of these 100GE data streams using one of the FlexE interfaces 504 (or a portion thereof), or using multiple FlexE interfaces 504. Allocating the data flows into lower rate flows and granular flow and mapping such flows to m output to the optical interface for further output on assigned optical subcarriers is similar to that described above.
Further, in another example, the second chip 200b determines the intended destination or destinations for the received data, and transmits the data to its intended destination or destinations as four data streams using the set of SerDes interfaces. In some implementations, each of the data streams 510a-510d can correspond to a different respective destination (e.g., a particular one of the network nodes 104-1-104-n).
Further, as discussed above, each of the data streams transmitted by the second chip 200b can be associated with one or more respective optical subcarriers. For instance, in the example shown in FIG. 9, the data stream 510a can be used to transmit data to a first network node. Here, as in the example noted above, optical subcarriers SC1 and SC2 are associated with the 100GE flow, subcarriers SC3 and SC4 are each associated with respective 50GE flows, and optical subcarriers SC5-SC8 are associated with the 200GE flow. Also, as in one of the above examples, each subcarrier carries data at a rate of 56 Gbit/s.
The example shown in FIG. 10 is similar to the examples discussed above and carries out a similar optical subcarrier data allocation as that described above. In FIG. 10, however, rather than multiple flows being transmitted between chips 200a and 200b, one flow at a relatively high data rate is transmitted between these two chips. Chip 200b, in this example, performs inverse muxing in a manner similar to that described above to map the outputs of chip 200b to m outputs and thus associate or assigned data flows to corresponding optical subcarriers.
As described above, in some implementations, a network switch 108 can dynamically adjust each of the data streams during operation. This can be useful, for example, as it enables network sources to be used more efficiently on the optical communications network.
For example, if additional network nodes are coupled to the optical communications network, the network switch can establish additional data streams to transmit data to and/or receive data from those network nodes, associate respective sets of optical subcarriers with each of the additional data streams, and allot respective sets of network resources to each of the additional data streams. As another example, if network nodes are removed from the optical communications network, the network switch can remove the data streams associated with those network nodes, and reallot the optical subcarriers and/or network resources for the removed data streams to other data streams.
As another example, the network switch can dynamically increase the number of optical subcarriers and/or the amount network resources that are allotted to certain data streams (e.g., to accommodate the transfer of a greater volume of data and/or the transfer of data according to a higher throughput to the corresponding network node). As another example, the network switch can dynamically reduce the number of optical subcarriers and/or the amount network resources that are allotted to certain data streams (e.g., if the volume of data transmitted to the corresponding network node is sufficiently low and/or if the data can be transmitted according to a lower throughput, such that the optical subcarriers and/or network resources are better utilized elsewhere).
To illustrate, FIG. 11 shows an example adjustment operation of the network switch 108. In some implementations, the operation shown in FIG. 11 can be performed using one or more of the systems described herein.
In the example shown in FIG. 11, the second chip 200b of the network switch 108 is configured to transmit data streams 902a-902d to network nodes 904a-904d, respectively. The network nodes 908a-908d can be similar to the network nodes 104-1-104-n as described above.
Further, the second chip 200b can queue data to be transmitted to each of the network nodes 904a-904d in respective data buffers, prior to the transmission of the data. For example, the second chip 200b can include data buffers 906a-906d, each configured to store data intended for a different one of the network nodes 904a-904d, respectively. The data buffers 906a-906d can queue data for transmission according to various scheduling policies, such as first-in-first-out (FIFO), last in first out (LIFO), shortest job next (SJN), quality of service (QoS) prioritization, and/or any other scheduling policy. In some implementations, the queueing of data into the data buffers 906a-906d can be controlled, at least in part, by a remote schedule module 908 (e.g., implemented as a part of the circuitry of the second chip 200b).
In some implementations, data can be transmitted from the data buffers 906a-906d periodically. For example, the second chip 200b can generate a clock signal to synchronize the transmission of data from the data buffers 906a-906d. During particular times in the clock signal (e.g., when the clock signal shifts from a low or high value, or vice versa), each of the data buffers 906a-908d can transmit a portion of data (e.g., a data packet) to a respective one of the network nodes 904a-904d. 
In some implementations, each of the network nodes 904a-904d can include a respective data buffer 908a-908d for receiving data. For example, when data that is received from the data streams 902a-902d can initially be queued in data buffers 908a-908d, respectively. The network node 904a-904d can subsequently retrieve data from the data buffers 908a-908d for further processing.
Further, the network switch 108 can dynamically adjust each of the data streams 902a-902d during operation. For example, if additional network nodes are coupled to the network switch 108, the network switch 108 can establish additional data streams (e.g., 902e, 902f, . . . , 902n) to transmit data to and/or receive data from those network nodes, associate respective sets of optical subcarriers with each of the additional data streams, and allot respective sets of network resources to each of the additional data streams. As another example, if network nodes are uncoupled from the network switch 108, the network switch can remove the data streams associated with those network nodes, and reallot the optical subcarriers and/or network resources for the removed data streams to other data streams.
As another example, the network switch 108 can dynamically increase the number of optical subcarriers and/or the amount network resources that are allotted to certain data streams (e.g., to accommodate the transfer of a greater volume of data and/or the transfer of data according to a higher throughput to the corresponding network node). For instance, in the example shown in FIG. 9, the network node 904b experiences an increase in the amount of data that is received over time (e.g., as shown in the plot 910). If this increase is sufficiently large (e.g., the rate at which data is received exceeds a threshold value), the network node 904b can transmit a request message 912 to the network switch 108 (e.g., the second chip 200b) to increase the number of optical subcarriers and/or the amount network resources that are allotted to data transmission to the network node 904b. In response, the chip 200b determines whether any optical subcarriers and/or network resources are available for reallocation. If so, transmits a grant message 914 confirming that the request is granted, and reallocates the optical subcarriers and/or network resources. For instance, in the example shown in FIG. 9, the chip 200b increases the bandwidth allotted to transmitting data to the network node 904b (e.g., such that data throughput is increased from 50 Gbit/s to 100 Gbit/s). Further, the chip 200b can increase the number of optical subcarriers that are assigned for transmitting data to the network node 904b. In some implementations, at least some of these operations can be performed by the remote scheduler module 908.
As another example, the network switch can dynamically reduce the number of optical subcarriers and/or the amount network resources that are allotted to certain data streams (e.g., if the volume of data transmitted to the corresponding network node is sufficiently low and/or if the data can be transmitted according to a lower throughput, such that the optical subcarriers and/or network resources are better utilized elsewhere). For instance, in the example shown in FIG. 9, the network node 904c experiences a decrease in the amount of data that is received over time (e.g., as shown in the plot 916). If this decrease is sufficiently large (e.g., the rate at which data is received decreased below a threshold value), the network node 904c can transmit a request message 918 to the network switch 108 (e.g., the second chip 200b) to decrease the number of optical subcarriers and/or the amount network resources that are allotted to data transmission to the network node 904c. In response, the chip 200b transmits a grant message 920 confirming that the request is granted, and reallocates the optical subcarriers and/or network resources. For instance, in the example shown in FIG. 9, the chip 200b decreases the bandwidth allotted to transmitting data to the network node 904c (e.g., such that data throughput is decreased from 75 Gbit/s to 50 Gbit/s). Further, the chip 200b can decrease the number of optical subcarriers that are assigned for transmitting data to the network node 904c. In some implementations, at least some of these operations can be performed by the remote scheduler module 908.
In some implementations, the network switch 108 can dynamically adjust each of the data streams based on a priority associated with each of the data streams. For example, data streams that are associated with a higher priority can be allotted a greater number of optical subcarriers and/or amount network resources, whereas data streams that are associated with a lower priority can be allotted a lesser number of optical subcarriers and/or amount network resources. In some implementations, the priority associated with each of the data streams can be dynamically modified over time, and the network switch 108 can dynamically adjust each of the data streams based on the modifications (e.g., using the remote scheduler module 908).
In some implementations, the network switch 108 can dynamically adjust each of the data streams based on a relatively utilization rate of each of the data streams. For example, data streams that are used to transmit a greater volume of data over time can be allotted a greater number of optical subcarriers and/or amount network resources, whereas data streams that are used to transmit a smaller volume of data over time can be allotted a lesser number of optical subcarriers and/or amount network resources. In some implementations, the utilization of each of the data streams can be monitored over time, and the network switch 108 can dynamically adjust each of the data streams based on the modifications (e.g., by the remote scheduler module 908).
FIG. 12 illustrates examples of circuitry for generating a request for more or less capacity or bandwidth at a leaf or network node 104 and circuitry for receiving a grant for more or less transmission capacity. Here, a buffer monitor circuit 1204 monitors the amount of data in one or more of buffers 1014. It the amount of data received from the hub node exceeds a threshold, buffer monitor circuit generates information or data indicative of a request for the hub to receive a comparable amount of data or information from the leaf node. Such information or data is input to FEC encoder similar to encoder 1018, in one example, for transmission on one or more optical subcarriers output from the leaf node 104 to hub or network switch 108 in a manner similar to that described above. The hub 108 may processes such optical subcarrier(s) in a manner similar to that described above, to obtain the bandwidth request. In response to such request, hub 108, in turn, outputs information or data indicative of a grant, which is transmitted on one or more downstream optical subcarriers to the leaf node 104 that originated the bandwidth request. Such optical subcarrier is processed, as noted above, and the grant information is output from an FEC decoder in the leaf node. The grant request may then be provided to buffer control circuit 1206 for regulating the amount of data output from one or more buffers in the leaf node, which are similar to buffer 1014a. As a result, the amount of data or information output from the leaf node is correspondingly regulalted to either increase or decrease based on the grant information. which, in turn outputs transmit a corresponding amount of data to the network switch or hub 108 so that the amount of data received by the leaf node 104 is the same as or approximates the amount of data transmitted by the leaf or network node 104 so that data traffic can be efficiently managed, for example.
It is noted that each of network nodes 104 may have chips similar to chips 200a and 200b described above, as well as Rx and Tx optical line interfaces as further described above. Such circuitry in network nodes 104 operate in a similar manner to allocate or associate data for transmission on optical subcarriers to hub 108 and receipt and processing of subcarriers from hub 108.
FIG. 13 shows an example of a remote scheduler in hub 108 that receives requests from leaf nodes 904a to 904d following processing of optical subcarriers output from such nodes in the hub including FEC decoding. The requests may then be used by the remote scheduler to generates grant information that is supplied to buffers, such as buffers 1014a to 1014c, which in turn, outputs such grant information for output to the leaf nodes 104.
Some implementations described in this specification can be implemented as one or more groups or modules of digital electronic circuitry, computer software, firmware, or hardware, or in combinations of one or more of them. Although different modules can be used, each module need not be distinct, and multiple modules can be implemented on the same digital electronic circuitry, computer software, firmware, or hardware, or combination thereof.
Some implementations described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on computer storage medium for execution by, or to control the operation of, data processing apparatus. A computer storage medium can be, or can be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal. The computer storage medium also can be, or can be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).
The term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing. The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). The apparatus also can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
Some of the processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows also can be performed by, and apparatus also can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. A computer includes a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. A computer may also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices (e.g., EPROM, EEPROM, flash memory devices, and others), magnetic disks (e.g., internal hard disks, removable disks, and others), magneto optical disks, and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
A computer system may include a single computing device, or multiple computers that operate in proximity or generally remote from each other and typically interact through a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), a network comprising a satellite link, and peer-to-peer networks (e.g., ad hoc peer-to-peer networks). A relationship of client and server may arise by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
While this specification contains many details, these should not be construed as limitations on the scope of what may be claimed, but rather as descriptions of features specific to particular examples. Certain features that are described in this specification in the context of separate implementations also can be combined in the same implementation. Conversely, various features that are described in the context of a single implementation also can be implemented in multiple embodiments separately or in any suitable sub-combination.
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other implementations are within the scope of the claims.

## Claims

1. A method comprising:
receiving, by a first network device from a plurality of second network devices, a plurality of data streams to be output from a plurality of third network devices in an optical communications network;
demultiplexing the plurality of data streams;
supplying the demultiplexed data streams to a plurality of buffers;
outputting the demultiplexed data streams from the plurality of buffers to a multiplexer,
asynchronously mapping, with the multiplexer, the plurality of data streams into a plurality of time slots;
identifying, by the first network device, for each one of the data streams, a different respective subset of optical subcarriers for transmitting that data stream;
generating, by the first network device, an optical signal, wherein the optical signal includes each of the subsets of optical subcarriers, and wherein said each of the subsets of optical subcarriers carries information indicative of a respective one of the plurality of data streams;
scheduling, based on an output of a forward error correction decoder, transmission of said each of the subsets of optical subcarriers;
transmitting, by the first network device, the subsets of optical subcarriers to each of the third network devices over the optical communications network based on said scheduling.

2. The method of claim 1, wherein each of the subsets of optical subcarriers is selected from a plurality of optical subcarriers allotted to the first network device.

3. The method of claim 2, wherein at least some of the plurality of optical subcarriers are contiguous with one another in a frequency domain.

4. The method of claim 1, wherein the first network device comprises:
a first chip comprising first circuitry, and
a second chip comprising second circuitry,
wherein the plurality of data streams are received from the plurality of second network devices using the first chip via one or more first communications links,
wherein the plurality of subsets of optical subcarriers is transmitted to the plurality of third network devices via one or more second communications links, and
wherein the method further comprises transmitting the information associated with the plurality of data streams from the first chip to the second chip using one or more third communications links.

5. The method of claim 4, wherein the one or more first communications links are established by one or more serializer/deserializer (SerDes) modules.

6. The method of claim 4, wherein the one or more third communications links are established by one or more serializer/deserializer (SerDes) modules.

7. The method claim 4, wherein the one or more second communications links comprise:
one or more communications links, each having a fixed bandwidth.

8. The method claim 4, wherein the one or more second communications links comprise:
one or more communications links, each having a variable bandwidth.

9. The method of claim 4, wherein the one or more first communications links and the one or more second communications links are equal in number.

10. The method of claim 4, wherein a bandwidth of each one of the one or more first communications links is equal to a bandwidth of a respective one of the one or more second communications links.

11. The method of claim 4, wherein the one or more first communications links and the one or more third communications links differ in number.

12. The method of claim 11, a number of the one or more first communications links is less than a number of the one or more third communications links.

13. The method of claim 12, wherein at least one of the plurality of data streams complies with a Flexible Ethernet protocol.

14. The method of claim 11, wherein a number of the one or more first communications links is greater than a number of the one or more third communications links.

15. The method of claim 14, wherein the number of the one or more third communications links is one.

16. The method of claim 14, wherein each of the one or more third communications links comprises a respective logical group of physical links communicatively coupling the second chip to a respective one of the third network devices.

17. The method of claim 4, wherein the second chip includes:
a respective transmission buffer for each one of the third network devices, the method further includes:
receiving, by the second chip, the plurality of data streams;
queueing, by the second chip, network packets associated with the plurality of data streams into a respective one of the transmission buffers; and
transmitting, by the second chip, the network packets from each of the transmission buffers to a respective one of the third network devices over the optical communications network.

18. The method of claim 17, wherein the network packets are transmitted from each one of the transmission buffers according to a fixed clock frequency.

19. The method of claim 17, further comprising:
receiving, by the second chip from one of the third network devices, a request to modify a bandwidth associated with the respective one of the third network devices;
responsive to receiving the request, transmitting, by the second chip to the respective one of the third network devices, a confirmation of the request; and
transmitting, by the second chip to the respective one of the third network devices, the network packets from a corresponding one of the transmission buffers according to a modified bandwidth.

20. The method of claim 19, further includes:
increasing the bandwidth associated with one of the third network devices according to which selected ones of the data packets are transmitted to said one of the third network devices.

21. The method of claim 19, further includes:
decreasing the bandwidth associated with one of the third network devices according to which selected ones of the data packets are transmitted to said one of the third network devices.

22. The method of claim 1, wherein the plurality of second network devices comprises one or more hub network devices, and wherein the plurality of third network devices comprises one or more leaf network devices.

23. An apparatus comprising:
first circuitry, which is configured to be communicatively coupled to a first network device, and wherein the first circuitry is configured to:
receive, from a plurality of second network devices via the first network device, a plurality of data streams to be output from a plurality of third network devices;
identify, for each one of the data streams, a different respective subset of optical subcarriers for transmitting information associated with that data stream;
schedule, based on an output of a forward error correction decoder, transmission of the subsets of optical subcarriers;
transmit each of the subsets of the optical subcarriers to the third network devices over an optical communications network, wherein each of the data streams is associated with a different respective one of the subsets of the optical subcarriers;
a demultiplexer operable to demultiplex the plurality of data streams;
a plurality of buffers operable to receive the demultiplexed data streams; and
a multiplexer operable to receive the demultiplexed data streams from the plurality of buffers, wherein the multiplexer asynchronously maps the plurality of data streams into a plurality of time slots.

24. The apparatus of claim 23, wherein each of the subsets of optical subcarriers is selected from a plurality of optical subcarriers allotted to the first network device.

25. The apparatus of claim 24, wherein at least some of the plurality of optical subcarriers are contiguous with one another in a frequency domain.

26. The apparatus of claim 23,
wherein the first network device comprises second circuitry, wherein the second circuitry is configured to receive the plurality of data streams from the plurality of second network devices via one or more first communications links,
wherein the first circuitry is communicatively coupled to the second circuitry, and wherein the first circuitry is configured to:
transmit the information associated with the plurality of data streams to the plurality of third network devices via one or more second communications links, and
receive the information associated with the plurality of data streams from the second circuitry using one or more third communications links.

27. The method of claim 26, wherein the one or more third communications links are established by one or more serializer/deserializer (SerDes) modules.

28. The apparatus claim 26, wherein the one or more second communications links comprise:
one or more communications links, each having a fixed bandwidth.

29. The apparatus claim 26, wherein the one or more second communications links comprise:
one or more communications links, each having a variable bandwidth.

30. The apparatus of claim 26, wherein the one or more first communications links and the one or more second communications links are equal in number.

31. The apparatus of claim 26, wherein a bandwidth of each one of the one or more first communications links is equal to a bandwidth of a respective one of the one or more second communications links.

32. The apparatus of claim 26, wherein the one or more first communications links and the one or more third communications links differ in number.

33. The apparatus of claim 32, a number of the one or more first communications links is less than a number of the one or more third communications links.

34. The apparatus of claim 33, wherein at least one of the plurality of data streams complies using a Flexible Ethernet protocol.

35. The apparatus of claim 32, wherein a number of the one or more first communications links is greater than a number of the one or more third communications links.

36. The apparatus of claim 35, wherein the number of the one or more third communications links is one.

37. The apparatus of claim 35, wherein each of the one or more third communications links comprises a respective logical group of physical links communicatively coupling the second chip to a respective one of the third network devices.

38. The apparatus of claim 26, wherein the first circuitry includes:
a respective transmission buffer for each one of the third network devices, wherein the first circuitry is operable to: receive the plurality of data streams;
queue network packets associated with the plurality of data streams into a respective one of the transmission buffers; and
transmit the network packets from each one of the transmission buffers to a respective one of the third network devices over the optical communications network.

39. The apparatus of claim 38, wherein the first chip is configured to transmit the network packets from each one of the transmission buffers according to a fixed clock frequency.

40. The apparatus of claim 39, wherein the first circuitry is configured to:
receive, from one of the third network devices, a request to modify a bandwidth associated with the respective one of the third network device;
responsive to receiving the request, transmit, to the respective one of the third network devices, a confirmation of the request; and
transmit, to the respective one of the third network devices, the network packets from a corresponding one of the transmission buffers according to a modified bandwidth.

41. The apparatus of claim 39, wherein the first circuitry is configured to increase the bandwidth associated with one of the third network devices according to which selected ones of the data packets are transmitted said one of the third network devices.

42. The apparatus of claim 39, wherein the first circuitry is configured to decrease the bandwidth associated with one of the third network devices according to which selected ones of the data packets are transmitted to said one of the third network devices.

43. The apparatus of claim 23, wherein the plurality of second network devices comprises one or more hub network devices, and wherein the plurality of third network devices comprises one or more leaf network devices.

44. A system comprising:
a first network device comprising:
first circuitry, and
second circuitry,

wherein the first circuitry and the second circuitry are configured to:
receive, from a plurality of second network devices, a plurality of data streams to be output from a plurality of third network devices;
identify, for each one of the data streams, a different respective subset of optical subcarriers for transmitting information associated with that data stream;
schedule, based on an output of a forward error correction decoder, transmission of the subsets of optical subcarriers; and
transmit each of the subsets of the optical subcarriers to the third network devices over an optical communications network, wherein each of the data streams is associated with a different respective one of the subsets of the optical subcarriers;
a demultiplexer operable to demultiplex the plurality of data streams;
a plurality of buffers operable to receive the demultiplexed data streams; and
a multiplexer operable to receive the demultiplexed data streams from the plurality of buffers, wherein the multiplexer asynchronously maps the plurality of data streams into a plurality of time slots.

45. The system of claim 44, wherein each of the subsets of optical subcarriers is selected from a plurality of optical subcarriers allotted to the first network device.

46. The system of claim 45, wherein at least some of the plurality of optical subcarriers are contiguous with one another in a frequency domain.

47. The system of claim 45,
wherein the first circuitry is configured to:
receive the information associated with the plurality of data streams from the plurality of second network devices via one or more first communications links, and
transmit the information associated with the plurality to data streams to the second chip using one or more third communications links, and

wherein the first circuitry is configured to transmit the plurality of data streams to the plurality of third network devices using the second circuitry via one or more second communications links.

48. The system of claim 47, wherein the one or more first communications links are established by one or more serializer/deserializer (SerDes) modules.

49. The system of claim 48, wherein the one or more third communications links are established by one or more serializer/deserializer (SerDes) modules.

50. The system claim 47, wherein the one or more second communications links comprise:
one or more communications links, each having a fixed bandwidth.

51. The system claim 47, wherein the one or more second communications links comprise:
one or more communications links, each having a variable bandwidth.

52. The system of claim 47, wherein the one or more first communications links and the one or more second communications links are equal in number.

53. The system of claim 47, wherein a bandwidth of each one of the one or more first communications links is equal to a bandwidth of a respective one of the one or more second communications links.

54. The system of claim 47, wherein the one or more first communications links and the one or more third communications links differ in number.

55. The system of claim 44, a number of the one or more first communications links is less than a number of the one or more third communications links.

56. The system of claim 55, wherein at least one of the plurality of data streams complies with a Flexible Ethernet protocol.

57. The system of claim 54, wherein a number of the one or more first communications links is greater than a number of the one or more third communications links.

58. The system of claim 57, wherein the number of the one or more third communications links is one.

59. The system of claim 57, wherein each of the one or more third communications links comprises a respective logical group of physical links communicatively coupling the second chip to a respective one of the third network devices.

60. The system of claim 47, wherein the second circuitry includes a respective transmission buffer for each one of the third network devices, the second circuitry is configured to transmit each one of the data streams to the plurality of third network devices by:
receiving the plurality of data streams;
queueing network packets of each of the plurality of data streams into a respective one of the transmission buffers; and
transmitting the network packets from each one of the transmission buffers to a respective one of the third network devices over the optical communications network.

61. The system of claim 60, wherein the network packets are transmitted from each one of the transmission buffers according to a fixed clock frequency.

62. The system of claim 60, wherein the second circuitry is configured to:
receive, from one of the third network devices, a request to modify a bandwidth associated with the respective one of the third network devices;
responsive to receiving the request, transmit, to the respective one of the third network devices, a confirmation of the request; and
transmit, to the respective one of the third network devices, the network packets from a corresponding one of the transmission buffers according to a modified bandwidth.

63. The system of claim 62, wherein the second circuitry is configured to increase the bandwidth associated with one of the third network devices according to which selected ones of the data packets are transmitted to said one of the third network devices.

64. The system of claim 62, wherein the second circuitry is configured to decrease the bandwidth associated with one of the third network devices according to which selected ones of the data packets are transmitted to said one of the third network devices.

65. The system of claim 44, wherein the plurality of second network devices comprises one or more hub network devices, and wherein the plurality of third network devices comprises one or more leaf network devices.