Patent Description:
This application is related to co-pending <CIT>, and entitled "Method and Apparatus for Self Healing of an Optical Transceiver in a Wavelength Division Multiplexing (WDM) System".

This application is related to co-pending <CIT>, and entitled "Method and Apparatus for Remote Management of an Optical Transceiver System.

Some embodiments described herein relate generally to methods and apparatus for a data center network. In particular, but not by way of limitation, some embodiments described herein relate to methods and apparatus for a flattened data center network employing wavelength-agnostic endpoints using wavelength tunable optical transceivers.

Presently, data centers now typically involve a collection of scale-out servers that work collectively to solve large-scale problems. This type of computing often involves extensive data exchange within the data centers, which causes a large amount of traffic to move in an east-west direction (e.g., within the same hierarchal level) within the data centers. For example, in data centers that allow dynamic migration of virtual machines, system images are transferred between original servers and new servers whenever a migration is performed. Thus, this migration of virtual machines generates substantial amount of additional data exchange. For another example, logical and/or physical centralization of storage resources, consolidation of local area network (LAN) and storage area network (SAN) networks, and increases of input/output (I/O) rates per server also contribute to significant increases in east-west traffic rates. To support such applications, it is desirable for datacenter networks to provide high bandwidth and low latency with low complexity and power consumption.

Current data centers are typically built with a multi-tier architecture. Servers in a rack are connected to one or two top-of-rack (ToR) switches. These ToR switches are then connected to aggregation switches to form clusters. High-capacity aggregation routers (or core switches) are used to connect aggregation switches. At the top, core routers interconnect aggregation routers and interface with the Internet. This type of architecture, however, has several scalability problems. First, bandwidth is allocated on each layer and a certain oversubscription rate is used between layers. Oversubscription can contribute to congestion during data exchange among servers. Second, latency is introduced by multiple store-and-forward processes where queueing and processing delays take place at each switch/router on a data path. Third, this architecture typically involves complexity in wiring and control.

Accordingly, a need exists for methods and apparatus for a data center network with improved oversubscription rates, lower network latency, and simplified optical interconnect.

<CIT> B <NUM> relates to a flexible non-modular data center with a reconfigurable extended-reach optical network fabric.

<CIT> relates to automatically verifying connectivity within an optical network node.

Document "<NPL> relates to optically interconnected data center networks.

Document "<NPL> relates to a survey on optical interconnects for data centers.

<CIT> discloses systems and methods for communicating over an optical network using hop-by-hop routing over an optical network.

In some embodiments, a system includes a set of servers, a set of switches within a switch fabric, and an optical device. The optical device is operatively coupled to the set of servers via a first set of optical fibers. Each server from the set of servers is associated with at least one wavelength from a set of wavelengths upon connection to the optical device. The optical device is operatively coupled to each switch from a set of switches via an optical fiber from a second set of optical fibers. The optical device, when operative, wavelength demultiplexes optical signals received from each switch from the set of switches, and sends, for each wavelength from the set of wavelengths, optical signals for that wavelength to the server from the set of servers.

In some embodiments, each server from the set of servers includes a wavelength-tunable optical transceiver having an operational wavelength range. The operational wavelength range includes the set of wavelengths. The wavelength-tunable optical transceiver tunes to one wavelength from the set of wavelengths when the optical signals are transmitted to the server.

In some embodiments, the optical device, when operative, combines, for each switch from the set of switches, optical signals received from the set of servers and associated with that switch, each optical signal received from the set of servers associated with a wavelength from the set of wavelengths.

In some embodiments, the optical device does not switch the optical signals received from the set of switches, or the optical signals received from the set of servers. And no switch is located between the set of servers and the switch fabric.

In some embodiments, the optical device does not implement oversubscription.

In some embodiments, the optical device is not pre-provisioned and is not pre-configured before operation.

In some embodiments, each server from the set of servers includes a wavelength-tunable optical transceiver. Each server from the set of servers detects a port of the optical device upon being connected to the optical device via an optical fiber from the first set of optical fibers. Each server from the set of servers tunes its wavelength-tunable optical transceiver to the wavelength from the set of wavelengths and associated with that port of the optical device.

In some embodiments, the set of servers and the optical device are located within a common rack.

