Patent Description:
Ethernet technologies are widely applied in the network industry, and the Ethernet technologies are greatly popular with network vendor due to a concise and best-effort transmission mode and a standardized interconnection mechanism. Currently, the Ethernet technologies have been developed to a flexible Ethernet (flexible ethernet) <NUM> implementation protocol (FlexE for short) based on a <NUM> Gigabit (gigabit, G) Ethernet standard. Rate aggregation of the FlexE supports a case in which high-speed Ethernet service data streams are carried together by using a plurality of low-rate physical interfaces, and a sub rate and channelization allow a case in which a plurality of low-rate data streams are concurrently carried within one Ethernet physical interface. A large quantity of network devices that support an Ethernet interface are deployed in an access network and a metropolitan area network in existing networks. A FlexE interface is compatible with a standard Ethernet and extends a function and flexibility of the Ethernet, and has a good market application prospect and development in a scenario with a deterministic low latency and high bandwidth such as a fronthaul network and a backhaul network in a fifth generation (5th generation, <NUM>) system and a data center interconnection.

A transmission speed of the FlexE may be in a unit of gigabit per second (gigabit per second, Gbps). Currently, a client signal in the FlexE may include the following modes: an Ethernet physical interface mode supporting a <NUM> Gbps rate (<NUM> Gbps base range, <NUM> BASE-R), an Ethernet physical interface mode supporting a <NUM> Gbps rate (<NUM> Gbps base range, <NUM> BASE-R), and an Ethernet physical interface mode supporting a <NUM> Gbps rate (<NUM> Gbps base range, nx25G BASE-R).

The client signal needs to be forwarded by using a transport network of the Ethernet. The transport network of the Ethernet may use, for example, an Ethernet physical interface mode supporting a <NUM> Gbps rate (<NUM> Gbps base range, <NUM> BASE-R), an Ethernet physical interface mode supporting a <NUM> Gbps rate (<NUM> Gbps base range, <NUM> BASE-R), and an Ethernet physical interface mode supporting a <NUM> Gbps rate (<NUM> Gbps base range, <NUM> BASE-R).

Some code blocks (for example, a 0x2d type code block or a 0x55 type code block) of an ordered set type in modes such as the <NUM> BASE-R, the <NUM> BASE-R, or the <NUM> BASE-R do not exist in the <NUM> BASE-R, the <NUM> BASE-R, the <NUM> BASE-R, and a mode with a higher rate. Therefore, the code blocks of the ordered set type cannot be transmitted by using a transport network based on an interface with a <NUM> or higher rate. This affects communication accuracy.

The paper <NPL>, provides a generic mechanism for supporting a variety of Ethernet MAC rates that may or may not correspond to any existing Ethernet PHY rate. This includes MAC rates that are both greater than (through bonding) and less than (through sub-rate and channelization) the Ethernet PHY rates used to carry FlexE.

US <NUM><NUM><NUM> B1 provides various aspects for modifying a data stream for rate adaptation. A clock component receives a data stream at a first clock rate. In an aspect, a rate adaptation component inserts a first identification codeword into a particular location in the data stream based on a set of encoding rules in response to a determination that the first clock rate is lower than a second clock rate associated with a device configured for receiving a rate-adapted version of the data stream. In another aspect, the rate adaptation component removes a predefined codeword from the data stream and transforms another predefined codeword in the data stream into a second identification codeword in response to a determination that the first clock rate is greater than the second clock rate.

This application provides a method for receiving a code block stream, a method for sending a code block stream, and communications apparatus, to ensure transmission of a control code block and improve communication accuracy. The invention is set out as in the appended claims.

According to a first aspect, a method for receiving a code block stream is provided, including: receiving, by a receiving device from a transport network, a code block stream that is in a first rate mode and that includes a plurality of code blocks; determining, by the receiving device, a target code block from the code block stream, where the target code block is a code block received by the receiving device in an inter-packet gap of the code block stream, the target code block includes a first target code block, and the first target code block is a code block of a data type, and/or the target code block includes a second target code block, and the second target code block is a code block of a termination type; and modifying, by the receiving device, the target code block to modify the target code block to a code block, of an ordered set type, that is in a second rate mode.

The target code block is a code block generated after a sending device of the code block stream in the first rate mode modifies the code block of the ordered set type in the received code block stream that is in the second rate mode and that is from a client device.

Because the code block of the ordered set type is transmitted in the inter-packet gap, the sending device may modify the code block of the ordered set type to the code block of the data type or the code block of the termination type that can be recognized by the transport network. In this way, the receiving device can determine that the code block of the data type or the code block of the termination type that is located in the inter-packet gap is modified based on the code block of the ordered set type, and may further modify the code block of the data type or the code block of the termination type that is located in the inter-packet gap back to the code block of the ordered set type. This can not only ensure that the code block of the ordered set type can be transmitted by using the transport network, but also ensure that the receiving device reliably recognizes the code block of the ordered set type, thereby improving communication accuracy.

In this application, the code block stream in the first rate mode may be a code block stream (or a bit code block stream or a bit stream) that is processed (for example, encoded or decoded) at a physical coding sublayer PCS and that is in an Ethernet signal (for example, a high-speed Ethernet signal) transmitted in the transport network (for example, a network supporting a FlexE).

In addition, the code block stream in the second rate mode may be a code block stream (or a bit code block stream or a bit stream) that is processed at the PCS and that is in an Ethernet signal (for example, a medium-low-speed Ethernet signal) transmitted before the client device and a transport device (for example, an ingress device or an egress device of the transport network).

In addition, the code block stream that is in the first rate mode and that is sent by the sending device may be generated after the sending device performs processing such as transcoding on the code block stream in the second rate mode.

The receiving device may be an egress device for the code block stream in the first rate mode (or an Ethernet signal including the code block stream in the first rate mode) in the transport network. To be specific, the Ethernet signal flows from the transport network to a destination network (including a destination client device of the Ethernet signal) of the Ethernet signal by using the egress device.

The sending device may be an ingress device for the code block stream in the first rate mode (or the Ethernet signal including the code block stream in the first rate mode) in the transport network. To be specific, the Ethernet signal flows from a source network (including a source client device of the Ethernet signal) of the Ethernet signal to the transport network by using the ingress device.

In this application, a rate corresponding to the second rate mode is less than or equal to a rate corresponding to the first rate mode.

"A rate corresponding to the second rate mode is less than or equal to a rate corresponding to the first rate mode" may be understood as a case in which a signal that is in the first rate mode and that is used as a signal in a high-speed mode may be obtained by aggregation of one or more signals that are in a low-speed mode and that include a signal in the second rate mode.

Alternatively, "a rate corresponding to the second rate mode is less than or equal to a rate corresponding to the first rate mode" may be understood as a case in which a quantity of slots that can be included by a signal in the first rate mode is greater than a quantity of slots that can be included in a signal in the second rate mode.

As an example instead of a limitation, the first rate mode may include a <NUM> BASE-R mode, a <NUM> BASE-R mode, a <NUM> BASE-R mode, or a <NUM> BASE-R mode.

Alternatively, the transport network may include an Ethernet physical link in a <NUM> BASE-R mode, a <NUM> BASE-R mode, a <NUM> BASE-R mode, or a <NUM> BASE-R mode, or the transport network may support an Ethernet physical interface mode with a rate of <NUM> Gbps, <NUM> Gbps, <NUM> Gbps, or <NUM> Gbps.

Alternatively, a transport device in the transport network forwards an Ethernet signal based on a <NUM> BASE-R mode, a <NUM> BASE-R mode, a <NUM> BASE-R mode, or a <NUM> BASE-R mode.

A transmission quantity of the code block stream (or an Ethernet signal including the code block stream in the first rate mode) in the first rate mode may be <NUM> Gbps, <NUM> Gbps, <NUM> Gbps, or <NUM> Gbps.

Alternatively, the Ethernet signal including the code block stream in the first rate mode may be an Ethernet signal in the <NUM> BASE-R mode, an Ethernet signal in the <NUM> BASE-R mode, an Ethernet signal in the <NUM> BASE-R mode, or an Ethernet signal in the <NUM> BASE-R mode.

As an example instead of a limitation, the second rate mode may include a <NUM> BASE-R mode, a <NUM> BASE-R mode, or a <NUM> BASE-R mode.

Alternatively, a link between the client device and the ingress device or the egress device of the transport network may include an Ethernet physical link in a <NUM> BASE-R mode, a <NUM> BASE-R mode, or a <NUM> BASE-R mode, or the client device may support an Ethernet physical interface mode with a rate of <NUM> Gbps, <NUM> Gbps, or <NUM> Gbps.

Alternatively, an Ethernet signal is forwarded between the client device and the ingress device or the egress device of the transport network based on the <NUM> BASE-R mode, the <NUM> BASE-R mode, or the <NUM> BASE-R mode.

A transmission quantity of the code block stream (or an Ethernet signal including the code block stream in the second rate mode) in the second rate mode may be <NUM> Gbps, <NUM> Gbps, or <NUM> Gbps.

