Method and device for transmitting C value in FlexE overhead frame

By utilizing the regular sequence changes of C values ​​in the FlexE protocol, the problem of unreliable C value transmission when the FlexE protocol code block is modified to a 257 code block is solved, thus achieving reliable C value transmission and accurate switching of the client's calendar.

CN121664360APending Publication Date: 2026-03-13ZTE CORP
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-13
Publication Date
2026-03-13

AI Technical Summary

Technical Problem

When the FlexE protocol code block is modified to the 257 code block, the existing technology cannot reliably transmit the C value, causing most judgment principles to fail and making it impossible to accurately determine the switching of the customer's calendar.

Method used

By receiving and sending multiple FlexE overhead frames, the correct C value is obtained and determined by utilizing the regular sequence changes of the C value. The FlexE overhead frame containing the C value of the customer calendar is switched according to the regular sequence of the C value, and the C value transmission method with regular sequence changes is adopted.

Benefits of technology

This ensures reliable transmission of the C value when the FlexE protocol code block is modified to a 257 code block, guaranteeing accurate switching of the customer's calendar and improving the reliability of information transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121664360A_ABST
    Figure CN121664360A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a method and device for transmitting a C value in an F < lexE > overhead frame, and the method comprises the steps: receiving a plurality of F < lexE > overhead frames, obtaining the C value in the plurality of F < lexE > overhead frames according to the correct C value in at least one F < lexE > overhead frame, and transmitting the C value in the F < lexE > overhead frame according to the correct C value in the at least one F < lexE > overhead frame. And determining the F lexE overhead frame in which the C value indicating to switch the client calendar table is located according to the C value rule sequence, thereby solving the problem of how to reliably transmit the C value when the F lexE protocol code block is modified into the 257 code block, and further achieving the effect of reliably transmitting the C value.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of communications, and more specifically, to a method and apparatus for transmitting the C value in a Flexible Ethernet (FlexE) overhead frame. Background Technology

[0002] Currently, the FlexE protocol V1.0 standard defines a 100G physical layer with 20 time slots. The V2.0 draft only defines application methods for physical layer members at rates of 200G and 400G. For 800G and 1.6T physical layer (PHY) members, there are currently no relevant standards. In scenarios where high-speed PHY interfaces use 257-encoded blocks, there is still no solution for reliably transmitting the C value when the FlexE protocol code block is modified to a 257-encoded block. Summary of the Invention

[0003] This invention provides a method and apparatus for transmitting C values ​​in FlexE overhead frames, which at least solves the problem of how to reliably transmit C values ​​when the FlexE protocol code block is modified to a 257 code block in related technologies.

[0004] According to an embodiment of the present invention, a method for transmitting C values ​​in a FlexE overhead frame is provided, comprising: receiving a plurality of FlexE overhead frames, wherein the C values ​​carried in the plurality of FlexE overhead frames change in a regular sequence; obtaining the C values ​​in the plurality of FlexE overhead frames; and determining the FlexE overhead frame in which the C value indicating the switching of a customer calendar is located based on the correct C value in at least one FlexE overhead frame and the regular sequence of C values.

[0005] According to another embodiment of the present invention, a method for transmitting C values ​​in FlexE overhead frames is provided, comprising: sending multiple FlexE overhead frames, wherein the C values ​​carried in the multiple FlexE overhead frames change in a regular sequence.

[0006] According to another embodiment of the present invention, an apparatus for transmitting C values ​​in FlexE overhead frames is provided, comprising: a receiving module for receiving a plurality of FlexE overhead frames, wherein the C values ​​carried in the plurality of FlexE overhead frames change in a regular sequence; an acquiring module for acquiring the C values ​​in the plurality of FlexE overhead frames; and a determining module for determining the FlexE overhead frame in which the C value indicating the switching of a customer calendar is located based on the correct C value in at least one FlexE overhead frame and the regular sequence of C values.

[0007] According to another embodiment of the present invention, an apparatus for transmitting C values ​​in FlexE overhead frames is provided, comprising: a transmitting module for transmitting a plurality of FlexE overhead frames, wherein the C values ​​carried in the plurality of FlexE overhead frames change in a regular sequence.

[0008] According to yet another embodiment of the present invention, a computer-readable storage medium is also provided, wherein a computer program is stored therein, wherein the computer program is configured to perform the steps in any of the above method embodiments when executed.

[0009] According to yet another embodiment of the present invention, an electronic device is also provided, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in any of the above method embodiments.

[0010] According to yet another embodiment of the present invention, a computer program product is also provided, comprising a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.

[0011] Through the above embodiments of the present invention, since the C values ​​carried in the multiple received FlexE overhead frames change in a regular sequence, the FlexE overhead frame in which the C value indicating the switching of the customer calendar is located can be determined based on the correct C value in at least one of the FlexE overhead frames and the regular sequence of the C values. Therefore, the problem of how to reliably transmit the C value when the FlexE protocol code block is modified to a 257 code block can be solved, thereby achieving the effect of reliable transmission of the C value. Attached Figure Description

[0012] Figure 1 This is a schematic diagram of the transmission channel for a combination of four 100G optical modules;

[0013] Figure 2 It is the 64 / 66 encoding rule defined by the 802.3 protocol;

[0014] Figure 3 This is a schematic diagram of a 64 / 66 encoded code block;

[0015] Figure 4 This is a schematic diagram showing the distribution of one 66-bit overhead block among 1023*20 66-bit code blocks;

[0016] Figure 5 This is a schematic diagram showing how four 100G physical layers form a 400G logical service bandwidth.

[0017] Figure 6 This is a schematic diagram showing that one FlexE frame consists of eight 66-bit overhead blocks;

[0018] Figure 7 This is a schematic diagram illustrating the process of the FlexE protocol carrying customer business.

[0019] Figure 8 This is a diagram illustrating the process of restoring customer services;