As used herein, a module can be, for example, any assembly and/or set of operatively-coupled electrical components, and can include, for example, a memory, a processor, electrical traces, optical connectors, software (executing in hardware), and/or the like. As used herein, the singular forms "a," "an" and "the" include plural referents unless the context clearly dictates otherwise. Thus, for example, the term "an optical fiber" is intended to mean a single optical fiber or a set of optical fibers with similar functionalities.

<FIG> is a schematic diagram illustrating a data center, according to an embodiment. The data center <NUM> includes a switch fabric <NUM> operatively coupled to a set of optical devices <NUM> and <NUM>, and a set of servers (<NUM>-<NUM> and <NUM>-<NUM>). In one implementation, the optical device <NUM> and a set of servers (e.g., servers <NUM> through <NUM>) reside in close proximity (e.g., the same chassis, rack, row, or cluster). The optical device <NUM> and a set of computer servers (e.g., servers <NUM> through <NUM>) reside in close proximity (e.g., the same chassis, rack, row, or cluster). The data center <NUM> can be configured to communicate to another network <NUM> (e.g., the internet) via its gateways (not shown in <FIG>), leaf switches <NUM>, <NUM>, and/or the like, in the switch fabric <NUM>.

One or more portions of the data center <NUM> can be (or can include), for example, a hardware-based module (e.g., an application-specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array (FPGA)) and/or a software-based module (e.g., a module of computer code, a set of processor-readable instructions that can be executed at a processor).

The switch fabric <NUM> operatively couples multiple switches (such as the spine switches <NUM>, <NUM> and leaf switches <NUM>, <NUM>) to each other and therefore data can be exchanged between servers. The switch fabric <NUM> also operatively couples servers (e.g., servers <NUM> through <NUM>, and <NUM> through <NUM>) to another network <NUM> (e.g., the internet). The switch fabric <NUM> includes a set of leaf switches <NUM>, <NUM> and a set of spine switches <NUM>, <NUM>. Each leaf switch <NUM>, <NUM> is operatively coupled to each spine switch <NUM>, <NUM> in the switch fabric <NUM>.

The leaf switches <NUM>, <NUM> provide network connection points for optical devices <NUM>, <NUM> via a set of optical connections <NUM> (e.g., optical fibers). Each leaf switch <NUM>, <NUM> can be any device configured to operatively couple the optical devices <NUM>, <NUM> to the switch fabric <NUM>. In some embodiments, for example, the leaf switches <NUM>, <NUM> can be edge devices, and/or the like. Structurally, the leaf switches <NUM>, <NUM> can function as both source switches and destination switches. Accordingly, the leaf switches <NUM>, <NUM> can send data (e.g., a data stream of data packets and/or data cells) to and receive data within the switch fabric <NUM>, and to and from the connected optical devices <NUM>, <NUM>.

The leaf switches <NUM>, <NUM> can be, for example, a combination of hardware modules and software modules. In some embodiments, for example, each leaf switch <NUM>, <NUM> can include a field-programmable gate array (FPGA), an application specific integrated circuit (ASIC), a digital signal processor (DSP) and/or the like.

The leaf switches <NUM>, <NUM> can be configured to prepare a data packet (e.g., an Ethernet packet) to enter the switch fabric <NUM>. For example, the leaf switches <NUM>, <NUM> can be configured to forward, classify, and/or modify the packet encapsulation (e.g., modify, add and/or remove a header portion, footer portion and/or any other identifier included within the data packet) of a data packet prior to sending the data packet within the switch fabric <NUM>.

Each of the leaf switches <NUM>, <NUM> is configured to communicate with each of the spine switches <NUM>, <NUM>. In other words, the switch fabric <NUM> is configured such that any-to-any connectivity is provided between the leaf switches <NUM>, <NUM> and the spine switches <NUM>, <NUM> at relatively low latency. For example, switch fabric <NUM> can be configured such that data are transmitted or conveyed between leaf switch <NUM> and spine switch <NUM>.

