# Patent

## Title
Providing access to client overhead while transparently transmitting the client signal

## Abstract

A method includes receiving client data; extracting overhead data from the client data; mapping the client data into one or more frames, where each of the one or more frames has a frame payload section and a frame overhead section, where the client data is mapped into the frame payload section of the one or more frames; inserting the overhead data into the frame overhead section of the one or more frames; transporting the one or more frames across a network; extracting the overhead data from the frame overhead section of the one or more frames; recovering the client data from the one or more frames; inserting the extracted overhead data into the recovered client data to create modified client data; and outputting the modified client data.

## Background
BACKGROUND
ITU-T defines an Optical Transport Network (OTN) as a set of optical elements that are connected by optical links and that are capable of providing transporting, multiplexing, switching, management, and supervision functionality and survivability of optical channels carrying client signals.
OTN uses digital wrapper technology that provides a method for encapsulating data in a frame, or optical data unit. Generally, digital wrapping involves grouping a number of existing frames together into one entity that can be more efficiently managed with a small allocation of overhead and forward error correction (FEC) bytes. There are three levels of hierarchy for the encapsulation: the optical channel payload unit (OPUk) for encapsulation of client data; the optical channel data unit (ODUk) for encapsulating the OPUk data; and the optical channel transport unit (OTUk) for encapsulating the ODUk data.
The OTN standard provides a method for adding management and intelligence to optical carriers, specifically wavelengths in DWDM systems. This methodology involves wrapping client information of any protocol in a frame carrying information about both the client and the optical carrier. The information can then be used to manage the optical signals.
SUMMARY
According to one implementation, a network may include an ingress node, an intermediate node, and an egress node. The ingress node may receive client data, were the client data may include a client overhead section and a client payload section; copy data, as virtual overhead data, from the client overhead section of the client data; map the client data into a frame, where the frame may include a frame overhead section and a frame payload section, where the frame payload section may include the client data; store the virtual overhead data in the frame overhead section of the frame; and output the frame on the network. The intermediate node may receive the frame outputted by the ingress node; extract the virtual overhead data from the frame overhead section of the frame; process the virtual overhead data to create processed virtual overhead data; insert the processed virtual overhead data into the frame overhead section of the frame; and output the frame on the network, where the intermediate node may not recover the client data from the frame. The egress node may receive the frame outputted by the intermediate node; extract the processed virtual overhead data from the frame; recover the client overhead data, as recovered client overhead data, from the processed virtual overhead data; recover the client data from the frame; insert the recovered client overhead data into the client overhead section of the client data; and output the client data with the recovered client overhead data.
According to another implementation, a method, performed in a network including at least a first node, a second node, and a third node, is presented. The method may include receiving, by the first node, client data that includes a client overhead section and a payload section; copying data, as virtual overhead data, from the client overhead section; encapsulating the client data in a frame that includes a frame overhead section and a frame payload section, the client data being encapsulated in the frame payload section; storing the virtual overhead data in the frame overhead section; transmitting the frame to the second node; processing, by the second node, the virtual overhead data from the client overhead section of the frame without recovering the client data from the frame; replacing the virtual overhead data in the frame overhead section with the processed virtual overhead data; transmitting the frame, with the processed virtual overhead data, to the third node; extracting the processed virtual overhead data from the frame; recovering the client overhead data from the processed virtual overhead data; recovering the client data from the frame; replacing the data in the client overhead section of the client data with the recovered client overhead data; and outputting the client data with the recovered client overhead data.
According to a further implementation, a method, for transferring data across a network that includes an ingress node, an egress node, and a group of intermediate nodes, is provided. The method may include receiving, at the ingress node, client data; copying, at the ingress node, overhead data from the client data; mapping, at the ingress node, the client data into one or more frames, where each of the one or more frames may have a frame payload section and a frame overhead section, where the client data may be mapped into the frame payload section of the one or more frames; inserting the overhead data into the frame overhead section of the one or more frames; transporting the one or more frames across the network to the egress node via one or more of the intermediate nodes, where one of the intermediate nodes may process the overhead data in the frame overhead section of the one or more frames, and where none of the intermediate nodes may recover the client data from any of the one or more frames; extracting, at the egress node, the overhead data from the frame overhead section of the one or more frames; recovering, at the egress node, the client data from the one or more frames; inserting the extracted overhead data into the recovered client data to create modified client data; and outputting the modified client data.
According to another implementation, a network may include an ingress node, an intermediate node, and a further node. The ingress node may receive client data, map the client data into a frame, the frame including a frame overhead section and a frame payload section, the frame payload section including the client data, and output the frame on the network. The intermediate node may receive the frame outputted by the ingress node, generate virtual overhead data, insert the virtual overhead data into the frame overhead section of the frame, and output the frame on the network, where the intermediate node does not recover the client data from the frame. The further node may receive the frame outputted by the intermediate node, extract the virtual overhead data from the frame, and perform, based on the virtual overhead data, an operation relating to monitoring at least a portion of a path used to transport the client data through the network.



BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more implementations described herein and, together with the description, explain these implementations. In the drawings:
FIG. 1 is a diagram of an exemplary network in which systems and/or methods described herein may be implemented;
FIG. 2 is a diagram of exemplary components of a node of FIG. 1;
FIG. 3 is a diagram of exemplary components of a line module of FIG. 2;
FIG. 4 is a diagram of exemplary components of a switch plane of the switch fabric of FIG. 2;
FIG. 5 is a diagram of exemplary data of a switching transport path (XTP) frame;
FIG. 6 is a diagram of exemplary data of a switching transport format (XTF) frame;
FIG. 7 is a flowchart of an exemplary process for performing dual asynchronous mapping of client data of a client signal at an ingress node;
FIG. 8 is a diagram of exemplary functional components for extracting client overhead data from client data of a client signal, asynchronously mapping the client data into multiple XTP frames, and inserting virtual overhead (VOH) data into the overhead section of the XTP frames;
FIG. 9 is a diagram of exemplary functional components for asynchronously mapping an XTP frame into an XTF frame;
FIG. 10 is a flowchart of an exemplary process for performing asynchronous mapping of an XTP frame at an intermediate node;
FIG. 11 is a diagram of exemplary functional components for recovering an XTP frame from an XTF frame;
FIG. 12 is a flowchart of an exemplary process for recovering client data of a client signal at an egress node;
FIG. 13 is a diagram of exemplary functional components for recovering client data of a client signal from an XTP frame, recovering the client overhead data from the VOH data, and inserting the recovered client overhead data into the client data;
FIG. 14 is a diagram of an example of transporting client data of a client signal through an optical network;
FIG. 15 is a diagram of another example of transporting client data of a client signal through an optical network; and
FIG. 16 is a diagram of a further example of transporting client data of a client signal through an optical network.