[0020] Figure 9 This is a schematic diagram of the 800G Ethernet interface standard;

[0021] Figure 10 This is a schematic diagram of a 257-bit code block with a synchronization header of 1;

[0022] Figure 11 This is a schematic diagram of a 257-bit code block with a synchronization header of 0;

[0023] Figure 12 This is a schematic diagram showing the distribution of 4 66-bit overhead blocks among 4*1023*20 66-bit code blocks;

[0024] Figure 13 This is a diagram illustrating how every 4 overhead blocks are converted into a 257-bit code block;

[0025] Figure 14 This is a schematic diagram showing the distribution of one 257-bit overhead block among 4*1023*5 257-bit code blocks;

[0026] Figure 15 This is a schematic diagram showing that one FlexE frame consists of two 257-bit overhead code blocks;

[0027] Figure 16 This is a schematic diagram of the FlexE main calendar layer with a 257-bit code block.

[0028] Figure 17 This is a flowchart of a method for transmitting the C value in a FlexE overhead frame according to an embodiment of the present invention;

[0029] Figure 18 This is another flowchart of the method for transmitting the C value in the FlexE overhead frame according to an embodiment of the present invention;

[0030] Figure 19 This is a structural block diagram of a device for transmitting the C value in a FlexE overhead frame according to an embodiment of the present invention;

[0031] Figure 20 This is another structural block diagram of the device for transmitting the C value in the FlexE overhead frame according to an embodiment of the present invention;

[0032] Figure 21 This is a schematic diagram illustrating the change of the C value according to an embodiment of the present invention;

[0033] Figure 22This is another schematic diagram illustrating the change of the C value according to an embodiment of the present invention. Detailed Implementation

[0034] The embodiments of the present invention will be described in detail below with reference to the accompanying drawings and examples.

[0035] It should be noted that the terms "first," "second," etc., in the specification, claims, and drawings of this invention are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.

[0036] The rapid increase in user network traffic has spurred a rapid increase in the bandwidth of communication networks. The interface bandwidth of communication equipment has increased from 10 Mbps (bits per second) to 100 Mbps, 1 Gbps, and 10 Gbps, and has now reached 100 Gbps. 100 Gbps optical modules are now widely available commercially, and 400 Gbps optical modules have been developed. However, 400 Gbps optical modules are expensive, exceeding the price of four 100 Gbps optical modules, making them uneconomical for commercial use. To enable 400 Gbps services to be transmitted over 100 Gbps optical modules, the international standards organization defined the Flexible Ethernet (FlexE) protocol. The FlexE protocol combines multiple 100 Gbps optical modules to form a logical transmission channel with a larger bandwidth. Figure 1 This is a schematic diagram of the transmission channel combining four 100G optical modules, as shown below. Figure 1 As shown, four 100G optical modules are combined and bundled together using the FlexE protocol to form a 400G transmission channel, which is equivalent to the transmission speed of a single 400G optical module. This solves the transmission requirements of 400G services without increasing costs.

[0037] For a physical layer with a rate of 100G, the Ethernet protocol defines that before sending a 100G data packet, the data packet is 64 / 66 encoded, the 64-bit data block is expanded into a 66-bit information block, and the added 2 bits are placed at the beginning of the 66-bit block as a start marker, and then it is sent out from the optical port in 66-bit block format. Figure 2 It is the 64 / 66 encoding rule defined by the 802.3 protocol. Figure 3 This is a schematic diagram of a 64 / 66 encoded code block, where each code block consists of 66 bits, as shown below. Figure 3 As shown, the first two bits are the synchronization header of the code block. A synchronization header bit of "01" indicates a D code block (data code block). The following 8 bytes (64 bits) contain 8 bytes of data content, as shown below. Figure 3The first code block in the block. A synchronization header bit of "10" indicates a control code block. The first byte following is the block type field, indicating the specific type of the control block. The next 7 bytes are the content of the control block, which is related to the specific type of the control block, such as... Figure 3 The second block in the block. For control blocks, the block type field is 8 bits, and its content is specific encoded information. Different block type contents represent different types of control blocks. S, T, O, and idle blocks all belong to control blocks. In an S block, the block type field content is 0x78, indicating that the control block is an S block. In addition to indicating the end of a block, a T block can also carry client byte content (located in the last 7 bytes of the block). In the Ethernet standard, there are 8 types of T blocks: T0, T1, T2, T3, T4, T5, T6, and T7. The T0 block (block type field content is 0x87) does not carry client information, the T1 block (block type field content is 0x99) carries 1 byte of client information, the T2 block (block type field content is 0x99) carries 2 bytes of client information, and so on, up to the T7 block.

[0038] The FlexE protocol defines each 100G member as a block group consisting of 20 blocks of 66 bits each, with each block group containing 20 blocks, representing 20 time slots, and each time slot representing a service speed of 5G (bit / s) bandwidth. Figure 4 This is a diagram illustrating the distribution of one 66-bit overhead block among 1023*20 66-bit code blocks. When transmitting 66-bit code blocks, a FlexE overhead block is inserted after every 1023 code block groups (1023*20 code blocks). Figure 4 The black blocks in the diagram. After inserting an overhead block, code blocks continue to be sent. After sending the second 1023*20 code blocks, another overhead block is inserted, and so on. In this way, overhead blocks are periodically inserted during the transmission of code blocks, with an interval of 1023*20 code blocks between adjacent overhead blocks. For a physical line speed of 100G (bit / s), the FlexE protocol divides the physical port into 20 time slots, so the bandwidth corresponding to each time slot is 5G.