The optical devices <NUM>, <NUM> can be operatively coupled to the leaf switches <NUM>, <NUM> of the switch fabric <NUM> using an optical connection <NUM> (e.g., an optical cable, an optical fiber, an optical connector). As such, the optical devices <NUM>, <NUM> can aggregate and send data (e.g., data packets, data cells, etc.) to the switch fabric <NUM>. The optical device <NUM> and a set of servers (e.g., servers <NUM> through <NUM>) reside in close proximity (e.g., the same chassis, rack, row, or cluster). The optical device <NUM> and a set of computer servers (e.g., servers <NUM> through <NUM>) reside in close proximity (e.g., the same chassis, rack, row, or cluster). Each server in a rack is associated with at least one wavelength of a set of wavelengths. The optical devices <NUM>, <NUM> do not switch the optical signals received from the set of leaf switches <NUM>, <NUM>, or the optical signals received from the set of servers <NUM>-<NUM> and <NUM>-<NUM>. In other words, no switch is located between the set of servers <NUM>-<NUM>, <NUM>-<NUM> and the switch fabric <NUM>. In one implementation, the optical device <NUM>, <NUM> is not pre-provisioned and is not pre-configured before operation. The details of the optical devices <NUM>, <NUM> are discussed with regards to <FIG>.

The optical device <NUM>, <NUM> can receive optical signals from a set of leaf switches <NUM>, <NUM>. Such optical signals are destined to one or multiple server(s) <NUM>-<NUM>, <NUM>-<NUM> operatively coupled to the optical device <NUM>, <NUM>. The optical signals destined to each server <NUM>-<NUM>, <NUM>-<NUM> are associated with a wavelength from a set of wavelengths for that server. An optical demultiplexer included in the optical device <NUM>, <NUM> wavelength demultiplexes optical signals received at the optical device <NUM>, <NUM> based on the wavelengths associated with the optical signal. For each wavelength associated with each server <NUM>-<NUM>, <NUM>-<NUM>, the optical device <NUM>, 112send the optical signals for that wavelength to the server associated with that wavelength via optical fibers.

The optical device <NUM>, <NUM> can receive, via a set of optical fibers, optical signals at various wavelengths from a set of servers <NUM>-<NUM>, <NUM>-<NUM> that are operatively coupled to the optical device <NUM>, <NUM>. The optical signals carrying data packets are to be transmitted via a set of switches <NUM>, <NUM> in a switch fabric <NUM> and are destined to other endpoints in the data center or to another network. An optical multiplexer in the optical device <NUM>, <NUM> combines optical signals received from the set of servers for each switch <NUM>, <NUM> to produce combined optical signals. The optical device <NUM>, <NUM> forwards the combined optical signals to that switch. The switch <NUM>, <NUM> receives the optical signals carrying data packets, and routes the data packets through the switch fabric <NUM>, based on a destination address (e.g., a media access control (MAC) address, an internet protocol (IP) address, and/or the like) of each data packet.

The servers <NUM> through <NUM> are operatively coupled to the optical device <NUM> in close proximity (e.g., the same chassis, rack, row, or cluster) via a set of optical connections <NUM> (e.g., an optical cable, an optical fiber, an optical connector). The servers <NUM> through <NUM> are operatively coupled to the optical device <NUM> in close proximity (e.g., the same chassis, rack, row, or cluster) via a set of optical connections <NUM> (e.g., an optical cable, an optical fiber, an optical connector). The servers <NUM> through <NUM> and <NUM> through <NUM> can be general-purpose computational engines that can include, for example, processors, memory, and/or one or more network interface devices (e.g., a network interface card (NIC)). In some embodiments, the processors within a server <NUM> through <NUM> and <NUM> through <NUM> can be part of one or more cache coherent domains.

In some embodiments, for example, the servers <NUM>-<NUM> and <NUM>-<NUM> include computer servers, host devices, storage devices, gateways, workstations, and/or the like. In some embodiments, one or more of the servers <NUM>-<NUM> and <NUM>-<NUM> can have virtualized resources such that any server <NUM>-<NUM> and <NUM>-<NUM> (or a portion thereof) can be substituted for any other servers <NUM>-<NUM> and <NUM>-<NUM> (or a portion thereof) within the data center <NUM>.