DETAILED DESCRIPTION
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
Implementations, described herein, may provide a uniform transport mechanism for transferring a client signal through an optical network. Generally, at an ingress node within the optical network, client data of a client signal, of an arbitrary rate, may be asynchronously mapped into one or more first frames, called switching transport path (XTP) frames. In one implementation, the XTP frame is a structure of a particular, constant length, and a fixed rate, which is independent of the rate of the client signal.
Within a node, the XTP frame may also be asynchronously mapped into a second frame, called a switching transport format (XTF) frame. In one implementation, the XTF frame is a structure of a particular, constant length, and a fixed nominal rate, which is independent of the rate of the client signal and the rate of the XTP. The XTF frame may be optimized to carry one XTP frame or a group of XTP frames over an optical link of a particular signaling rate, such as 40 Gbps. The XTF frame may include error correction coding and/or other overhead that enables management, fault detection, and performance monitoring for an optical link.
At an egress node within the optical network, the XTP frames containing client data of the client signal may be concatenated. The client data may then be recovered from the XTP frames.
Implementations, described herein, may facilitate the transporting of client data of a client signal though an optical network in a manner in which the client data is transparent to the intermediate nodes in the optical network, but the client overhead data is available for processing by the intermediate nodes. For example, the ingress node may copy the client overhead data and insert the client overhead data into the overhead section of the XTP frame(s), while the original client data (including the original client overhead data) may be mapped into the payload section of the XTP frame(s). Thus, the intermediate nodes in the optical network may access and process the client overhead data even though the client data is transparently transported within the payload section of the XTP frame(s). The egress node may recover the client data from the XTP frame(s) and either discard the client overhead data from the XTP overhead section or replace the client overhead data from the client data with the client overhead data from the XTP overhead section.
Transparently transporting the client data within XTP frame(s) minimizes the complexity in the network. Intermediate nodes in the network may have access to the client overhead data of the client data, but need not recover the client data being transported in the XTP frames. As a result, the hardware and software logic at the intermediate nodes can be greatly simplified. Further, this may permit the network to be upgraded to support any arbitrary new client data type/frequency without requiring any changes to occur at the intermediate nodes.
These implementations may permit client data of any client signal, of any rate, to be asynchronously mapped into one or more frames (i.e., XTP frames) that are uniform throughout the nodes and the network. At different points on the links, internal or external to the nodes, one or more of these frames (i.e., XTP frames) may be asynchronously mapped to the link. For convenience (e.g., efficiency of the physical link), more than one of these frames (i.e., XTP frames) can be carried. Aside from performing mapping and recovery operations, the nodes in the network do not need to do anything different for client data of client signals of different types/rates. Rather, the nodes simply operate upon a uniform frame (i.e., the XTP frame).
The uniformity of the frames transmitted in the network may simplify the hardware and/or software in the nodes. It may also permit any empty slot on any wavelength to be filled with any part of a client signal (wrapped in an XTP frame) and, thus, avoids fragmentation.
While the description to follow will describe a technique for mapping client overhead data into the overhead section of a frame so that the client overhead data is available for processing by nodes of the network while transparently transporting client data of the client signal, there may be other reasons and/or other techniques for making the client overhead data available to nodes in the network. For example, rather than performing a dual mapping (e.g., mapping the client data into an XTP and mapping the XTP into an XTF), another form of mapping may be used. Also, rather than mapping the client overhead data into the overhead section of a frame, the client overhead data may be mapped elsewhere while still making that client overhead data available to nodes in the network.
Exemplary Network
FIG. 1 is a diagram of an exemplary network 100 in which systems and/or methods described herein may be implemented. For example, network 100 may include clients 110-1 and 110-2 (referred to collectively as “clients 110,” and generally as “client 110”) and nodes 120-1, . . . , 120-8 (referred to collectively as “nodes 120,” and generally as “node 120”). While FIG. 1 shows a particular number and arrangement of devices, network 100 may include additional, fewer, different, or differently arranged devices than those illustrated in FIG. 1. Also, the connections between devices may include direct or indirect connections.
Client 110 may include any type of network device, such as a router, a switch, or a central office, that may transmit data traffic. In one implementation, client 110 may transmit a client signal (e.g., a synchronous optical network (SONET) signal, a synchronous digital hierarchy (SDH) signal, an Ethernet signal, or another type of signal) to node 120. The client signal may conform to any payload type, such as Gigabit Ethernet (GbE), 2xGbE, Fibre Channel (FC), 1GFC, 10 GbE local area network (LAN) physical layer (Phy), 10 GbE wide area network (WAN) Phy, Synchronous Transport Mode 16 (STM-16), STM-64, Optical Carrier level 48 (OC-48), or OC-192.
Node 120 may include a dense wavelength division multiplexing (DWDM) device. Node 120 may perform optical multiplexing operations (e.g., receive individual client signals on individual optical links and generate a multi-wavelength signal that may be transmitted on a single optical link), optical amplification operations (e.g., amplify the multi-wavelength signal), optical add-drop multiplexing operations (e.g., remove one or more client signals from the multi-wavelength signal), and/or optical demultiplexing operations (e.g., receive the multi-wavelength signal and separate the multi-wavelength signal back into individual client signals that may be transmitted on individual optical links). To perform these operations, node 120 may contain various components, such as an optical multiplexer (to perform the optical multiplexing operations), an optical amplifier (to perform the optical amplification operations), an optical add-drop multiplexer (e.g., a remotely configurable add/drop multiplexer (ROADM) to perform the optical add-drop multiplexing operations), and/or an optical demultiplexer (to perform the optical demultiplexing operations).
Nodes 120 may be connected via optical links. Data traffic may flow from node-to-node over a series of channels/sub-channels forming a path. Any two nodes 120 may connect via multiple optical links. For bidirectional communication, for example, a first optical link may be used for data traffic transmitted in one direction, a second optical link may be used for data traffic transmitted in the opposite direction, and a third optical link may be used in case of a failure on the first link or the second link. A “working path” may refer to a set of channels/sub-channels associated with one or more first optical links (or second optical links) between two nodes 120. A “protection path” may refer to a set of channels/sub-channels associated with one or more third optical links between two nodes 120. In practice, there may be N working paths and M protection paths between two nodes 120, where M≦N.
A node 120 that receives a client signal from a client 110 will be referred to as an “ingress node.” A node 120 that transmits a client signal to a client 110 will be referred to as an “egress node.” Nodes 120 on the path between the ingress node and the egress node will be referred to as “intermediate nodes.” Thus, if client 110-1 transmits a client signal to client 110-2 on a path that includes nodes 120-1, 120-3, 120-4, and 120-8, node 120-1 is the ingress node, node 120-8 is the egress node, and nodes 120-3 and 120-4 are the intermediate nodes. A node 120 may act as an ingress node with regard to one client signal and an intermediate or egress node with regard to another client signal. Thus, nodes 120 may form an arbitrary mesh network.
Exemplary Node Components
FIG. 2 is a diagram of exemplary components of node 120. As shown in FIG. 2, node 120 may include line modules 210-1, . . . , 210-Y (referred to collectively as “line modules 210,” and generally as “line module 210”) (where Y≧1) and tributary modules 220-1, . . . , 220-YY (referred to collectively as “tributary modules 220,” and generally as “tributary module 220”) (where YY≦1) connected to a switch fabric 230. As shown in FIG. 2, switch fabric 230 may include switching planes 232-1, 232-2, . . . 232-Z (referred to collectively as “switching planes 232,” and generally as “switching plane 232”) (where Z≧1). While FIG. 2 shows a particular number and arrangement of components, node 120 may include additional, fewer, different, or differently arranged components than those illustrated in FIG. 2. Also, it may be possible for one of the components of node 120 to perform a function that is described as being performed by another one of the components.
Line module 210 may include hardware components, or a combination of hardware and software components, that may provide network interface operations. Line module 210 may receive a multi-wavelength optical signal and/or transmit a multi-wavelength optical signal. A multi-wavelength optical signal may include a number of optical signals of different optical wavelengths. In one implementation, line module 210 may perform retiming, reshaping, regeneration, time division multiplexing, and/or recoding services for each optical wavelength.
Tributary module 220 may include hardware components, or a combination of hardware and software components, that may support flexible adding-dropping of multiple services, such as SONET/SDH services, GbE services, optical transport network (OTN) services, and FC services. Tributary module 220 may perform functions, such as client data encapsulation and decapsulation. In one implementation, tributary module 220, associated with an ingress node, may receive a stream of data, which may include client data, and asynchronously map the client data into one or more XTP frames. A tributary module 220, associated with an egress node, may receive an XTP frame (or a collection of XTP frames) and recover the client data from the XTP frame (or collection of XTP frames).
Switch fabric 230 may include hardware components, or a combination of hardware and software components, that may provide switching functions to transfer data between line modules 210 and/or tributary modules 220. In one implementation, switch fabric 230 may provide fully non-blocking transfer of data. Switch fabric 230 may be configured to switch with the granularity of a single XTP frame. Each switching plane 232 may be programmed to transfer data from a particular input to a particular output.
As shown in FIG. 2, each of line modules 210 and tributary modules 220 may connect to each of switching planes 232. The connections between line modules 210/tributary modules 220 and switching planes 232 may be bidirectional. While a single connection is shown between a particular line module 210/tributary module 220 and a particular switching plane 232, the connection may include a pair of unidirectional connections (i.e., one in each direction). A connection from a line module 210/tributary module 220 to a switching plane 232 will be referred to herein as an “ingress switch link,” and a connection from a switching plane 232 to a line module 210/tributary module 220 will be referred to as an “egress switch link.”
FIG. 3 is a diagram of exemplary components of a line module 210 or a tributary module 220. As shown in FIG. 3, line module 210/tributary module 220 may include a receiver (RX) photonic integrated circuit (PIC) or client interface (I/F) 310, a transmitter (TX) PIC or client I/F 320, fabric managers (FMs) 330-1, 330-2, . . . , 330-X (referred to collectively as “FMs 330,” and generally as “FM 330”) (where X≧1), and a virtualization controller 340. While FIG. 3 shows a particular number and arrangement of components, line module 210/tributary module 220 may include additional, fewer, different, or differently arranged components than those illustrated in FIG. 3. Also, it may be possible for one of the components of line module 210/tributary module 220 to perform a function that is described as being performed by another one of the components.
A line model 210 may include a receiver PIC 310 and a transmitter PIC 320. A tributary module 220, on the other hand, may include client I/F 310 and client I/F 320. Receiver PIC 310 may include hardware, or a combination of hardware and software, that may receive a multi-wavelength optical signal, separate the multi-wavelength signal into signals of individual wavelengths, and convert the signals to digital form. In one implementation, receiver PIC 310 may include components, such as a photodetector, a demultiplexer, and/or an optical-to-electrical converter. Transmitter PIC 320 may include hardware, or a combination of hardware and software, that may convert signals from digital form, combine the signals of the individual wavelengths into a multi-wavelength signal, and transmit the multi-wavelength signal. In one implementation, transmitter PIC 320 may include components, such as an electrical-to-optical converter, a multiplexer, and/or a laser.
Client I/F 310 may include hardware, or a combination of hardware and software, that may receive a client optical signal from a client 110. In one implementation, client I/F 310 may include components, such as a photodetector, a demultiplexer, and/or an optical-to-electrical converter. Client I/F 320 may include hardware, or a combination of hardware and software, that may transmit a client optical signal to a client 110. In one implementation, client I/F 320 may include components, such as an electrical-to-optical converter, a multiplexer, and/or a laser.
As shown in FIG. 3, receiver PIC or client I/F 310 and transmitter PIC or client I/F 320 may connect to each of FMs 330 and/or virtualization controller 340. Receiver PIC or client I/F 310 may transfer data to FMs 330. Transmitter PIC or client I/F 320 may receive data from FMs 330.
FM 330 may include hardware, or a combination of hardware and software, that may process digital signals for transmission to switching plane 232 or transmitter PIC or client I/F 320. In one implementation, FM 330, associated with an ingress node, may receive a stream of data associated with a client signal, encapsulate the data in an XTP frame, and transmit the XTP frame to one or more switching planes 232. In one implementation, FM 330 may asynchronously map the XTP frame into another frame that is used to transmit the XTP frame through switch fabric 220 and recover the XTP frame from this other frame when received from switch fabric 220. FM 330 may also asynchronously map an XTP frame into an XTF frame for transmission, on an optical link, to another node, and recover an XTP frame from an XTF frame received, on an optical link, from another node.
FM 330 may divide a stream of data (representing an XTP frame) into chunks of continuous bytes, called “timeslots,” associated with particular channels (e.g., a channel may refer to a communication between a particular source and a particular destination). In one implementation, each timeslot may include the same quantity of bytes (e.g., each timeslot may contain an equal amount of bandwidth). In another implementation, each timeslot may not include the same quantity of bytes (e.g., at least one timeslot may contain a different amount of bandwidth). The stream of data received by FM 330 may, in one implementation, already be segmented into timeslots. In this situation, when dividing the stream of data into timeslots, FM 330 may identify the timeslots based on, for examples, identifiers in the stream or the data's temporal position within the stream.
FM 330 may divide the data in each timeslot into a number of equal-bandwidth blocks of data. In one implementation, the quantity of blocks may equal the quantity of switches available in switching planes 232. Assume, for example, that there are sixteen switches available in switching planes 232. In this case, FM 330 may divide the data in a timeslot into sixteen equal blocks. FM 330 may send each of the blocks to a different one of the switches. In one implementation, FM 330 may sequentially send each of the blocks in a round robin fashion. In another implementation, FM 330 may send out each of the blocks in another systematic fashion.
Virtualization controller 340 may include hardware, or a combination of hardware and software, that may operate upon the overhead data of client data. For example, FM 330, of the ingress node, may extract overhead data from the client data and send the client overhead data to virtualization controller 340. Virtualization controller 340, of the ingress node, may receive the client overhead data from FM 330 and create virtual overhead (VOH) data. In one implementation, virtualization controller 340, of the ingress node, may compress the client overhead data in order to reduce the level of transmission bandwidth needed to carry the client overhead data, and in order to minimize cost, the amount of circuitry required, and power dissipation. Virtualization controller 340, of the ingress node, may send the VOH data to FM 330 for inclusion in one or more XTP frames. FM 330, of the ingress node, may receive the VOH data from virtualization controller 340 and store the VOH data as overhead data in one or more XTP frames.
FM 330, of an intermediate node, may extract the VOH data from one or more XTP frames and send the VOH data to virtualization controller 340. Virtualization controller 340, of the intermediate node, may receive the VOH data from FM 330 and manipulate the VOH data. In one implementation, virtualization controller 340, of the intermediate node, may process the VOH data in the same manner that it would process client overhead data if the client data was available to the intermediate node, such as performing OTN services (e.g., monitoring all or part of the path used to transport the client data, generating overhead (e.g., VOH) data, etc.). Virtualization controller 340, of the intermediate node, may send the VOH data to FM 330 for inclusion in one or more XTP frames. FM 330, of the intermediate node, may receive VOH data from virtualization controller 340 and store the VOH data as overhead data in one or more XTP frames. In an alternative implementation, virtualization controller 340 may generate VOH data for inclusion in one or more XTP frames, rather than receiving and processing VOH data from FM 330.
FM 330, of an egress node, may extract the VOH data from one or more XTP frames and send the VOH data to virtualization controller 340. Virtualization controller 340, of the egress node, may receive the VOH data from FM 330 and recover the client overhead data. In one implementation, virtualization controller 340, of the egress node, may decompress the VOH data to recover the client overhead data. Virtualization controller 340, of the egress node, may send the recovered client overhead data to FM 330 for inclusion in the overhead section of the client data. FM 330, of the egress node, may receive client overhead data from virtualization controller 340 and, in one implementation, may replace the original client overhead data of the client data with the client overhead data from virtualization controller 340.
FIG. 4 is a diagram of exemplary components of a switching plane 232. As shown in FIG. 4, switching plane 232 may include switches 410-1, . . . , 410-W (referred to collectively as “switches 410,” and generally as “switch 410”) (where W≧1). While FIG. 4 shows a particular number and arrangement of components, switching plane 232 may include additional, fewer, different, or differently arranged components than those illustrated in FIG. 4. Also, it may be possible for one of the components of switching plane 232 to perform a function that is described as being performed by another one of the components.
Switch 410 may include hardware, or a combination of hardware and software, that may transfer a block of data received in a timeslot on an ingress switch link to a timeslot on an egress switch link, where the timeslot on the ingress switch link may differ from the timeslot on the egress switch link. Switch 410 may include a set of ingress switch links via which data is received, and a set of egress switch links via which data is transmitted. Each ingress switch link and egress switch link may connect to a particular FM 330. Switch 410 may be programmed with mapping information that instructs switch 410 on which egress switch link and in what timeslot to send a block of data received within a particular timeslot on a particular ingress switch link.
XTP and XTF Frame Formats
FIG. 5 is a diagram of exemplary data of an XTP frame. As shown in FIG. 5, an XTP frame may include an overhead (OH) section and a payload section. In another implementation, the XTP frame may include additional or different sections than those shown in FIG. 5. For example, the XTP frame may include a forward error correction (FEC) section that may store data to aid in detecting and correcting errors.
The data of the XTP frame may be arranged as bytes of data in a number of rows and columns. When the XTP frame is transmitted, the data bytes in the first row may be transmitted, followed by the data bytes in the second row, and so forth. Thus, transmission of the XTP frame may include the transmission of overhead data followed by payload data (from the first row), the transmission of overhead data followed by payload data (from the second row), etc.
The overhead section may store data that aids in creation, transmission, performance management, fault management, and/or recovery of data of the XTP frame. In one implementation, the overhead section may store data similar to the data described in ITU-T Recommendation G.709. The payload section may store data from the client signal.
As shown in FIG. 5, the overhead section may store VOH data. As explained above, VOH data may correspond to client overhead data from the client data. As described elsewhere, the client overhead data may be copied from the client data, processed, and stored as VOH data in the overhead section of the XTP frame. The VOH data may be stored at a particular location within the overhead section of the XTP frame to facilitate the identification of the VOH data within the XTP frame.
The XTP frame may use a combination of fixed and variable stuff locations to adapt the arbitrary client signal rate to the payload section of the XTP frame at a fixed rate, where the fixed rate of the XTP frame is independent of the rate of the client signal. In one implementation, the rate of the XTP frame is approximately 1.3324 Gbps. In another implementation, the rate of the XTP frame may be less or greater than 1.3324 Gbps.
The XTP frame may use a combination of justification control (JC) data and a negative justification opportunity (NJO) in the overhead section, and fixed and variable stuff areas in the payload section of the XTP frame to compensate for the arbitrary rate of the client signal. Fixed stuff locations are locations (that may be distributed throughout the payload) that do not carry any data in the payload section. The fixed stuff locations may vary for different client signal rates. The variable stuff location may refer to a location (shown as a positive justification opportunity (PJO) in FIG. 5) in the payload section that may or may not carry data in the XTP frame. A decision may be made, once per XTP frame, whether to store data in the variable stuff location or to “stuff” the variable stuff location (i.e., store null data).
FIG. 6 is a diagram of exemplary data of an XTF frame. As shown in FIG. 6, an XTF frame may include an overhead (OH) section and a payload section. In another implementation, the XTF frame may include additional or different sections than those shown in FIG. 6. For example, the XTF frame may include a forward error correction (FEC) section that may store data to aid in detecting and correcting errors.
The data of the XTF frame may be arranged as bytes of data in a number of rows and columns. When the XTF frame is transmitted, the data bytes in the first row may be transmitted, followed by the data bytes in the second row, and so forth. Thus, transmission of the XTF frame may include the transmission of overhead data followed by payload data (from the first row), the transmission of overhead data followed by payload data (from the second row), etc.
The overhead section may store data that aids in creation, transmission, performance management, fault management, and/or recovery of data of the XTF frame. In one implementation, the overhead section may store data similar to the data described in ITU-T Recommendation G.709. The payload section may store data of an XTP frame. In one implementation, the payload section may store data from a single XTP frame. In another implementation, the payload section may store data from multiple XTP frames.
Since the rate of the XTP frame is fixed and the rate of the XTF frame is also fixed (though the rates are independent of each other and derived from independent clock sources), the XTF frame may use a variable stuff location, but need not use fixed stuff locations. For example, the XTF frame may use a pointer (e.g., offset), shown in FIG. 6 as H1 and H2 data, that identifies the location where the XTP data starts in the payload section. The pointer may permit the overhead section of the XTP to be easily located at, for example, intermediate nodes in the network, and may also permit the XTP frames to be deskewed at the egress node before the client data is extracted. The XTF frame may use a negative justification opportunity (NJO) and a positive justification opportunity (PJO) as a variable stuff location. The variable stuff location may refer to part of the payload section that may or may not carry data in the XTF frame. A decision may be made, once per XTF frame, whether to store data in the variable stuff location.
Exemplary Processes
In the description to follow, reference will be made to certain operations that may be performed to transmit client data of a client signal through an optical network from an ingress node (e.g., node 120-1 in FIG. 1) to an egress node (e.g., node 120-8 in FIG. 1) via an intermediate node (e.g., node 120-3 or node 120-4 in FIG. 1).
FIG. 7 is a flowchart of an exemplary process 700 for performing dual asynchronous mapping of client data of a client signal at an ingress node. Process 700 may be performed by one or more components within the ingress node.
Process 700 may include receiving a client signal (block 710). For example, a FM 330 of a tributary module 220, of the ingress node, may receive an optical signal on an individual wavelength, and convert the signal to a stream of digital data, which may include client data of a client signal.
A copy of the overhead data from the client data may be extracted (block 720). For example, FM 330 may analyze the client data to identify the client overhead data. FM 330 may then make a copy of the client overhead data and send the client overhead data to virtualization controller 340.
The client overhead data may be processed to create VOH data (block 730). For example, virtualization controller 340 may receive the client overhead data and process the client overhead data in some manner to form the VOH data. In one implementation, virtualization controller 340 may compress the client overhead data to form the VOH data. In another implementation, virtualization controller 340 may simply use the client overhead data as the VOH data. In yet another implementation, virtualization controller 340 may process the client overhead data in some other manner, such as encoding the client overhead data.
The client data may be encapsulated in an XTP frame (block 740). For example, FM 330 may asynchronously map the client data into an XTP frame. A single XTP frame may include all or a portion of the client data. For a client signal with a rate over a particular threshold (e.g., greater than approximately 1.31 Gbps), FM 330 may asynchronously map the client data into multiple XTP frames (e.g., partition the client data into portions (where each portion may fit into the payload of an XTP frame) and map each of the portions into a separate XTP frame).
The VOH data may be added to the overhead section of the XTP frame (block 750). For example, FM 330 may receive the VOH data from virtualization controller 340 and insert the VOH data at the appropriate location within the overhead section of the XTP frame.
FIG. 8 is a diagram of exemplary functional components for extracting client overhead data from client data of a client signal, asynchronously mapping the client data into multiple XTP frames, and inserting VOH data into the overhead section of the XTP frames. In one implementation, tributary module 220 may include hardware, or a combination of hardware and software, to implement the functions of the components shown in FIG. 8. In another implementation, a device separate from, or in combination with, tributary module 220 may perform one or more of the functions described below.
Tributary module 220 may include a serializer/deserializer (SerDes) 810, a framing/descrambling and overhead (OH) extraction component 820, a demultiplexer 830, XTP assembly components 840-1 through 840-M (where M≧1), an XTP assembly state machine 850, and an XTP source clock 860. XTP assembly component 840 may include a buffer 842 and a multiplexer 844. In another implementation, tributary module 220 may include additional, fewer, or different functional components to asynchronously map client data of a client signal into an XTP frame.
SerDes 810 may receive the client data and synchronously convert the client data to parallel format. In one implementation, SerDes 810 may operate from an externally applied reference that may be some sub-multiple of the bit rate of the client data. Framing/descrambling and OH extraction component 820 may perform framing and descrambling operations on the client data. For example, framing/descrambling component 820 may recover client frame sync (e.g., based on a framing word) and may descramble the overhead and payload of the client data. Framing/descrambling and OH extraction component 820 may also extract a copy of the overhead data from the client data and send the client overhead data to virtualization controller 340 (FIG. 3).
Demultiplexer 830 may receive the client data after the framing and descrambling. Demultiplexer 830 may decompose the client data into multiple parts using, for example, byte or word deinterleaving. It may be unnecessary, however, for the client data to be aligned to the data path on byte/word boundaries. Demultiplexer 830 may output the parts of the client data on M lanes. Each of the M lanes may be input to a different one of XTP assembly components 840.
The parts of the client data may be forwarded, via the M lanes, to buffers 842 of XTP assembly components 840. Buffers 842 may include elastic buffers, such as first-in, first-out (FIFO) memories, that serve to decouple the client signal rate from the rate of the XTP frames.
XTP assembly state machine 850 may asynchronously map each part of the client data to the payload area of an XTP frame. XTP assembly state machine 850 may assemble the individual XTP frames. The XTP rate may be driven by a free-running local oscillator (shown as XTP source clock 860 in FIG. 8). As described above, for a given nominal client signal rate (e.g., the nominal rate of each lane, after decomposition), certain defined locations in the XTP frame may always be null and may not contain data. As described above, these locations are called “fixed stuff” locations. The fixed stuff definition may be client rate-specific. Additionally, the XTP frame may contain positive and negative justification opportunities (PJOs/NJOs), which may or may not contain data for a given XTP frame. Finally, the XTP frame may include justification control indicators (JCs). The JCs may include flags that indicate whether or not the PJOs/NJOs do or do not contain data for a given XTP frame. To summarize, the fixed stuff locations may essentially define a fixed, client-specific nominal bandwidth and the PJOs/NJOs may dynamically adapt to the difference between the actual client rate and the fixed rate of the XTP frame.
XTP assembly state machine 850 may sequentially assemble each XTP frame by controlling the operation of multiplexer 844. For example, XTP assembly state machine 850 may cause multiplexer 844 to select data derived from buffer 842, fixed stuff data, XTP overhead data, the justification control indicators, and the VOH data. The VOH data may be received from virtualization controller 340 (FIG. 3).
Fixed stuff locations are client rate-specific. During justification opportunities, XTP assembly state machine 850 may determine whether to insert data or stuff, based on the status of buffer 842, thereby keeping buffer 842 from overflowing or underflowing. XTP assembly state machine 850 may encode the associated justification control indicators to reflect the contents of the justification opportunities. XTP assembly state machine 850 may insert the VOH data at the appropriate location within the overhead section of an XTP frame. The output of XTP assembly components 840 may include XTP frames containing the client data.
Returning to FIG. 7, the XTP frame may be routed through the ingress node (block 760). For example, FM 330 may segment the XTP frame into switch timeslots and distribute the XTP frame segments on ingress links associated with one or more of switch planes 232. Switches 410 (FIG. 4) may receive the XTP frame segments and identify egress links and timeslots on which to output the XTP frame segments based on the ingress links on which the XTP frame segments are received and the timeslots during which the XTP frame segments are received. Switches 410 may store mapping information that maps a combination of an input timeslot and an ingress link to an output timeslot and an egress link. Switches 410 may route the XTP frame segments accordingly. In one implementation, the XTP frame may be asynchronously mapped into one or more other frames while transporting the XTP frame through the ingress node.
The XTP frame may be asynchronously mapped to an XTF frame (block 770). As explained above, the XTF frame may be used to transport the XTP frame through the optical network in a manner such that the client data is opaque to intermediate nodes in the network.
FIG. 9 is a diagram of exemplary functional components for asynchronously mapping an XTP frame into an XTF frame. In one implementation, an egress line module 210 may include hardware, or a combination of hardware and software, to implement the functions of the components shown in FIG. 9. In another implementation, a device separate from, or in combination with, egress line module 210 may perform one or more of the functions described below.
Egress line module 210 may include demultiplexers 910-1 through 910-M (collectively referred to as “demultiplexers 910,” and generally as “demultiplexer 910”), multiplexers 920-1 through 920-M (collectively referred to as “multiplexers 920,” and generally as “multiplexer 920”), and XTF mapping components 930-1 through 930-P (where P≦M) (collectively referred to as “XTF mapping components 930,” and generally as “XTF mapping component 930”). Each XTF mapping component 930 may include a buffer 912, an XTP pointer processor 914, an XTF assembly state machine 916, and a multiplexer 918. In another implementation, egress line module 210 may include additional, fewer, or different functional components to asynchronously map an XTP frame to an XTF frame.
Demultiplexer 910 may receive data of an XTP frame and remove the VOH data from the overhead section of the XTP frame. Demultiplexer 910 may provide the VOH data to virtualization controller 340. Virtualization controller 340 may process the VOH data and provide the processed VOH data to multiplexer 920. Multiplexer 920 may receive the XTP frame from demultiplexer 910 and the VOH data from virtualization controller 340 and combine them by inserting the VOH data in the appropriate location in the overhead section of the XTP frame. Multiplexer 920 may provide data of the XTP frame to buffer 912 of XTF mapping component 930.
Buffer 912 may include an elastic buffer, such as a FIFO memory, that receives data of an XTP frame from multiplexer 920. Buffer 912 may serve to decouple the rate of the XTP frame from the rate of the XTF frame. XTP pointer processor 914 may monitor the XTP pointer to identify the start of the XTP frame within buffer 912. XTP pointer processor 914 may recover the XTP overhead data, for monitoring purposes, once the start of the XTP frame is identified. XTP pointer processor 914 may dynamically adapt for the difference in the rate of the XTP frame and the rate of the XTF frame using a variable stuff location. As described above, the location at which the XTP starts within the payload of the XTF frame may be identified in the overhead section of the XTF frame.
XTF assembly state machine 916 may asynchronously map the XTP frame to the payload area of an XTF frame. In one implementation, the XTF frame includes multiple XTP frames. In another implementation, the XTF frame may include a single XTP frame or a portion of an XTP frame. XTF assembly state machine 916 may operate based on an external clock associated with the optical link transmitter.
XTF assembly state machine 916 may sequentially assemble each XTF frame by controlling the operation of multiplexer 918. For example, XTF assembly state machine 916 may cause multiplexer 918 to select XTP frame data derived from buffer 912, the XTP pointer, XTF overhead data, and/or data associated with one or more other XTP frames (which may be output from other buffers 912 (not shown in FIG. 9)). The output of XTF mapping components 930 may include XTF frames containing XTP frames.
As shown in FIG. 9, each XTF mapping component 930 may include a separate XTF assembly state machine 916. In an alternative implementation, a single XTF assembly state machine 916 may be used for multiple XTF mapping components 930.
Returning to FIG. 7, the XTF frame may be output (block 780). For example, egress line module 210 may transmit the XTF frame on an optical link toward its destination. In one implementation, egress line module 210 may convert the XTF frame to an optical signal, of a particular wavelength, and combine the optical signal with one or more other optical signals, of one or more other wavelengths, to create a multi-wavelength optical signal that may be transmitted on the optical link. The XTF frame may transit one or more intermediate nodes 120 in the optical network.
FIG. 10 is a flowchart of an exemplary process 1000 for performing asynchronous mapping of an XTP frame at an intermediate node. Process 1000 may be performed by one or more components within the intermediate node.
Process 1000 may include receiving an XTF frame (block 1010). For example, an ingress line module 210, of the intermediate node, may receive a multi-wavelength optical signal, separate the multi-wavelength signal into signals of individual wavelengths, and convert the signals to a stream of digital data, which may represent an XTF frame. A FM 330, within ingress line module 210, may receive the stream of data representing the XTF frame.
An XTP frame may be recovered from the XTF frame (block 1020). For example, ingress line module 210 may recover one or more XTP frames from a received XTF frame. In one implementation, as described above, a single XTF frame may include multiple XTP frames. In another implementation, a single XTF frame may include all or a portion of a single XTP frame.
FIG. 11 is a diagram of exemplary functional components for recovering multiple XTP frames from an XTF frame. In one implementation, ingress line module 210 may include hardware, or a combination of hardware and software, to implement the functions of the components shown in FIG. 11. In another implementation, a device separate from, or in combination with, ingress line module 210 may perform one or more of the functions described below.
Ingress line module 210 may include XTP recovery components 1110-1 through 1110-C (referred to collectively as “XTP recovery components 1110,” and generally as “XTP recovery component 1110”) (where C>1). Each XTP recovery component 1110 may include a demultiplexer 1112 and an XTF disassembly state machine 1114. In another implementation, ingress line module 210 may include additional, fewer, or different functional components to recover an XTP frame from an XTF frame. For example, in another implementation, each XTP recovery component 1110 may include additional components, such as a framing component, a buffer, and/or an XTP pointer processor to aid in the recovery of the XTP frame. In this situation, the framing component may recover an XTP frame sync (e.g., based on an XTP framing word), the buffer may store the data of an XTP frame and serve to decouple the rate of the XTF frame from the rate of an XTP frame, and the XTP pointer processor may monitor the data in the buffer to identify the start of the XTP frame and recover the XTP overhead data.
Demultiplexer 1112 may receive the XTF frame. The operation of demultiplexer 1112 may be controlled by XTF disassembly state machine 1114. XTF disassembly state machine 1114 may recover the XTP frame from the XTF frame. As explained above, in one implementation, the XTF frame includes multiple XTP frames. In another implementation, the XTF frame may include a single XTP frame or a portion of an XTP frame. XTF disassembly state machine 1114 may operate based on an external clock associated with the optical receiver.
XTF disassembly state machine 1114 may recover a group of XTP frames (shown as XTP frames 1-A) by controlling the operation of demultiplexer 1112. For example, XTF disassembly state machine 1114 may cause demultiplexer 1112 to extract the XTP frames and the XTF overhead data including the XTP pointers. Each of the XTP pointers may identify a location at which a corresponding XTP frame begins within the payload of the XTF frame.
As shown in FIG. 11, each XTP recovery component 1110 may include a separate XTF disassembly state machine 1114. In an alternative implementation, a single XTF disassembly state machine 1114 may be used for multiple XTP recovery components 1110.
Returning to FIG. 10, VOH data may be extracted from the XTP frame (block 1030). For example, FM 330 may analyze the overhead section of the XTP frame to identify the VOH data. FM 330 may extract the VOH data and send the VOH data to virtualization controller 340.
The VOH data may be processed (block 1040). For example, virtualization controller 340 may process the VOH data in the same manner that it would process client overhead data if the client data was available to the intermediate node, such as performing OTN services (e.g., monitoring all or part of the path used to transport the client data, generating overhead (e.g., VOH) data, etc.). Virtualization controller 340 may provide the processed VOH data to FM 330.
The VOH data may be added to the overhead section of the XTP frame (block 1050). For example, FM 330 may receive the VOH data from virtualization controller 340 and insert the VOH data at the appropriate location within the overhead section of the XTP frame.
The XTP frame may be routed through the intermediate node (block 1060). For example, FM 330 may segment the XTP frame into switch timeslots and distribute the XTP frame segments on ingress links associated with one or more of switch planes 232. Switches 410 (FIG. 4) may receive the XTP frame segments and identify egress links and timeslots on which to output the XTP frame segments based on the ingress links on which the XTP frame segments are received and the timeslots during which the XTP frame segments are received. Switches 410 may store mapping information that maps a combination of an input timeslot and an ingress link to an output timeslot and an egress link. Switches 410 may route the XTP frame segments accordingly. In one implementation, the XTP frame may be asynchronously mapped into one or more other frames while transporting the XTP frame through the intermediate node.
The XTP frame may be asynchronously mapped to an XTF frame (block 1070). As explained above, the XTF frame may be used to transport the XTP frame through the optical network in a manner such that the client data is opaque to intermediate nodes in the network. In one implementation, egress line module 210 may perform functions, similar to the functions described above with regard to FIG. 9, to asynchronously map the XTP frame to the XTF frame.
The XTF frame may be output (block 1080). For example, egress line module 210 may transmit the XTF frame on an optical link toward its destination. In one implementation, egress line module 210 may convert the XTF frame to an optical signal, of a particular wavelength, and combine the optical signal with one or more other optical signals, of one or more other wavelengths, to create a multi-wavelength optical signal that may be transmitted on the optical link. The XTF frame may transit one or more additional intermediate nodes 120 in the optical network before reaching egress node 120.
While FIG. 10 shows the VOH data being extracted, processed, and added back into the XTP frame prior to routing the XTP frame through the intermediate node, this need not be the case. In another implementation, the VOH data may be extracted, processed, and added back into the XTP frame after routing the XTP frame through the intermediate node. In yet another implementation, the VOH data may be extracted, processed, and added back into the XTP frame both prior to and after routing the XTP frame through the intermediate node.
FIG. 12 is a flowchart of an exemplary process 1200 for recovering client data of a client signal at an egress node. Process 1200 may be performed by one or more components within the egress node.
Process 1200 may include receiving an XTF frame (block 1210). For example, an ingress line module 210, of the egress node, may receive a multi-wavelength optical signal, separate the multi-wavelength signal into signals of individual wavelengths, and convert the signals to a stream of digital data, which may represent an XTF frame. A FM 330, within ingress line module 210, may receive the stream of data representing the XTF frame.
An XTP frame may be recovered from the XTF frame (block 1220). For example, ingress line module 210 may recover one or more XTP frames from a received XTF frame. In one implementation, as described above, a single XTF frame may include multiple XTP frames. In another implementation, a single XTF frame may include all or a portion of a single XTP frame. In one implementation, ingress line module 210 may perform functions, similar to the functions described above with regard to FIG. 11, to recover the XTP frame from the XTF frame.
The XTP frame may be routed through the egress node (block 1230). For example, FM 330 may segment the XTP frame into switch timeslots and distribute the XTP frame segments on ingress links associated with one or more of switch planes 232. Switches 410 (FIG. 4) may receive the XTP frame segments and identify egress links and timeslots on which to output the XTP frame segments based on the ingress links on which the XTP frame segments are received and the timeslots during which the XTP frame segments are received. Switches 410 may store mapping information that maps a combination of an input timeslot and an ingress link to an output timeslot and an egress link. Switches 410 may route the XTP frame segments accordingly. In one implementation, the XTP frame may be asynchronously mapped into one or more other frames while transporting the XTP frame through the egress node.
The client data may be recovered from the XTP frame (block 1240). As explained above, the XTP frame may be used to transport all, or a portion, of the client data. When multiple XTP frames carry the client data, as the XTP frames traverse the optical network, the XTP frames may experience relative skew. Thus, it may be beneficial to deskew the XTP frames and reassemble them prior to extracting the client data.
VOH data may be extracted from the XTP frame (block 1250). For example, FM 330 may analyze the overhead section of the XTP frame to identify the VOH data. FM 330 may extract the VOH data and send the VOH data to virtualization controller 340.
The client overhead data may be recovered from the VOH data (block 1260). For example, virtualization controller 340 may decompress the VOH data to recover the client overhead data. Virtualization controller 340 may provide the recovered client overhead data to FM 330.
The client overhead data may be added to the client data (block 1270). For example, FM 330 may store the recovered client overhead data in the client overhead section of the client data, replacing any data that was originally stored there. In an alternative implementation, FM 330 may analyze and/or process the recovered client overhead data and discard it, leaving the data that was originally stored in the client overhead section.
FIG. 13 is a diagram of exemplary functional components for recovering client data of a client signal from multiple XTP frames, recovering the client overhead data from the VOH data, and inserting the recovered client overhead data into the client data. In one implementation, tributary module 220 may include hardware, or a combination of hardware and software, to implement the functions of the components shown in FIG. 13. In another implementation, a device separate from, or in combination with, tributary module 220 may perform one or more of the functions described below.
Tributary module 220 may include an XTP deskew buffer 1305, XTP deskew control 1310, phase locked loop (PLL) 1315, PLL 1320, demultiplexers 1325, XTP disassembly/client assembly state machine 1330, buffers 1335, demultiplexer 1340, client overhead (OH) insertion 1345, and SerDes 1350. In another implementation, tributary module 220 may include additional, fewer, or different functional components to recover client data from an XTP frame.
In an exemplary operation, XTP deskew buffer 1305 may receive multiple XTP frames (e.g., the XTP frames containing the client data). XTP deskew buffer 1305 may include a number of buffers 1306. Buffer 1306 may include an elastic buffer, such as a FIFO memory, that stores an XTP frame.
XTP deskew control 1310 may receive XTP pointers corresponding to the XTP frames. XTP deskew control 1310 may control the storing and outputting of data associated with each of the XTP frames to deskew the XTP frames before the XTP frames are realigned. The implementations, described herein, may support routing of XTP frames over different fiber paths or even different physical paths (i.e., diverse routes) if sufficient deskew buffering is provided at egress node 120.
XTP deskew control 1310 may detect skew using the XTP pointers. The XTP pointer indicates the first byte/word in the XTP structure. Based on detection of the relative XTP phase, XTP deskew control 1310 can realign all of the XTP frames at the egress of XTP deskew buffer 1605.
After realignment, XTP overhead data, including justification control indicators (JCs) and the VOH data, may be extracted via demultiplexers 1325. The portion of the XTP frame containing actual client data may be recovered by extracting fixed stuff locations, and by processing the JCs. Fixed stuff locations may be predefined based on the client signal type/rate and, therefore, may be known once the XTP frame is delineated. JCs may indicate which of the positive/negative justification opportunities (PJOs/NJOs) in the XTP frame contain data and which are stuffed. Recall that in the client ingress mapping process, justifications of the client into the XTP frame may be done symmetrically on all XTP frames. By extension, all justifications may be processed symmetrically at the client ingress from the XTP frame. Therefore, only the JCs from one XTP need to be processed, and only one state machine (e.g., XTP disassembly/client assembly state machine 1330) may be needed for XTP decapsulation.
The VOH data may be sent to virtualization controller 340 (FIG. 3) for processing. For example, virtualization controller 340 may decompress the VOH data to recover the client overhead data, which may have been modified by one or more nodes 120 during transit of the client data within one or more XTP frames.
XTP disassembly/client assembly state machine 1330 may reconstruct the client data by interleaving the client portions, per-XTP, in sequence. XTP disassembly/client assembly state machine 1330 may control the operation of buffers 1335 and multiplexer 1340. Buffer 1335 may include an elastic buffer, such as a FIFO memory, that receives portions of the client data that have been extracted from the XTP frames. Buffers 1335 may output the client data portions to multiplexer 1340. XTP disassembly/client assembly state machine 1330 may control multiplexer 1340 to output the client data portions so as to interleave the client data portions and recover the client data.
XTP disassembly/client assembly state machine 1330 may operate based on a recovered XTP clock and/or a recovered client clock. Two PLLs 1315 and 1320 may be used to recover the client clock. PLL 1315 may receive, as input, the XTF clock signal and XTP justifications, and output the recovered XTP clock. PLL 1320 may receive the XTP clock signal and information regarding XTP justifications to recover the client clock signal. The client clock signal may be used by XTP disassembly/client assembly state machine 1330 to recover the client data. In another implementation, the client clock may be generated in another manner, such as from a free-running clock.
Once the client data is recovered, the client overhead data may be inserted by client overhead insertion component 1345. Client overhead insertion component 1345 may receive the recovered client overhead data from virtualization controller 340. In one implementation, client overhead insertion component 1345 may replace the original client overhead data in the client data with the recovered client overhead data. In another implementation, client overhead insertion component 1345 may discard the recovered client overhead data and retain the original client overhead data in the client data. In either implementation, client overhead insertion component 1345 may modify, if necessary, the original or recovered client overhead data prior to inserting the client overhead data into the client data. The client data may then be serialized for transmission by SerDes 1350.
Returning to FIG. 12, the client data may be output (block 1280). For example, tributary module 220 may convert the client data to an optical signal of a particular wavelength and output the client data to a client device 110. Alternatively, tributary module 220 may combine the wavelength containing the client data with wavelengths containing other client data to generate a multi-wavelength optical signal, and send the multi-wavelength optical signal to client device 110.
While FIG. 12 shows the VOH data being extracted and the client overhead data being recovered after routing the XTP frame through the egress node, this need not be the case. In another implementation, the VOH data may be extracted and the client overhead data may be recovered prior to routing the XTP frame through the egress node. In yet another implementation, operations relating to extracting the VOH data and recovering the client overhead data may be performed both prior to and after routing the XTP frame through the egress node.
Example
FIG. 14 is a diagram of an example of transporting client data of a client signal through an optical network. FIG. 14 shows a simplified view of an optical network that includes three nodes: an ingress node, an intermediate node, and an egress node. Assume that the client signal is an OTN-compliant signal that is transmitted from the ingress node to the egress node.
The tributary module, of the ingress node, may receive client data of the client signal, where the client signal has an arbitrary rate. In one implementation, the tributary module may extract a copy of the client overhead data from the client data. The tributary module may asynchronously map the client data (including original client overhead data) into a collection of first frames, called XTP frames (e.g., see FIG. 5) (shown as three XTP frames in FIG. 14). The XTP frames have a particular, constant length, and a fixed rate (which is independent of the rate of the client signal). Each XTP frame may use a combination of variable and fixed stuff locations to compensate for the different rate of the client signal. The XTP frames are the vehicles for transporting the client data across the optical network in a manner such that the client data is opaque to the intermediate node.
The tributary module, of the ingress node, may process the client overhead data to create virtual overhead (VOH) data. The tributary module may insert the VOH data into the overhead section of one or more of the XTP frames. In other words, a single XTP frame may include the entire VOH data. Alternatively, the VOH data may be inserted into or distributed across two or more XTP frames in the collection of XTP frames.
The tributary module, of the ingress node, may output the XTP frames to an egress line module for transmission on the optical network. The egress line module may asynchronously map the XTP frames into one or more second frames, called XTF frame(s) (e.g., see FIG. 6), for transmission on the optical network. The XTF frame has a particular, constant length, and a fixed nominal rate (which is independent of the rate of the client signal and the rate of the XTP frame) that may differ slightly from XTF frame-to-XTF frame. Each XTF frame may use a variable stuff location to compensate for the different rate of the XTP frame. Each XTF frame may also use a pointer that identifies the start of the XTP frame within the payload of the XTF frame. The egress line module may transmit the XTF frame on an optical link to a next hop node (i.e., the intermediate node).
The ingress line module, of the intermediate node, may receive the XTF frame(s) and extract the XTP frames. The ingress line module may extract the VOH data from the XTP frames, process the VOH data, and insert the processed VOH data in the overhead section of the XTP frames. The ingress line module may output the XTP frames to an egress line module for transmission on the optical network.
The egress line module, of the intermediate node, may receive the XTP frames and asynchronously map the XTP frames into one or more XTF frames for transmission on the optical network. The intermediate node may not recover the client data and, thus, need not be aware of the client data being transported in the XTP frames. The intermediate node operates only upon the XTP frame—performing one level of mapping of the XTP frame out of and into an XTF frame. While the client data is not available to the intermediate node, the client overhead data is available via the VOH data. Thus, the intermediate node may process the client overhead data (via the VOH data), as necessary. The intermediate node may transmit the XTF frame on an optical link to a next hop node (i.e., the egress node).
The ingress line module, of the egress node, may receive the XTF frame and extract the XTP frame. The ingress line module may extract the VOH data from the XTP frames and process the VOH data to recover the client overhead data. The ingress line module may output the XTP frames to a tributary module for transmission to a client device.
The tributary module, of the egress node, may receive the XTP frames and use the pointers (that refer to the start of the XTP frame(s) within an XTF frame) to concatenate and realign the XTP frames associated with a same client signal (which, as described above, has been mapped into multiple XTP frames). The tributary module may then extract the client data from the XTP frames and insert the recovered client overhead data into the client data. The tributary module may transmit the client data to a client device.
Because the intermediate node can operate upon the client overhead data (via the VOH data) without having to recover the client data, the hardware and software logic at the intermediate nodes can be greatly simplified.
FIG. 15 is a diagram of another example of transporting client data of a client signal through an optical network. FIG. 15 shows a simplified view of an optical network that includes three nodes: an ingress node, an intermediate node, and an egress node. In one implementation, assume that the client signal is a non-OTN-compliant signal (e.g., Ethernet or SONET/SDH) that is transmitted from the ingress node to the egress node. In another implementation, assume that the client signal is an OTN-compliant signal (e.g., a client ODU2 signal) for which it is desired to virtualize a higher level of multiplexing (e.g., emulate that the client ODU2 signal is carried over an ODU3 signal through the network).
The tributary module, of the ingress node, may receive client data of the client signal, where the client signal has an arbitrary rate. The tributary module may asynchronously map the client data (including original client overhead data) into a collection of first frames, called XTP frames (e.g., see FIG. 5) (shown as three XTP frames in FIG. 15). The XTP frames have a particular, constant length, and a fixed rate (which is independent of the rate of the client signal). Each XTP frame may use a combination of variable and fixed stuff locations to compensate for the different rate of the client signal. The XTP frames are the vehicles for transporting the client data across the optical network in a manner such that the client data is opaque to the intermediate node.
The tributary module, of the ingress node, may generate virtual overhead (VOH) data. In this case, the VOH data may be generated without extracting the original client overhead data. The generated VOH data may include information that may facilitate the transmission of the client data through the optical network. For example, in the one exemplary implementation described above, the VOH data may correspond to overhead data for the higher-level signal (e.g., ODU3 overhead). The tributary module may insert the VOH data into the overhead section of one or more of the XTP frames. In other words, a single XTP frame may include the entire VOH data. Alternatively, the VOH data may be inserted into or distributed across two or more XTP frames in the collection of XTP frames.
The tributary module, of the ingress node, may output the XTP frames to an egress line module for transmission on the optical network. The egress line module may asynchronously map the XTP frames into one or more second frames, called XTF frame(s) (e.g., see FIG. 6), for transmission on the optical network. The XTF frame has a particular, constant length, and a fixed nominal rate (which is independent of the rate of the client signal and the rate of the XTP frame) that may differ slightly from XTF frame-to-XTF frame. Each XTF frame may use a variable stuff location to compensate for the different rate of the XTP frame. Each XTF frame may also use a pointer that identifies the start of the XTP frame within the payload of the XTF frame. The egress line module may transmit the XTF frame on an optical link to a next hop node (i.e., the intermediate node).
The ingress line module, of the intermediate node, may receive the XTF frame(s) and extract the XTP frames. The ingress line module may extract the VOH data from the XTP frames, process the VOH data, and insert the processed VOH data in the overhead section of the XTP frames. The ingress line module may output the XTP frames to an egress line module for transmission on the optical network.
The egress line module, of the intermediate node, may receive the XTP frames and asynchronously map the XTP frames into one or more XTF frames for transmission on the optical network. The intermediate node may not recover the client data and, thus, need not be aware of the client data being transported in the XTP frames. The intermediate node may operate only upon the XTP frame—performing one level of mapping of the XTP frame out of and into an XTF frame. The intermediate node may transmit the XTF frame on an optical link to a next hop node (i.e., the egress node). Because the intermediate node can operate upon the VOH data without having to recover the client data, the hardware and software logic at the intermediate nodes can be greatly simplified.
The ingress line module, of the egress node, may receive the XTF frame and extract the XTP frame. The ingress line module may extract the VOH data from the XTP frames, process the VOH data, as necessary, and discard the VOH data. The ingress line module may output the XTP frames to a tributary module for transmission to a client device.
The tributary module, of the egress node, may receive the XTP frames and use the pointers (that refer to the start of the XTP frame(s) within an XTF frame) to concatenate and realign the XTP frames associated with a same client signal (which, as described above, has been mapped into multiple XTP frames). The tributary module may then extract the client data from the XTP frames. The tributary module may transmit the client data to a client device.
FIG. 16 is a diagram of a further example of transporting client data of a client signal through an optical network. FIG. 16 shows a simplified view of an optical network that includes three nodes: an ingress node, an intermediate node, and an egress node. In this example, VOH data is generated at the intermediate node rather than at the ingress node. There may be many reasons why the intermediate node may generate VOH data, as described in this example. For example, it may be desired to monitor part of the path between the ingress node and the egress node, rather than the entire path. In this case, an intermediate node may generate VOH data that may be processed either by another intermediate node (not shown in FIG. 16) or by the egress node.
The tributary module, of the ingress node, may receive client data of the client signal, where the client signal has an arbitrary rate. The tributary module may asynchronously map the client data (including original client overhead data) into a collection of first frames, called XTP frames (e.g., see FIG. 5) (shown as three XTP frames in FIG. 16). The XTP frames have a particular, constant length, and a fixed rate (which is independent of the rate of the client signal). Each XTP frame may use a combination of variable and fixed stuff locations to compensate for the different rate of the client signal. The XTP frames are the vehicles for transporting the client data across the optical network in a manner such that the client data is opaque to the intermediate node.
The tributary module, of the ingress node, may output the XTP frames to an egress line module for transmission on the optical network. The egress line module may asynchronously map the XTP frames into one or more second frames, called XTF frame(s) (e.g., see FIG. 6), for transmission on the optical network. The XTF frame has a particular, constant length, and a fixed nominal rate (which is independent of the rate of the client signal and the rate of the XTP frame) that may differ slightly from XTF frame-to-XTF frame. Each XTF frame may use a variable stuff location to compensate for the different rate of the XTP frame. Each XTF frame may also use a pointer that identifies the start of the XTP frame within the payload of the XTF frame. The egress line module may transmit the XTF frame on an optical link to a next hop node (i.e., the intermediate node).
The ingress line module, of the intermediate node, may receive the XTF frame(s) and extract the XTP frames. The ingress line module may generate VOH data and insert the VOH data in the overhead section of the XTP frames. The ingress line module may output the XTP frames to an egress line module for transmission on the optical network.
The egress line module, of the intermediate node, may receive the XTP frames and asynchronously map the XTP frames into one or more XTF frames for transmission on the optical network. The intermediate node may not recover the client data and, thus, need not be aware of the client data being transported in the XTP frames. The intermediate node may operate only upon the XTP frame—performing one level of mapping of the XTP frame out of and into an XTF frame. The intermediate node may transmit the XTF frame on an optical link to a next hop node (i.e., the egress node). Because the intermediate node need not recover the client data, the hardware and software logic at the intermediate nodes can be greatly simplified.
The ingress line module, of the egress node, may receive the XTF frame and extract the XTP frame. The ingress line module may extract the VOH data from the XTP frames, process the VOH data, as necessary, and discard the VOH data. The ingress line module may output the XTP frames to a tributary module for transmission to a client device.
The tributary module may receive the XTP frames and use the pointers (that refer to the start of the XTP frame(s) within an XTF frame) to concatenate and realign the XTP frames associated with a same client signal (which, as described above, has been mapped into multiple XTP frames). The tributary module may then extract the client data from the XTP frames. The tributary module may transmit the client data to a client device.
CONCLUSION
Implementations described herein may facilitate communication of client data, of a client signal, across a network while reducing network complexity. For example, client data of a client signal, of any arbitrary rate, may be asynchronously wrapped into a structure that is used as the vehicle for transporting the client data. Intermediate nodes in the network operate upon the structure and not the client data and, thus, need not recover the client data. Even though the intermediate nodes do not recover the client data, the overhead data of the client data is available to the intermediate nodes because this overhead data is available in the overhead section of the structure that carries the client data. This simplifies the logic required in the intermediate nodes.
The structure used to carry the client data, of a client signal, may further be asynchronously mapped into additional structures that ease the transfer of the structures within a node and through the network. Each structure may have its own rate, which may differ from the rate of the client signal. As a result, there is no need to synchronize clocks within a node or at different nodes in the network.
The foregoing description provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention.
For example, while series of blocks have been described with regard to FIGS. 7, 10, and 12, the order of the blocks may be modified in other implementations. Further, non-dependent blocks may be performed in parallel.
Also, certain portions of the implementations have been described as “components” that perform one or more functions. The term “component,” may include hardware, such as a processor, an application specific integrated circuit (ASIC), or a field programmable gate array (FPGA), or a combination of hardware and software.
Further, while implementations have been described in the context of an optical network, this need not be the case. These implementations may apply to any form of circuit-switching network.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of the invention. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one other claim, the disclosure of the invention includes each dependent claim in combination with every other claim in the claim set.
No element, act, or instruction used in the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.