[0039] Figure 5 This is a diagram illustrating how four 100G physical layer connections form a 400G logical service bandwidth, as shown below. Figure 5As shown, when four 100G physical layers form a 400G logical service bandwidth, each physical layer still forms a block group consisting of 20 time slots, with an overhead byte inserted every 1023 block groups. In the FlexE master calendar (shim layer), the four 20-time-slot blocks are assembled into a block group consisting of 80 time slots. Customer services are transmitted within these 80 time slots, with each time slot having a bandwidth of 5G, resulting in a total 400G service transmission bandwidth for the shim layer.

[0040] The FlexE overhead block is a 66-bit overhead block that is inserted every 1023*20 data blocks during the transmission of the service data stream. The overhead block serves a positioning function in the entire service stream; determining the position of the overhead block allows us to know the position of the first code block group in the service, as well as the positions of subsequent code block groups. Figure 6 This is a diagram illustrating that one FlexE frame consists of eight 66-bit overhead blocks. The content of the overhead frame is as follows: Figure 6As shown, eight consecutive 66-bit overhead blocks form a FlexE frame structure. An overhead block consists of a 2-bit block synchronization header and 64 bits of block content. The block synchronization header is located in the first two columns, and the remaining 64 columns are the block content. The block flag of the first overhead block is 10, and the block flags of the following seven overhead blocks are 01 or SS (SS indicates indeterminate content). In the FlexE protocol, eight overhead blocks are defined to form one frame. An overhead frame structure contains eight overhead blocks, where the first overhead block is a control code block. The code block's characteristic value is identified by two fields: 0x4B (hexadecimal, identified as 0x4B) and 0x05 (hexadecimal, identified as 0x5). When a control code block is detected within an overhead block, and the corresponding positions are 0x4B and 0x05, it indicates that this overhead block is the first overhead block in the overhead frame structure, forming a frame with the following seven overhead blocks. The first overhead block contains: 0x4B (8 bits, hexadecimal 0x4B), C bit (1 bit, indicating adjustment control), OMF bit (1 bit, indicating overhead frame multiframe indication), RPF bit (1 bit, indicating remote defect indication), RES bit (1 bit, reserved), FlexE group number (20 bits, indicating the bundle group number), 0x5 (4 bits, hexadecimal 5), and 000000 (28 bits, all 0s). 0x4B and 0x5 are the markers for the first overhead block. During reception, if an overhead block contains 0x4B and 0x5 at the corresponding positions, it indicates that this overhead block is the first overhead block in the overhead frame, and it, along with the next 7 consecutive overhead blocks, forms an overhead frame. The reserved portion of the overhead frame is reserved and undefined. The PHY number indicates the group number of this member PHY, ranging from 0 to 255. The PHY map indicates the presence status of each PHY in the group. A single frame has 8 bits in the PHY map, totaling 256 bits across 32 frames, indicating whether each of the 256 PHY members is in the group. If present, the corresponding bit is set to "1"; otherwise, it is set to "0". A 100G FlexE frame contains 20 time slots, each carrying client information. The client name carried in each time slot is indicated by the client calendar. The client names carried in the 20 time slots are represented by two client calendars, Client Calendar A and Client Calendar B. During normal operation, only one client calendar is active (indicated by the C bit), while the other client calendar is in standby or being modified.The frame contains three C-bit indicator signals, distributed across three different 66-bit code blocks. The C-value is determined using a majority-rule approach. If at least two of the three C-bit values ​​in a frame are "0", the C-value is determined to be "0", indicating that Client Calendar A table is enabled and its contents take effect. If at least two of the three C-bit values ​​are "1", the C-value is determined to be "1", indicating that Client Calendar B table is enabled and its contents take effect. Because the three C-bit indicator signals are distributed across three 66-bit code blocks, spaced 20 * 1023 blocks apart, even if a single C-bit is erroneous due to a bit error, it does not affect the final determination result, providing a certain degree of error tolerance. To ensure timely and accurate transmission of C-value changes, due to the majority-rule approach, the C-value is not affected by the overhead of the Cyclic Redundancy Check (CRC) check result in the standard definition. A CRC check error indicates an overhead error, possibly due to a single C bit value being incorrect (if only one C bit is incorrect, the other two C bits are still correct; in a single-bit error scenario, at most one bit error can occur). This does not affect the final result of extracting the three C bits and determining the C value using the majority rule.

[0041] Figure 7 This is a schematic diagram illustrating the process of the FlexE protocol carrying customer business, such as... Figure 7As shown, the customer service first undergoes 64 / 66 encoding, dividing the customer service flow into 64-bit (8-byte) long bit blocks. Then, the 64-bit data information is encoded into 66-bit data blocks. After 64 / 66 encoding, the service flow becomes a 66-bit long data block stream. Idle blocks are inserted or deleted in the data stream to adjust the speed and adapt to the rate of the master calendar in the FlexE protocol. The 66-bit code blocks are placed in the FlexE protocol's master calendar according to the time slot configuration. Each member in the FlexE protocol is allocated 20 time slots (each time slot is a 66-bit data block, and each time slot represents 5G service bandwidth). If there are 4 members, there are a total of 80 time slots in the planning table. The configuration determines which time slots each customer service will use for transport. The planning table groups all time slots into groups of 20 and sends them to each member defined by the FlexE protocol. Each member inserts FlexE overhead blocks (also 66-bit blocks, inserted every 20*1023 time slot blocks) into these time slots. In the diagram, each member is a sub-calendar, carried and transmitted on a PHY. After inserting the FlexE overhead block, each PHY scrambles the carried service flow and sends it out through the Physical Medium Attachment (PMA) layer. Figure 8 This is a schematic diagram of the process of restoring customer services. On the receiving end, such as... Figure 8 As shown, the PMA receives the signal and recovers a 66-bit code block through descrambling. Within the 66-bit block, each PHY searches for the overhead block of the FlexE protocol, using it as a reference position to recover the FlexE frame structure and obtain the sub-calendar. All members' time slots are arranged in order to reconstruct the master calendar structure. Based on the configuration information, the service flow is retrieved from the corresponding time slot in the calendar, idle information blocks are deleted, and then 66 / 64-bit decoding is performed to recover the original customer service.