Each server from the servers <NUM>-<NUM> and <NUM>-<NUM> includes a wavelength-tunable optical transceiver. Before a server <NUM>-<NUM> and <NUM>-<NUM> is connected to an optical device <NUM>, <NUM>, the wavelength-tunable optical transceiver can tune its wavelength to any wavelength from a set of wavelengths (e.g., a set of predefined wavelengths). Each optical signal for a given server is associated with a single wavelength from a set of wavelengths. Each server (e.g., server <NUM>) can send/receive multiple optical signals associated with multiple wavelengths from the set of wavelengths. The multiple wavelengths are within a passband range of an optical multiplexer (e.g., <NUM> in <FIG>) and an optical demultiplexer (e.g., <NUM> in <FIG>) in each server. Upon connecting the servers <NUM>-<NUM> and <NUM>-<NUM> to a port of an optical device <NUM>, <NUM> via an optical fiber <NUM>, each server <NUM>-<NUM> and <NUM>-<NUM> can tune its wavelength-tunable optical transceiver to a wavelength from the set of wavelengths. Such wavelength from the set of wavelengths is associated with that port of the optical device <NUM>, <NUM>. In other words, each port of each optical device <NUM>, <NUM> is associated with a wavelength from the set of wavelengths and each server (<NUM>-<NUM> and <NUM>-<NUM>) for that optical device <NUM>, <NUM> tunes to the wavelength for the port to which it is connected. In some embodiments, the set of wavelengths associated with a rack (or an optical device) can be the same set of wavelengths associated with a different rack (or a different optical device). Each wavelength within the set of wavelengths is, however, associated with each server within that rack. The details of the servers <NUM>-<NUM> and <NUM>-<NUM> are discussed with regards to <FIG>.

In use, a data packet (e.g., an optical signal) can be sent between servers <NUM>-<NUM> and <NUM>-<NUM> via the switch fabric <NUM>. For example, a data packet can be sent from the server <NUM> to the server <NUM> via the switch fabric <NUM>, or to another network <NUM> via the switch fabric <NUM>. Specifically, a data packet, originated at, for example, a process of the server <NUM>, can be an electronic signal. A wavelength tunable optical transceiver included in the server <NUM> converts the electronic signal to an optical signal. The server <NUM> then sends the optical signals at a wavelength (e.g., a first wavelength) to the optical device <NUM> via an optical fiber <NUM>. In addition, the server <NUM> can also convert an electronic signal containing a data packet to an optical signal and send to the optical device <NUM> at a different wavelength (e.g., a second wavelength) via an optical fiber <NUM>. An optical multiplexer (e.g., <NUM> in <FIG>) in the optical device <NUM> combines (or aggregates) optical signals received from the servers <NUM>-<NUM> and forwards the combined optical signals to the leaf switch <NUM> via an optical fiber <NUM>. In one implementation, the leaf switch <NUM> includes an optical transceiver, which converts the combined optical signals to electronic signals. The leaf switch <NUM> then routes the electronic signals carrying the data packets within the switch fabric <NUM>, based on the destination address of each data packet.

In this example, the destination of the data packets sent from the servers <NUM>-<NUM> is the server <NUM>. Based on the destination address of the server <NUM>, the leaf switch <NUM> routes the data packets within the switch fabric <NUM> to the leaf switch <NUM>. In one implementation, an optical transceiver included in the leaf switch <NUM> can convert the electronic signals carrying the data packets to optical signals. The optical signals destined to server <NUM> are associated with a wavelength (e.g., a third wavelength) from a set of wavelengths for the server <NUM>. Such third wavelength was associated with the server <NUM> upon being connected to the optical device <NUM>. The optical signals destined to the other server <NUM> are associated with a different wavelength (e.g., a fourth wavelength) from the set of wavelengths for the server <NUM>. The optical signals destined to the servers <NUM>-<NUM> are operatively coupled to the optical device <NUM> via an optical fiber <NUM>. An optical demultiplexer included in the optical device <NUM> wavelength demultiplexes optical signals received at the optical device <NUM> based on the wavelengths associated with the optical signals. The optical device <NUM> operatively couples to each server an optical signal at a wavelength from the set of wavelengths received from the switch fabric <NUM>. Specifically in this example, the optical demultiplexer in the optical device <NUM> demultiplexes optical signals destined to servers <NUM>-<NUM> based on the wavelengths associated with the servers <NUM>-<NUM>. The optical device <NUM> then forwards the optical signals with the third wavelength and the fourth wavelength received from the servers <NUM>-<NUM> and destined to server <NUM> to server <NUM>, respectively.