Alternatively, the Ethernet signal including the code block stream in the second rate mode may be a signal in the <NUM> BASE-R mode, a signal in the <NUM> BASE-R mode, or a signal in the <NUM> BASE-R mode.

Optionally, the code block in the code block stream may be a <NUM>-bit code block, or the code block in the code block stream may be a <NUM>-bit code block.

The code block of the ordered set type may also be referred to as an ordered set (order set, O) code block.

For example, the O code block may include a code block in which information carried in a code block type field (block type field) is 0x2d.

For another example, the O code block may include a code block in which information carried in a code block type field is 0x55.

A bit carried in a synchronization header field (sync header field) of the O code block is <NUM>.

The bit "<NUM>" may be understood as a binary (0b) bit or a value "<NUM>". To avoid repetition, descriptions of same or detailed cases are omitted below.

Optionally, the modifying, by the receiving device, the target code block includes: modifying, by the receiving device, information carried in a code block type field of the second target code block to code block type information corresponding to the ordered set type.

For example, the T code block may include a code block in which information carried in a code block type field is at least one of the following information:
0x87, 0x99, 0xAA, 0xB4, 0xCC, 0xD2, 0xE1, and 0xFF.

To be specific, the modifying, by the receiving device, information carried in a code block type field of the target code block includes: modifying, by the receiving device, the information carried in the code block type field of the second target code block from one of 0x87, 0x99, 0xAA, 0xB4, 0xCC, 0xD2, 0xE1, and 0xFF to 0x2d or 0x55.

Optionally, the modifying, by the receiving device, information carried in a code block type field of the second target code block to code block type information corresponding to the ordered set type includes: modifying, by the receiving device based on a mapping relationship, information carried in a code block type field of a second target code block of a first termination type to information corresponding to a first ordered set type, where the mapping relationship is used to indicate a one-to-one mapping relationship between at least two termination types and at least two ordered set types, the first ordered set type corresponds to the first termination type, and the first termination type is any one of the at least two termination types.

Optionally, the modifying, by the receiving device, information carried in a code block type field of the second target code block to code block type information corresponding to the ordered set type includes: determining, by the receiving device, a one-to-one mapping relationship between code blocks of at least two termination types and code blocks of at least two ordered set types; and when the second target code block is a code block of a first termination type, modifying, by the receiving device based on the mapping relationship, the information carried in the code block type field of the target code block to information corresponding to a code block of a first ordered set type, where the code block of the first ordered set type is a code block of an ordered set type that corresponds to the code block of the first termination type as indicated by the mapping relationship, and the code block of the first termination type is any one of the code blocks of the at least two termination types.

For example, the O code block in which the information carried in the code block type field is 0x2d may correspond to a T code block in which information carried in a code block type field is OxE1.

For another example, the O code block in which the information carried in the code block type field is 0x55 may correspond to a T code block in which information carried in a code block type field is OxFF.

In addition, a bit carried in a synchronization header field of the T code block is <NUM>.

The modifying, by the receiving device, the target code block includes: modifying, by the receiving device, information carried in a synchronization header field of the first target code block to synchronization header information corresponding to the ordered set type.

The code block of the data type may also be referred to as a data (data, D) code block.

In this case, optionally, to be specific, the modifying, by the receiving device, information carried in a code block type field of the target code block includes: modifying, by the receiving device, the information carried in the code block type field of the first target code block from <NUM> to <NUM>.

A bit carried in a synchronization header field of the D code block is <NUM>.

To be specific, the modifying, by the receiving device, information carried in a synchronization header field of the target code block to information corresponding to the code block of the ordered set type includes: modifying, by the receiving device, the information carried in the synchronization header field of the target code block from <NUM> to <NUM>.

In addition, the inter-packet gap (inter packet gap, IPG) may also be referred to as an inter-frame gap, and refers to a transmission time interval between two Ethernet data packets.

Each data packet includes a plurality of code blocks, a first code block of a data packet may be an S code block, and a last code block of a data packet may be a T code block.

Optionally, before the determining, by the receiving device, a target code block from the code block stream, the method further includes: determining, by the receiving device, a termination location of the inter-packet gap based on a code block of a start type in the code block stream; and determining, by the receiving device, a start location of the inter-packet gap based on a code block of the termination type in the code block stream.