[0042] As physical interface speeds increase, Ethernet physical interfaces need to re-encode 66-bit blocks to reliably transmit information bits. Four 66-bit blocks are encoded into 257-bit blocks for transmission. This conversion saves 7 bits, allowing for the insertion of Forward Error Correction (FEC) bits. This allows for error correction and verification of transmitted client blocks while maintaining the total number of bits, improving transmission quality. Figure 9This is a schematic diagram of the 800G Ethernet interface standard, as shown below. Figure 9 As shown, in this standard, the 66-bit code block is divided into two groups. Each group's 66-bit code block is encoded using 66 / 257 bits. After passing through modules such as scrambling, alignment insertion, and FEC, it is sent out. Subsequent processing is based on 257-bit code blocks. Figure 9 As can be seen, the Physical Coding Sublayer (PCS) primarily processes 257-bit code blocks. A 257-bit code block has a total length of 257 bits (from 0 to 256), where the first bit is the synchronization header value. A synchronization header of 1 indicates that the code block is a pure data code block (composed of four 66-bit data code blocks). Figure 10 This is a schematic diagram of a 257-bit code block with a synchronization header of 1, as shown below. Figure 10 As shown, this 257-bit code block consists of a 1-bit synchronization header and 4 content fields. The 256 bits following the synchronization header are the contents of four fields, D1-D4. Each D field contains the last 8 data bytes (64 bits) of a 66-bit data code block. A synchronization header of 0 indicates that the 257-bit code block contains at least one control code block. The 257-bit code block consists of a synchronization header, a 4-bit type field, and 4 content fields. Figure 11 This is a schematic diagram of a 257-bit code block with a synchronization header of 0, as shown below. Figure 11 As shown. The 4 bits (bits 1-4) after the synchronization header are the type value, used to indicate the content type of the following 4 fields. Each bit corresponds to the type of one content field. A type bit value of 1 indicates that the content of the corresponding field is a data code block. A type bit value of 0 indicates that the content of the corresponding field is a control code block. The last 252 bits in the code block are 4 content fields, one of which is 60 bits long (the first control code block type content is 60 bits long), and the other three content fields are 64 bits long. Figure 11 In the data structure, if the type field is 0111, meaning the first content field is the control block content and the rest are data block content, then the length of the first content field is 60 bits, and the lengths of the second, third, and fourth content fields are 64 bits.

[0043] In the FlexE standard, each time slot is a 66-bit code block, and each code block represents a 5G transmission rate. High-speed Ethernet interfaces such as 800G process data using 257 bits. If the 800G FlexE protocol were to continue processing each time slot as a 66-bit length at the 5G speed level, the number of time slots would be extremely large. Internally, the device would need to perform two code block encoding format conversions: 257-bit to 66-bit and then 66-bit back to 257-bit, resulting in high processing circuit costs. To standardize the code block format and increase the bandwidth of a single time slot, a 257-bit FlexE frame structure can be adopted. In the current FlexE frame structure, the code block is 66 bits long. The overhead block distribution is changed from one overhead block between 1023*20 code blocks to four overhead blocks between 4*1023*20 code blocks. Figure 12 This is a schematic diagram showing the distribution of 4 66-bit overhead blocks among 4*1023*20 66-bit code blocks, as shown below. Figure 12 The diagram shows the distribution structure of overhead blocks and service blocks. A FlexE overhead frame consists of 8 overhead blocks. Figure 12 In the FlexE frame structure, the first four overhead code blocks are placed together, or the last four overhead code blocks are placed together. Figure 13 This is a diagram illustrating the conversion of every 4 overhead blocks into 257-bit code blocks. Starting with every 4 overhead blocks, each 4 code blocks undergo 66 / 257 encoding, resulting in the following structure after conversion into a 257-bit code block: Figure 13 As shown, the FlexE structure consists of 257-bit time slot code blocks. An overhead block, also 257 bits long, is formed every 20 * 1023 code blocks. When the basic FlexE code block length is 257 bits, each time slot code block and overhead code block is also 257 bits long. Each 257-bit code block represents a time slot, and each time slot represents a 20G client speed. Each physical interface member has 5 time slots. A 257-bit overhead code block is inserted every 4 * 1023 * 5 code blocks. Figure 14 This is a schematic diagram showing the distribution of one 257-bit overhead block among 4*1023*5 257-bit code blocks, as shown below. Figure 14 As shown. Figure 15 This is a schematic diagram showing that one FlexE frame consists of two 257-bit overhead code blocks, as shown below. Figure 15As shown. The first 257-code block contains the contents of blocks 1, 2, 3, and 4 of the 66-bit overhead blocks in the FlexE frame, and the second 257-code block contains the contents of blocks 5, 6, 7, and 8 of the 66-bit overhead blocks in the FlexE frame. Of the eight 66-bit overhead blocks in the FlexE frame, the first overhead block is a control block, the second and third overhead blocks are data blocks, and the type of the fourth, fifth, sixth, seventh, and eighth overhead blocks is uncertain; they could be either data blocks or control blocks. For a FlexE frame consisting of two 257-bit blocks, the first 257-bit block contains four 66-bit overhead blocks, each composed of one control block and two data blocks, or one data block or control block. Since the first 66-bit block is fixed as a control block (its features include block synchronization header bit 10, block type field value 0x4B, and sequence value 0x5), these four 66-bit overhead blocks are stored at fixed positions within the 257-bit block. The specific positions are as follows: Figure 15 As shown, block 1 of the 66-bit overhead block is located in bits 5-64 of the 257-bit code block (only half of the 8 bits in the block control field are reserved, and 0xB content is reserved in 0x4B), block 2 is located in bits 65-128 of the 257-bit code block, block 3 is located in bits 129-192 of the 257-bit code block, and block 4 is located in bits 193-256 of the 257-bit code block. The next 257-bit code block in the FlexE frame contains four 66-bit overhead blocks: block 5, block 6, block 7, and block 8. Since any one of these four 66-bit overhead blocks can be either a data block or a control block, the position of the four 66-bit blocks within the 257-bit code block needs to be determined based on the type of each 66-bit block.