## Claims

1. A network, comprising:
an ingress node configured to:
receive client data, the client data including a client overhead section and a client payload section,
copy data, as virtual overhead data, from the client overhead section of the client data,
map the client data into a frame, the frame including a frame overhead section and a frame payload section, the frame payload section including the client data,
store the virtual overhead data in the frame overhead section of the frame, and
output the frame on the network;

an intermediate node configured to:
receive the frame outputted by the ingress node,
extract the virtual overhead data from the frame overhead section of the frame,
process the virtual overhead data to create processed virtual overhead data,
insert the processed virtual overhead data into the frame overhead section of the frame, and
output the frame on the network, where the intermediate node does not recover the client data from the frame; and

an egress node configured to:
receive the frame outputted by the intermediate node,
extract the processed virtual overhead data from the frame,
recover the client overhead data, as recovered client overhead data, from the processed virtual overhead data,
recover the client data from the frame,
insert the recovered client overhead data into the client overhead section of the client data, and
output the client data with the recovered client overhead data
where the ingress node is further configured to:
map the frame into a second frame, the second frame including a second overhead section and a second payload section, the second payload section including the frame, and
where, when outputting the frame on the network, the ingress node is configured to output the frame within the second frame, and

where the intermediate node is further configured to:
receive the second frame,
extract the frame from the second frame, and
map the frame into a third frame, the third frame including a third overhead section and a third payload section, the third payload section including the frame, and
where, when outputting the frame on the network, the intermediate node is configured to output the frame within the third frame.