<FIG> is a block diagram illustrating an optical device, according to an embodiment. Similar to the optical devices <NUM> and <NUM> shown in <FIG>, the optical device <NUM> can be operatively coupled to a leaf switch (such as the leaf switch <NUM> or <NUM> in <FIG>) through a pair of optical fibers. The optical device <NUM> receives at input port <NUM> a set of optical signals, each associated with a wavelength from a set of wavelengths, from the leaf switch via one of the pair of optical fibers. The optical device <NUM> demultiplexes the set of optical signals with the set of optical wavelengths and routes each optical signal to a port <NUM> on the optical device <NUM>.

A server (such as the servers <NUM>-<NUM> and <NUM>-<NUM> in <FIG>) is operatively coupled to the port of the optical device <NUM> via an optical fiber. The server detects the wavelength of the optical signal received from the optical device <NUM> and transmits an optical signal back to the optical device <NUM> at a substantially similar wavelength via a second optical fiber. The wavelength of the optical signal received form the optical device <NUM> and the substantially similar wavelength of the optical signal sent back to the optical device <NUM> are within a passband range of an optical multiplexer (e.g., <NUM> in <FIG>) and an optical demultiplexer (e.g., <NUM> in <FIG>) in each server. The second optical fiber operatively couples the optical device <NUM> to the server. The optical device <NUM> multiplexes these optical signals from multiple servers, each at a wavelength (unique to the optical device <NUM> and the connected servers to it), via the optical multiplexer <NUM> and transmits the aggregated optical signal (composed of multiple wavelengths) to the leaf switch through the second optical fiber in the pair of optical fibers connecting the leaf switch and the optical device <NUM>.

As shown in <FIG>, the optical device <NUM> includes an optical demultiplexer <NUM>, an optical multiplexer <NUM>, an input port <NUM>, an output port <NUM>, a set of ports <NUM> and a set of ports <NUM>. The optical device can optionally include a processor <NUM> and a memory <NUM>. The processor <NUM>, the memory <NUM>, the optical demultiplexer <NUM>, the optical multiplexer <NUM>, the input port <NUM>, the output port <NUM>, the set of ports <NUM> and the set of ports <NUM> are operatively coupled with each other. Each module or component in the optical device 211can be operatively coupled to each remaining module or component. Each module or component in the optical device <NUM> can be any combination of hardware and/or software (stored and/or executing in hardware) capable of performing one or more specific functions associated with that module. In some embodiments, a module or a component in the optical device <NUM> can include, for example, a field-programmable gate array (FPGA), an application specific integrated circuit (ASIC), a digital signal processor (DSP), and/or the like.

The memory <NUM> can be, for example, a random-access memory (RAM) (e.g., a dynamic RAM, a static RAM), a flash memory, a removable memory, a hard drive, a database and/or so forth. In some implementations, the memory <NUM> can include (or store), for example, a database, process, application, virtual machine, and/or some other software modules (stored and/or executing in hardware) and/or hardware modules configured to execute a wavelength-agnostic optical transmitting and receiving process and/or one or more associated methods for the wavelength-agnostic optical transmitting and receiving. In such implementations, instructions for executing the wavelength-agnostic optical transmitting and receiving process and/or the associated methods can be stored within the memory <NUM> and executed at the processor <NUM>.

The processor <NUM> can be configured to, for example, write data into and read data from the memory <NUM>, and execute the instructions stored within the memory <NUM>. The processor <NUM> can also be configured to execute and/or control, for example, the operations of the optical demultiplexer <NUM>, the optical multiplexer <NUM>, and the set of ports <NUM>. In some implementations, based on the methods or processes stored within the memory <NUM>, the processor <NUM> can be configured to execute a wavelength-agnostic optical transmitting and receiving process, as described in <FIG>.

The optical demultiplexer <NUM> can be configured to demultiplex the optical signals based on their wavelengths. In other words, the optical demultiplexer <NUM> can split an optical signal into multiple optical signals, each of which is associated with a wavelength.

The optical multiplexer <NUM> is a hardware device that can, for example, multiplex and route different channels of light or optical signals into or out of, for example, a single mode fiber (SMF). The optical multiplexer <NUM> can be configured to multiplex (or combine or aggregate), for example via wavelength-division multiplexing (WDM) technology, multiple optical signals into a combined optical signal over a shared optical medium (e.g., an optical fiber).