[0044] In the FlexE protocol based on 257-bit length, both the time slot code blocks and overhead code blocks are 257-bit code blocks. Each member has 5 time slots, and each time slot is a 257-bit code block. Each time slot represents a transmission bandwidth of 20G. An overhead code block is transmitted every 4*1023*5 time slot code blocks. Every two 257-bit overhead code blocks form a FlexE overhead frame. Each FlexE overhead frame carries the contents of the eight 66-bit overhead blocks (block1-block8) of the current FlexE protocol frame. Block1-block8 carry all the overhead contents of the eight 66-bit overhead blocks in the FlexE frame, such as C bits, OMF bits, RPF bits, FlexE group number, PHY number, PHY map, etc.

[0045] Figure 16 This is a schematic diagram of the FlexE master calendar layer with a 257-bit code block. The structure of the FlexE shim layer (master calendar) with a 257-bit code block is as follows: Figure 16 As shown, the FlexE master calendar consists of n*5 time slots (n is any natural positive integer), each time slot being a 257-bit code block, representing a speed of 20G. Customer services select any number of time slots to carry their traffic based on bandwidth requirements. During this process, the customer service first performs 257-bit encoding on its traffic, converting it into a 257-bit code block stream, which is then mapped to the corresponding FlexE shim layer time slots. The n*5 time slot code blocks of the FlexE shim layer are handled by n instance members, with each instance member sharing 5 time slots, as shown... Figure 16 As shown, each instance member inserts a FlexE overhead block every 4*1023*5 code blocks. The overhead block length is also 257 code blocks. Every two 257-bit code blocks form a FlexE frame. Each FlexE frame contains eight 66-bit overhead blocks defined by the current FlexE protocol, and these overhead blocks contain FlexE overhead content. When the FlexE protocol code block is modified to a 257-bit code block, because the three C bits are located in the same 257-bit code block, if an error occurs in the 257-bit code block, all three C bits will be corrupted simultaneously, making it impossible to use the majority decision principle to overcome the consequences of bit errors. In the FlexE protocol structure with 66 bits as the basic unit, the 3 C bits are spaced 20*1023 code blocks apart. When one code block is wrong, it does not affect other code blocks. The impact of a single code block error can be corrected by the majority decision principle. However, in the FlexE protocol structure with 257 bits as the basic code block, since the 3 C bits are in the same code block, an error in one code block will cause all 3 C bits to be wrong, and the majority decision principle fails.

[0046] If an 8-66-bit overhead block is converted into a 513-bit code block (the conversion process can be referred to as the process of converting 8-66-bit overhead blocks into 2-257-bit code blocks, which will not be repeated here), the original FlexE frame composed of 8-66-bit overhead blocks will be modified into a FlexE frame composed of 1-513-bit overhead block. In this case, 3 C bits will be in the same code block. If one code block is wrong, all 3 C bits will be wrong, and most judgment principles will fail.

[0047] To address the issue that when the FlexE protocol code block is modified to a 257-bit (or even 513-bit) code block, a single error in the same code block will cause all three C bits to be incorrect, rendering the majority judgment principle ineffective and preventing reliable transmission of the C value. Therefore, this embodiment provides a method for transmitting the C value in the FlexE overhead frame. Figure 17 This is a flowchart of a method for transmitting the C value in a FlexE overhead frame according to an embodiment of the present invention, as follows: Figure 17 As shown, the process includes the following steps:

[0048] Step S1702: Receive multiple FlexE overhead frames, wherein the C values ​​carried in the multiple FlexE overhead frames change in a regular sequence.

[0049] Step S1704: Obtain the C value from multiple FlexE overhead frames;

[0050] Step S1706: Determine the FlexE overhead frame containing the C value that indicates the switching of the customer calendar based on the correct C value in at least one FlexE overhead frame and the regular sequence of C values.

[0051] In one exemplary embodiment, each FlexE overhead frame includes three C bits, the values ​​of which constitute the C value of each FlexE overhead frame. The C value sequence is a frame-by-frame change process in which the values ​​of the three C bits change from all 0s to all 1s or from all 1s to all 0s across multiple FlexE overhead frames.

[0052] In one exemplary embodiment, the corresponding client calendar can be switched in the frame following a FlexE overhead frame where the values ​​of the three C bits change to all 0s or all 1s.

[0053] For example, when the value of the three C bits becomes all 0, the client calendar table A is switched in the next frame of the FlexE overhead frame; when the value of the three C bits becomes all 1, the client calendar table B is switched in the next frame of the FlexE overhead frame.

[0054] In one exemplary embodiment, determining the FlexE overhead frame containing the C value indicating a change in the customer's calendar, based on the correct C value in at least one FlexE overhead frame and a regular sequence of C values, can be done in two ways:

[0055] Method 1: In the transition frames where the values ​​of the three C bits change from all 0 to all 1 or from all 1 to all 0 respectively, if the value of the three C bits in one frame is correct, determine the FlexE overhead frame where the C value indicating the switching of the client calendar table is located based on the C value pattern sequence.

[0056] Method 2: In transition frames where the values ​​of the three C bits change from all 0 to all 1 or from all 1 to all 0 respectively, if the values ​​of the three C bits are correct in at least two frames and the code block positions of the correct three C bit values ​​conform to the C value regularity sequence, the FlexE overhead frame in which the C value indicating the switching of the client calendar is located is determined according to the C value regularity sequence.