Specifically, any IPG (which is denoted as an IPG #<NUM>) may be located between two data packets (which is denoted as a data packet #<NUM> and a data packet #<NUM>). Assuming that the data packet #<NUM> is located before the data packet #<NUM> in a transmission sequence, a start location of the IPG #<NUM> may be determined by a termination location of the data packet #<NUM>, to be specific, the start location of the IPG #<NUM> may be determined by using a T code block in the data packet #<NUM>. In other words, when a device in the Ethernet receives the T code block in the data packet #<NUM>, it may be considered that the IPG #<NUM> starts. In addition, a termination location of the IPG #<NUM> may be determined by a start location of the data packet #<NUM>, to be specific, the start location of the IPG #<NUM> may be determined by using the T code block in the data packet #<NUM>. In other words, when the device in the Ethernet receives an S code block in the data packet #<NUM>, it may be considered that the IPG #<NUM> terminates.

For example, when the target code block includes the code block of the data type (the first target code block), each T code block in an Ethernet signal represents termination of a packet, and therefore, a start location of an inter-frame gap may be determined based on a location of the T code block.

In this case, optionally, the determining, by the receiving device, a target code block from the Ethernet signal includes: determining, by the receiving device as the target code block, a code block of the data type that is received within a period in which a value of first inter-packet gap indication information is a preset first value, where when the receiving device receives the code block of the start type, the first inter-packet gap indication information is set to a preset second value, and when the receiving device receives the code block of the termination type, the first inter-packet gap indication information is set to the first value.

Alternatively, optionally, the determining, by the receiving device, a target code block from the Ethernet signal includes: determining, by the receiving device, a code block located after a T code block as the target code block (the first target code block).

Alternatively, optionally, the determining, by the receiving device, a target code block from the Ethernet signal includes: determining, by the receiving device, a code block located before an S code block as the target code block (the first target code block).

For another example, when the target code block includes the code block of the termination type (the second target code block), some T code blocks in the Ethernet signal may be generated after O code blocks are controlled to be modified. In this case, a start location of an inter-frame gap may be determined based on a location of a first T code block after an S code block.

In this case, the determining, by the receiving device, a start location of the inter-packet gap based on a code block of the termination type in the code block stream includes: determining, by the receiving device, the start location of the inter-packet gap based on a code block of a first termination type in the code block stream, where the code block of the first termination type is a first code block that is of the termination type and that is located after the code block of the start type in a transmission sequence.

Optionally, the determining, by the receiving device, a target code block from the Ethernet signal includes: determining, by the receiving device as the target code block (the second target code block), a code block of the termination type that is received within a period in which a value of first inter-packet gap indication information is a preset first value, where when the receiving device receives the code block of the start type, the first inter-packet gap indication information is set to a preset second value, and when the receiving device receives the code block of the termination type within a period in which the value of first inter-packet gap indication information is the second value, the first inter-packet gap indication information is set to the first value.

According to a second aspect, a method for sending a code block stream is provided, including: determining, by a sending device, a code block stream in a first rate mode based on a code block stream of a plurality of code blocks that is in a second rate mode, where a code block of an ordered set type in the code block stream in the second rate mode is modified to a code block of a data type; and/or a code block of an ordered set type in the code block stream in the second rate mode is modified to a code block of a termination type; and sending, by the sending device, the code block stream in the first rate mode to a transport network, wherein the modified code block is sent by the sending device in an inter-packet gap.

Because the code block of the ordered set type is transmitted in an inter-packet gap, the sending device may modify the code block of the ordered set type to the code block of the data type or the code block of the termination type that can be recognized by the transport network. In this way, a receiving device can determine that the code block of the data type or the code block of the termination type that is located in the inter-packet gap is modified based on the code block of the ordered set type, and may further modify the code block of the data type or the code block of the termination type that is located in the inter-packet gap back to the code block of the ordered set type. This can not only ensure that the code block of the ordered set type can be transmitted by using the transport network, but also ensure that the receiving device reliably recognizes the code block of the ordered set type, thereby improving communication accuracy.

In this application, the code block stream in the first rate mode may be a code block stream (or a bit code block stream or a bit stream) that is processed (for example, encoded or decoded) at a physical coding sublayer PCS and that is in an Ethernet signal (for example, a high-speed Ethernet signal) transmitted in the transport network (for example, a FlexE network).

In addition, the code block stream in the second rate mode may be a code block stream (or a bit code block stream or a bit stream) that is processed at the PCS and that is in an Ethernet signal (for example, a medium-low-speed Ethernet signal) transmitted before a client device and a transport device (for example, an ingress device or an egress device of the transport network).

"A rate corresponding to the second rate mode is less than or equal to a rate corresponding to the first rate mode" may be understood as a case in which a signal that is in the second rate mode and that is used as a signal in a high-speed mode may be obtained by aggregation of one or more signals that are in a low-speed mode and that include a signal in the first rate mode.

Alternatively, "a rate corresponding to the second rate mode is less than or equal to a rate corresponding to the first rate mode" may be understood as a case in which a quantity of slots that can be included by a signal in the second rate mode is greater than a quantity of slots that can be included in a signal in the first rate mode.

Optionally, the code block in the code block stream may be a 64B/66B code block, or may be a code block of any M bits/N bits, where M is less than or equal to N.

The code block of the ordered set type may also be referred to as an O code block.

For example, the O code block may include a code block in which information carried in a code block type field is 0x2d.

A bit carried in a synchronization header field of the O code block is <NUM>.

Optionally, information carried in a code block type field of the code block of the ordered set type is modified to code block type information corresponding to the termination type.

For example, the T code block may include a code block in which information carried in a code block type field is at least one of the following information:
0x87, 0x99, 0xAA, 0xB4, 0xCC, 0xD2, OxE1, and OxFF.

To be specific, the method includes: modifying, by the sending device, the information carried in the code block type field of the code block of the ordered set type from 0x2d or 0x55 to one of 0x87, 0x99, 0xAA, 0xB4, 0xCC, 0xD2, 0xE1, and 0xFF.

Optionally, the determining, by a sending device, a code block stream in a first rate mode based on a code block stream of a plurality of code blocks that is in a second rate mode includes: modifying, by the sending device based on a mapping relationship, information carried in a code block type field of a code block of a first ordered set type to information corresponding to a first termination type, where the mapping relationship is used to indicate a one-to-one mapping relationship between at least two termination types and at least two ordered set types, the first ordered set type corresponds to the first termination type, and the first ordered set type is any one of the at least two ordered set types.

Optionally, information carried in a synchronization header field of the code block of the ordered set type is modified to synchronization header information corresponding to the data type.

To be specific, the method includes: modifying, by the receiving device, the information carried in the synchronization header field of the code block of the ordered set type to the synchronization header information corresponding to the data type.

To be specific, in this case, the modifying, by the receiving device, the information carried in the synchronization header field of the code block of the ordered set type to the synchronization header information corresponding to the data type includes: modifying, by the receiving device, the information carried in the synchronization header field of the code block of the ordered set type from <NUM> to <NUM>.

In addition, the inter-packet gap IPG may also be referred to as an inter-frame gap, and refers to a transmission time interval between two Ethernet data packets.

According to a third aspect, a communications apparatus is provided, including a processing unit and a transceiver unit configured to perform various steps of the method in the first aspect and various implementations of the first aspect. According to a fourth aspect, a communications apparatus is provided, including a processing unit and a transceiver unit configured to perform various steps of the method in the second aspect and various implementations of the second aspect.

According to the solutions in this application, because the code block of the ordered set type is transmitted in the inter-packet gap, the sending device may modify the code block of the ordered set type to the code block of the data type or the code block of the termination type that can be recognized by the transport network. In this way, the receiving device can determine that the code block of the data type or the code block of the termination type that is located in the inter-packet gap is modified based on the code block of the ordered set type, and may further modify the code block of the data type or the code block of the termination type that is located in the inter-packet gap back to the code block of the ordered set type. This can not only ensure that the code block of the ordered set type can be transmitted by using the transport network, but also ensure that the receiving device reliably recognizes the code block of the ordered set type, thereby improving communication accuracy.

<FIG> is a schematic diagram of an example of an Ethernet system <NUM> according to this application.

The communications system includes at least three client devices. For example, as shown in <FIG>, the communications system may include a plurality of client devices <NUM>.

In addition, the plurality of client devices <NUM> may communicate with each other by using a transport network (which may also be referred to as a forwarding network).

As an example instead of a limitation, the transport network may be, for example, an optical communications network.

The transport network may include a plurality of transport devices <NUM>.

In this application, each client device <NUM> may be communicatively connected to one or more transport devices <NUM>.

<FIG> is a schematic diagram of an example of a structure of a transport network.

As shown in <FIG>, the transport network may include a network edge (provider edge, PE) device and a network (provider, P) device.

The P device has a network side interface (network to network interface, NNI). The NNI interface is configured to transmit data that complied with a communications protocol of the transport network. The NNI interface may include a common Ethernet interface (for example, a <NUM> BASE-R mode interface), or the NNI interface may include a FlexE interface.

In addition to the NNI, the PE device is further disposed with a user side interface (user network interface, UNI). The UNI interface is used for data transmission between the PE device and a client device.

For an Ethernet signal, a PE device connected to a source client device of the Ethernet signal may be referred to as an ingress device (or an ingress transport device) for the Ethernet signal, and a PE device connected to a destination client device of the Ethernet signal may be referred to as an egress device (or an egress transport device) for the Ethernet signal.

When the source client device sends a signal to the destination client device, the source client device may generate the signal and transmit the signal to a transport device that is communicatively connected to the source client device, so that the transport device may route (or forward) the signal to the target client device of the signal.

In addition, the ingress transport device for the source client device in the transport network may further process the signal (for example, forwarding processing or encapsulation processing) to convert the signal into a signal that can be transmitted in the transport network, and transmit the signal to another transport device (for example, the egress transport device for the target client device) that is configured to transmit a signal to the destination receiving device in the transport network.

In addition, a transport device may further receive, from another transport device or client device, a signal that needs to be sent to a client device that is communicatively connected to the transport device, may process the signal (for example, transcoding processing or decapsulation processing) to convert the signal into a signal that can be recognized by the client device, and transmit a processed signal to the client device, so that the client device can parse the received signal to obtain data carried in the signal.

In addition, a signal transmitted between any two client devices may be processed and forwarded by using one transport device, or may be processed and forwarded by using a plurality of transport devices. This is not specifically limited in this application.

It should be understood that a quantity of client devices and a quantity of transport devices shown in <FIG> are merely examples for description. This is not specifically limited in this application.

The client device may be, for example, a client device such as a personal computer, and the client device can perform communication by using a medium such as an Ethernet or an optical fiber.

The client device may alternatively be a network device. The network device may be a server that provides various services for user equipment, for example, a software-defined networking (software defined network, SDN) server, a world wide web (web) server, a file transfer protocol (file transfer protocol, FTP) server, a key enterprise application server and another key task server (for example, a server that provides a firewall service), or a service processing unit (service process unit, SPU) in the communications (communication technology, CT) field.

The transport device may be a device such as a gateway device, a switch, or a router.

The client device may be a transmit end of a signal, or may be a receive end of a signal.

A transmit end client device may generate, according to Ethernet protocol specifications, a client Ethernet signal that can be recognized by a receive end Ethernet device. In addition, the transmit end client device may send the client Ethernet signal to an ingress transport device that is communicatively connected to the transmit end client device in the transport network.

The ingress transport device may encapsulate, according to Ethernet protocol specifications, the client Ethernet signal into a forwarding Ethernet signal that can be recognized by a transport device in the transport network.

The transport network routes the forwarding Ethernet signal to an egress transport device that is communicatively connected to a receive end client device.

The egress transport device may decapsulate the forwarding Ethernet signal, to restore the client Ethernet signal and send the client Ethernet signal to the client device.

The following describes the client Ethernet signal with reference to <FIG>.

The client Ethernet signal may be a medium-low-speed Ethernet signal, or an interface mode of the client Ethernet signal may be a <NUM> BASE-R mode, a <NUM> BASE-R mode, or a <NUM> BASE-R mode.

In addition, the medium-low-speed Ethernet signal may be constituted by a <NUM>-bit (bit, B)/66B code block (block) of a medium-low-speed Ethernet.

The 64B/66B code block of the medium-low-speed Ethernet may include a <NUM>-bit synchronization header field (sync header field) and an <NUM>-byte (<NUM> bits) code block payload (block payload).

In addition, the 64B/66B code block of the medium-low-speed Ethernet may include a data code block (data block) and a control code block (control block).

The control code block may also include a code block of an ordered set (ordered set, O) type, which is referred to as an O code block; a code block of a start (started) type, which is referred to as an S code block; and a code block of a termination (terminated) type, which is referred to as a T code block.

In this application, information (specifically, a <NUM>-bit character) carried in a synchronization header field of the control code block may include <NUM>.

In this application, a code block payload of the control code block may include a <NUM>-byte code block type field (block type field).

To be specific, in this application, one code block may include a <NUM>-bit synchronization header field, an <NUM>-bit (<NUM>-byte) code block type field, and a <NUM>-bit (<NUM>-byte) payload field (payload field).

<FIG> is a schematic diagram of an example of a coding format for the 64B/66B code block of the medium-low-speed Ethernet. As shown in <FIG>, for example, information (specifically, a hexadecimal character) carried in a code block type field of the O code block may include but is not limited to 0x2d and 0x55.

Herein, "0x" may be used to indicate that a value following 0x is hexadecimal. Descriptions of the same or similar cases are omitted below.

Hereinafter, for ease of understanding and differentiation, a code block in which information carried in a code block type field is 0x2d is referred to as a 0x2d code block, and a code block in which information carried in a code block type field is 0x55 is referred to as a 0x55 code block.

It should be understood that the coding format for the 64B/66B code block of the medium-low-speed Ethernet shown in <FIG> is merely an example for description, and this application is not limited thereto. In the prior art, other coding formats, for code blocks, that can be used in the medium-low-speed Ethernet all fall within the protection scope of this application, for example, an error (error) code block, an idle (idle) code block, and a low power idle (low power idle, LPI) code block.

In addition, a coding process of the 64B/66B code block of the medium-low-speed Ethernet may be performed in a physical coding sublayer (physical coding sublayer, PCS) entity of a transmit end client device.

The physical coding sublayer is located between a reconciliation sublayer (reconciliation sublayer, RS) and a physical medium access sublayer (physical medium attachment sublayer, PMAS).

The physical coding sublayer is used to map a well-defined Ethernet MAC function to existing coding and a function of a physical layer signal system. In addition, the physical coding sublayer is used for line coding and cyclic redundancy check (cyclic redundancy check, CRC) check coding.

Correspondingly, a decoding process of the 64B/66B code block of the medium-low-speed Ethernet may be performed in a physical coding sublayer entity of a receive end client device.

In this application, an Ethernet signal that is constituted by the 64B/66B code block of the medium-low-speed Ethernet may include a plurality of data packets (packets).

<FIG> shows an example of an Ethernet code stream with the foregoing structure. As shown in <FIG>, each data packet may include one S code block, a plurality of D code blocks, and one T code block.

The S code block is used to indicate a start of the data packet, and the T code block is used to indicate a termination of the data packet.

In addition, in this application, there may be a time interval between two adjacent data packets, and the time interval may also be referred to as an inter-packet gap or an inter-frame gap.

As shown in <FIG>, an O code block or the like is transmitted in the inter-packet gap.

In addition, the coding process and the decoding process of the client Ethernet signal may be similar to those in the prior art. To avoid repetition, detailed descriptions are omitted herein.

The following describes the forwarding Ethernet signal with reference to <FIG>.

A high-speed Ethernet signal transmitted in the transport network may also be referred to as a FlexE client (client).

The FlexE client is used to encapsulate user data and transmit the data in a data transmission manner defined for a FlexE interface. One FlexE client may carry a data stream of one user.

Specifically, in an Ethernet system, for example, slots may be divided in a time division multiplexing (time division multiplexing, TDM) mode to implement hard isolation in transmission pipe bandwidth, and one service data stream may be allocated to one to more slots, thereby implementing matching of various rate services.

One FlexE group (Group) may include one or more bundled physical link interfaces with a same rate (for example, <NUM> BASE-R, <NUM> BASE-R, or <NUM> BASE-R), and each FlexE group carries one or more FlexE instances (Instance).

To be specific, in this application, the forwarding Ethernet signal may be a high-speed Ethernet signal, or an interface mode of the forwarding Ethernet signal may be a <NUM> BASE-R mode, a <NUM> BASE-R mode, or a <NUM> BASE-R mode.

A FlexE instance may be a unit that carries a FlexE client, and each FlexE instance may support, for example, a rate of <NUM> Gbps.

A slot allocation table corresponding to a FlexE group is referred to as a FlexE slot calendar (calendar), a slot mapping table corresponding to a single FlexE client is referred to as a sub-slot allocation table (sub-calendar), and a granularity of each slot is <NUM> Gb or <NUM> Gb. A calendar of one FlexE group is constituted by one or more sub-calendars, and each sub-calendar indicates how to allocate these slots to a corresponding FlexE client. The FlexE client represents a client data stream transmitted in a specified slot (one or more slots) in a FlexE instance specified on the FlexE Group, and one FlexE group may carry a plurality of FlexE clients.

One FlexE client may correspond to one to more user service data streams (MAC Client), and a FlexE shim (Shim) may provide data adaptation and conversion from the FlexE client to a MAC client.

For example, in a FlexE group crossing four physical interfaces (for example, a <NUM> BASE-R physical interface), each physical interface may have twenty <NUM> Gb sub-slots. Therefore, the FlexE group has 20x4 sub-slots (sub-calendar).

In addition, the high-speed Ethernet signal may be constituted by a <NUM>-bit (bit, B)/66B code block (block) of a high-speed Ethernet.

The 64B/66B code block of the high-speed Ethernet may include a <NUM>-bit synchronization header field and an <NUM>-byte code block payload.

In addition, the 64B/66B code block of the high-speed Ethernet may include a data code block (data block) and a control code block (control block).

The control code block may also include an O code block, an S code block, and a T code block.

In this application, a code block payload of the control code block may include a <NUM>-byte code block type field.

<FIG> is a schematic diagram of an example of a coding format for the 64B/66B code block of the high-speed Ethernet. As shown in <FIG>, for example, information (specifically, a hexadecimal character) carried in a code block type field of the O code block may include but is not limited to 0x4B.

It should be understood that the coding format for the 64B/66B code block of the high-speed Ethernet shown in <FIG> is merely an example for description, and this application is not limited thereto. In the prior art, other coding formats, for code blocks, that can be used in the medium-low-speed Ethernet all fall within the protection scope of this application, for example, an error code block, an idle code block, and a low power idle code block.

In addition, a conversion (or encapsulation) process from the 64B/66B code block of the medium-low-speed Ethernet to the 64B/66B code block of the high-speed Ethernet or an encapsulation process from the medium-low-speed Ethernet signal to the high-speed Ethernet signal may be performed in a physical coding sublayer entity of an ingress transport device.

Correspondingly, a conversion (or decapsulation) process from the 64B/66B code block of the high-speed Ethernet to the 64B/66B code block of the medium-low-speed Ethernet or an encapsulation process from the high-speed Ethernet signal to the medium-low-speed Ethernet signal may be performed in a physical coding sublayer entity of an egress transport device.

Similar to the Ethernet signal that is constituted by the 64B/66B code block of the medium-low-speed Ethernet, in this application, an Ethernet signal that is constituted by the 64B/66B code block of the high-speed Ethernet may include a plurality of data packets.

As shown in <FIG>, each data packet may include one S code block, a plurality of D code blocks, and one T code block.

In addition, in this application, there may be a time interval between two adjacent data packets, and the time interval may also be referred to as an inter-packet gap or an inter-frame gap. As shown in <FIG>, an O code block or the like may be transmitted in the inter-packet gap.

As shown in <FIG> and <FIG>, some O code blocks, such as a 0x2d code block or a 0x55 code block, in the coding format for the medium-low-speed Ethernet signal (or the client Ethernet signal) do not exist in the coding format for the high-speed Ethernet signal (or the forwarding Ethernet signal).

If the 0x2d code block or the 0x55 code block enters the transport network, a transmission error is caused because a transport device cannot recognize the 0x2d code block or 0x55 code block.

In view of this, the following processing process may be used in this application to avoid a transmission error.

<FIG> is a schematic interaction diagram of an example of an Ethernet signal transmission process <NUM> according to this application.

As shown in <FIG>, in S210, a client device #A may generate an Ethernet signal #A. The Ethernet signal #A may be a medium-low-speed Ethernet signal, to be specific, an interface mode of the Ethernet signal #A may be a <NUM> BASE-R mode, a <NUM> BASE-R mode, or a <NUM> BASE-R mode.

<FIG> shows an example of a structure of a PCS layer code block stream of the Ethernet signal #A. As shown in <FIG>, the PCS layer code block stream of the Ethernet signal #A may include a plurality of data packets, there is an inter-packet gap between two data packets that are adjacent to each other in a sending sequence, and there may be an O code block, such as a 0x2d code block (as shown by "O<NUM>" in <FIG>), a 0x4B code block (as shown by "O<NUM>" in <FIG>), and a 0x55 code block (as shown by "O<NUM>" in <FIG>), and an idle code block (as shown by "I" in <FIG>) in the inter-packet gap.

It should be noted that the structure of the code block stream shown in <FIG> is merely an example for description, and this application is not limited thereto. For example, only one of the 0x2d code block and the 0x55 code block may exist in the inter-packet gap.

In addition, because the 0x4B code block exists in both the medium-low-speed Ethernet signal and a high-speed Ethernet signal, code blocks that need to be modified in this application do not include the 0x4B code block.

In addition, a process of generating the Ethernet signal #A may be similar to that in the prior art. To avoid repetition, detailed descriptions are omitted herein.

In S220, the client device #A may send the Ethernet signal #A to a PE device that is communicatively connected to the client device #A. In the following, for ease of understanding and differentiation, the PE device is denoted as an ingress PE device #B.

In S230, the ingress PE device #B may modify the Ethernet signal #A to convert a code block (to be specific, the 0x2d code block and/or the 0x55 code block) that is in the Ethernet signal #A and that cannot be recognized by a transport network (specifically, each transport device) into a code block that can be recognized by the transport network.

As an example instead of a limitation, the following modification manners may be listed in this application.

When the PCS layer code block stream of the Ethernet signal #A includes the 0x2d code block, the ingress PE device #B may modify the 0x2d code block to a D code block.

<FIG> is a schematic diagram of a change of the 0x2d code block in a modification process in Manner <NUM>. As shown in <FIG>, the ingress PE device #B may modify information carried in a synchronization header field of the 0x2d code block from information (for example, "<NUM>") corresponding to a control type code block to information (for example, "<NUM>") corresponding to a data type code block.

When the PCS layer code block stream of the Ethernet signal #A includes the 0x55 code block, the ingress PE device #B may modify the 0x55 code block to a D code block.

<FIG> is a schematic diagram of a change of the 0x55 code block in a modification process in Manner <NUM>. As shown in <FIG>, the ingress PE device #B may modify information carried in a synchronization header field of the 0x55 code block from information (for example, "<NUM>") corresponding to a control type code block to information (for example, "<NUM>") corresponding to a data type code block.

<FIG> shows a change of the PCS layer code block stream, of the Ethernet signal, that is shown in <FIG> and that is obtained after modification is performed based on Manner <NUM>. As shown in <FIG>, after the modification is performed based on Manner <NUM>, the 0x2d code block and/or the 0x55 code block in the PCS layer code block stream of the low-speed Ethernet signal are converted into D code blocks.

When the PCS layer code block stream of the Ethernet signal #A includes the 0x2d code block, the ingress PE device #B may modify the 0x2d code block to a T code block.

Specifically, the ingress PE device #B may modify information carried in a code block type field of the 0x2d code block from information (for example, "0x2d") corresponding to the 0x2d code block to information (for example, any piece of information in "0x87", "0x99", "0xAA", "0xB4", "OxCC", "OxD2", "0xE1", and "0xFF") corresponding to the T code block.

When the PCS layer code block stream of the Ethernet signal #A includes the 0x55 code block, the ingress PE device #B may modify the 0x55 code block to a T code block.

Specifically, the ingress PE device #B may modify information carried in a code block type field of the 0x55 code block from information (for example, "0x55") corresponding to the 0x55 code block to information (for example, any piece of information in "0x87", "0x99", "0xAA", "0xB4", "OxCC", "OxD2", "0xE1", and "0xFF") corresponding to the T code block.

It should be noted that the 0x2d code block and the 0x55 code block may both exist in an Ethernet signal in actual transmission. Therefore, in this case, if the information carried in the code block type field of the 0x2d code block and the information carried in the code block type field of the 0x55 code block are modified to information corresponding to a same T code block (which is denoted as T code block #<NUM>), an egress PE device cannot determine whether the T code block #<NUM> in the received Ethernet signal should be restored to the 0x2d code block or the 0x55 code block. The egress PE device may be a PE device that is communicatively connected to a destination client device of the Ethernet signal #A. In the following, for ease of understanding and differentiation, the PE device is denoted as an egress PE device #C.

In view of this, in this application, a mapping relationship #A may be stored on the egress PE device #C and the ingress PE device #B in advance.

The mapping relationship #A may be used to indicate a correspondence between the 0x2d code block and a T code block (which is denoted as a T code block #a), and the mapping relationship #A may be used to indicate a correspondence between the 0x55 code block and another T code block (which is denoted as a T code block #b).

To be specific, the ingress PE device #B may modify, based on an indication of the mapping relationship #A, the information carried in the code block type field of the 0x2d code block from the information (for example, "0x2d") corresponding to the 0x2d code block to information corresponding to a code block type field of the T code block #a.

As an example instead of a limitation, the T code block #a may be a T6 code block, to be specific, the T code block #a may be a code block in which information corresponding to a code block type field is "OxE1".

Because a quantity of bytes that can be used to carry data in the T6 code block is relatively large, modifying the 0x2d code block to the T6 code block can ensure that information in a modified code block is not lost, thereby further improving an effect of this application.

It should be understood that a specific example of the listed T code block #a is merely an example for description, and this application is not limited thereto. The T code block #a may be any one of T0 to T7 code blocks, provided that it is ensured that the T code block #a is different from the T code block #b.

<FIG> is a schematic diagram of a change of the 0x2d code block in a modification process in Manner <NUM>. As shown in <FIG>, the ingress PE device #B may modify the information carried in the code block type field of the 0x2d code block from "0x2d" to "0xE1".

Optionally, as shown in <FIG>, in this application, the ingress PE device #B may alternatively shift information carried in an "O4" byte in the 0x2d code block to a "D0" byte in the T6 code block, may shift information carried in a "D5" byte in the 0x2d code block to a "D1" byte in the T6 code block, may shift information carried in a "D6" byte in the 0x2d code block to a "D2" byte in the T6 code block, and may shift information carried in a "D7" byte in the 0x2d code block to a "D3" byte in the T6 code block.

In addition, the ingress PE device #B may further fill a specified bit such as "<NUM>" in "D4", "D5", "D6", and "D7" bytes in the T6 code block that are generated based on the foregoing modification.

In addition, because a quantity of bits included in the information carried in the "O4" byte in the 0x2d code block is less than one byte, the information carried in the "O4" byte in the 0x2d code block occupies only some bits in the "D0" byte in the T6 code block, the information carried in the "D5" byte in the 0x2d code block occupies the other bits in the "D0" byte and some bits in the "D1" byte in the T6 code block, the information carried in the "D6" byte in the 0x2d code block occupies the other bits in the "D1" byte and some bits in the "D2" byte in the T6 code block, and the information carried in the "D7" byte in the 0x2d code block occupies the other bits in the "D2" byte and some bits in the "D3" byte in the T6 code block.

In addition, in this case, a specified bit such as "<NUM>" may be filled in the other bits in the "D3" byte in the T6 code block (to be specific, bits in which the information carried in the "D7" byte in the 0x2d code block are not filled).

In conclusion, as shown in <FIG>, in this application, the ingress PE device #B may alternatively shift information carried in the "O4" byte, the "D5" byte, the "D6" byte, and the "D7" byte in the 0x2d code block to the "D0" byte, the "D1" byte, the "D2" byte, and the "D3" byte in the T6 code block, and a location relationship between bits after the shift is the same as a location relationship between bits before the shift.

As an example instead of a limitation, the T code block #b may be a T7 code block, to be specific, the T code block #b may be a code block in which information corresponding to a code block type field is "0xFF".

Because a quantity of bytes that can be used to carry data in the T7 code block is relatively large, modifying the 0x55 code block to the T7 code block can ensure that information in a modified code block is not lost, thereby further improving an effect of this application.

It should be understood that a specific example of the listed T code block #b is merely an example for description, and this application is not limited thereto. The T code block #b may be any one of T0 to T7 code blocks, provided that it is ensured that the T code block #a is different from the T code block #b.

<FIG> is a schematic diagram of a change of the 0x55 code block in a modification process in Manner <NUM>. As shown in <FIG>, the ingress PE device #B may modify the information carried in the code block type field of the 0x2d code block from "0x55" to "0xFF".

It should be noted that the mapping relationship #A may be determined by a management device in the transport network and delivered to each transport device, or the mapping relationship #A may be specified in a communications system or a communications protocol in advance, or the mapping relationship #A may be determined through negotiation between the ingress PE and the egress PE, or the mapping relationship #A may be entered by a user or an administrator to the ingress PE and the egress PE, or the mapping relationship #A may be configured on the ingress PE and the egress PE by a manufacturer or an operator. This is not specifically limited in this application.

<FIG> shows a change of the PCS layer code block stream, of the Ethernet signal, that is shown in <FIG> and that is obtained after modification is performed based on Manner <NUM>. As shown in <FIG>, after the modification is performed based on Manner <NUM>, the 0x2d code block and/or the 0x55 code block in the PCS layer code block stream of the low-speed Ethernet signal are converted into T code blocks.

In Manner <NUM> and Manner <NUM>, a modification process for each code block may be similar to a process described in Manner <NUM> or Manner <NUM>. To avoid repetition, detailed descriptions are omitted herein.

It should be noted that in this application, because the egress PE device #C needs to restore the modified code block described above, a restoration manner used by the egress PE device #C needs to correspond to a modification manner used by the ingress PE device #B (for example, the restoration manner and the modification manner are processing mutually reverse to each other), so as to ensure accuracy of the restoration.

As an example instead of a limitation, in this application, the modification manner used by the ingress device #A may be specified in a communications system or a communications protocol in advance; or the modification manner used by the ingress device #A may be determined through negotiation between the egress PE device #C and the ingress PE device #B; or the modification manner used by the ingress device #A may be determined by the management device of the transport network and delivered to the ingress PE device #B, and the management device may deliver the restoration manner corresponding to the modification manner to the egress PE device #C.

In addition, in S240, the ingress PE device #B may generate, based on a modified Ethernet signal #A, a high-speed Ethernet signal (for example, an Ethernet signal supported by the FlexE client) to be transmitted in the transport network. In the following, for ease of understanding and description, the high-speed Ethernet signal is referred to as an Ethernet signal #B. In addition, the ingress PE device #B may send the Ethernet signal #B to the egress PE device #C by using the transport network. A process may be similar to that in the prior art. To avoid repetition, detailed descriptions are omitted herein.

In S250, the egress PE device #C may determine, from a PCS layer code block stream of the received Ethernet signal #B, a code block modified by the ingress PE device #B. In the following, for ease of understanding and differentiation, the code block is denoted as a code block #A.

Because the code block #A is generated after the ingress PE device #B modifies an O code block (for example, the 0x2d code block or the 0x55 code block), and the O code block exists in an IPG. Therefore, the egress PE device #C may determine the code block #A based on an inter-frame gap of the PCS layer code block stream of the Ethernet signal #B.

The code block #A may include only a D code block (Case <NUM>) or the code block #A may include a T code block (Case <NUM>). In the foregoing different cases, a method for determining an inter-frame gap is different. The following separately describes in detail processes of determining an inter-frame gap by the egress PE device #C in the foregoing cases.

The code block #A may include only a D code block. It may be understood that the ingress PE device #B modifies the 0x2d code block or the 0x55 code block to a D code block, or the ingress PE device #B does not modify the 0x2d code block or the 0x55 code block to a T code block.

In this case, T code blocks in the PCS layer code block stream of the Ethernet signal #B are all T code blocks in the PCS layer code block stream of the Ethernet signal #A. To be specific, each T code block in the PCS layer code block stream of the Ethernet signal #B may indicate a termination of a data packet to which the T code block belongs. Alternatively, each T code block in the PCS layer code block stream of the Ethernet signal #B may determine a start of an inter-packet gap located after the T code block.

For example, the egress PE device #C may determine an inter-packet gap in the PCS layer code block stream of the Ethernet signal #B based on a T code block and an S code block in the PCS layer code block stream of the Ethernet signal #B, to be specific, any inter-packet gap (for example, an inter-packet gap #<NUM>) meets the following condition:.

The inter-packet gap #<NUM> is located between a data packet #<NUM> and a data packet #<NUM> that are adjacent to each other in a transmission sequence, or the inter-packet gap #<NUM> is located between a T code block of the data packet #<NUM> and an S code block of the data packet #<NUM>.

Therefore, the egress PE device #C may determine, as the code block #A, a D code block received in the inter-packet gap.

For another example, after receiving a T code block, the egress PE device #C may determine, as the code block #A, a D code block received after the T code block until the S code block is received.

For another example, <FIG> shows an example of a processing process of the egress PE device #C. As shown in <FIG>, the egress PE device #C may store IPG information, and the IPG information may be used to determine an inter-packet gap.

To be specific, after receiving a T code block, the PE device #A may set a value of the IPG information to a value, for example, "<NUM>", indicating that a current time period is the inter-packet gap.

In addition, after receiving the T code block, the PE device #A may set the value of the IPG information to a value, for example, "<NUM>", indicating that the current time period is not the inter-packet gap.

In this case, the egress PE device #C may determine, as the code block #A, a D code block received in a period in which the value of the IPG information is "<NUM>".

Optionally, after the egress PE device #C is powered on (or started), the value of the IPG information may be set to "<NUM>". Therefore, when an inter-packet gap exists before a first data packet of the Ethernet signal #A and an O code block exists in the inter-packet gap, it can be ensured that the egress PE device #C identifies a D code block modified based on the O code block.

The code block #A may include a T code block, and it may be understood that the code block #A may include only the T code block. To be specific, the ingress PE device #B modifies the 0x2d code block or the 0x55 code block to a T code block.

Alternatively, the code block #A may include a T code block, and it may be understood that the code block #A may include both the T code block and a D code block. To be specific, the ingress PE device #B modifies one of the 0x2d code block or the 0x55 code block to a T code block, and the ingress PE device #B modifies the other of the 0x2d code block or the 0x55 code block to a D code block.

In this case, T code blocks in the PCS layer code block stream of the Ethernet signal #B may include a T code block in the PCS layer code block stream of the Ethernet signal #A and a T code block generated based on the O code block. To be specific, some T code blocks in the PCS layer code block stream of the Ethernet signal #B each may indicate a termination of a data packet to which the T code block belongs, and the other T code blocks each cannot indicate a termination of a data packet. Alternatively, some T code blocks in the PCS layer code block stream of the Ethernet signal #B each may determine a start of an inter-packet gap located after the T code block, and the other T code blocks each cannot indicate a start of an inter-packet gap.

The T code block of the data packet #<NUM> is a first T code block after the S code block of the data packet #<NUM>.

In this case, the egress PE device #C may determine, as the code block #A, a D code block or a T code block received in the inter-packet gap.

For another example, after receiving an S code block, the egress PE device #C may determine a first T code block after the S code block, and determine, as the code block #A, a D code block or a T code block received after the T code block, until the S code block is received.

To be specific, after receiving an S code block, the PE device #A may set a value of the IPG information to a value, for example, "<NUM>", indicating that a current time period is not the inter-packet gap.

In addition, after receiving a T code block, if the value of the IPG information is "<NUM>", the PE device #A may set the value of the IPG information to a value, for example, "<NUM>", indicating that the current time period is the inter-packet gap.

In this case, the egress PE device #C may determine, as the code block #A, a D code block or a T code block received in a period in which the value of the IPG information is "<NUM>".

In addition, the egress PE device #C performs restoration processing on the code block #A to restore the code block #A to a code block (to be specific, the 0x2d code block and/or the 0x55 code block) corresponding to the code block #A in the Ethernet signal #A.

When the ingress PE device #B performs a modification in Manner <NUM>, the egress PE device #C may modify the code block #A to the 0x2d code block or the 0x55 code block.

<FIG> is a schematic diagram of a change of the code block #A in a modification process of Manner a. As shown in <FIG>, the egress PE device #C may modify information carried in a synchronization header field of the code block #A from the information (for example, "<NUM>") corresponding to the data type code block to the information (for example, "<NUM>") corresponding to the control type code block.

It should be noted that in Manner a, the code block #A may be the 0x2d code block or the 0x55 code block. This is not specifically limited in this application.

The egress PE device #C may modify information carried in a code block type field of the code block #A from the information (for example, any piece of information in "0x87", "0x99", "0xAA", "0xB4", "OxCC", "OxD2", "0xE1", and "0xFF") corresponding to the T code block to the information (for example, "0x2d") corresponding to the 0x2d code block or the information (for example, "0x55") corresponding to the 0x55 code block.

It should be noted that the 0x2d code block and the 0x55 code block may both exist in an Ethernet signal in actual transmission. Therefore, in this case, the egress PE device #C may not be able to determine whether the information corresponding to the T code block is modified to the information corresponding to the 0x2d code block or the information corresponding to the 0x55 code block.

In view of this, in this application, the mapping relationship #A may be stored on the egress PE device #C and the ingress PE device #B in advance.

In this case, the egress PE device #C may modify, based on an indication of the mapping relationship #A, information carried in a code block type field of the T code block #a to the information (for example, "0x2d") corresponding to the 0x2d code block.

<FIG> is a schematic diagram of a change of the T code block #a in a modification process of Manner <NUM>. As shown in <FIG>, the egress PE device #C may modify the information carried in the code block type field of the T code block #a that is located in an inter-packet gap in the Ethernet signal #B from "OxE1" to "0x2d".

Optionally, as shown in <FIG>, in this application, the egress PE device #C may further shift information carried in a "D0" byte in the T6 code block to an "O4" byte in the 0x2d code block, may shift information carried in a "D1" byte in the T6 code block to a "D5" byte in the 0x2d code block, may shift information carried in a "D2" byte in the T6 code block to a "D6" byte in the 0x2d code block, and may shift information carried in a"D3" byte in the T6 code block to a "D7" byte in the 0x2d code block.

In addition, the egress PE device #C may further fill a specified bit in "C0", "C1", "C2", and "C03" bytes in the 0x2d code block that are generated based on the foregoing modification.

<FIG> is a schematic diagram of a change of the T7 code block in a modification process of Manner b. As shown in <FIG>, the egress PE device #C may modify the information carried in the code block type field of the T7 code block from "0xFF" to "0x55".

When the ingress PE device #B performs a modification in Manner c, the egress PE device #C may modify a D code block received in an inter-packet gap to the 0x2d code block, and modify a T code block received in the inter-packet gap to the 0x55 code block.

When the ingress PE device #B performs a modification in Manner c, the egress PE device #C may modify a D code block received in an inter-packet gap to the 0x55 code block, and modify a T code block received in the inter-packet gap to the 0x2d code block.

It should be noted that in this application, because the egress PE device #C needs to restore the modified code block described above, a restoration manner used by the egress PE device #C needs to correspond to the modification manner used by the ingress PE device #B (for example, the restoration manner and the modification manner are processing mutually reverse to each other), so as to ensure accuracy of the restoration.

In S260, the egress PE device #C may send, to a client device #D, a signal (which is denoted as an Ethernet signal #C) that is generated after the foregoing restoration processing, so that the client device #D can obtain, based on the Ethernet signal #C, various information carried in the Ethernet signal #A.

According to the solution provided in this application, a process of converting an O code block from a medium-low-speed Ethernet signal into a high-speed Ethernet signal can be completed without loss of information. Complete codeword transparency can be implemented without loss of information in an original code block stream.

In addition, the foregoing code block conversion process has a transcoding efficiency of <NUM>: <NUM>, no additional bit overheads are required, bandwidth expansion is not caused, and transmission resources are not wasted. It can be implemented that 5GE occupies only one <NUM> slot (slot) of the FlexE, 10GE occupies only two <NUM> slots of the FlexE, and 25GE occupies only five <NUM> slots of the FlexE.

The solution provided in this application can comply with existing PCS layer coding specifications of <NUM> BASE-R, <NUM> BASE-R, and <NUM> BASE-R, without affecting a standard code block processing mechanism (for example, an IDLE-based code block adjustment mechanism).

According to the solution provided in this application, an Ethernet signal (to be specific, the medium-low-speed Ethernet signal) from a client device can be transmitted in a codeword transparent (codeword transparent) manner in the transport network, where the codeword is a combination of a group of several bits of binary code, and the codeword transparency indicates that a transport network that carries and transports a user client signal does not lose or tamper with information of any codeword in a user client signal data stream when transmitting the data stream that carries the codeword.

According to the foregoing method, <FIG> is a schematic diagram of a communications apparatus <NUM> according to an embodiment of this application. As shown in <FIG>, the apparatus <NUM> may be an ingress transport device (a receiving device, for example, an egress PE device), or may be a chip or a circuit, for example, a chip or a circuit that can be disposed in an ingress transport device.

The communications apparatus <NUM> may include a processing unit <NUM> (an example of a processing unit) and a storage unit <NUM>. The storage unit <NUM> is configured to store an instruction, and the processing unit <NUM> is configured to execute the instruction stored in the storage unit <NUM>, so that the communications apparatus <NUM> implements steps performed by a transport device (a receiving device, for example, the egress PE device #C) in the foregoing method.

Further, the apparatus <NUM> may include an input port <NUM> (an example of a communications unit) and an output port <NUM> (another example of the communications unit). Further, the processing unit <NUM>, the storage unit <NUM>, the input port <NUM>, and the output port <NUM> may communicate with each other by using an internal connection path, to transmit a control and/or data signal. The storage unit <NUM> is configured to store a computer program. The processing unit <NUM> may be configured to invoke the computer program from the storage unit <NUM> and run the computer program, to control the input port <NUM> to receive a signal, and control the output port <NUM> to send a signal, so as to implement the steps performed by the terminal device in the foregoing method. The storage unit <NUM> may be integrated into the processing unit <NUM>, or the storage unit <NUM> and the processing unit <NUM> may be separately disposed.

Optionally, if the communications apparatus <NUM> is a transport device, the input port <NUM> is a receiver, and the output port <NUM> is a transmitter. The receiver and the transmitter may be a same physical entity or different physical entities. When the receiver and the transmitter are a same physical entity, the receiver and the transmitter may be collectively referred to as a transceiver.

Optionally, if the communications apparatus <NUM> is a chip or a circuit, the input port <NUM> is an input interface, and the output port <NUM> is an output interface.

It may be considered that functions of the input port <NUM> and the output port <NUM> are implemented by using a transceiver circuit or a dedicated transceiver chip. It may be considered that the processing unit <NUM> is implemented by using a dedicated processing chip, a processing circuit, or a processing unit, or a general-purpose chip.

It may be considered that a general-purpose computer is used to implement the receiving device. In other words, program code for implementing functions of the processing unit <NUM>, the input port <NUM>, and the output port <NUM> is stored in the storage unit <NUM>, and a general-purpose processing unit executes the code in the storage unit <NUM> to implement the functions of the processing unit <NUM>, the input port <NUM>, and the output port <NUM>.

In an implementation, the input port <NUM> is configured to receive, from a transport network, a code block stream that is in a first rate mode and that includes a plurality of code blocks; the processing unit <NUM> is configured to determine a target code block from the code block stream, where the target code block is a code block received by the receiving device in an inter-packet gap of the code block stream, the target code block includes a first target code block, and the first target code block is a code block of a data type; and/or the target code block includes a second target code block, and the second target code block is a code block of a termination type; and the processing unit <NUM> is configured to modify the target code block to modify the target code block to a code block, of an ordered set type, that is in a second rate mode, where a rate corresponding to the second rate mode is less than a rate corresponding to the first rate mode.

Optionally, the processing unit <NUM> is configured to: determine a termination location of the inter-packet gap based on a code block of a start type in the code block stream, and determine a start location of the inter-packet gap based on a code block of the termination type in the code block stream.

Optionally, the processing unit <NUM> is configured to determine the start location of the inter-packet gap based on a code block of a first termination type in the code block stream, where the code block of the first termination type is a first code block that is of the termination type and that is located after the code block of the start type in a transmission sequence.

Optionally, the processing unit <NUM> is configured to: modify information carried in a synchronization header field of the first target code block to synchronization header information corresponding to the ordered set type, and/or modify information carried in a code block type field of the second target code block to code block type information corresponding to the ordered set type.

Optionally, the processing unit <NUM> is configured to modify, based on a mapping relationship, information carried in a code block type field of a second target code block of the first termination type to information corresponding to a first ordered set type, where the mapping relationship is used to indicate a one-to-one mapping relationship between at least two termination types and at least two ordered set types, and the first ordered set type.

The foregoing listed functions and actions of modules or units in the apparatus <NUM> are merely an example for description. The modules or units in the apparatus <NUM> may be configured to perform actions or processing processes performed by the transport device (for example, the egress PE device #C) in the foregoing method. To avoid repetition, detailed descriptions are omitted herein.

For concepts, explanation, detailed descriptions, and other steps that are related to the technical solution provided in this embodiment of this application and that are related to the apparatus <NUM>, refer to description about the content in the foregoing method or other embodiments.

Because the code block of the ordered set type is transmitted in the inter-packet gap, a sending device may modify the code block of the ordered set type to the code block of the data type or the code block of the termination type that can be recognized by the transport network. In this way, the receiving device can determine that the code block of the data type or the code block of the termination type that is located in the inter-packet gap is modified based on the code block of the ordered set type, and may further modify the code block of the data type or the code block of the termination type that is located in the inter-packet gap back to the code block of the ordered set type. This can not only ensure that the code block of the ordered set type can be transmitted by using the transport network, but also ensure that the receiving device reliably recognizes the code block of the ordered set type, thereby improving communication accuracy.

According to the foregoing method, <FIG> is a schematic diagram of a communications apparatus <NUM> according to an embodiment of this application. As shown in <FIG>, the apparatus <NUM> may be a transport device (a sending device, for example, an ingress PE device #B), or may be a chip or a circuit, for example, a chip or a circuit that can be disposed in a network device.

The apparatus <NUM> may include a processing unit <NUM> and a storage unit <NUM>. The storage unit <NUM> is configured to store an instruction, and the processing unit <NUM> is configured to execute the instruction stored in the storage unit <NUM>, so that the apparatus <NUM> implements steps performed by a sending device in the foregoing method.

Further, the apparatus <NUM> may further include an input port <NUM> (an example of a communications unit) and an output port <NUM> (another example of the processing unit).

Still further, the processing unit <NUM>, the storage unit <NUM>, the input port <NUM>, and the output port <NUM> may communicate with each other by using an internal connection path, to transmit a control and/or data signal.

In addition, it may be considered that a general-purpose computer is used to implement the network device. In other words, program code for implementing functions of the processing unit <NUM>, the input port <NUM>, and the output port <NUM> is stored in the storage unit, and a general-purpose processing unit executes the code in the storage unit to implement the functions of the processing unit <NUM>, the input port <NUM>, and the output port <NUM>.

The storage unit <NUM> is configured to store a computer program.

The processing unit <NUM> may be configured to invoke the computer program from the storage unit <NUM> and run the computer program, to determine a code block stream in a first rate mode based on a code block stream of a plurality of code blocks that is in a second rate mode, where a rate corresponding to the second rate mode is less than a rate corresponding to the first rate mode, a code block of an ordered set type in the code block stream in the second rate mode is modified to a code block of a data type, and/or a code block of an ordered set type in the code block stream in the second rate mode is modified to a code block of a termination type; and the output port <NUM> is configured to send the code block stream in the first rate mode to a transport network.

Optionally, the processing unit <NUM> is configured to modify, based on a mapping relationship, information carried in a code block type field of a code block of a first ordered set type to information corresponding to a first termination type, where the mapping relationship is used to indicate a one-to-one mapping relationship between at least two termination types and at least two ordered set types, the first ordered set type corresponds to the first termination type, and the first ordered set type is any one of the at least two ordered set types.

The foregoing listed functions and actions of modules or units in the apparatus <NUM> are merely an example for description. The modules or units in the apparatus <NUM> may be configured to perform actions or processing processes performed by the transport device (the sending device, for example, the ingress PE device #B) in the foregoing method. To avoid repetition, detailed descriptions are omitted herein.

Because the code block of the ordered set type is transmitted in the inter-packet gap, the sending device may modify the code block of the ordered set type to the code block of the data type or the code block of the termination type that can be recognized by the transport network. In this way, a receiving device can determine that the code block of the data type or the code block of the termination type that is located in the inter-packet gap is modified based on the code block of the ordered set type, and may further modify the code block of the data type or the code block of the termination type that is located in the inter-packet gap back to the code block of the ordered set type. This can not only ensure that the code block of the ordered set type can be transmitted by using the transport network, but also ensure that the receiving device reliably recognizes the code block of the ordered set type, thereby improving communication accuracy.

<FIG> is a schematic block diagram of an example of a transport device (for example, an ingress transport device or an egress transport device) according to this application.

As shown in <FIG>, the transport device includes one or more client side interface boards <NUM>, a switching board <NUM>, and one or more FlexE side interface boards <NUM>.

The client side interface board <NUM> includes an external interface <NUM>, a transcoder <NUM>, and an internal interface <NUM>.

In addition, the FlexE side interface board <NUM> includes an internal interface <NUM>, a transcoder <NUM>, and an external interface <NUM>.

When the transport device serves as an ingress PE device:.

When the transport device serves as an egress PE device:.

When the transport device serves as the ingress PE device, an action of the client side interface board <NUM> (specifically, each module or unit in the client side interface board <NUM>) may correspond to an action of the input port <NUM>, and an action of the transcoder <NUM> may correspond to an action of the processing unit <NUM>. To avoid repetition, detailed descriptions are omitted herein.

For example, a forwarder may modify information carried in a synchronization header field of a code block of an ordered set type in a code block in a PCS layer code block stream of an Ethernet signal to synchronization header information corresponding to a data type.

For another example, the forwarder may modify information carried in a code block type field of the code block of the ordered set type in the code block in the PCS layer code block stream of the Ethernet signal to code block type information corresponding to a termination type.

Specifically, the forwarder may modify, based on a mapping relationship, information carried in a code block type field of a code block of a first ordered set type to information corresponding to a first termination type, where the mapping relationship is used to indicate a one-to-one mapping relationship between at least two termination types and at least two ordered set types, the first ordered set type corresponds to the first termination type, and the first ordered set type is any one of the at least two ordered set types.

In addition, when the transport device serves as the egress PE device, an action of the FlexE side interface board <NUM> (specifically, each module or unit in the FlexE side interface board <NUM>) may correspond to an action of the output port <NUM>, and an action of the transcoder <NUM> may correspond to an action of the processing unit <NUM>. To avoid repetition, detailed descriptions are omitted herein.

For example, the transcoder may determine a termination location of an inter-packet gap based on a code block of a start type in the code block stream; and determine a start location of the inter-packet gap based on a code block of the termination type in the code block stream.

Specifically, the forwarder may determine the start location of the inter-packet gap based on a code block of a first termination type in the code block stream, where the code block of the first termination type is a first code block that is of the termination type and that is located after the code block of the start type in a transmission sequence.

For another example, the transcoder may modify information carried in a synchronization header field of a first target code block to synchronization header information corresponding to the ordered set type.

For another example, the transcoder may modify information carried in a code block type field of a second target code block to code block type information corresponding to the ordered set type.

Specifically, the forwarder may modify, based on the mapping relationship, information carried in a code block type field of a second target code block of the first termination type to information corresponding to the first ordered set type, where the mapping relationship is used to indicate a one-to-one mapping relationship between at least two termination types and at least two ordered set types, the first ordered set type corresponds to the first termination type, and the first termination type is any one of the at least two termination types.

In this application, the code block in the PCS layer code block stream of the Ethernet signal may include a <NUM>-bit/<NUM>-bit code block.

As an example instead of a limitation, a code block of the ordered set type in the PCS layer code block stream of the medium-low-speed Ethernet signal includes a code block in which information carried in a code block type field is 0x2d or 0x55.

The forwarder (inflow, the transcoder <NUM> or transcoder <NUM>) may be implemented by a processor. The processor is mainly configured to: process a communications protocol and communication data, control the entire transport device, execute a software program, and process data of the software program, for example, configured to support the transport device in performing the action described in the foregoing method embodiment. A memory is mainly configured to store a software program and data.

After a terminal device is powered on, the processor may read a software program in a storage unit, explain and execute an instruction of the software program, and process data of the software program.

For example, the processor may include a baseband processor and a central processing unit. The baseband processor is mainly configured to process a communications protocol and communication data, and the central processing unit is mainly configured to control the entire terminal device, execute a software program, and process data of the software program. A person skilled in the art may understand that the baseband processor and the central processing unit may be processors independent of each other and are interconnected by using technologies such as a bus. A person skilled in the art may understand that the terminal device may include a plurality of baseband processors to adapt to different network standards, the terminal device may include a plurality of central processing units to enhance a processing capability of the terminal device, and components of the terminal device may be connected by using various buses. The baseband processor may also be expressed as a baseband processing circuit or a baseband processing chip. The central processing unit may also be expressed as a central processing circuit or a central processing chip. A function of processing a communications protocol and communication data may be embedded into the processor, or may be stored in a storage unit in a form of a software program, so that the processor executes the software program to implement a baseband processing function.

It should be understood that, the processor in the embodiments of this application may be a central processing unit (central processing unit, CPU), or may be another general-purpose processor, a digital signal processor (digital signal processor, DSP), an application-specific integrated circuit (application-specific integrated circuit, ASIC), a field programmable gate array (field programmable gate array, FPGA) or another programmable logic device, a discrete gate or a transistor logic device, a discrete hardware component, or the like. The general-purpose processor may be a microprocessor, or the processor may be any conventional processor or the like.

It should also be understood that the memory in the embodiments of this application may be a volatile memory or a nonvolatile memory, or may include a volatile memory and a nonvolatile memory. The nonvolatile memory may be a read-only memory (read-only memory, ROM), a programmable read-only memory (programmable ROM, PROM), an erasable programmable read-only memory (erasable PROM, EPROM), an electrically erasable programmable read-only memory (electrically EPROM, EEPROM), or a flash memory. The volatile memory may be a random access memory (random access memory, RAM) that is used as an external cache. By way of example but not limitation, many forms of random access memory (random access memory, RAM) may be used, for example, a static random access memory (static RAM, SRAM), a dynamic random access memory (DRAM), a synchronous dynamic random access memory (synchronous DRAM, SDRAM), a double data rate synchronous dynamic random access memory (double data rate SDRAM, DDR SDRAM), an enhanced synchronous dynamic random access memory (enhanced SDRAM, ESDRAM), a synchronous link dynamic random access memory (synchlink DRAM, SLDRAM), and a direct rambus random access memory (direct rambus RAM, DR RAM).

All or some of the foregoing embodiments may be implemented by using software, hardware, firmware, or any combination thereof. When software is used to implement the embodiments, the foregoing embodiments may be all or partially implemented in a form of a computer program product. The computer program product includes one or more computer instructions or computer programs. When the computer instructions or the computer programs are loaded and executed on a computer, the procedure or functions according to the embodiments of this application are all or partially generated. The computer may be a general-purpose computer, a dedicated computer, a computer network, or another programmable apparatus. The computer instructions may be stored in a computer-readable storage medium or may be transmitted from a computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website, computer, server, or data center to another website, computer, server, or data center in a wired (for example, infrared, radio, and microwave) manner. The computer-readable storage medium may be any usable medium accessible by the computer, or a data storage device, such as a server or a data center, integrating one or more usable media. The usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, or a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium. The semiconductor medium may be a solid-state drive.

For example, division into the units is merely logical function division and may be other division in actual implementation.

When the functions are implemented in the form of a software functional unit and sold or used as an independent product, the functions may be stored in a computer-readable storage medium. Based on such an understanding, the technical solutions of this application essentially, or the part contributing to the prior art, or some of the technical solutions may be implemented in a form of a software product. The computer software product is stored in a storage medium, and includes several instructions for instructing a computer device (which may be a personal computer, a server, a network device, or the like) to perform all or some of the steps of the methods described in the embodiments of this application. The foregoing storage medium includes any medium that can store program code, such as a USB flash drive, a removable hard disk, a read-only memory, a random access memory, a magnetic disk, or an optical disc.

Claim 1:
A method for receiving a code block stream, comprising:
receiving (S240), by a receiving device (<NUM>) from a transport network, a code block stream that is in a first rate mode and that comprises a plurality of code blocks;
determining (S250), by the receiving device (<NUM>), a target code block from the code block stream, wherein the target code block is a code block received by the receiving device (<NUM>) in an inter-packet gap of the code block stream, wherein
the target code block comprises a first target code block, and the first target code block is a code block of a data type; and/or
the target code block comprises a second target code block, and the second target code block is a code block of a termination type; and
modifying, by the receiving device (<NUM>), the target code block to modify the target code block to a code block, of an ordered set type, that is in a second rate mode.