The set of ports <NUM> and the set of ports <NUM> included in the optical device <NUM> operatively couple server <NUM>-server n (such as the servers <NUM>-<NUM> and <NUM>-<NUM> in <FIG>) with the optical device <NUM> via a set of optical connections (e.g., optical fibers). Each optical signal from a set of optical signals received from and/or sent by each server (e.g., server <NUM> - server n) is associated with a wavelength. Each server from server <NUM> - server n can operate at any wavelength from the set of wavelengths prior to transmitting an optical signal.

The input port <NUM> and the output port <NUM> included in the optical device <NUM> operatively couple a leaf switch (such as the leaf switches <NUM> or <NUM> in <FIG>) with the optical device <NUM> via a set of optical connections (e.g., optical fibers). The optical device <NUM> can receive optical signals with a set of wavelengths from the leaf switch through the input port <NUM>. The optical device <NUM> can send optical signals with a set of wavelengths to the leaf switch through the output port <NUM>.

In use, a set of servers are operatively coupled to the optical device <NUM> via the port <NUM> and <NUM>. The optical device <NUM> is operatively coupled to a switch fabric via the input port <NUM> and the output port <NUM>. For data packets received from the set of servers and destined for the leaf switch, the optical signals (carrying data packets) with a set of wavelengths are transmitted from the set of servers to the ports <NUM> of the optical device <NUM>. The optical multiplexer <NUM> combines the optical signals with the set of wavelengths into a combined optical signal and sends the combined optical signal to the leaf switch.

For data packets that are received from the switch fabric and destined to servers connected to the optical device <NUM>, the optical device <NUM> receives a combined optical signal carrying the data packets from the switch fabric via the input port <NUM>. The optical demultiplexer <NUM> splits the optical signal to multiple optical signals with a set of wavelengths. Each wavelength from the set of wavelengths is associated with a server to which at least one of the data packets is destined. The optical device <NUM> then sends each optical signal from the multiple optical signals to the server to which the data packets is destined.

The optical device <NUM> does not switch the optical signals received from the set of switches, or the optical signals received from the set of servers. In other words, no switch is located between the set of servers and the switch fabric. In one implementation, the optical device <NUM> does not implement oversubscription. Instead, the implementation of the optical device <NUM> allows dedicated bandwidth from a switch to multiple servers over a shared fiber medium. In another implementation, because a wavelength tunable optical receiver included in a server can select the wavelength associated with the optical receiver itself, the optical device <NUM> can forward the received optical signals without advance configuration or provisioning of the optical device <NUM>. In other words, the optical device <NUM> is not pre-provisioned and is not pre-configured before operation.

<FIG> is a block diagram illustrating a server, according to an embodiment. The server <NUM> includes a processor <NUM>, a memory <NUM>, a communications interface <NUM>, and a wavelength tunable optical transceiver <NUM>. The processor <NUM>, the memory <NUM>, the communications interface <NUM>, and the wavelength tunable optical transceiver <NUM> are operatively coupled with each other. Each module or component in the server <NUM> can be operatively coupled to each remaining module or component. Each module or component in the server <NUM> can be any combination of hardware and/or software (stored and/or executing in hardware) capable of performing one or more specific functions associated with that module. In some embodiments, a module or a component in the server <NUM> can include, for example, a field-programmable gate array (FPGA), an application specific integrated circuit (ASIC), a digital signal processor (DSP), and/or the like.

The communications interface <NUM> of the server <NUM> can include, for example, at least two ports (not shown in <FIG>) that can be used to implement one or more wired connections (e.g., optical fibers) between the server <NUM>. The wired connections can be, for example, fiber-optic signaling via fiber-optic cables, and/or the like. As such, the server <NUM> can be configured to receive data and/or send data through one or more ports of the communications interface <NUM>, which are connected with the communications interfaces of one or more optical devices of other networks.

The memory <NUM> can be, for example, a random-access memory (RAM) (e.g., a dynamic RAM, a static RAM), a flash memory, a removable memory, a hard drive, a database and/or so forth. In some implementations, the memory <NUM> can include, for example, a database, process, application, virtual machine, and/or some other software modules (stored and/or executing in hardware) and/or hardware modules configured to execute a wavelength-agnostic optical transmitting and receiving process and/or one or more associated methods for the wavelength-agnostic optical transmitting and receiving. In such embodiments, instructions for executing the wavelength-agnostic optical transmitting and receiving process and/or the associated methods can be stored within the memory <NUM> and executed at the processor <NUM>.