[0057] In an exemplary embodiment, after step S1704, the value of the three C bits in each FlexE overhead frame can be determined based on the CRC check result in each FlexE overhead frame.

[0058] Through the above steps, multiple FlexE overhead frames are received. The C values ​​carried in these multiple FlexE overhead frames change in a regular sequence. The C values ​​in these multiple FlexE overhead frames are obtained. Based on the correct C value in at least one FlexE overhead frame and the regular sequence of C values, the FlexE overhead frame containing the C value indicating the switching of the client calendar is determined. This solves the problem of how to reliably transmit the C value when the FlexE protocol code block is modified to a 257 code block or even a 513 code block, thereby achieving the effect of reliable transmission of the C value.

[0059] This embodiment also provides a method for transmitting the C value in a FlexE overhead frame. Figure 18 This is another flowchart of the method for transmitting the C value in the FlexE overhead frame according to an embodiment of the present invention, as follows: Figure 18 As shown, the process includes the following steps:

[0060] Step S1802: Send multiple FlexE overhead frames, wherein the C values ​​carried in the multiple FlexE overhead frames change in a regular sequence.

[0061] Through the above steps, multiple FlexE overhead frames are sent. The C values ​​carried in these multiple FlexE overhead frames change in a regular sequence, which solves the problem of how to reliably transmit the C values ​​when the FlexE protocol code block is modified to a 257 code block or even a 513 code block, thereby achieving the effect of reliable transmission of the C values.

[0062] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, or network device, etc.) to execute the methods of the various embodiments of the present invention.

[0063] This embodiment also provides a means for transmitting the C value in a FlexE overhead frame. This means is used to implement the above embodiments and preferred embodiments, and will not be repeated as already described. As used below, the term "module" can be a combination of software and / or hardware that implements a predetermined function. Although the means described in the following embodiments are preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.

[0064] Figure 19 This is a structural block diagram of a device for transmitting the C value in a FlexE overhead frame according to an embodiment of the present invention, as shown below. Figure 19 As shown, the device 1900 includes:

[0065] The receiving module 1902 is used to receive multiple FlexE overhead frames, wherein the C values ​​carried in the multiple FlexE overhead frames change in a regular sequence.

[0066] Module 1904 is used to obtain the C value in multiple FlexE overhead frames;

[0067] The determination module 1906 is used to determine the FlexE overhead frame in which the C value indicating the switching of the customer calendar is located, based on the correct C value in at least one FlexE overhead frame and the regular sequence of C values.

[0068] In one exemplary embodiment, each FlexE overhead frame includes three C bits, the values ​​of which constitute the C value of each FlexE overhead frame. The C value sequence is a frame-by-frame change process in which the values ​​of the three C bits change from all 0s to all 1s or from all 1s to all 0s across multiple FlexE overhead frames.

[0069] In one exemplary embodiment, the determining module 1906 includes:

[0070] The switching submodule is used to switch the corresponding client calendar table in the frame following the FlexE overhead frame where the values ​​of the three C bits change to all 0s or all 1s.

[0071] In one exemplary embodiment, the determining module 1906 includes:

[0072] The first determining submodule is used to determine the FlexE overhead frame in which the C value indicating the switching of the customer calendar table is located, based on the C value pattern sequence, if the three C bits in one frame have the correct value, in the case that the values ​​of the three C bits change from all 0 to all 1 or from all 1 to all 0 respectively.

[0073] The second determining submodule is used to determine the FlexE overhead frame where the C value indicating the switching of the client calendar is located based on the C value regularity sequence, in the case that in the transition frames where the values ​​of the three C bits change from all 0 to all 1 or from all 1 to all 0 respectively, the values ​​of the three C bits are correct in at least two frames, and the code block positions of the correct three C bit values ​​conform to the C value regularity sequence.

[0074] In one exemplary embodiment, the device 1900 includes:

[0075] The judgment module is used to determine whether the values ​​of the three C bits in each FlexE overhead frame are correct based on the CRC check result in each FlexE overhead frame.

[0076] This embodiment also provides a means for transmitting the C value in a FlexE overhead frame. Figure 20 This is another structural block diagram of the device for transmitting the C value in the FlexE overhead frame according to an embodiment of the present invention, as shown below. Figure 20 As shown, the device 2000 includes:

[0077] The transmitting module 2002 is used to transmit multiple FlexE overhead frames, wherein the C values ​​carried in the multiple FlexE overhead frames change in a regular sequence.

[0078] It should be noted that the above modules can be implemented by software or hardware. For the latter, they can be implemented in the following ways, but are not limited to: all the above modules are located in the same processor; or, the above modules are located in different processors in any combination.

[0079] Example 1

[0080] This embodiment describes a scenario where the FlexE overhead frame uses 257 bits as the basic code block, and one frame has three C bits with correct values, while the transition frame consists of 6 frames.

[0081] First, the sending end sends multiple FlexE overhead frames, in which the C value carried in the multiple FlexE overhead frames changes in a regular sequence.

[0082] The receiving end then receives multiple FlexE overhead frames and obtains the C value from these frames.

[0083] For example, the initial C value is 000. In the first frame, it is 000. After a FlexE frame block interval (one frame interval is 2*4*1023*5 code blocks), the C value becomes 001 in the second frame. After a fixed frame interval, the C value becomes 010 in the third frame, and so on. In the fourth frame, the C value becomes 011; in the fifth frame, it becomes 100; in the sixth frame, it becomes 101; in the seventh frame, it becomes 110; and in the eighth frame, it becomes 111. The C value changes from 000 in the first frame to 111 in the eighth frame over eight frames. The changes from the second to the seventh frame follow a regular C value sequence: 001, 010, 011, 100, 101, 110. The C value sequence is as follows: 000, 000, 001, 010, 011, 100, 101, 110, 111, 111, ...