2. The network of claim 1, where, when mapping the frame into the second frame, the ingress node is configured to asynchronously map the frame into the second frame.

3. The network of claim 1, where a rate of the client data, a rate of the frame, and a rate of the second frame are independent of each other.

4. The network of claim 1, where the second frame includes a variable stuff location that compensates for a difference between a first rate of the frame and a second rate of the second frame, where the variable stuff location selectively stores the client data, where the second frame includes no fixed stuff location.

5. The network of claim 1, where the egress node is further configured to:
receive the third frame, and
extract the frame from the third frame.

6. The network of claim 1, where a rate of the client data is independent of a rate of the frame.

7. The network of claim 1, where the frame includes a combination of fixed stuff and variable stuff locations that compensate for a difference between a client rate of the client data and a rate of the frame, where the fixed stuff location does not store the client data and the variable stuff location selectively stores the client data.

8. The network of claim 1, where only the ingress node maps the client data into the frame, and only the egress node recovers the client data from the frame.

9. The network of claim 1, where, when mapping the client data into the frame, the ingress node is configured to asynchronously map the client data into the frame.

10. The network of claim 1, where, when processing the virtual overhead data, the intermediate node is configured to perform operations relating to monitoring all or part of a path used for transporting the client data.

11. The network of claim 1, where, when processing the virtual overhead data, the intermediate node is configured to generate overhead data as the processed overhead data.