The processor <NUM> can be configured to, for example, write data into and read data from the memory <NUM>, and execute the instructions stored within the memory <NUM>. The processor <NUM> can also be configured to execute and/or control, for example, the operations of the wavelength tunable optical transceiver <NUM>. In some implementations, based on the methods or processes stored within the memory <NUM>, the processor <NUM> can be configured to facilitate executing a wavelength-agnostic optical transmitting and receiving process(es), as described in <FIG>.

The wavelength tunable optical transceiver <NUM> can be any high data rate optical transceiver such as, for example, an on-off-keyed (OOK) transmitter, an optical M-ary quadrature amplitude modulation (M-QAM) transmitter, an optical M-ary pulse amplitude modulation (mPAM) transmitter, a polarization multiplexed (PM) M-QAM transmitter, and/or the like. The wavelength tunable optical transceiver <NUM> can be configured to convert the electrical signals originated by the server <NUM> to optical signals. The wavelength tunable optical transceiver <NUM> can set (or select) the wavelength of such optical signals. In other words, the server <NUM> can transmit optical signals at any wavelength that is set by the wavelength tunable optical transceiver <NUM>. The wavelength tunable optical transceiver <NUM> can also be configured to convert the optical signals (carrying data packets) received from an optical device (such as the optical device <NUM>, <NUM> in <FIG> and optical device <NUM> in <FIG>) to electrical signals. The processor <NUM> of the server <NUM> can process such electrical signals to perform specific operations (e.g., write the data packets into memory.

In one implementation, the wavelength tunable optical transceiver <NUM> is included in a pluggable optical module that plugs into each server. The wavelength tunable optical transceiver <NUM> can autonomously detect and tune to the appropriate wavelength that matches the port of the optical device to which it is connected. In one implementation, the optical device can assign a wavelength to each server <NUM> being connected to a port of the optical device. In another implementation, the processor <NUM> of the server <NUM> can look up a table stored in a memory <NUM> of the server <NUM> to retrieve a wavelength associated with a port of the optical device. In other words, when a server <NUM> is connected to a port of the optical device, the server <NUM> can receive or determine an identifier of the port of the optical device. The server <NUM> can use the identifier of the port of the optical device to retrieve the wavelength associated with that port stored in a table in the memory <NUM> of the server <NUM>. The server <NUM> can configure and tune the transmission wavelength based on the retrieved wavelength.

<FIG> is a flow chart illustrating a method of communications from switches to wavelength-agnostic servers in a data center network, according to an embodiment. This method can be implemented at a processor and/or a memory (e.g., processor <NUM> or memory <NUM> as discussed in <FIG>) of an optical device. The method includes receiving optical signals from a switch of a set of switches via an optical fiber (or a set of optical fibers) at <NUM>. As discussed above, the optical device receives optical signals that are destined to one or multiple server(s) operatively coupled to the optical device. The optical signals destined to each server are associated with at least one wavelength from a rack specified set of wavelengths for that server. An optical demultiplexer included in the optical device demultiplexes optical signals received at the optical device based on the wavelengths associated with the optical signals at <NUM>. For each wavelength, the optical device sends the optical signals for that wavelength to the server associated with that wavelength via optical fibers at <NUM>.

<FIG> is a flow chart illustrating a method of communications from wavelength-agnostic servers to switches in a data center network, according to an embodiment. This method can be implemented at a processor and/or a memory (e.g., processor <NUM> or memory <NUM> as discussed in <FIG>) of an optical device. The method includes receiving optical signals at various wavelengths from a set of servers on a given rack via a set of optical fibers. The set of servers are operatively coupled to the optical device. The optical signals carrying data packets are to be transmitted via a set of switches in a switch fabric and are destined to other endpoints in the data center or to another network. An optical multiplexer (e.g., <NUM> in <FIG>) in the optical device multiplexes optical signals received from the set of servers for a switch to produce aggregated optical signals at <NUM>. At <NUM>, the optical device forwards the aggregated optical signals to that switch. The switch then routes the optical signals carrying the data packets through the switch fabric, based on a destination address (e.g., a media access control (MAC) address, an internet protocol (IP) address, and/or the like) of each data packet.

Some embodiments described herein relate to a computer program product such as a computer storage product with a non-transitory computer-readable medium (also can be referred to as a non-transitory processor-readable medium) having instructions or computer code thereon for performing various computer-implemented operations. The computer-readable medium (or processor-readable medium) may be non-transitory in the sense that it does not include transitory propagating signals per se (e.g., a propagating electromagnetic wave carrying information on a transmission medium such as space or a cable) or transitory in the sense that it does include such signals or other transmission media. The media and computer code (also can be referred to as code) may be those designed and constructed for the specific purpose or purposes. Examples of non-transitory computer-readable media include, but are not limited to: magnetic storage media such as hard disks, floppy disks, and magnetic tape; optical storage media such as Compact Disc/Digital Video Discs (CD/DVDs), Compact Disc-Read Only Memories (CD-ROMs), and holographic devices; magneto-optical storage media such as optical disks; carrier wave signal processing modules; and hardware devices that are specially configured to store and execute program code, such as Application-Specific Integrated Circuits (ASICs), Programmable Logic Devices (PLDs), Read-Only Memory (ROM) and Random-Access Memory (RAM) devices. Other embodiments described herein relate to a computer program product, which can include, for example, the instructions and/or computer code discussed herein.

Examples of computer code include, but are not limited to, micro-code or microinstructions, machine instructions, such as produced by a compiler, code used to produce a web service, and files containing higher-level instructions that are executed by a computer using an interpreter. For example, embodiments may be implemented using imperative programming languages (e.g., C, Fortran, etc.), functional programming languages (Haskell, Erlang, etc.), logical programming languages (e.g., Prolog), object-oriented programming languages (e.g., Java, C++, etc.) or other suitable programming languages and/or development tools. Additional examples of computer code include, but are not limited to, control signals, encrypted code, and compressed code.

Therefore, from one perspective, there has been described a system that includes a set of servers, a set of switches within a switch fabric, and an optical device. The optical device is operatively coupled to the set of servers via a first set of optical fibers. Each server from the set of servers is associated with at least one wavelength from a set of wavelengths upon connection to the optical device. The optical device is operatively coupled to each switch from a set of switches via an optical fiber from a second set of optical fibers. The optical device, when operative, wavelength demultiplexes optical signals received from each switch from the set of switches, and sends, for each wavelength from the set of wavelengths, optical signals for that wavelength to the server from the set of servers.

Claim 1:
An apparatus, comprising:
a first wavelength-tunable optical transceiver (<NUM>); and
a first processor (<NUM>) for a server (<NUM>), the first processor (<NUM>) operatively coupled to the first wavelength-tunable optical transceiver (<NUM>), the first processor (<NUM>) configured to:
determine an identifier of a first port from a plurality of ports (<NUM>, <NUM>) of an optical device (<NUM>) when being connected to the optical device (<NUM>) via the first port from the plurality of ports (<NUM>, <NUM>),
identify, based on the identifier of the first port, a first wavelength from a plurality of wavelengths and associated with the first port,
send a signal to the first wavelength-tunable optical transceiver (<NUM>) such that the first wavelength-tunable optical transceiver (<NUM>) operates at the first wavelength from the plurality of wavelengths, and
send an electrical signal to the first wavelength-tunable optical transceiver (<NUM>) such that the first wavelength-tunable optical transceiver (<NUM>) <NUM>) converts the electrical signal to a first optical signal at the first wavelength from the plurality of wavelengths and <NUM>) sends the first optical signal to a switch fabric (<NUM>) operatively coupled to the first processor (<NUM>), wherein the optical device (<NUM>), during operation of the first processor (<NUM>), is configured to not switch the first optical signal;
wherein the apparatus further comprises:
a second processor operatively coupled to the first processor (<NUM>), the second processor configured to identify a second wavelength associated with a second port from the plurality of ports (<NUM>, <NUM>) of the optical device (<NUM>); and
a second wavelength-tunable optical transceiver operatively coupled to the second processor and configured to send a second optical signal at a second wavelength to the optical device (<NUM>)