[0085] Since the C value takes 8 frames to change from 000 to 111, even if there are errors in the overhead blocks in some frames during this period, as long as the C value of at least one frame is correct during the transition (the correctness of the three C bits in each FlexE overhead frame can be determined by the CRC check result in each FlexE overhead frame), the FlexE overhead frame where the C value indicating the switching of the client calendar table is located can be determined based on the C value sequence. It is also possible to determine the location of other C value code blocks and the exact location of the code block where all C values ​​change to 111.

[0086] For example, the C value in the FlexE frame series is:

[0087] xxx, xxx, xxx, 011, xxx, xxx, xxx, yyy,

[0088] xxx and yyy indicate a CRC check error in this frame. The C value in this frame may be incorrect, making it impossible to know the true content. Since 011 is the correct C value, even if the C values ​​of other frames cannot be known due to bit errors, the C value sequence can still be used to deduce that yyy is 111. The value of the 3 C bits at this frame position becomes 111, indicating that this frame has switched to the Client calendar B entry content.

[0089] Example 2

[0090] This embodiment describes a scenario where the FlexE overhead frame uses 257 bits as the basic code block, and at least two frames have three C bits with correct values, with a transition frame of 6 frames.

[0091] First, the sending end sends multiple FlexE overhead frames, in which the C value carried in the multiple FlexE overhead frames changes in a regular sequence.

[0092] The receiving end then receives multiple FlexE overhead frames and obtains the C value from these frames.

[0093] For example, the initial C value is 111. In the first frame, the C value is 111. After a FlexE frame block interval (one frame interval is 2*4*1023*5 code blocks), the C value becomes 110 in the second frame. After a fixed frame interval, the C value becomes 101 in the third frame, 100 in the fourth frame, 011 in the fifth frame, 010 in the sixth frame, 001 in the seventh frame, and 000 in the eighth frame. The C value changes from 111 in the first frame to 000 in the eighth frame over eight frames. The changes from the second to the seventh frame follow a predictable C value sequence. The predictable C value sequence is as follows: 111, 111, 110, 101, 100, 011, 010, 001, 000, 000, ...

[0095] Since the C value takes 8 frames to change from 111 to 000, even if errors occur in some frames during this period, as long as the C value is correct in at least two of the 8 frames (the CRC check result in each FlexE overhead frame can be used to determine whether the three C bits in each FlexE overhead frame are correct), and the code block position of the correct C value conforms to the C value pattern sequence, the FlexE overhead frame where the C value indicating the switching of the client calendar table is located can be determined based on the C value pattern sequence. The code block positions of other C values ​​and the code block positions where all C values ​​change to 000 can also be determined.

[0096] For example, the C value in the FlexE frame series is:

[0097] xxx, 110, xxx, 100, xxx, xxx, xxx, yyy,

[0098] xxx and yyy indicate a CRC check error in this frame. The C value in this frame may be incorrect, making it impossible to know the true content. Since 110 and 100 are correct C values, even if the C values ​​in other frames are indeterminate due to bit errors, the correct C values ​​110 and 100, and the fact that the code block positions of the correct C values ​​110 and 100 conform to the C value pattern sequence, still allow us to deduce that yyy is 000. A C value of 000 at this frame position indicates a switch to the Client calendar A entry.

[0099] Example 3

[0100] In the above embodiments one and two, when the C value in the FlexE frame changes from 000 to 111, or from 111 to 000, it needs to go through a regular sequence of 6 C values, with a 6-frame transition phase in between. The transition phase is relatively long. In this embodiment, the number of transition frames can be reduced.

[0101] This embodiment describes a scenario where the FlexE overhead frame uses 257 bits as the basic code block, and at least two frames have three C bits with correct values, and the transition frame consists of three frames.

[0102] First, the sending end sends multiple FlexE overhead frames, in which the C value carried in the multiple FlexE overhead frames changes in a regular sequence.

[0103] The receiving end then receives multiple FlexE overhead frames and obtains the C value from these frames.

[0104] For example, the C value sequence that changes from 000 to 111 is: 000, 001, 010, 100, 111, with only three transition frames in between: 001, 010, and 100. Figure 21 This is a schematic diagram illustrating the change in the C value according to an embodiment of the present invention, as shown below. Figure 21 As shown, even if the C value in frame 3 is incorrect (this can be determined by checking the CRC check result in each FlexE overhead frame to see if the three C bits in each FlexE overhead frame are correct), the correct C values ​​in frames 2 and 4, the code block positions of the correct C values ​​in frames 2 and 4, and the regular sequence of C values ​​indicate that the C value in frame 5 will become 111. The C value becoming 111 in frame 5 indicates that this frame switches to the Client calendar B entry content.

[0105] Example 4

[0106] This embodiment describes a scenario where the FlexE overhead frame uses 257 bits as the basic code block, and at least two frames have three C bits with correct values, and the transition frame consists of three frames.

[0107] First, the sending end sends multiple FlexE overhead frames, in which the C value carried in the multiple FlexE overhead frames changes in a regular sequence.

[0108] The receiving end then receives multiple FlexE overhead frames and obtains the C value from these frames.

[0109] For example, the C value sequence that changes from 111 to 000 is: 111, 110, 101, 011, 000, with only three transition frames: 110, 101, and 011. Even if the C value in some frames is incorrect, Figure 22This is another schematic diagram illustrating the change in the C value according to an embodiment of the present invention, such as... Figure 22 As shown, even if the C value is incorrect in frames 4 and 5 (the correctness of the three C bits in each FlexE overhead frame can be determined by the CRC check result in each FlexE overhead frame), the correct C values ​​in frames 2 and 3, the code block positions of the correct C values ​​in frames 2 and 3, and the regular sequence of C values ​​indicate that the C value in frame 4 becomes 011 and the C value in frame 5 becomes 000. The C value becoming 000 in frame 5 indicates that this frame switches to the Clientcalendar A entry.