12. A method performed in a network including at least a first node, a second node, and a third node, the method comprising:
receiving, by the first node, client data that includes a client overhead section and a payload section;
copying data, as virtual overhead data, from the client overhead section;
encapsulating the client data in a frame that includes a frame overhead section and a frame payload section, the client data being encapsulated in the frame payload section;
storing the virtual overhead data in the frame overhead section;
transmitting the frame to the second node;
processing, by the second node, the virtual overhead data from the client overhead section of the frame without recovering the client data from the frame;
replacing the virtual overhead data in the frame overhead section with the processed virtual overhead data;
transmitting the frame, with the processed virtual overhead data, to the third node;
extracting the processed virtual overhead data from the frame;
recovering the client overhead data from the processed virtual overhead data;
recovering the client data from the frame;
replacing the data in the client overhead section of the client data with the recovered client overhead data; and
outputting the client data with the recovered client overhead data.

13. The method of claim 12, where encapsulating the client data in the frame includes asynchronously encapsulating the client data in the frame.

14. The method of claim 12, where a rate of the client data and a rate of the frame are independent of each other.

15. The method of claim 12, further comprising:
mapping the frame into another frame, where a rate of the frame and a rate of the other frame are independent of each other.

16. The method of claim 15, where transmitting the frame to the second node includes transmitting the other frame to the second node;
where the method further comprises:
receiving, by the second node, the other frame; and
recovering the frame from the other frame.

17. The method of claim 12, where the frame includes a combination of fixed stuff and variable stuff locations, where the fixed stuff location does not store the client data and the variable stuff location selectively stores the client data.

18. The method of claim 12, where processing the virtual overhead data includes performing, based on the virtual overhead data, operations relating to monitoring at least a portion of a path used to transport the client data through the network.

19. The method of claim 12, where replacing the data in the client overhead section of the client data with the recovered client overhead data includes replacing all of the data in the client overhead section of the client data with the recovered client overhead data.

20. The method of claim 12, where replacing the data in the client overhead section of the client data with the recovered client overhead data includes replacing less than all of the data in the client overhead section of the client data with the recovered client overhead data.