[0110] Through the above embodiments, the requirement to change the C value from 000 to 111, or from 111 to 000, is not a sudden change, but rather a change that occurs after multiple intermediate transition states in a regular sequence of C values. At the receiving end, the CRC check algorithm is used to determine whether the C value is correct. For correct C values, based on the content of the C value, the code block position, and the regular sequence of C values, even if the C values ​​in some frames are incorrect or unusable, the exact position where the C value changes from 000 to 111, or from 111 to 000 (the frame where the new C value takes effect) can still be determined from the frame position of the correct C value. This allows us to determine the correct position for switching the Client Calendar A entry to the Client Calendar B entry (the starting frame where the new entry switch takes effect), or the correct position for switching the Client Calendar B entry to the Client Calendar A entry (the starting frame where the new entry switch takes effect).

[0111] It should be noted that the C-value sequence can be any defined sequence, which will not be described in detail here. The method for transmitting C-values ​​in FlexE overhead frames proposed in this application is applicable not only to FlexE overhead frames with 257-bit basic code blocks, but also to FlexE overhead frames with 513-bit basic code blocks, which will not be elaborated here.

[0112] Embodiments of the present invention also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to perform the steps in any of the above method embodiments when executed.

[0113] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0114] Embodiments of the present invention also provide an electronic device including a memory and a processor, the memory storing a computer program and the processor being configured to run the computer program to perform the steps in any of the above method embodiments.

[0115] In one exemplary embodiment, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor and the input / output device is connected to the processor.

[0116] Specific examples in this embodiment can be found in the examples described in the above embodiments and exemplary implementations, and will not be repeated here.

[0117] It is obvious to those skilled in the art that the modules or steps of the present invention described above can be implemented using general-purpose computing devices. They can be centralized on a single computing device or distributed across a network of multiple computing devices. They can be implemented using computer-executable program code, and thus can be stored in a storage device for execution by a computing device. In some cases, the steps shown or described can be performed in a different order than those described herein, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, the present invention is not limited to any particular combination of hardware and software.

[0118] The above are merely preferred embodiments of the present invention and are not intended to limit the present invention. For those skilled in the art, the present invention can have various modifications and variations. Any modifications, equivalent substitutions, improvements, etc., made within the principles of the present invention should be included within the protection scope of the present invention.

Claims

1. A method for transmitting the C value in a FlexE overhead frame, characterized in that, include: Receive multiple FlexE overhead frames, wherein the C values ​​carried in the multiple FlexE overhead frames change in a regular sequence; Obtain the C value from the plurality of FlexE overhead frames; The FlexE overhead frame containing the C value indicating the switching of the customer calendar is determined based on the correct C value in at least one of the FlexE overhead frames and the regular sequence of the C values.

2. The method according to claim 1, characterized in that, Each FlexE overhead frame includes three C bits, the values ​​of which constitute the C value of each FlexE overhead frame. The regular sequence of the C values ​​is a frame-by-frame change process in the plurality of FlexE overhead frames, where the values ​​of the three C bits change from all 0s to all 1s, or from all 1s to all 0s.

3. The method according to claim 2, characterized in that, The FlexE overhead frame that determines the location of the C value indicating a switch to the customer calendar table includes: The corresponding customer calendar is switched in the frame following the FlexE overhead frame where the values ​​of the three C bits become all 0 or all 1.

4. The method according to claim 2, characterized in that, Determining the FlexE overhead frame containing the C value indicating a switch of customer calendars based on at least one correct C value in the FlexE overhead frame and the regular sequence of the C values ​​includes: In the transition frames where the values ​​of the three C bits change from all 0 to all 1 or from all 1 to all 0 respectively, if the value of the three C bits in one frame is correct, the FlexE overhead frame in which the C value indicating the switching of the customer calendar is located is determined according to the C value pattern sequence.

5. The method according to claim 2, characterized in that, Determining the FlexE overhead frame containing the C value indicating a switch of customer calendars based on at least one correct C value in the FlexE overhead frame and the regular sequence of the C values ​​includes: In the transition frames where the values ​​of the three C bits change from all 0 to all 1 or from all 1 to all 0 respectively, if the values ​​of the three C bits are correct in at least two frames, and the code block positions of the correct three C bit values ​​conform to the C value pattern sequence, the FlexE overhead frame in which the C value indicating the switching of the customer calendar is located is determined according to the C value pattern sequence.

6. The method according to claim 2, characterized in that, After obtaining the C value from the plurality of FlexE overhead frames, the process includes: The value of the three C bits in each FlexE overhead frame is determined based on the CRC check result in each FlexE overhead frame.

7. A method for transmitting the C value in a FlexE overhead frame, characterized in that, include: Multiple FlexE overhead frames are sent, wherein the C values ​​carried in the multiple FlexE overhead frames change in a regular sequence.

8. A means for transmitting the C value in a FlexE overhead frame, characterized in that, include: A receiving module is used to receive multiple FlexE overhead frames, wherein the C values ​​carried in the multiple FlexE overhead frames change in a regular sequence; The acquisition module is used to acquire the C value in the plurality of FlexE overhead frames; The determination module is configured to determine the FlexE overhead frame containing the C value that indicates the switching of the customer calendar based on the correct C value in at least one of the FlexE overhead frames and the regular sequence of the C values.

9. A device for transmitting the C value in a FlexE overhead frame, characterized in that, include: The transmitting module is used to transmit multiple FlexE overhead frames, wherein the C values ​​carried in the multiple FlexE overhead frames change in a regular sequence.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein when the computer program is executed by a processor, it implements the steps of the method described in any one of claims 1 to 6, or the steps of the method described in claim 7.

11. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the method described in any one of claims 1 to 6, or the steps of the method described in claim 7.

12. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method described in any one of claims 1 to 6, or the steps of the method described in claim 7.