WO2022062930A1 - 一种码块流的处理方法及装置 - Google Patents
一种码块流的处理方法及装置 Download PDFInfo
- Publication number
- WO2022062930A1 WO2022062930A1 PCT/CN2021/117859 CN2021117859W WO2022062930A1 WO 2022062930 A1 WO2022062930 A1 WO 2022062930A1 CN 2021117859 W CN2021117859 W CN 2021117859W WO 2022062930 A1 WO2022062930 A1 WO 2022062930A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- code block
- control code
- blocks
- stream
- block
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
- H04L1/0003—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate by switching between different modulation schemes
- H04L1/0004—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate by switching between different modulation schemes applied to control information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Definitions
- the present application relates to the field of communication technologies, and in particular, to a method and apparatus for processing a code block stream.
- IPG inter packet gap
- MAC medium access control
- MAC medium access control
- the above-mentioned idle code blocks can be deleted or replaced with other control code blocks and so on. Therefore, how to reasonably utilize idle code blocks in a communication device needs to be solved urgently.
- the present application provides a method and device for processing a code block stream, which can ensure that idle code blocks are reasonably utilized.
- the present application provides a method for processing a code block stream, the method comprising: acquiring a first code block stream, where the first code block stream includes at least two code blocks, the at least two code blocks including at least two first control code blocks; determining at least one target control code block in the at least two first control code blocks, the target control code block being a first control code block that can be replaced with a second control code block a control code block; when the second control code block needs to be inserted, replace one of the target control code blocks in the at least one target control code block with the second control code block to obtain a second code block stream .
- the methods provided in the embodiments of the present application may be applied to a communication apparatus, where the communication apparatus may include a sending end, and the sending end may include an interface (network to network interface, NII) between networks or devices within a network and/or a user-side interface (user network interface, UNI).
- NII network to network interface
- the target control code block shown here can be replaced by the second control code block, which means whether the target control code block will be replaced by the second control code block. Whether the terminal needs to insert the second control code block in the first code block stream.
- the target control code block can also be used to be replaced by the third control code block block etc.
- the transmitting end avoids replacing all the first control code blocks when the transmitting end needs to insert the second control code block is the second control code block, or avoids the sending end arbitrarily inserting the second control code block in the first code block stream according to the needs.
- the transmitting end can reasonably utilize the first control code block, and when the receiving end needs to delete the first control code block due to the rate adaptation requirement, there are not enough first control code blocks to be deleted.
- the receiving end can delete enough first control code blocks, which avoids increasing the processing delay of the receiving end and ensures that the receiving end processes the code block stream in time.
- the first control code block is any one of an idle (idle) code block, a low power idle (low power idle, LPI) code block or an error (error) code block.
- the second control code block includes an automatic protection switching (auto protection switching, APS) code block, a connection verification (connection verification, CV) code block, and a delay measurement (delay measurement, DM) code Any one or more of block, client signal type indication (client service, CS) code block.
- auto protection switching auto protection switching
- CV connection verification
- DM delay measurement
- the DM code block may include a one-way delay measure (1DM), a two-way delay measure message (2DMM), or a two-way delay measurement response (two-way delay measurement response). delay measure message response, 2DMMR), etc.
- the second control code block includes any one or more of automatic protection switching APS information, link verification CV information, delay measurement DM information, and client signal type indication CS information.
- the determining at least one target control code block in the at least two first control code blocks includes: determining at least one non-target control code block in the at least two first control code blocks code block, the non-target control code block is a first control code block that cannot be replaced by the second control code block.
- At least two first control code blocks may be divided into target control code blocks and non-target control code blocks, and the above-mentioned solution mainly involves the sending end directly determining the target control code block.
- the transmitting end may also indirectly determine the target control code block by determining the non-target control code block.
- the transmitting end determines at least one non-target control code block in the at least two first control code blocks, and the non-target control code block is the first control code block that cannot be replaced with the second control code block.
- the non-target control code block is a reserved first control code block.
- This embodiment of the present application does not limit the specific function of the non-target control code block.
- the non-target control code block is a first control code block reserved based on a rate adaptation requirement.
- the non-target control code block may be the first control code block to be deleted based on the rate adaptation requirement.
- the determining at least one non-target control code block in the at least two first control code blocks includes: determining a non-target control code block in the at least two first control code blocks according to a first threshold For the at least one non-target control code block, the first threshold is obtained based on a rate adaptation requirement.
- the first threshold may be obtained based on a rate adaptation requirement. For example, if the frequency offset existing between two ports is 200 ppm, the first threshold may be obtained according to the 200 ppm.
- the first threshold is also obtained based on any one or more of the following information: the period of the third control code block, the period of the overhead information of the metro transport network (MTN) segment layer, and the alignment marker (AM) The period of the MTN segment layer operation management and maintenance (operations, administration, and maintenance, OAM) code block period.
- non-target control code blocks can be deleted by the receiver based on rate adaptation requirements.
- the non-target control code block can be used to compensate for the bandwidth resource occupied by inserting any one or more pieces of the above information into the first code block stream.
- the first code block stream includes N code blocks, where N is greater than 2, and the determining at least one non-target control code in the at least two first control code blocks
- the block includes: determining at least one non-target control code block from at least two first control code blocks in the N code blocks.
- the above-mentioned determination of at least one non-target control code block from at least two first control code blocks in N code blocks can also be understood as: at least two first control code blocks in every N code blocks At least one non-target control code block is determined in the code blocks.
- N 5000.
- the determining at least one non-target control code block in the at least two first control code blocks includes: converting the first first control code block in the N code blocks It is determined as the non-target control code block.
- the transmitting end may determine the first first control code block in every 5000 code blocks as a non-target control code block, so that the remaining first control code blocks included in the 5000 code blocks , it can be the target control code block.
- the first code block stream includes 2*5000 code blocks, then at least one non-target control code block may be determined in the first 5000 code blocks, and then at least one non-target control code block may be determined in the second 5000 code blocks.
- Non-target control code block Exemplarily, the transmitting end may determine at least one non-target control code block in the at least two first control code blocks within the detection window.
- the detection window can include 5000 code blocks.
- the method further comprising: marking the at least one target control code block; replacing one of the target control code blocks in the at least one target control code block with the second control code block, and obtaining the second code block stream includes: : Replace one target control code block in the marked at least one target control code block with the second control code block to obtain the second code block stream.
- the method further comprising: marking the at least one non-target control code block; replacing one of the target control code blocks in the at least one target control code block with the second control code block to obtain a second code block stream
- the method includes: replacing one of the unmarked first control code blocks with the second control code block to obtain the second code block stream.
- the sending end marks the target control code block or the non-target control code block, so that the sending end can replace the target control code block with the second control code block according to the marking result when the second control code block needs to be inserted. code block.
- the efficiency of inserting the second control code block at the transmitting end is effectively improved.
- the replacing one of the target control code blocks in the at least one target control code block with the second control code block, and obtaining the second code block stream includes: according to the The period of the second control code block and/or the priority of the second control code block replaces one target control code block in the at least one target control code block with the second control code block to obtain the first control code block.
- Two-code block stream includes: according to the The period of the second control code block and/or the priority of the second control code block replaces one target control code block in the at least one target control code block with the second control code block to obtain the first control code block.
- the first code block stream further includes a third control code block.
- the first code block stream obtained by the transmitting end may be a code block stream into which the third control code block has been inserted.
- the insertion order of the third control code blocks shown here is only an example.
- the insertion order of the third control code block may be determined before the transmitting end determines the non-target control code block (or the target control code block), or the insertion order of the third control code block may also be determined by the transmitting end. After the target control code block (or target control code block).
- the insertion method of the third control code block may be the method of replacing the idle code block, or the method of IPG forced insertion.
- the embodiment of the present application does not limit the insertion order or insertion method of the third control code block.
- the present application provides a method for processing a code block stream, the method comprising: acquiring a first code block stream, where the first code block stream includes at least two code blocks, the at least two code blocks including the first boundary code block and the second boundary code block; determine the period of the second control code block according to the number of code blocks between the first boundary code block and the second boundary code block; insert the During the second control code block, insert at least one of the second control code blocks into the first code block stream according to the period of the second control code block to obtain a second code block stream.
- the first boundary code block and the second boundary code block may be different types of boundary code blocks, for example, the first boundary code block may be the start S code block, and the second boundary code block may be the end T code block .
- the period of the second control code block is determined according to the number of code blocks between the S code block and the T code block. Therefore, the second control code block is reasonably inserted into the code block stream. It is avoided that the second control code block occupies too much idle resources, resulting in insufficient idle code blocks to be deleted at the receiving end, thereby avoiding increasing the processing delay of the receiving end.
- the number of code blocks between the first boundary code block and the second boundary code block is different, and the period of the second control code block is different.
- the ranges corresponding to the number of code blocks between the first boundary code block and the second boundary code block are different, and the periods of the second control code blocks are different.
- the determining the period of the second control code block according to the number of code blocks between the first boundary code block and the second boundary code block includes: according to the first boundary code block The number of code blocks between the block and the second boundary code block determines the ratio of the first control code block in the at least two code blocks; according to the first control code block in the at least two code blocks The ratio of , and a first threshold determine the period of the second control code block, and the first threshold is obtained based on a rate adaptation requirement.
- determining the period of the second control code block according to the number of code blocks between the first boundary code block and the second boundary code block includes: according to a preset duration, the first The maximum value of the number of code blocks between a boundary code block and the second boundary code block determines the period of the second control code block; or, within a preset number of times, the first boundary code block and the The maximum value of the number of code blocks between the second boundary code blocks determines the period of the second control code block, and the preset number of times is used to represent the interval between the first boundary code block and the second boundary code block The statistical count of the number of code blocks.
- the larger the number of code blocks between the first boundary code block and the second boundary code block the smaller the ratio of the first control code block in the at least two code blocks, and thus the second control code block is smaller.
- the smaller the ratio of the code blocks in the at least two code blocks the larger the period of the obtained second control code block. Therefore, the period of the second control code block is determined by the maximum value of the number of code blocks between the S code block and the T code block, so as to prevent the determined period of the second control code block from being too small, resulting in too many second control code blocks
- the resources of the first control code block are occupied, so that the receiving end does not have enough first control code blocks to be deleted.
- the period of the second control code block is determined by the maximum value of the number of code blocks between the first boundary code block and the second boundary code block, which effectively ensures that enough first control code blocks are deleted at the receiving end to avoid Increase the delay for the receiving end to process the code block stream.
- the inserting at least one second control code block into the first code block stream according to the period of the second control code block, and obtaining the second code block stream includes: according to The period of the second control code block, and the position of the first control code block included in the first code block stream, insert at least one of the second control code blocks in the first code block stream.
- the transmitting end when the transmitting end needs to insert the second control code block, not only the period of the second control code block but also the position of the first control code block in the first code block stream needs to be used in the first code block.
- a second control code block is inserted into the block stream.
- the insertion method of the second control code block may be a method of idle replacement, or a method of IPG forced insertion.
- the present application provides a communication apparatus for performing the method in the first aspect or any possible implementation manner of the first aspect.
- the communication apparatus includes corresponding means for performing the method of the first aspect or any possible implementation of the first aspect.
- the communication device may include a transceiving unit and a processing unit.
- the communication device may be the sending end shown in the first aspect.
- the present application provides a communication apparatus for performing the method in the second aspect or any possible implementation manner of the second aspect.
- the communication device includes corresponding means for performing the method of the second aspect or any possible implementation of the second aspect.
- the communication device may include a transceiving unit and a processing unit.
- the communication device may be the sending end shown in the second aspect.
- the present application provides a communication device, where the communication device includes a processor, configured to execute the method shown in the first aspect or any possible implementation manner of the first aspect.
- the process of sending a code block stream (such as a second code block stream, etc.) and/or receiving a code block stream, etc. can be understood as the process of outputting the code block stream by the processor, And/or, a process in which a processor receives an input stream of code blocks.
- the processor may output the stream of code blocks to the transceiver for transmission by the transceiver.
- the transceiver receives the stream of code blocks and feeds it into the processor.
- the code block stream may require other processing and then input to the processor.
- the above-mentioned processor may be a processor specially used to execute these methods, or may be a processor that executes computer instructions in a memory to execute these methods, such as a general-purpose processor.
- the above-mentioned memory can be a non-transitory (non-transitory) memory, such as a read-only memory (read only memory, ROM), which can be integrated with the processor on the same chip, or can be set on different chips respectively.
- ROM read-only memory
- the memory is located outside the communication device.
- the memory is located within the communication device.
- the processor and the memory may also be integrated into one device, that is, the processor and the memory may also be integrated together.
- the communication apparatus further includes a transceiver for receiving and/or transmitting signals.
- the transceiver may be used to transmit the second code block stream and the like.
- the present application provides a communication device, the communication device includes a processor for executing a computer program stored in a memory, and when the computer program is executed, causes the communication device to perform the above-mentioned second aspect or the method shown in any possible implementation manner of the second aspect.
- the memory is located outside the communication device.
- the memory is located within the communication device.
- the processor and the memory may also be integrated into one device, that is, the processor and the memory may also be integrated together.
- the communication apparatus further includes a transceiver for receiving and/or transmitting signals.
- the transceiver may be used to transmit the second code block stream and the like.
- the present application provides a communication device, the communication device includes a logic circuit and an interface, the logic circuit and the interface are coupled; wherein, the logic circuit is used to obtain a first code block stream, the The first code block stream includes at least two code blocks, and the at least two code blocks include at least two first control code blocks; and is further configured to determine at least two of the at least two first control code blocks A target control code block, the target control code block is a first control code block that can be replaced by a second control code block; and, when the second control code block needs to be inserted, the at least One of the target control code blocks in a target control code block is replaced with the second control code block to obtain a second code block stream.
- the interface is configured to output the second code block stream.
- the logic circuit is specifically configured to determine at least one non-target control code block in the at least two first control code blocks, where the non-target control code block cannot be replaced with A first control code block of the second control code block.
- the logic circuit is specifically configured to determine the at least one non-target control code block in the at least two first control code blocks according to a first threshold, where the first threshold is based on Rate adaptation requirements are obtained.
- the logic circuit is further configured to mark the at least one target control code block, and replace one of the marked target control code blocks with a and the second control code block to obtain the second code block stream.
- the logic circuit is further configured to mark the at least one non-target control code block; and replace one of the unmarked first control code blocks with a and the second control code block to obtain the second code block stream.
- the logic circuit is specifically configured to put the at least one target control code block into the at least one target control code block according to the period of the second control code block and/or the priority of the second control code block One of the target control code blocks is replaced with the second control code block to obtain a second code block stream.
- the target control code block for the description of the target control code block, the non-target control code block, the first control code block, the second control code block, and the third control code block, reference may be made to the above-mentioned first aspect, which will not be described in detail here. .
- the present application provides a communication device, the communication device includes a logic circuit and an interface, the logic circuit and the interface are coupled; wherein, the logic circuit is used to obtain a first code block stream, the The first code block stream includes at least two code blocks, and the at least two code blocks include a first boundary code block and a second boundary code block; The number of code blocks between the two boundary code blocks determines the period of the second control code block; and when the second control code block needs to be inserted, according to the period of the second control code block Inserting at least one of the second control code blocks into the code block stream to obtain a second code block stream.
- the interface is configured to output the second code block stream.
- the logic circuit is specifically configured to determine, according to the number of code blocks between the first boundary code block and the second boundary code block, whether the first control code block is in the at least two
- the period of the second control code block is determined according to the ratio of the first control code block in the at least two code blocks and a first threshold, the first threshold is based on rate adaptation Need to get.
- the logic circuit is specifically configured to determine the said The period of the second control code block; or, the period of the second control code block is determined according to the maximum value of the number of code blocks between the first boundary code block and the second boundary code block within a preset number of times , and the preset number of times is used to represent the number of counts of the number of code blocks between the first boundary code block and the second boundary code block.
- the logic circuit is specifically configured to, according to the period of the second control code block and the position of the IPG included in the first code block stream, in the first code block At least one of said second control code blocks is inserted into the stream.
- the logic circuit is specifically configured to, according to the period of the second control code block and the position of the first control code block included in the first code block stream, At least one of the second control code blocks is inserted into the first code block stream.
- the target control code block for the description of the target control code block, the non-target control code block, the first control code block, the second control code block, and the third control code block, reference may be made to the above-mentioned second aspect, which will not be described in detail here. .
- the present application provides a computer-readable storage medium, the computer-readable storage medium is used to store a computer program, which, when it runs on a computer, enables the first aspect or any possible implementation of the first aspect The method shown is executed.
- the present application provides a computer-readable storage medium, the computer-readable storage medium is used to store a computer program, which enables the second aspect or any possible implementation manner of the second aspect when it runs on a computer. The method shown is executed.
- the present application provides a computer program product, the computer program product comprising a computer program or computer code, when it is run on a computer, the above-mentioned first aspect or any possible implementation of the first aspect is shown method is executed.
- the present application provides a computer program product, the computer program product comprising a computer program or computer code, which, when run on a computer, makes the second aspect or any possible implementation of the second aspect described above method is executed.
- the present application provides a computer program, when the computer program runs on a computer, the method shown in the first aspect or any possible implementation manner of the first aspect is executed.
- the present application provides a computer program, when the computer program runs on a computer, the method shown in the second aspect or any possible implementation manner of the second aspect is executed.
- FIG. 1 is a schematic diagram of an MTN network architecture provided by an embodiment of the present application.
- Fig. 2 is a kind of different code block definitions of 64B/66B provided by the embodiment of this application;
- 3a is a schematic diagram of a method for replacing an idle code block provided by an embodiment of the present application.
- 3b is a schematic diagram of an IPG forcible insertion provided by an embodiment of the present application.
- Figure 4a is a different type of O code block provided by an embodiment of the present application.
- 4b is a schematic diagram of a cycle provided by an embodiment of the present application.
- 5a and 5b are schematic diagrams of a network architecture provided by an embodiment of the present application.
- FIG. 5c is a schematic diagram of a relationship between a PHY and a time slot provided by an embodiment of the present application.
- FIG. 6 is a schematic flowchart of a method for processing a code block stream provided by an embodiment of the present application
- FIG. 7a and 7b are schematic diagrams of an MTN channel layer O code block insertion module provided by an embodiment of the present application.
- 7c is a schematic diagram of identifying an idle code block provided by an embodiment of the present application.
- FIG. 7d and 7e are schematic diagrams of an MTN channel layer O code block insertion module provided by an embodiment of the present application.
- 8a and 8b are specific flowcharts of a method for processing a code block stream provided by an embodiment of the present application.
- 9a is a schematic flowchart of a method for processing a code block stream provided by an embodiment of the present application.
- 9b and 9c are schematic diagrams of a non-BAS code block insertion method provided by an embodiment of the present application.
- 10a and 10b are schematic diagrams of an MTN channel layer O code block insertion module provided by an embodiment of the present application.
- FIG. 10c is a specific flowchart of a method for processing a code block stream provided by an embodiment of the present application.
- 11 to 13 are schematic structural diagrams of a communication device provided by an embodiment of the present application.
- At least one (item) means one or more
- plural means two or more
- at least two (item) means two or three and three
- “and/or” is used to describe the relationship of related objects, indicating that there can be three kinds of relationships, for example, "A and/or B” can mean: only A exists, only B exists, and both A and B exist three A case where A and B can be singular or plural.
- the character “/” generally indicates that the associated objects are an “or” relationship.
- At least one of the following” or similar expressions refers to any combination of these items. For example, at least one (a) of a, b or c, can mean: a, b, c, "a and b", “a and c", “b and c", or "a and b and c" ".
- MTN Metro transport network
- MTN is defined by the International Telecommunication Union (telecommunication standardization sector of itu, ITU-T) based on the design logic of flexible ethernet (FlexE) for new business requirements such as the fifth-generation communication technology (5th-generation, 5G).
- MTN includes complete transport network functions, such as interface, crossover, operation management and maintenance (operations, administration, and maintenance, OAM), control or protection, etc.
- Figure 1 shows a schematic diagram of an MTN network architecture. As shown in Figure 1, the MTN may include an MTN path layer (MTN path layer) and an MTN section layer (MTN section layer).
- MTN path layer MTN path layer
- MTN section layer MTN section layer
- the MTN channel layer includes an MTN channel adaptation layer (MTN path adaptation), an MTN channel termination layer (MTN path trail termination), an MTN channel connection layer (MTN path connection), and the like.
- the MTN section layer includes the MTN section layer adaptation layer (MTN section adaptation) and the MTN section layer termination layer (MTN section trail termination).
- the MTN segment layer may further include an adaptation layer.
- MTN channel adaptation layer MTN channel termination layer, MTN channel connection layer or MTN segment layer termination layer may also have other names.
- MTN channel adaptation layer may also be called the MTN channel adaptation function module. etc., which are not limited in this application.
- the service flow obtained by the sender can pass through the MAC and enter the MTN domain MTN channel adaptation layer to be adapted into the form of 64B/66B code block flow.
- the 64B/66B code block stream After the 64B/66B code block stream enters the MTN channel termination layer, the 64B/66B code block stream will be inserted into the channel layer operations management and maintenance (operations, administration, and maintenance, OAM) code block (if there is no special description, the following
- OAM operations management and maintenance
- the illustrated O code block may be understood as the MTN channel layer OAM code block), and the OAM code block may include OAM information.
- the sender can perform layer 1.5 forwarding through the MTN path connection layer (MTN path connection), that is, the corresponding relationship between the ingress and egress ports is determined at the MTN path connection layer, thereby determining the egress port.
- MTN section layer adaptation layer is the adaptation function from the channel layer to the section layer.
- the service flow of each MAC such as the form of 64B/66B code block
- a 64B/66B code block stream is formed.
- the 64B/66B code block stream will be inserted into the overhead information such as section layer OAM after passing through the MTN section trail termination layer (MTN section trail termination).
- the 64B/66B code block stream enters the physical layer through an adaptation layer for transmission and the like.
- the 64B/66B code block stream may also undergo scrambling, channel distribution, alignment marker (alignment marker, AM) insertion functions, and the like.
- the flow direction of the 64B/66B code block stream received by the receiving end is opposite to the flow direction of the 64B/66B code block stream sent by the transmitting end.
- the 64B/66B code block stream received by the receiving end may sequentially pass through, for example, the MTN segment layer, the MTN channel layer, and the like.
- the receiving end may delete and/or add the first control code block in the 64B/66B code block stream when passing through the MTN segment layer adaptation layer.
- the segment layer of MTN is functionally similar to the OIF FlexE shim.
- the current version of the MTN segment layer reuses compatible FlexE, and the segment layer frame format of the current version of MTN retains the FlexE frame format.
- the channel layer OAM information shown above may include basic (basic, BAS) information, automatic protection switching (auto protection switching, APS) information, connection verification (connection verification, CV) information, delay measurement (delay measurement, DM) information ) information or client signal type indication (client service, CS) information, etc. Therefore, in the MTN channel termination layer, a BAS code block, an APS code block, a CV code block, a DM code block or a CS code block, etc. can be inserted into the 64B/66B code block stream.
- P1B/P2B code block A coding method, which can also be called a P1B/P2B bit block, or a P1B/P2B block, or a P1B/P2B coding block, or a P1B/P2B coding block. It is a P1B/P2B bit stream, or it can also be called a P1/P2 (or P1b/P2b) bit block, etc.
- P1 represents the number of payload bits in the code block (or bit block);
- P2 represents the total number of bits in the code block,
- P2-P1 represents the number of synchronization header bits in the code block, P1 and P2 are positive integers, and P2 is greater than P1.
- the above P1B/P2B code block may be an 8B/10B code block, a 64B/66B code block, a 128B/130B code block, or a 256B/258B code block, etc.
- the specific values of the above P1 and P2 are not limited in this application. .
- this kind of P1B/P2B bit block is transmitted over the Ethernet (ethernet) physical layer link.
- Ethernet Ethernet
- 1G Ethernet (1gigabit ethernet, 1GE) uses 8B/10B bit block encoding
- 1GE physical layer links transmit 8B/10B bit blocks
- 10GE/40GE/100GE uses 64B/66B bit block encoding
- 10GE/40GE/100GE physical layer links transmit 64B/66B bit blocks.
- the 64B/66B code block shown below can also be replaced with a 64B/66B bit block, or a 64/66 code block, or a 64/66 bit block, or a 64b/66b code block, or a 64b/66b bit block, Or 64B/66B bit block stream, or 64B/66B encoded block, etc.
- FIG. 2 shows different code pattern definitions for a 64B/66B code block.
- the two bits "10" or "01" in the header are synchronization header bits, and the last 64 bits are payload bits, which can be used to carry payload data and the like.
- Each row in Figure 2 represents a code pattern definition, where D0-D7 represent data bytes, C0-C7 represent control bytes, S0 represent the beginning of a MAC frame, and T0-T7 represent the end of a MAC frame.
- a frequency offset of 200 ppm exists between any two Ethernet ports or ports based on an Ethernet physical layer (PHY), that is, a deviation of ⁇ 100 ppm exists between any ports.
- PHY Ethernet physical layer
- IPG inter packet gap
- MAC medium access control
- MAC medium access control
- MAC medium access control
- MAC medium access control
- the IPG between the MAC frames may be used to fill the control code blocks, for example, may include idle code blocks or so-called idle characters (hereinafter, the idle code blocks are taken as an example) and the like. Therefore, in order to adapt to the frequency offset between the ports shown above, the communication device may add or delete control code blocks such as idle code blocks. For example, when the sending rate of the sender is faster than the sending rate of the receiver, the write rate of the buffered data at the receiver will be faster than the read rate, which will cause buffer overflow in the long run.
- the receiver needs to delete the control code block such as the idle code block. Avoid buffer overflow on the receiver side. For another example, when the sending rate of the sender is slower than the sending rate of the receiver, the buffer write rate of the receiver will be slower than the read rate, which will cause the buffer to be empty in the long run. Therefore, the receiver needs to add a control code block such as an idle code block. The way to avoid the receiver buffer read empty. The method shown above, whether it is a method of adding a control code block such as an idle code block, or a method of deleting a control code block such as an idle code block, the valid data MAC frame has not changed, but the control code block filled in the IPG such as the idle code block. Blocks are added or deleted.
- the difference between the transmission rate of the transmitting end and the transmitting rate of the receiving end shown above, resulting in the requirement that the receiving end needs to delete and/or add idle code blocks is referred to as a rate adaptation requirement for short.
- the receiver needs to delete and/or add idle blocks.
- the requirement that the receiving end needs to delete and/or add idle code blocks due to other reasons may also be referred to as a rate adaptation requirement. That is, regardless of the rate difference between ports or other ways of occupying the bandwidth resources occupied by the idle code block, the receiving end needs to delete and/or add the idle code block, which can be referred to as a rate adaptation requirement.
- rate adaptation shown in this application may also be referred to as rate adjustment. Therefore, the rate adaptation requirement may also be referred to as a rate adjustment requirement, etc., the name of which is not limited in this application.
- MTN needs to insert OAM code blocks at the MTN channel layer.
- the OAM code block is generally inserted in the frame gap.
- the frame gap can be understood as the frame gap between the MAC frame and the MAC frame at the MAC layer, and can be understood as the end of the physical coding sublayer (physical coding sublayer, PCS) layer.
- a control code block between the code block and the start code block is an idle code block, a low power idle (LPI) code block, an error (error) code block, or an O code block, and the like.
- LPI low power idle
- error error code block
- O code block O code block
- the OAM code block introduced in this application can also be understood as a sequence (sequence ordered set, O) code block or a signal (signal ordered set, O) code block.
- sequence ordered set, O sequence ordered set
- signal ordered set, O signal code block
- the MTN can insert the O code block in two ways, the first is the way of replacing the idle code block, and the second is the way of IPG forced insertion, which will be introduced separately below.
- the first type: idle code block replacement requires at least one idle code block in the 64B/66B code block stream.
- Fig. 3a shows a schematic diagram of different code block types of the 64B/66B code block stream. It can be seen from Fig. 3a that the idle code block (ie, I in Fig. 3a) can be replaced with an O code block.
- the second: IPG strong insertion does not require the existence of an idle code block in the 64B/66B code block stream, that is, there is no need for an idle code block in the IPG position, as long as the end of the MAC frame such as a T code block is found, the O code can be inserted Piece.
- an O code block can be inserted after the T code block; in another example, an O code block can be inserted after the idle code block (ie, I in Fig. 3b).
- the way of IPG strong insertion can be understood as inserting an O code block after the T code block and before the S code block, but the data code block (ie, the D code block) is not included between the T code block and the S code block. Piece). Due to the bandwidth occupied by the transmitting end inserting the O code block, the receiving end can compensate by deleting the idle code block.
- O code blocks can be of various types, and Fig. 4a shows different types of O code blocks.
- the O code block may include a basic block/path status and error monitoring block (BAS), an automatic protection switching (auto protection switching, APS) code block, a connection verification (connection verification, CV) code block, delay measurement (delay measurement, DM) code block, client signal type indication (client service, CS) code block, etc.
- the BAS may include a remote fault indication (remote defect indication, RDI), a remote error indication (remote error indication, REI), or a parity (Bitinterleaved parity, BIP) and the like.
- the DM block can include one-way delay measure (1DM), two-way delay measure message (2DMM), or two-way delay measure response (2DMMR) )Wait.
- the CS may also be referred to as a payload type indication (payload type indication, PTI), etc. This application does not limit the specific names of each type of O code block.
- the BAS code block occupies a small bandwidth, one code block can carry all the information.
- type O code blocks such as CV code blocks and DM code blocks require a large bandwidth and need to be carried by multiple O code blocks. Therefore, different types of O code blocks can be divided into single code blocks and multiple code blocks according to the required number of code blocks.
- the communication apparatus may send in a manner of interleaving OAM information, or may send in a manner of interleaving code blocks.
- BAS has strong real-time performance, high transmission frequency and higher priority.
- the priority of APS code blocks is also high.
- the CV code block, DM code block, CS code block, etc. have low transmission frequency, weak real-time performance, and can tolerate large detection jitter, so the priority is low.
- the insertion position of the O code block is determined as the first position according to the period T of the O code block, but the O code block cannot be inserted in the middle of the data code block. Therefore, the insertion position of the O code block is second location. At the same time, the period of the next O code block can also be counted from the first position shown in Fig. 4b.
- the period or interval shown below can be understood as a nominal value, and the actual period of the O code block will fluctuate to a certain extent, but this certain degree of Floats do not accumulate into the cycle of the next O-code block. That is, in the various embodiments shown below in this application, when an O code block needs to be inserted, it is not only necessary to insert the O code block according to the period of the O code block, but also according to the position of the IPG (including the position of the idle code block, etc.) , that is, the position of the idle code block to insert the O code block.
- the method for deleting the idle code block described above can also obtain bandwidth for other code blocks/messages by deleting the idle code block.
- the alignment marker (AM) in the Ethernet physical layer (PHY) also needs to be transmitted on the link, that is, the bandwidth can be obtained by deleting the idle code block.
- the bandwidth occupied by the insertion of AM can be compensated by deleting the idle block.
- FlexE overhead (overhead, OH) or MTN segment layer OH can also obtain bandwidth by deleting idle code blocks. That is, the bandwidth resources occupied by the idle code block can be used in the following aspects:
- FlexE OH information or MTN segment layer OH information for example, an O code block can be inserted in every 1023*20 code blocks, that is, an idle code block is occupied in every 20461 code blocks.
- AM taking 100GE as an example, an O code block can be inserted in every 16384 code blocks, that is, an idle code block is occupied in every 16384 code blocks.
- MTN channel layer OH information such as channel layer OAM information.
- concentration of the idle block in two 9600-byte messages is about 416.7ppm.
- density of the idle code block can also be calculated by taking the length of the message as 9616 bytes (that is, corresponding to 1202 code blocks) as an example. There is no specific limitation on the maximum length of a packet.
- the concentration of idle code blocks in every 1023*20 code blocks is about 49ppm; for AM to Say, the concentration of idle code blocks in every 16384 code blocks is about 61ppm.
- the statement about the ratio occupied by an idle code block in at least two code blocks can also be replaced by the concentration of the idle code block.
- the bandwidth resource occupied by the idle code block not only needs to be used for port rate adaptation, but also needs to be used for MTN segment layer OH information or MTN channel layer OAM information. Therefore, how to use idle code blocks reasonably needs to be solved urgently.
- the sending rate of the sender when the sending rate of the sender is greater than the sending rate of the receiver, if the receiver does not have enough idle blocks to delete to adapt to the rates of different ports, it may cause the buffer of the receiver to overflow or increase the processing time of code blocks. extension. For example, when the buffer at the receiving end is too small, because the sending rate of the receiving end is lower than the sending rate of the sending end, that is, the receiving end cannot send the received code block stream in time, so the receiving end will soon have a buffer. overflow condition. For another example, when the buffer at the receiving end is too large, since the sending rate of the receiving end is lower than the sending rate of the sending end, the receiving end needs to buffer a large number of code blocks, which will not only cause blocking, but also increase the processing of the receiving end. time delay.
- the receiving end shown here can be understood as the second communication device in FIG. 5a, or can also be understood as the P1 node, the P2 node, etc. in FIG. 5b.
- the present application provides a code block stream processing method and device, which can ensure that the idle code block is reasonably used, and when the transmitting end needs to insert a BAS code block or an APS code block, etc., avoid the transmitting end inserting any idle code block.
- the sending rate of the sender when the sending rate of the sender is greater than the sending rate of the receiver, it can ensure that the receiver can avoid the buffer overflow of the receiver by deleting the control code block in time, or can ensure that the receiver can pass the The method of deleting the control code block avoids increasing the processing delay of the receiving end.
- the method provided in this application can not only be applied to high-speed serial computer expansion bus standards (peripheral component interconnect express, PCIe), Ethernet, Internet protocol (IP) network, packet transport network (packet transport network, PTN), Flexible transport network (agile transport network, ATN), slicing packet network (slicing packet network, SPN) or MTN, etc.
- the network to which the method provided in this application can be applied is not limited.
- MTN the architecture shown in Figure 1 can be referred to.
- the architecture shown in Figure 1 can also be applied to the slicing channel layer (SCL) of SPN.
- SCL slicing channel layer
- the method provided in this application can be applied to a communication device, and the communication device can be any form of computer, server, switch (or referred to as switching device, switching chip, etc.), router, network card, etc.
- the specific form is not limited. That is, the method provided in the present application can be applied to a transmitting end, which can be understood as a device for transmitting a code block stream, etc.
- a transmitting end which can be understood as a device for transmitting a code block stream, etc.
- the sending end can also be understood as a provider edge (PE) node, which is a network device connecting the network edge to the user, and the network edge node is configured with an inter-network or intra-network device.
- PE provider edge
- the receiving end shown here can be understood as a network (provider, P) node, the P node is a network device in the network, and the network node is set with an NNI.
- FIG. 5a is a schematic diagram of a network architecture provided by an embodiment of the present application.
- the first communication device can be understood as a sending end, and the second communication device can be understood as a receiving end. That is, the first communication device sends the code block stream to the second communication device, and the second communication device needs to receive the code block stream from the first communication device.
- the first communication device may also be understood as a device that needs to insert an O code block in the MTN channel layer, or the like.
- the first communication device may be understood as a source end or a sink end, and the second communication device may be understood as an intermediate node.
- the source end inserts an O code block at the MTN channel layer, and the sink end receives the O code block and reads the OAM information in the O code block.
- the first communication device may be understood as a network edge node (such as a PE node), and the second communication device may be understood as a network node (such as a P node).
- client (client) interface shown in FIG. 5a can also be understood as UNI, and the flexible Ethernet (FlexE) interface can also be understood as NII.
- FIG. 5b is a schematic diagram of a network architecture provided by an embodiment of the present application.
- the network architecture is shown based on the MTN network, and the network architecture shown in FIG. 5b only shows four nodes, such as the PE1 node, the P1 node, the P2 node, and the PE2 node.
- the PE1 node and/or the PE2 node may map the client signal adaptation to the MTN channel, and insert the MTN channel layer O code block and the like. It can be understood that, for the specific description of the PE1 node and/or the PE2 node, reference may also be made to the description about FIG. 1 , which will not be described in detail here.
- the P1 node and/or the P2 node may delete the idle code block at the MTN segment layer adaptation layer according to the rate adaptation requirement.
- the P1 node and/or the P2 node may also insert a BAS code block or a non-BAS code block into the code block stream, which is not limited in this application.
- FIG. 6 is a schematic flowchart of a method for processing a code block stream provided by an embodiment of the present application. As shown in FIG. 6 , the method includes:
- the transmitting end acquires a first code block stream, where the first code block stream includes at least two code blocks, and the at least two code blocks include at least two first control code blocks.
- the first control code block can be understood as the control code between the end code block (ie the T code block) and the start code block (ie the S code block) due to the frame gap between the MAC frame and the MAC frame.
- the first control code block may be an idle code block, an LPI code block, an error code block, or an O code block, etc.
- the embodiment of the present application does not limit the specific type of the first control code block. The method provided by the embodiment of the present application will be described below by taking the idle code block as an example, but the LPI code block or the error code block, etc., can also be deleted and/or added based on the rate adaptation requirement, or replaced with other control codes. block etc.
- the sender can adapt the service flow (ie, the service flow of the client signal) into the form of the 64B/66B code block stream through the MTN channel adaptation layer, it is understandable that the sender shown in step 601 obtains the first code block stream. It is: the sending end adapts to the first code block stream through the MTN channel adaptation layer; or, the sending end obtains the first code block stream through the MTN channel termination layer, and so on.
- the first code block stream may further include a third control code block. That is, the first code block stream obtained by the sender can be understood not only as the code block stream obtained from the MTN channel adaptation layer, but also as the code block stream obtained by inserting the third control code block at the MTN channel termination layer.
- the third control code block reference may be made to the following introduction on the use of the idle code block, which will not be described in detail here.
- client signals such as MAC frame sequence (MAC frame sequence) (also called MAC frames) are converted into 64B/66B code block sequence by MTN channel adaptation layer after entering MTN channel adaptation layer stream
- the 64B/66B code block sequence stream can be understood as the first code block stream.
- the MTN determines a path for carrying the first code block stream. It is understandable that there may be a one-to-one correspondence between the channel and the code block stream of the client signal, that is, the channel determined by the MTN to carry the first code block stream may not bear the code block streams corresponding to other client signals.
- the first code block stream is a code block stream that the client signal is adapted to through the MTN channel adaptation layer.
- the channel carrying the first code block stream has a corresponding relationship with the client signal.
- the MTN may insert the second control code block and/or the third control code block, etc. into the channel for carrying the first code block stream. Then, after the transmitting end obtains the second code block stream, the MTN segment layer can allocate Y to the second code block stream (which can still be understood as being carried in the above-mentioned channel) according to the rate of the channel used to carry the first code block stream. time slot.
- a bonding group may be formed by bundling one or more PHYs, and the bandwidth of the bonding group is the sum of the bandwidths of the one or more PHYs. Further, the bundled group may be divided into X time slots, and the bandwidth of each time slot may include 5Gbps or 25Gbps.
- the transmitting end can allocate the second code block stream to the Y time slots shown in FIG. 5c through the MTN segment layer.
- Both X and Y are positive integers, and X is greater than or equal to Y. It can be understood that the MTN channel shown in FIG. 5b can be understood as the channel shown in FIG. 5c including Y time slots.
- the client signal can transmit the service flow in the designated time slot (one time slot or multiple time slots) on the binding group, one binding group can carry multiple client signals, and one client signal corresponds to one service Stream (typically, it can be called a medium access control (MAC) client). It can be understood that in this application, the client signal may also be transmitted on one or more time slots of the PHY.
- MAC medium access control
- the bonding group it is composed of one or more PHYs. For example, if two 100-bit Ethernet (gigabit ethernet, GE) PHY ports are bound, the 2 ⁇ 100GE bonding group can support 200G MAC services. It can be understood that the examples given here are only examples, and in a specific implementation, there may be more implementation manners of the binding group, which will not be described in detail here.
- step 603 when a second control code block needs to be inserted, replace one target control code block in the at least one target control code block with a second control code block, and obtaining the second code block stream includes: when necessary When inserting the second control code block, a target control code block in at least one target control code block is replaced with a second control code block in the channel carrying the first code block stream to obtain a second code block stream.
- the second code block stream is allocated to Y time slots through the MTN segment layer, one or more PHYs correspond to X time slots, and the X time slots include Y time slots.
- the transmitting end determines at least one target control code block in the at least two first control code blocks, where the target control code block is a first control code block that can be replaced with a second control code block.
- the target control code block is the first control code block that can be replaced by the second control code block, in other words, the target control code block can be replaced by the second control code block, or the target control code block is allowed to be replaced by the first control code block.
- Two control code blocks, or the target control code block can be replaced with a second control code block, or the target control code block is a first control code block that can be replaced with a second control code block, etc. That is, in the embodiment of the present application, not all the first control code blocks can be replaced with the second control code blocks, but the target control code block is determined by the transmitting end first, and the determined target control code block can be replaced by The second control code block. That is to say, the transmitting end needs to distinguish which first control code blocks can be used as target control code blocks, and which first control code blocks cannot be used as target control code blocks.
- the reason why the target control code block is the first control code block that can be replaced by the second control code block is because the target control code block may be replaced by the second control code block, Of course, it may not be replaced by the second control code block.
- the target control code block may be replaced with a third control code block, and the priority of the third control code block is higher than or equal to that of the second control code block. In other words, whether the target control code block will be replaced with the second control code block, on the one hand, depends on the requirements of the second control code block, that is, whether the sender needs to insert the second control code block into the first code block stream .
- the transmitting end can replace all the idle code blocks in the first code block stream with the second control code blocks as required, so that when the transmitting rate of the transmitting end is greater than the transmitting rate of the receiving end, The receiver may not have enough idle blocks to delete. Therefore, in the embodiment of the present application, by determining the target control code block, the transmitting end avoids replacing all the first control code blocks with the second control code block when the transmitting end needs to insert the second control code block, or avoids This allows the sender to arbitrarily insert the second control code block in the first code block stream as required.
- the transmitting end can reasonably utilize the idle code blocks, and it is avoided that when the receiving end needs to delete the idle code blocks due to the requirement of rate adaptation, there are not enough idle code blocks to be deleted.
- the receiver can delete enough idle blocks, which avoids increasing the processing delay of the receiver and ensures that the receiver can process the stream of code blocks in time.
- the transmitting end determining at least one target control code block in the at least two first control code blocks includes: the transmitting end determining at least one target control code block in the at least two first control code blocks through the MTN channel termination layer.
- the transmitting end determining at least one target control code block in the at least two first control code blocks includes: the transmitting end determining at least one non-target control code block in the at least two first control code blocks Control code block. Specifically, the transmitting end may determine at least one non-target control code block in the at least two first control code blocks according to the first threshold.
- the first threshold For the description of the first threshold, reference may be made to the descriptions in other embodiments of the present application, which will not be repeated here.
- the at least two first control code blocks may be divided into target control code blocks and non-target control code blocks.
- step 602 the transmitting end directly determines the target control code block.
- the transmitting end may also indirectly determine the target control code block by determining the non-target control code block.
- the transmitting end determines at least one non-target control code block in the at least two first control code blocks, and the non-target control code block is the first control code block that cannot be replaced with the second control code block.
- non-target control code block can be:
- the non-target control code block is the first control code block reserved based on the rate adaptation requirement.
- the non-target control code block may be the first control code block to be deleted based on the rate adaptation requirement.
- the transmitting end determining a non-target control code block in the at least two first control code blocks includes: the transmitting end determining at least one non-target control code block in the at least two first control code blocks according to the first threshold, the A threshold is derived based on the rate adaptation requirement.
- the first threshold may be greater than 0, and less than or equal to 200 ppm, or the like.
- the ratio of the non-target control code blocks in the first code block stream can be greater than or equal to 0.0002, that is, The concentration of non-target control code blocks in the first code block stream is greater than or equal to 200 ppm.
- the number of code blocks in the first code block stream may be 5000, and the number of non-target control code blocks in the first code block stream may be one.
- the transmitting end may determine one idle code block as a non-target control code block from the 2 or 3 idle code blocks.
- the first threshold value shown here is greater than 0 and less than or equal to 200ppm is only an example.
- the first threshold value may be greater than 200ppm, such as the first threshold value.
- the threshold value can be obtained according to any one or more of the 200 ppm, 49 ppm or 61 ppm, etc., which will not be described in detail here.
- the non-target control code block can be replaced with a third control code block.
- the non-target control code block is used to compensate for the bandwidth resource occupied by inserting the third control code block.
- the transmitting end determining the non-target control code block in the at least two first control code blocks includes: the transmitting end determining at least one non-target control code block in the at least two first control code blocks according to the period of the third control code block code block.
- the third control code block shown here can be understood as a control code block with a priority higher than or equal to the second control code block, for example, the third control code block can be understood as a BAS code block.
- the second control code block may be understood as any one or more of the APS code block, the CV code block, the DM code block or the CS code block.
- the third control code block may also be understood as an APS code block, in this case, the second control code block may be understood as any one or more of a CV code block, a DM code block, or a CS code block.
- the third control code block is a BAS code block
- the second control code block is a code block including any one or more of the following information, APS information, CV information, DM information, and CS information.
- the second control code block may include APS information and CV information, or, the second control code block may include APS information, CV information, and DM information, etc., which will not be exemplified here.
- the third control code block is an APS code block
- the second control code block is a code block including CV information, DM information, or CS information, or the like.
- the third control code block is a BAS code block
- the second control code block includes any one or more of an APS code block, a CV code block, a DM code block, or a CS code block as an example to illustrate that the embodiments of the present application provide of various methods.
- the period of the BAS code block may be 16k code blocks, that is, there may be one BAS code block in every 16k (ie, 16*1024) code blocks.
- the non-target control code block is used to be replaced by the third control code block
- the number of code blocks in the first code block stream may be 16*1024, and the non-target control code block in the first code block stream
- the number of code blocks can be one.
- the non-target control code block can be replaced with the third control code block as an example.
- the number of code blocks in the first code block stream is 5000
- the number of non-target control code blocks can be 2 or 3 and so on.
- the number of non-target control code blocks may be 5 or 6, and so on. It can be understood that this is only an example, and the embodiments of the present application do not limit the number of code blocks in the first code block stream and the number of non-target control code blocks.
- use 1 and use 2 can also be decoupled.
- the sender can set two window counters, one of which is a window counter. A counter is used to count 5000, another window counter is used to count 16k, and each window counter can also be set up separately for counting non-target control code blocks.
- the embodiment of the present application does not limit when the BAS code block is inserted into the code block stream. Since the two window counters do not interfere with each other and work independently, the BAS code block may be inserted into the code block stream first, and then the sender determines the non-target control code block (or the target control code block) (as obtained above in step 601). Introduction to the first code block stream). Alternatively, the BAS code block may also be inserted into the code block stream after the sender determines the non-target control code block (or the target control code block) (as described in use 2).
- the insertion order or insertion method of BAS code blocks is relatively flexible.
- the insertion order of BAS code blocks can be determined before the transmitting end determines the non-target control code block (or target control code block), or the insertion order of BAS code blocks.
- the non-target control code block (or target control code block) may also be determined after the transmitting end.
- the insertion method of the BAS code block may be the method of replacing the idle code block, or the method of IPG forced insertion, etc.
- the embodiment of the present application does not limit the insertion order or insertion method of the BAS code block.
- the sender can even replace the target control code block with the third control code block, or replace the non-target control code block with the third control code block.
- the third control code block specifically replaces the target control code block or the non-target control code block is not limited in this embodiment of the present application. If the target control code block is not replaced by the second control code block, one of the reasons may be that the target control code block is used to be replaced by the third control code block. As a result, the target control code block is not replaced with the second control code block.
- Non-target control code blocks can be replaced with MTN segment layer OAM code blocks. Alternatively, it can also be understood that the non-target control code block is used to compensate for the bandwidth resource occupied by the insertion of the MTN segment layer OAM code block.
- the transmitting end determining the non-target control code blocks in the at least two first control code blocks includes: the transmitting end determining at least one non-target control code block in the at least two first control code blocks according to the period of the MTN segment layer OAM code block Control code block.
- the MTN segment layer OAM code block shown here is similar to the MTN channel layer OAM code block shown above, the difference is that the O code block introduced above is the O code block inserted by the sender at the MTN channel layer, while The MTN segment layer OAM code block shown here is the O code block inserted at the MTN segment layer by the transmitting end.
- the MTN segment layer overhead information and the like may be included in the MTN segment layer OAM code block.
- the 64B/66B code block stream passes through the MTN segment layer termination layer, it can be inserted into the MTN segment layer OAM code block, or simply referred to as the MTN segment layer O code block.
- the embodiment of the present application does not limit the period of the OAM code block of the MTN segment layer, or the concentration of the OAM code block of the MTN segment layer, and the like.
- Non-target control code blocks can be used to compensate for bandwidth resources occupied by AM insertion.
- the bandwidth resource occupied by the AM insertion can be compensated by the idle code block, for example, the receiver can delete the idle code block.
- Non-target control code blocks can be used to compensate for bandwidth resources occupied by inserting segment layer OH information.
- the number of code blocks in the first code block stream and the number of non-target control code blocks can be determined by the rate frequency offset between the two ports, the period of the third control code block, the MTN segment Any one or more of the period of the layer OAM code block, the period of the MTN segment layer overhead information, or the period of the AM is determined.
- the sender may reserve 310ppm (ie, 200ppm+49ppm+61ppm) of non-target control code blocks. Therefore, the transmitting end can determine one non-target control code block from the idle code blocks included in the 3000 code blocks every time it acquires 3000 code blocks. Among them, 1/3000 is approximately equal to 333ppm, and 333ppm is greater than 310ppm.
- the transmitting end may also determine two non-target control code blocks from the idle code blocks included in the 6000 code blocks every time it acquires 6000 code blocks, which is not limited in this embodiment of the present application.
- the transmitting end may also determine the number of code blocks included in the code block stream and the number of non-target control code blocks according to the least common multiple of 5000, 20461 and 16384. If the least common multiple is T, the number of non-target control code blocks can be at least (T/5000)+(T/20461)+(T/16384).
- the calculation result about T shown here may not be an integer, so the embodiment of the present application can also obtain the final result by rounding up.
- the foregoing step 602 includes: determining at least one non-target control code block from at least two first control code blocks in the N code blocks.
- the transmitting end may determine at least one non-target control code block from at least two first control code blocks in every N code blocks in the first code block stream.
- Each N code blocks shown here are independent of each other. For example, after a non-target control code block is determined in the first 5000 code blocks in the first code block stream, the first 5000 code blocks in the The remaining first control code blocks are used as target control code blocks. Then another non-target control code block is determined from the second 5000 code blocks in the first code block stream, and so on.
- the transmitting end may also determine the first first control code block in every 5000 code blocks as a non-target control code block.
- the transmitting end replaces one target control code block in the at least one target control code block with a second control code block to obtain a second code block stream.
- step 602 the reason for whether the target control code block can be replaced with the second control code block is specifically introduced. Therefore, in step 603, when the transmitting end needs to insert the second control code block, that is, when the target control code block can be replaced with the second control code block, the transmitting end inserts a target control code block in at least one target control code block. The block is replaced with a second control code block, resulting in a second code block stream.
- step 603 reference may be made to the introduction of the above-mentioned step 602, which will not be described in detail here.
- the second control code block may include any one or more of an APS code block, a CV code block, a DM code block, or a CS code block. Therefore, the sending end can replace one target control code block in the at least one target control code block with the second control code block in the following ways:
- the transmitting end replaces one target control code block in the at least one target control code block with the second control code block according to the priority of the second control code block.
- the sender can replace at least one target control code block with an APS code block and a CS code block. If only one second control code block is allowed to be inserted in the number of target control code blocks, the transmitting end may replace at least one target control code block with an APS code block according to the priority of the APS code block. It can be understood that, for the specific description of the DM code block, the CV code block, etc., reference may be made to the CS code block.
- the transmitting end replaces one target control code block in the at least one target control code block with the second control code block according to the period of the second control code block.
- the period of the CV code block may be 1 second, that is, the transmitting end may insert the CV code block into the code block stream every 1 second. That is, one target control code block in the at least one target control code block is replaced with a CV code block according to a period of one second.
- a CV code block can be understood as a multi-code block, if the number of at least one target control code block is allowed to be replaced with 8 CV code blocks as shown in FIG. The control code blocks are replaced with CV code blocks. However, when the number of at least one target control code block is insufficient, the transmitting end may replace at least one target control code block with at least one CV code block according to the number of target control code blocks.
- the sender can determine whether to replace at least one target control code block with at least one CV code block according to the number of target control code blocks according to the number of target control code blocks, or determine whether to replace at least one target control code block with at least one CV code block according to the CV information (that is, 8 CV codes block), replace at least one target control code block with 8 CV code blocks.
- the period of the APS code block may be in a unit of time, such as 1 second.
- the period of the APS code block may also be based on the number of code blocks, such as 64k code blocks. That is, the sender may insert an APS code block into the code block stream every 1 second, or the sender may insert an APS code block into every 64k code blocks. That is, according to the above cycle, the transmitting end may replace one target control code block in the at least one target control code block with an APS code block.
- the period of the DM code block or the period of the CS code block will not be described in detail here.
- the period of the APS code block or the period of the CV code block shown in the embodiment of the present application is only an example, and in specific implementation, the period may change, etc., which is not limited in the embodiment of the present application.
- the transmitting end can replace one target control code block in the at least one target control code block with a period and/or priority of the second control code block.
- the second control code block For this implementation, reference may be made to the above-mentioned introduction, which will not be described in detail here.
- the transmitting end may replace it with the second control code block according to the determined target control code block.
- the way for the sender to identify the target control code block or the non-target control code block can be as follows:
- the sender determines the idle code block at a fixed position as the target control code block.
- the transmitting end may determine the first N first control code blocks in the first code block stream as the target control code block, and the specific value of N is the same as the second control code block. block related. For example, every time the transmitting end acquires 5000 code blocks, the first (or the first 2, the first 3, etc.) idle code blocks among the 5000 code blocks may be determined as the target control code block. For the specific value of N, reference may be made to the period of the second control code block and the like introduced above, which will not be described in detail here. Thus, the transmitting end can replace the first N idle code blocks in the first code block stream with non-BAS code blocks.
- the sender determines the fixed-position idle code block as a non-target control code block.
- the transmitting end may determine the first M first control code blocks in the first code block stream as non-target control code blocks.
- the value of M is obtained based on the first threshold, for example, based on any one or more of the rate difference between the two ports, the period of the BAS code block, the insertion period of the AM, or the insertion period of the overhead information of the MTN section layer. Wait. It can be understood that, for the specific description of the number of code blocks and M included in the first code block stream, reference may be made to the above, which will not be described in detail here.
- the sender marks the target control code block.
- one target control code block in the marked at least one target control code block may be replaced with a second control code block to obtain a second code block stream.
- indication information may be added to the first control code block, and the indication information may be used to indicate whether the first control code block is a marked target control code block.
- the transmitting end may set a 1-bit indication bit in the first control code block, and mark the first control code block by the 1-bit indication bit, that is, the target control code block is obtained.
- the sender marks the non-target control code block.
- a first control code block in the unmarked first control code block can be replaced with a second control code block to obtain a second code block stream.
- the sending end marks the target control code block and/or the non-target control code block, which can be understood as the sending end marking the target control code block and/or the non-target control code block at the MTN channel termination layer.
- the embodiment of the present application also provides two ways. 1. For other modules or functions other than the MTN channel termination layer, the marking result of the sender cannot be known. That is, the marking result is only valid for the MTN channel termination layer. When the second code block stream passes through the MTN segment layer, the MTN segment layer cannot perceive the marking result. 2. For other modules or functions or devices other than the MTN channel termination layer, the marking result of the sender can be known.
- the method shown in FIG. 6 may further include step 604 and step 605 .
- the transmitting end sends the second code block stream, and correspondingly, the receiving end receives the second code block stream.
- the transmitting end may send the second code block stream through an MTN path (MTN path), and correspondingly, the receiving end may receive the second code block stream through the MTN channel.
- MTN path MTN path
- the second code block stream shown here is only a general term. After the transmitting end performs step 603, when the second code block stream passes through the MTN segment layer, the transmitting end may also insert the MTN segment layer overhead into the second code block stream. information. Alternatively, the second code block stream may also be inserted into AM, etc., which is not limited in this embodiment of the present application.
- the receiving end deletes at least one non-target control code block in the second code block stream according to the rate adaptation requirement.
- the receiving end may delete at least one non-target control code block in the second code block stream according to the rate adaptation requirement.
- step 605 shown here is only an example, and in a specific implementation, the receiving end may also add at least one first control code block to the second code block stream according to the rate adaptation requirement.
- the receiving end needs to delete the idle block to avoid buffer overflow of the receiving end. Therefore, in the technical solutions provided by the embodiments of the present application, by rationally using idle code blocks, it is avoided that there are not enough idle code blocks at the receiving end to be deleted, and the processing delay of the receiving end is avoided to increase.
- Each example shown below can be understood as being executed by the sender. Specifically, it can be understood as being executed by the processor of the sending end, or it can also be understood as being implemented in the MTN channel termination layer in the MTN network of the sending end, or it can also be understood as being executed by the function or module in the sending end or unit execution, etc., which are not limited in this embodiment of the present application.
- FIG. 7 a and FIG. 7 b involved in the following will be described in detail.
- the various functions or modules shown below can be understood as functions or modules in the processor, or the like, or can also be understood as functions or modules in the MTN channel termination layer. The specific form of the module is not limited.
- the schematic diagram shown in FIG. 7a or FIG. 7b is an MTN channel layer O code block insertion module, which may also be referred to as an MTN channel layer OAM insertion module.
- the MTN channel layer O code block insertion module can be understood as being set in the processor of the sending end, or it can also be understood as a function or module etc. set in the processor, or it can also be understood as being set on the sending end A function or module in a logic circuit, etc.
- the MTN channel layer O code block insertion module can be used to insert O code blocks in the MTN channel layer.
- the MTN channel layer O code block insertion module can be used to insert any one or more of BAS code blocks, APS code blocks, DM code blocks, CV code blocks or CS code blocks, etc.
- the MTN channel layer O code block insertion module includes a BAS code block insertion module, an idle code block reservation module, a non-BAS code block replacement module, and an arbiter.
- the BAS code block insertion module may also be referred to as a BAS code block replacement or insertion (base block replacement or insertion) module.
- the non-BAS code block replacement module can also be understood as APS code block replacement module, CV code block replacement module, DM code block replacement module or CS code block replacement module, etc., or it can also be called OAM code block replacement (OAM block replacement) modules etc.
- the idle code block reservation (control for reserveing) module can also be called the idle resource reservation module.
- the idle reservation module can be used to implement monitoring of idle code blocks, reservation of idle code blocks, or result feedback. The result feedback can be used to feed back the P value in the third embodiment shown below.
- the M arbiter can be used to implement the scheduling of non-BAS code blocks, for example, can be used to send the corresponding code blocks to the non-BAS code block replacement module, so as to replace the idle code blocks with non-BAS code blocks.
- the schematic diagrams shown in Figures 7a and 7b also include: a BAS code block generator (base block generation) (that is, the BAS code block generation in Figures 7a and 7b), an APS code block generator (APS block generation), a CV Code block generator (CV block generation), DM code block generator or CS code block generator (CS/PTI block generation) (ie non-BAS code block generation in Figure 7a and Figure 7b) and so on.
- the generator shown here can be used to generate corresponding code blocks.
- FIG. 7a or FIG. 7b only shows a part of the code blocks, the embodiments of the present application are also applicable to other similar O code blocks.
- FIG. 7d can be understood as a modification of FIG. 7a
- FIG. 7e can be understood as a modification of FIG. 7b
- the BAS code block insertion module can be used not only to generate BAS code blocks, but also to insert BAS code blocks into the code block stream.
- the non-BAS code block replacement module can not only be used to generate non-BAS code blocks, but also can be used to replace idle code blocks in the code block stream with non-BAS code blocks, etc.
- FIGS. 7 a to 7 d provided in the embodiments of the present application are only examples. In specific implementation, any form of deformation and the like can also be performed based on FIGS. 7 a to 7 d according to actual needs, which will not be described in detail here.
- Fig. 8a is a specific flowchart of a method for processing a code block stream provided by an embodiment of the present application. As shown in Fig. 8a, the method includes:
- the BAS code block generator generates a BAS code block
- the BAS code block insertion module inserts the BAS code block into the code block stream according to the period of the BAS code block to obtain a first code block stream, which further includes: At least two idle blocks.
- the BAS code block generator may generate the BAS code block at the MTN channel termination layer. It can be understood that other types of O-code blocks can also be generated at the MTN channel termination layer.
- the time for generating the BAS code block and the time for inserting the BAS code block into the code block stream may be the same or different, which is not limited in this embodiment of the present application.
- Inserting a BAS code block in the code block stream shown here can be understood as: replacing at least one idle code block in the code block stream with a BAS code block, or after at least one T code block in the code block stream, and A BAS code block is inserted before the S code block. It can be understood that, after the T code block and before the S code block, the D code block is not included, as shown in FIG. 3b. That is, the insertion method of the BAS code block may include the method of idle replacement, or the method of forced IPG insertion. For the specific insertion method of the BAS code block, reference may be made to the above introduction, which will not be described in detail here.
- one BAS code block can be inserted into every 16k (ie, 16*1024) code blocks.
- 1 represents a BAS code block
- 8 represents the number of bytes of the BAS code block
- 16*1204 represents 16k code blocks
- 8 represents the number of bytes of each code block.
- the idle reservation module detects idle code blocks in the first code block stream, and identifies the idle code blocks in the first code block stream according to a first threshold.
- the embodiment of the present application does not limit the specific value of the first threshold.
- the first threshold may also be changed according to the change of the rate and frequency offset between the ports, or according to the change of the MTN segment layer overhead or the period of the AM. It is understandable that for the specific description of the first threshold, reference may also be made to the related introduction shown in FIG. 6 , and details are not repeated here.
- the idle reservation module may reserve one idle code block in every 5000 code blocks, and the reserved idle code block may be deleted based on the rate adaptation requirement.
- one idle code block can be identified in every 5000 code blocks, and the identified idle code block cannot be replaced with a non-BAS code block.
- the unidentified idle code blocks can be replaced with non-BAS code blocks, or, in addition to the identified idle code blocks in the 5000 code blocks, the remaining idle code blocks can be replaced with non-BAS code blocks.
- the identified idle code blocks shown here can be understood as the non-target control code blocks shown in FIG. 6
- the unidentified idle code blocks can be understood as the target control code blocks shown in FIG. 6 .
- the method for the idle reservation module to detect the idle code block in the first code block stream may be as follows:
- a detection window counter is set in the idle reserved module, the maximum value of the detection window counter can be 5000, the detection window counter is reset to 0 after counting to the maximum value, and the counter is incremented by 1 every time a code block is received.
- an idle code block counter is set in the idle reservation module.
- the idle code block counter is reset.
- the idle resource reservation module judges the input code block stream. If the format of the code block matches the format of the idle code block, it can be determined that an idle code block is input, and the idle code block counter is incremented by 1. Query the value of the idle code block counter.
- the idle reservation module identifies the idle code block as a reserved idle code block (that is, a non-reserved idle code block). target control block).
- the idle reservation module identifies the idle code block as an idle code block (ie, a target control code block) that can be replaced with a non-BAS code block.
- the method for the sender to determine the non-target control code block includes: the sender obtains 5000 code blocks in the first code block stream through the detection window, and obtains 5000 code blocks from the 5000 code blocks from the At least one non-target control code block is determined from at least two idle code blocks in the block. Specifically, the sender obtains 5000 code blocks in the first code block stream through the detection window counter, and determines the first K idle code blocks in the 5000 code blocks as non-target control code blocks through the idle code block counter.
- the idle code block is identified by the idle reservation module, so as to distinguish whether the idle code block can be replaced with a non-BAS code block.
- the idle reservation module may not identify the idle code block, for example, the first idle code block in every 5000 code blocks is reserved as an idle code that cannot be replaced with a non-BAS code block block, whereby the remaining idle code blocks, such as the second idle code block or the third idle code block in every 5000 code blocks, etc., can be replaced with non-BAS code blocks.
- the arbiter instructs the non-BAS code block replacement module to insert the non-BAS code block according to the identification result of the idle code block, and the non-BAS code block replacement module replaces the unidentified at least one code block according to the period and/or priority of the non-BAS code block.
- the idle code block is replaced with a non-BAS code block to obtain a second code block stream.
- the identification result may be sent to the arbiter. Then, the arbiter can, according to the identification result, the identified idle code blocks cannot be replaced with non-BAS code blocks, and the unidentified idle code blocks can be replaced with non-BAS code blocks. That is, the arbiter can indicate the insertion position of the non-BAS code block, and the arbiter instructs the non-BAS code block replacement module to replace the unidentified idle code block with the non-BAS code block. As shown in FIG. 7c, the arbiter can instruct the non-BAS code block replacement module that the identified idle code blocks cannot be replaced with non-BAS code blocks, and the unidentified idle code blocks can be replaced with non-BAS code blocks.
- the corresponding generator Before replacing the idle code block with the non-BAS code block, the corresponding generator can generate the corresponding O code block according to the period of the non-BAS OAM.
- the embodiments of the present application may have two ways of understanding: first, as long as the insertion period of the non-BAS code blocks is satisfied, the corresponding generator can generate non-BAS code blocks, but whether the code block is in the code block The non-BAS code block is inserted into the stream (referred to here as the replacement mode), and the non-BAS code block needs to be inserted according to the position of the unidentified idle code block in the first code block stream.
- the generated non-BAS code block may not be a complete non-BAS code block, and when the unidentified idle code block in the first code block stream is replaced with a non-BAS code block , the non-BAS code block is understood as generating a non-BAS code block (ie, a complete non-BAS code block).
- the idle reservation module detects idle code blocks and reserves 200 ppm of idle code blocks, which can ensure that even if the arbiter inserts non-BAS code blocks, it can still ensure that 200 ppm of idle code blocks are deleted at the receiving end.
- the idle code block of 200 ppm is reserved by the idle reservation module as an example.
- the idle reservation module can also reserve more idle code blocks, etc.
- other uses of the reserved idle code blocks can refer to the method shown in FIG. 6 . More details.
- the concentration of the BAS code block is 61 ppm
- the concentration of the non-target control code block is 200 ppm. If the concentration of the code block stream obtained by the MTN channel layer O code block insertion module is Yppm, the density of the target control block is equal to (Y-61-200)ppm.
- the concentration of the non-target control code block is 200ppm+ (ie greater than 200ppm)
- the concentration of the target control code block is less than (Y-61-200) ppm.
- the number of non-target control code blocks is determined in other ways, it can be obtained by converting the concentration, such as obtaining the number of non-target control code blocks according to the calculation method of the concentration, and the codes included in the first code block stream. The number of blocks, or the number of obtained target control code blocks, etc., will not be described in detail here. It is understandable that the description about the idle code block here is also applicable to the method shown in FIG. 8 b , and to avoid redundant description, it will not be described in detail below.
- FIG. 8b is a schematic flowchart of another code block stream processing method provided by an embodiment of the present application. As shown in FIG. 8b, the method includes:
- the idle reservation module acquires a first code block stream, where the first code block stream includes at least two code blocks, and the at least two code blocks include at least two idle code blocks.
- the idle reservation module obtains the first code block stream from the MTN channel adaptation layer.
- the idle reservation module detects the idle code blocks in the first code block stream, and identifies the idle code blocks in the first code block stream according to the first threshold.
- step 812 reference may be made to step 802, which will not be described in detail here.
- the first code block stream includes BAS code blocks, but in step 812, the first code block stream may not include BAS code blocks.
- the BAS code block inserting module inserts the BAS code block into the first code block stream according to the period of the BAS code block.
- the period of the BAS code block may be one BAS code block in every 16k code blocks, but the idle reservation module may identify one idle code block (that is, a non-target control code block) in every 5000 code blocks. . Therefore, in some implementations, if in 5000 units, some 5000 code blocks may not be inserted into BAS code blocks, and in other implementations, some 5000 code blocks may be inserted into BAS code blocks.
- the BAS code block insertion module may replace the identified idle code block (ie, the target control code block) with a BAS code block.
- the BAS code block insertion module may also replace unidentified idle code blocks (ie, non-target control code blocks) with BAS code blocks.
- the BAS code block inserting module may also insert a BAS code block by means of IPG forcible insertion, etc., which is not limited in this embodiment of the present application. Combined with the method shown in Figure 6, the BAS code block can be in the following ways:
- Unmarked idle blocks can be replaced not only with BAS blocks, but also with non-BAS blocks.
- the number of idle code blocks marked in the idle reservation module is large, that is, the concentration of the marked idle code block in the first code block stream is greater than 61ppm+200ppm, then the marked idle code block can not only be based on rate adaptation
- the requirement is deleted, and can also be replaced with a BAS code block (or it can also be understood that the BAS code block insertion module can also insert a BAS code block in the first code block stream).
- the arbiter instructs the non-BAS code block replacement module to insert the non-BAS code block according to the identification result of the idle code block, and the non-BAS code block replacement module replaces at least one unidentified code block according to the period and/or priority of the non-BAS code block.
- the idle code blocks are replaced with non-BAS code blocks.
- Fig. 9a is a schematic flowchart of another method for processing a code block stream provided by an embodiment of the present application. As shown in Fig. 9a, the method includes:
- the transmitting end acquires a first code block stream, where the first code block stream includes at least two code blocks, and the at least two code blocks include a first boundary code block and a second boundary code block.
- the first boundary code block and the second boundary code block are different types of boundary code blocks, for example, the first boundary code block is an S code block, and the second boundary code block is a T code block.
- the code blocks in the first code block stream may include a first boundary code block and a second boundary code block.
- the code blocks in the first code block stream may further include the first boundary code block or the second boundary code block.
- the code blocks in the first code block stream may not include the first boundary code block and the second boundary code block.
- the first code block stream may further include a third control code block. It can be understood that, for the description of the third control code block here, reference may be made to the introduction in FIG. 6 , which will not be described in detail here.
- the transmitting end determines the period of the second control code block according to the number of code blocks between the first boundary code block and the second boundary code block.
- the number of code blocks between the first boundary code block and the second boundary code block shown here may not include the first boundary code block and the second boundary code block, or may include the first boundary code block or the second boundary code
- the block alternatively, includes a first boundary code block and a second boundary code block.
- the period of the second control code block can also be understood as the interval between two second control code blocks, that is, the interval of the number of code blocks between the two second control code blocks.
- the number of code blocks between two second control code blocks may include the number of two second control code blocks, the number of the first second control code block, or the second control code block.
- the number of second control code blocks, or, may not include the number of two second control code blocks.
- the number of code blocks between the first boundary code block and the second boundary code block can be understood in the following ways:
- the sender can sample and count the number of code blocks between the S code block and the T code block, and use the number of code blocks between the S code block and the T code block as the P value.
- the transmitting end determines the period of the second control code block according to the number P of code blocks between the S code block and the T code block.
- the number of code blocks between the insertion position of the first non-BAS code block and the insertion position of the second non-BAS code block is determined by P.
- FIG. 9b shows that the sender inserts a non-BAS code block into the first code block stream by replacing the idle with the sender. As shown in FIG.
- the sender may also insert a non-BAS code block into the first code block stream by means of IPG over-insertion.
- the insertion position of the first non-BAS code block in the code block stream may be randomly determined, etc., which is not limited in the embodiment of the present application.
- the sender can count the number of code blocks between the S code block and the T code block within the preset time period, and the maximum value of the number of code blocks between the S code block and the T code block within the preset time period. as a P value.
- the sender can count the M value within 10 ms, and then take the largest M value within the 10 ms as the P value. It is understandable that the specific value of the preset duration is not limited in this embodiment of the present application.
- the transmitting end can count the number of code blocks between the S code block and the T code block multiple times according to a preset number of times, and the maximum number of code blocks between the S code block and the T code block within the preset number of times value as P value.
- the preset number of times is 5
- the sender may count the number of code blocks between the S code block and the T code block 5 times to obtain 5 M values. Then, the maximum value among the five M values is taken as the P value. It is understandable that the specific value of the preset number of times is not limited in this embodiment of the present application.
- the transmitting end determines the period of the second control code block according to the number of code blocks between the first boundary code block and the second boundary code block, including:
- the period of the second control code block is determined according to the ratio of the second control code block in at least two code blocks.
- the number of code blocks between the first boundary code block and the second boundary code block is different, and the period of the second control code block is different.
- the periods of the second control code blocks are different, that is, the interval between the two second control code blocks is different, that is, the interval between the two non-BAS code blocks is different.
- the range corresponding to the number of code blocks between the first boundary code block and the second boundary code block is different, and the period of the second control code block is different, that is, the difference between the two non-BAS code blocks is different.
- the interval is different.
- Table 1 is an example of the relationship between P and the period of a non-BAS code block provided by an embodiment of the present application. It can be understood that the relationship shown in Table 1 is only an example. In specific implementation, there may be other corresponding relationships between P and the period of the non-BAS code block, which are not limited in the embodiments of the present application.
- the transmitting end inserts at least one second control code block into the first code block stream according to the period of the second control code block to obtain a second code block stream.
- the insertion manner of the second control code block may be a manner of idle replacement, or may be a manner of forced IPG insertion, which is not limited in this embodiment of the present application.
- the transmitting end needs to insert the second control code block, it needs to insert the second control code block into the first code block stream according to not only the period of the second control code block, but also the position of the first control code block in the first code block stream. Control code block.
- the period here, reference may be made to the above introduction to the period, which will not be described in detail here.
- the method shown in FIG. 9a may further include step 904 and step 905 .
- the transmitting end sends the second code block stream, and correspondingly, the receiving end receives the second code block stream.
- the sending end sending the second code block stream can be understood as: the sending end sends the second code block stream through the MTN channel termination layer, or the sending end sends the second code block stream through the egress port, etc. This is not limited in this embodiment of the present application .
- the MTN channel layer O code block insertion module shown in Figure 10a and Figure 10b is the same as the MTN channel layer O code block insertion module shown in Figure 7a, Figure 7b, Figure 7d or Figure 7e Roughly the same, the difference is that the idle reservation module shown here is used to detect the number of code blocks P between the S code block and the T code block, and the non-BAS code block insertion module is used to replace the idle code block with a non-BAS code block. BAS code blocks, or for interpolating non-BAS code blocks in the code block stream.
- FIG. 7a, FIG. 7b, FIG. 7d, or FIG. 7e, etc. which will not be described in detail here.
- FIG. 10c is a schematic flowchart of another code block stream processing method provided by an embodiment of the present application. As shown in FIG. 10c, the method includes:
- the BAS code block generator generates a BAS code block, and the BAS code block insertion module inserts the BAS code block into the code block stream to obtain a first code block stream.
- the idle reservation module uses the value of the maximum number of code blocks between the S code block and the T code block of the Ethernet packet sequence flow as the P value.
- the idle reservation module identifies the S code block and the T code block according to the code block format. For example, after the idle reservation module recognizes the S code block, the message length counter starts to count, and every time the idle reservation module receives a code block, the message length counter increases by 1; when the idle reservation module recognizes the T code block, it reports The message length counter stops counting, and the P value is obtained according to the message length counter. It is understandable that after the message length counter identifies the T code block, the message length counter can be cleared to zero. But the Idle reservation module can compare the P values and thus reserve the larger P value. After the P value is output to the arbiter, the P value in the idle reservation block is reset to 0.
- the arbiter determines the period of the non-BAS code block according to the corresponding relationship between the P value and the period of the non-BAS code block and the P value obtained by the counter.
- the period of the non-BAS code block can be 64k, that is, the non-BAS code block insertion module can insert one block every 64k code blocks.
- Non-BAS code blocks when the value of P is 194, the period of the non-BAS code block may be 500, that is, the non-BAS code block insertion module may insert a non-BAS code block every 500 code blocks.
- the correspondence shown here is only an example, and for details, reference may also be made to the method shown in FIG. 9a, which will not be described in detail here. It can be understood that when the value of P changes, the period of the non-BAS code block also changes accordingly.
- FIG. 10c is only a specific method for the transmitting end to determine the period of the second control code block.
- FIG. 9a For other steps of the transmitting end or the steps of the receiving end, etc., reference may be made to the method shown in FIG. 9a, which will not be described in detail here. .
- the communication device may be any form of computer, server, switch (or referred to as switching device, switch chip, etc.), router, network card, etc.
- the specific form of the communication device is not limited.
- the communication device includes: a processing unit 1101 and a transceiver unit 1102 .
- the processing unit 1101 is configured to obtain a first code block stream, where the first code block stream includes at least two code blocks, and the at least two code blocks include at least two first control blocks code block;
- the processing unit 1101 is further configured to determine at least one target control code block in the at least two first control code blocks, where the target control code block is a first control code block that can be replaced with a second control code block;
- the processing unit 1101 is further configured to replace one target control code block in the at least one target control code block with the second control code block when the second control code block needs to be inserted to obtain a second code block stream.
- the processing unit 1101 is specifically configured to determine at least one non-target control code block in the at least two first control code blocks according to a first threshold, where the first threshold is obtained based on a rate adaptation requirement.
- the processing unit 1101 is further configured to mark the at least one target control code block; the processing unit 1101 is specifically configured to replace one target control code block in the marked at least one target control code block with The second control code block is obtained, and the second code block stream is obtained.
- the processing unit 1101 is further configured to mark at least one non-target control code block; the processing unit 1101 is specifically configured to replace a first control code block in the unmarked first control code block For the second control code block, a second code block stream is obtained.
- the processing unit 1101 is specifically configured to replace one target control code block in the at least one target control code block according to the period of the second control code block and/or the priority of the second control code block For the second control code block, a second code block stream is obtained.
- the processing unit 1101 is configured to obtain a first code block stream, where the first code block stream includes at least two code blocks, and the at least two code blocks include a first boundary code block and the second boundary code block;
- the processing unit 1101 is further configured to determine the period of the second control code block according to the number of code blocks between the first boundary code block and the second boundary code block;
- the processing unit 1101 is specifically configured to determine the ratio of the first control code block in the at least two code blocks according to the number of code blocks between the first boundary code block and the second boundary code block; and determining the period of the second control code block according to the ratio of the first control code block in the at least two code blocks and a first threshold, where the first threshold is obtained based on a rate adaptation requirement.
- the processing unit 1101 is specifically configured to, according to the period of the second control code block and the position of the first control code block included in the first code block stream, in the first code block stream Inserting at least one second control code block.
- the transceiver unit 1102 may be configured to transmit the second code block stream.
- the first control code block, the second control code block, the third control code block, the target control code block, the non-target control code block, and the period please refer to the above Examples are not described in detail here.
- each functional module or unit in each embodiment of the present application may be integrated in the A processor may also exist physically alone, or two or more modules or units may be integrated into one module or unit.
- the above-mentioned integrated modules or units may be implemented in the form of hardware, or may be implemented in the form of software function modules.
- the processing unit 1101 can be one or more processors
- the transceiver unit 1102 can be a transceiver, or the transceiver unit 1102 can also be A sending unit and a receiving unit, the sending unit may be a transmitter, and the receiving unit may be a receiver, and the sending unit and the receiving unit are integrated into one device, such as a transceiver.
- the processor and the transceiver may be coupled, etc., and the connection manner of the processor and the transceiver is not limited in the embodiment of the present application.
- the processor 1220 is specifically configured to determine at least one non-target control code block in the at least two first control code blocks, where the non-target control code block is a first control code block that cannot be replaced with a second control code block. code block.
- the processor 1220 is specifically configured to determine at least one non-target control code block in the at least two first control code blocks according to the first threshold.
- the processor 1220 is further configured to mark the at least one target control code block; the processor 1220 is specifically configured to replace one target control code block in the marked at least one target control code block with a second control code block , to obtain the second code block stream.
- the processor 1220 is further configured to mark at least one non-target control code block; the processor 1220 is specifically configured to replace a first control code block in the unmarked first control code block with a second control code block to obtain the second code block stream.
- the transceiver 1210 is configured to transmit the second code block stream.
- a transceiver may include a receiver for performing the function (or operation) of receiving and a transmitter for performing the function (or operation) of transmitting ). And transceivers are used to communicate with other devices/devices over the transmission medium.
- the processor may be a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, etc.
- a general purpose processor may be a microprocessor or any conventional processor or the like.
- the steps of the method disclosed in conjunction with the embodiments of the present application may be directly embodied as being executed by a hardware processor, or executed by a combination of hardware and software modules in the processor, or the like.
- the processing unit 1101 may It is one or more logic circuits, and the transceiver unit 1102 may be an input-output interface, also called a communication interface, or an interface circuit, or an interface, and so on.
- the transceiver unit 1102 may also be a sending unit and a receiving unit, the sending unit may be an output interface, and the receiving unit may be an input interface, the sending unit and the receiving unit are integrated into one unit, such as an input/output interface.
- the communication device shown in FIG. 13 includes a logic circuit 1301 and an interface 1302 . That is, the above-mentioned processing unit 1101 may be implemented by the logic circuit 1301 , and the transceiver unit 1102 may be implemented by the interface 1302 .
- the logic circuit and interface can be used to perform the above-mentioned functions or operations performed by the transmitting end.
- an exemplary logic circuit is configured to obtain a first code block stream, the first code block stream includes at least two code blocks, and the at least two code blocks include at least two first code blocks. a control code block; and, further for determining at least one target control code block of the at least two first control code blocks, the target control code block being a first control code block that can be replaced with a second control code block; and, It is also used for replacing one target control code block in the at least one target control code block with the second control code block when the second control code block needs to be inserted, so as to obtain the second code block stream.
- the logic circuit is specifically configured to determine at least one non-target control code block in the at least two first control code blocks, where the non-target control code block is a first control code block that cannot be replaced with a second control code block .
- the logic circuit is specifically configured to determine at least one non-target control code block in the at least two first control code blocks according to a first threshold, where the first threshold is obtained based on a rate adaptation requirement.
- the logic circuit is further configured to mark at least one target control code block, and replace one target control code block in the marked at least one target control code block with a second control code block to obtain a second code block stream.
- the logic circuit is further configured to mark at least one non-target control code block; and replace a first control code block in the unmarked first control code block with a second control code block to obtain the second code block flow.
- the logic circuit is specifically configured to replace one target control code block in the at least one target control code block with the second control code block according to the period of the second control code block and/or the priority of the second control code block , to obtain the second code block stream.
- an exemplary logic circuit is configured to acquire a first code block stream, the first code block stream includes at least two code blocks, and the at least two code blocks include a first boundary code block and the second boundary code block; and also for determining the period of the second control code block according to the number of code blocks between the first boundary code block and the second boundary code block; and also for inserting the second control code when needed When the block is selected, insert at least one second control code block into the first code block stream according to the period of the second control code block to obtain a second code block stream.
- the logic circuit is specifically configured to determine the ratio of the first control code block in the at least two code blocks according to the number of code blocks between the first boundary code block and the second boundary code block; according to the first control code block
- the period of the second control code block is determined by the ratio in the at least two code blocks and a first threshold value obtained based on the rate adaptation requirement.
- the logic circuit is specifically configured to determine the period of the second control code block according to the maximum value of the number of code blocks between the first boundary code block and the second boundary code block within a preset duration; or, according to a preset Within the number of times, the maximum value of the number of code blocks between the first boundary code block and the second boundary code block determines the period of the second control code block, and the preset times are used to indicate the difference between the first boundary code block and the second boundary code block. Count the number of code blocks in between.
- the first control code block, the second control code block, the third control code block, the target control code block, the non-target control code block, and the period please refer to the above Examples are not described in detail here.
- the present application also provides a computer-readable storage medium, where computer codes are stored in the computer-readable storage medium, and when the computer codes are run on the computer, the computer is made to perform the operations performed by the sender in the method provided by the present application and/or or processing.
- the present application also provides a computer program product, the computer program product includes computer code or computer program, when the computer code or computer program runs on a computer, the operation performed by the sending end in the method provided by the present application and/or Processing is executed.
- the disclosed system, apparatus and method may be implemented in other manners.
- the apparatus embodiments described above are only illustrative.
- the division of the units is only a logical function division. In actual implementation, there may be other division methods.
- multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not implemented.
- the shown or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may also be electrical, mechanical or other forms of connection.
- the units described as separate components may or may not be physically separated, and components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the technical effects of the solutions provided by the embodiments of the present application.
- each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
- the above-mentioned integrated units may be implemented in the form of hardware, or may be implemented in the form of software functional units.
- the integrated unit if implemented in the form of a software functional unit and sold or used as an independent product, may be stored in a computer-readable storage medium.
- a computer-readable storage medium includes several instructions for causing a computer device (which may be a personal computer, a server, or a communication device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present application.
- the aforementioned readable storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk, etc. that can store program codes medium.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种码块流的处理方法及装置,该方法包括:发送端获取第一码块流,该第一码块流中包括至少两个码块,该至少两个码块中包括至少两个第一控制码块。然后,发送端确定该至少两个第一控制码块中的至少一个目标控制码块,该目标控制码块是可以被替换为第二控制码块的第一控制码块。接着,当需要插入第二控制码块时,发送端将至少一个目标控制码块中的一个目标控制码块替换为第二控制码块,得到第二码块流。最后,发送端发送该第二码块流,接收端获取到该第二码块流之后,根据速率适配需求删除和/或添加第一控制码块。
Description
本申请要求于2020年09月24日提交中国专利局、申请号202011016575.4、申请名称为“一种码块流的处理方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及通信技术领域,尤其涉及一种码块流的处理方法及装置。
媒体访问控制(medium access control,MAC)帧与MAC帧之间存在帧间隙(inter packet gap,IPG),且平均IPG的长度至少为12字节。该MAC帧之间的IPG可以用于填充空闲(idle)码块或称为idle字符(以下简称为idle码块)等。
上述idle码块可以被删除,也可以被替换为其他控制码块等。因此,通信装置如何合理利用idle码块亟待解决。
发明内容
本申请提供一种码块流的处理方法及装置,能够保证idle码块被合理利用。
第一方面,本申请提供一种码块流的处理方法,所述方法包括:获取第一码块流,所述第一码块流中包括至少两个码块,所述至少两个码块中包括至少两个第一控制码块;确定所述至少两个第一控制码块中的至少一个目标控制码块,所述目标控制码块是可以被替换为第二控制码块的第一控制码块;当需要插入所述第二控制码块时,将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流。
本申请实施例提供的方法可以应用于通信装置,该通信装置可以包括发送端,该发送端可以包括网络之间或网络内设备之间的接口(network to network interface,NII)和/或用户侧接口(user network interface,UNI)。这里所示的目标控制码块可以被替换为第二控制码块,意思是目标控制码块是否会被替换为第二控制码块,一方面,取决于第二控制码块的需求,即发送端是否需要在第一码块流中插入第二控制码块。另一方面,取决于是否有其他更高优先级的控制码块(如第三控制码块)需要插入第一码块流中,即目标控制码块还可以用于被替换为第三控制码块等。
本申请实施例中,发送端通过确定至少两个第一控制码块中的至少一个目标控制码块,避免了发送端需要插入第二控制码块时,将所有的第一控制码块都替换为第二控制码块,或者,避免了发送端根据需要任意的在第一码块流中强插第二控制码块。从而保证了发送端能够合理利用第一控制码块,避免了接收端由于速率适配需求需要删除第一控制码块时,没有足够的第一控制码块被删除。换句话说,通过保证发送端合理利用第一控制码块,接收端可以有足够的第一控制码块被删除,避免了增加接收端的处理时延,保证了接收端及时处理码块流。
在一种可能的实现方式中,所述第一控制码块为空闲(idle)码块、低功耗空闲(low power idle,LPI)码块或错误(error)码块中的任一项。
在一种可能的实现方式中,所述第二控制码块包括自动保护倒换(auto protection switching,APS)码块、链接验证(connection verification,CV)码块、延迟测量(delay measurement,DM)码块、客户信号类型指示(client service,CS)码块中的任一项或多项。
本申请实施例中,DM码块可以包括单向时延测量(one-way delay measure,1DM)、双向时延测量(two-way delay measure message,2DMM)或双向时延测量响应(two-way delay measure message response,2DMMR)等。
在一种可能的实现方式中,所述第二控制码块中包括自动保护倒换APS信息、链接验证CV信息、延迟测量DM信息、客户信号类型指示CS信息中的任一项或多项。
在一种可能的实现方式中,所述确定所述至少两个第一控制码块中的至少一个目标控制码块包括:确定所述至少两个第一控制码块中的至少一个非目标控制码块,所述非目标控制码块是不能被替换为所述第二控制码块的第一控制码块。
本申请实施例中,至少两个第一控制码块可以被划分为目标控制码块和非目标控制码块,上述介绍的方案主要是发送端直接确定目标控制码块。然而,发送端还可以通过确定非目标控制码块,间接地确定目标控制码块。由此,发送端确定至少两个第一控制码块中的至少一个非目标控制码块,且非目标控制码块是不能被替换为第二控制码块的第一控制码块。
在一种可能的实现方式中,所述非目标控制码块为被预留的第一控制码块。
本申请实施例对于该非目标控制码块的具体作用不作限定。
在一种可能的实现方式中,所述非目标控制码块为基于速率适配需求被预留的第一控制码块。
换句话说,非目标控制码块可以是基于速率适配需求被删除的第一控制码块。
在一种可能的实现方式中,所述确定所述至少两个第一控制码块中的至少一个非目标控制码块包括:根据第一阈值确定所述至少两个第一控制码块中的所述至少一个非目标控制码块,所述第一阈值基于速率适配需求得到。
本申请实施例中,第一阈值可以基于速率适配需求得到,如两个端口之间存在的频偏为200ppm,则该第一阈值可以根据该200ppm得到。该第一阈值还基于以下任一项或多项信息得到:第三控制码块的周期、城域传输网络(metro transport network,MTN)段层开销信息的周期、对齐标记(alignment marker,AM)的周期、MTN段层操作管理和维护(operations,administration,and maintenance,OAM)码块的周期。换句话说,非目标控制码块可以被接收端基于速率适配需求删除。同时,非目标控制码块可以用于补偿由于第一码块流中插入以上任一项或多项信息而占用的带宽资源。
在一种可能的实现方式中,所述第一码块流中包括N个码块,所述N大于2,所述确定所述至少两个第一控制码块中的至少一个非目标控制码块包括:从所述N个码块中的至少两个第一控制码块中确定至少一个非目标控制码块。
本申请实施例中,上述从N个码块中的至少两个第一控制码块中确定至少一个非目标控制码块,也可以理解为:每N个码块中的至少两个第一控制码块中确定至少一个非目标控制码块。
在一种可能的实现方式中,N=5000。
在一种可能的实现方式中,所述确定所述至少两个第一控制码块中的至少一个非目标控制码块包括:将所述N个码块中的第一个第一控制码块确定为所述非目标控制码块。
本申请实施例中,发送端可以将每5000个码块中的第一个第一控制码块确定为非目标控制码块,由此,该5000个码块中包括的其余第一控制码块,则可以为目标控制码块。示例性 的,第一码块流中包括2*5000个码块,则第一个5000个码块中可以确定至少一个非目标控制码块,然后在第二个5000个码块中确定至少一个非目标控制码块。示例性的,发送端可以确定检测窗口内的至少两个第一控制码块中的至少一个非目标控制码块。该检测窗口内可以包括5000个码块。
在一种可能的实现方式中,所述将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流之前,所述方法还包括:标记所述至少一个目标控制码块;所述将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流包括:将标记的所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到所述第二码块流。
在一种可能的实现方式中,所述将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流之前,所述方法还包括:标记所述至少一个非目标控制码块;所述将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流包括:将未标记的第一控制码块中的一个所述第一控制码块替换为所述第二控制码块,得到所述第二码块流。
本申请实施例中,发送端通过标记目标控制码块或非目标控制码块,可使得该发送端在需要插入第二控制码块时,根据标记的结果将目标控制码块替换为第二控制码块。从而有效提高了发送端插入第二控制码块的效率。
在一种可能的实现方式中,所述将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流包括:根据所述第二控制码块的周期和/或所述第二控制码块的优先级将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流。
在一种可能的实现方式中,所述第一码块流中还包括第三控制码块。
本申请实施例中,发送端获取到的第一码块流可以是已经被插入了第三控制码块的码块流。可理解,这里所示的第三控制码块的插入顺序仅为示例。本申请实施例中,第三控制码块的插入顺序可以在发送端确定非目标控制码块(或目标控制码块)之前,或者,第三控制码块的插入顺序也可以在发送端确定非目标控制码块(或目标控制码块)之后。第三控制码块的插入方式可以是idle码块替换的方式,也可以是IPG强插的方式等,本申请实施例对于第三控制码块的插入顺序或插入方式等不作限定。
第二方面,本申请提供一种码块流的处理方法,所述方法包括:获取第一码块流,所述第一码块流中包括至少两个码块,所述至少两个码块中包括第一边界码块和第二边界码块;根据所述第一边界码块和所述第二边界码块之间的码块数量确定第二控制码块的周期;在需要插入所述第二控制码块时,根据所述第二控制码块的周期在所述第一码块流中插入至少一个所述第二控制码块,得到第二码块流。
本申请实施例中,第一边界码块和第二边界码块可以为不同类型的边界码块,如第一边界码块可以为开始S码块,第二边界码块可以为结束T码块。由此,根据S码块与T码块之间的码块数量,确定第二控制码块的周期。从而使得该第二控制码块合理的被插入到码块流中。避免了第二控制码块过多的占用idle资源,而导致接收端没有足够的idle码块被删除,避免了增加接收端的处理时延。
在一种可能的实现方式中,所述第一边界码块和所述第二边界码块之间的码块数量不同,所述第二控制码块的周期不同。
在一种可能的实现方式中,所述第一边界码块和所述第二边界码块之间的码块数量对应 的范围不同,所述第二控制码块的周期不同。
在一种可能的实现方式中,所述根据所述第一边界码块和所述第二边界码块之间的码块数量确定第二控制码块的周期包括:根据所述第一边界码块与所述第二边界码块之间的码块数量确定第一控制码块在所述至少两个码块中的比值;根据所述第一控制码块在所述至少两个码块中的比值以及第一阈值确定所述第二控制码块的周期,所述第一阈值基于速率适配需求得到。
在一种可能的实现方式中,根据所述第一边界码块和所述第二边界码块之间的码块数量确定第二控制码块的周期包括:根据预设时长内,所述第一边界码块和所述第二边界码块之间的码块数量的最大值确定所述第二控制码块的周期;或者,根据预设次数内,所述第一边界码块和所述第二边界码块之间的码块数量的最大值确定所述第二控制码块的周期,所述预设次数用于表示所述第一边界码块和所述第二边界码块之间的码块数量的统计次数。
本申请实施例中,第一边界码块和第二边界码块之间的码块数量越大,则第一控制码块在至少两个码块中的比值越小,由此,第二控制码块在该至少两个码块中的比值越小,得到的第二控制码块的周期越大。因此,通过S码块和T码块之间的码块数量的最大值确定第二控制码块的周期,避免确定的第二控制码块的周期过小,而导致第二控制码块过多占用第一控制码块的资源,从而导致接收端没有足够的第一控制码块可以被删除。换句话说,通过第一边界码块和第二边界码块之间的码块数量的最大值确定第二控制码块的周期,有效保证接收端有足够的第一控制码块被删除,避免增加接收端处理码块流的时延。
在一种可能的实现方式中,所述根据所述第二控制码块的周期在所述第一码块流中插入至少一个所述第二控制码块,得到第二码块流包括:根据所述第二控制码块的周期,以及所述第一码块流中包括的第一控制码块的位置,在所述第一码块流中插入至少一个所述第二控制码块。
本申请实施例中,当发送端需要插入第二控制码块时,不仅需要根据第二控制码块的周期,还需要根据第一码块流中第一控制码块的位置,在第一码块流中插入第二控制码块。且第二控制码块的插入方式可以是idle替换的方式,也可以是IPG强插的方式。
可理解,第二方面中,关于第二控制码块或第一控制码块等的描述可以参考第一方面中的介绍,本申请实施例不再赘述。
第三方面,本申请提供一种通信装置,用于执行第一方面或第一方面的任意可能的实现方式中的方法。
该通信装置包括具有执行第一方面或第一方面的任意可能的实现方式中的方法的相应单元。例如,该通信装置可以包括收发单元和处理单元。该通信装置可以为第一方面所示的发送端。
第四方面,本申请提供一种通信装置,用于执行第二方面或第二方面的任意可能的实现方式中的方法。
该通信装置包括具有执行第二方面或第二方面的任意可能的实现方式中的方法的相应单元。例如,该通信装置可以包括收发单元和处理单元。该通信装置可以为第二方面所示的发送端。
第五方面,本申请提供一种通信装置,所述通信装置包括处理器,用于执行上述第一方面或第一方面的任意可能的实现方式所示的方法。
在执行本申请示出的方法的过程中,有关发送码块流(如第二码块流等)和/或接收码块流等的过程,可以理解为由处理器输出码块流的过程,和/或,处理器接收输入的码块流的过 程。在输出码块流时,处理器可以将码块流输出给收发器,以便由收发器进行发射。码块流在由处理器输出之后,还可能需要进行其他的处理,然后到达收发器。类似的,处理器接收输入的码块流时,收发器接收码块流,并将其输入处理器。更进一步的,在收发器收到该码块流之后,该码块流可能需要进行其他的处理,然后输入处理器。
对于处理器所涉及的发射、发送和接收等操作,如果没有特殊说明,或者,如果未与其在相关描述中的实际作用或者内在逻辑相抵触,则均可以更加一般性的理解为处理器输出和接收、输入等操作,而不是直接由射频电路和天线所进行的发射、发送和接收操作。
在实现过程中,上述处理器可以是专门用于执行这些方法的处理器,也可以是执行存储器中的计算机指令来执行这些方法的处理器,例如通用处理器。上述存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
在一种可能的实现方式中,存储器位于所述通信装置之外。
在一种可能的实现方式中,存储器位于所述通信装置之内。
本申请实施例中,处理器和存储器还可能集成于一个器件中,即处理器和存储器还可以被集成在一起。
在一种可能的实现方式中,所述通信装置还包括收发器,所述收发器,用于接收信号和/或发送信号。
示例性的,该收发器可以用于发送第二码块流等。
第六方面,本申请提供一种通信装置,所述通信装置包括处理器,用于执行存储器中存储的计算机程序,当所述计算机程序被执行时,使得所述通信装置执行如上述第二方面或第二方面的任意可能的实现方式所示的方法。
在一种可能的实现方式中,存储器位于所述通信装置之外。
在一种可能的实现方式中,存储器位于所述通信装置之内。
本申请实施例中,处理器和存储器还可能集成于一个器件中,即处理器和存储器还可以被集成在一起。
在一种可能的实现方式中,所述通信装置还包括收发器,所述收发器,用于接收信号和/或发送信号。
示例性的,该收发器可以用于发送第二码块流等。
第七方面,本申请提供一种通信装置,所述通信装置包括逻辑电路和接口,所述逻辑电路和所述接口耦合;其中,所述逻辑电路,用于获取第一码块流,所述第一码块流中包括至少两个码块,所述至少两个码块中包括至少两个第一控制码块;以及,还用于确定所述至少两个第一控制码块中的至少一个目标控制码块,所述目标控制码块是可以被替换为第二控制码块的第一控制码块;以及,还用于当需要插入所述第二控制码块时,将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流。
在一种可能的实现方式中,所述接口,用于输出所述第二码块流。
在一种可能的实现方式中,所述逻辑电路,具体用于确定所述至少两个第一控制码块中的至少一个非目标控制码块,所述非目标控制码块是不能被替换为所述第二控制码块的第一控制码块。
在一种可能的实现方式中,所述逻辑电路,具体用于根据第一阈值确定所述至少两个第一控制码块中的所述至少一个非目标控制码块,所述第一阈值基于速率适配需求得到。
在一种可能的实现方式中,所述逻辑电路,还用于标记所述至少一个目标控制码块,以及将标记的所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到所述第二码块流。
在一种可能的实现方式中,所述逻辑电路,还用于标记所述至少一个非目标控制码块;以及将未标记的第一控制码块中的一个所述第一控制码块替换为所述第二控制码块,得到所述第二码块流。
在一种可能的实现方式中,所述逻辑电路,具体用于根据所述第二控制码块的周期和/或所述第二控制码块的优先级将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流。
本申请实施例中,关于上述目标控制码块、非目标控制码块、第一控制码块、第二控制码块以及第三控制码块的描述可参考上述第一方面,这里不再详述。
第八方面,本申请提供一种通信装置,所述通信装置包括逻辑电路和接口,所述逻辑电路和所述接口耦合;其中,所述逻辑电路,用于获取第一码块流,所述第一码块流中包括至少两个码块,所述至少两个码块中包括第一边界码块和第二边界码块;以及还用于根据所述第一边界码块和所述第二边界码块之间的码块数量确定第二控制码块的周期;以及还用于在需要插入所述第二控制码块时,根据所述第二控制码块的周期在所述第一码块流中插入至少一个所述第二控制码块,得到第二码块流。
在一种可能的实现方式中,所述接口,用于输出所述第二码块流。
在一种可能的实现方式中,所述逻辑电路,具体用于根据所述第一边界码块与所述第二边界码块之间的码块数量确定第一控制码块在所述至少两个码块中的比值;根据所述第一控制码块在所述至少两个码块中的比值以及第一阈值确定所述第二控制码块的周期,所述第一阈值基于速率适配需求得到。
在一种可能的实现方式中,所述逻辑电路,具体用于根据预设时长内,所述第一边界码块和所述第二边界码块之间的码块数量的最大值确定所述第二控制码块的周期;或者,根据预设次数内,所述第一边界码块和所述第二边界码块之间的码块数量的最大值确定所述第二控制码块的周期,所述预设次数用于表示所述第一边界码块和所述第二边界码块之间的码块数量的统计次数。
在一种可能的实现方式中,所述逻辑电路,具体用于根据所述第二控制码块的周期,以及所述第一码块流中包括的IPG的位置,在所述第一码块流中插入至少一个所述第二控制码块。
在一种可能的实现方式中,所述逻辑电路,具体用于根据所述第二控制码块的周期,以及所述第一码块流中包括的第一控制码块的位置,在所述第一码块流中插入至少一个所述第二控制码块。
本申请实施例中,关于上述目标控制码块、非目标控制码块、第一控制码块、第二控制码块以及第三控制码块的描述可参考上述第二方面,这里不再详述。
第九方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,当其在计算机上运行时,使得上述第一方面或第一方面的任意可能的实现方式所示的方法被执行。
第十方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,当其在计算机上运行时,使得上述第二方面或第二方面的任意可能的实现方式所示的方法被执行。
第十一方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机程序或计算机代码,当其在计算机上运行时,使得上述第一方面或第一方面的任意可能的实现方式所示的方法被执行。
第十二方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机程序或计算机代码,当其在计算机上运行时,使得上述第二方面或第二方面的任意可能的实现方式所示的方法被执行。
第十三方面,本申请提供一种计算机程序,该计算机程序在计算机上运行时,上述第一方面或第一方面的任意可能的实现方式所示的方法被执行。
第十四方面,本申请提供一种计算机程序,该计算机程序在计算机上运行时,上述第二方面或第二方面的任意可能的实现方式所示的方法被执行。
图1是本申请实施例提供的一种MTN网络架构示意图;
图2是本申请实施例提供的一种64B/66B的不同码块定义;
图3a是本申请实施例提供的一种idle码块替换的方式示意图;
图3b是本申请实施例提供的一种IPG强插的示意图;
图4a是本申请实施例提供的一种不同类型的O码块;
图4b是本申请实施例提供的周期示意图;
图5a和图5b是本申请实施例提供的一种网络架构示意图;
图5c是本申请实施例提供的一种PHY与时隙的关系示意图;
图6是本申请实施例提供的一种码块流的处理方法的流程示意图;
图7a和图7b是本申请实施例提供的一种MTN通道层O码块插入模块的示意图;
图7c是本申请实施例提供的一种标识idle码块的示意图;
图7d和图7e是本申请实施例提供的一种MTN通道层O码块插入模块的示意图;
图8a和图8b是本申请实施例提供的一种码块流的处理方法的具体流程示意图;
图9a是本申请实施例提供的一种码块流的处理方法的流程示意图;
图9b和图9c是本申请实施例提供的一种非BAS码块的插入方式示意图;
图10a和图10b是本申请实施例提供的一种MTN通道层O码块插入模块的示意图;
图10c是本申请实施例提供的一种码块流的处理方法的具体流程示意图;
图11至图13是本申请实施例提供的一种通信装置的结构示意图。
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地描述。
本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等仅用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备等,没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元等,或可选地还包括对于这些过程、方法、产品或设备等固有的其它步骤或单元。
在本文中提及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在 本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”。
以下详细介绍本申请涉及的术语。
1、城域传输网络(metro transport network,MTN)
MTN是国际电信联盟(telecommunication standardization sector of itu,ITU-T)针对第五代通信技术(5th-generation,5G)等新业务需求在沿用灵活以太网(flexible ethernet,FlexE)设计逻辑的基础上定义了的新一代传送网技术体系。MTN包含完整的传送网功能,比如接口、交叉、操作管理和维护(operations,administration,and maintenance,OAM)、管控或保护等。图1示出的是一种MTN网络架构示意图,如图1所示,MTN可以包括MTN通道层(MTN path layer)和MTN段层(MTN sectionlayer)。其中,MTN通道层包括MTN通道适配层(MTN path adaptation)、MTN通道终结层(MTN path trail termination)、MTN通道连接层(MTN path connection)等。MTN段层包括MTN段层适配层(MTN section adaptation)和MTN段层终结层(MTN section trail termination)。可选的,MTN段层还可以包括适配层(adaptation)。
可理解,上述MTN通道适配层、MTN通道终结层、MTN通道连接层或MTN段层终结层等,还可能存在其他名称,例如,MTN通道适配层还可以称为MTN通道适配功能模块等,本申请对此不作限定。
一般的,发送端获取到的业务流可以经过MAC,进入MTN域MTN通道适配层被适配成64B/66B码块流的形式。该64B/66B码块流进入MTN通道终结层后,64B/66B码块流中会被插入通道层操作管理和维护(operations,administration,and maintenance,OAM)码块(如果没有特殊说明,则下文示出的O码块可以理解为MTN通道层OAM码块),该OAM码块中可以包括OAM信息。接着,发送端可以通过MTN通道连接层(MTN path connection)进行1.5层转发,即在该MTN通道连接层确定出入端口的对应关系,从而确定出端口。MTN段层适配层(MTN section adaptation)是通道层到段层的适配功能,在该MTN段层适配层各路MAC的业务流(如64B/66B码块的形式)会进行交织,形成一路64B/66B码块流。然后,该一路64B/66B码块流经过MTN段层终结层(MTN section trail termination)会被插入段层OAM等开销信息。随后该64B/66B码块流经过适配层(adaptation)进入物理层进行传输等。示例性的,该64B/66B码块流还可以经过扰码、通道分布、对齐标记(alignment marker,AM)插入功能等。
相反,接收端接收到64B/66B码块流后,接收端接收的64B/66B码块流的流向与发送端发送64B/66B码块流的流向相反。例如接收端接收到的64B/66B码块流可以依次经过例如MTN段层、MTN通道层等。示例性的,基于速率适配需求接收端可以在通过MTN段层适配层时,在64B/66B码块流中删除和/或添加第一控制码块。
从协议栈的角度粗略地看,MTN的段层从功能上来讲与OIF FlexE shim类似。MTN段 层当前版本重用兼容FlexE,MTN当前版本的段层帧格式保留了FlexE帧格式。
可理解,上述介绍的64B/66B码块仅为一种示例,对于其他类型的码块可参考下文介绍的P1B/P2B码块。
可理解,上述示出的通道层OAM信息可以包括基本(basic,BAS)信息、自动保护倒换(auto protection switching,APS)信息、链接验证(connection verification,CV)信息、延迟测量(delay measurement,DM)信息或客户信号类型指示(client service,CS)信息等。因此,在MTN通道终结层,64B/66B码块流中可以被插入BAS码块、APS码块、CV码块、DM码块或CS码块等。
2、码块(block)
P1B/P2B码块:一种编码方式,也可以称为P1B/P2B比特块(bit block),或者也可以称为P1B/P2B块,或者也可以称为P1B/P2B编码块,或者也可以称为P1B/P2B比特流,或者也可以称为P1/P2(或P1b/P2b)比特块等。其中,P1表示码块(或比特块)中的净荷比特数;P2表示码块的总比特数,P2-P1表示码块中的同步头比特数,P1、P2为正整数,且P2大于P1。示例性的,上述P1B/P2B码块可以为8B/10B码块、64B/66B码块、128B/130B码块或256B/258B码块等,本申请对上述P1和P2的具体取值不作限定。
示例性的,在以太网(ethernet)物理层链路传递的就是这种P1B/P2B比特块。比如1G以太网(1gigabit ethernet,1GE)采用的是8B/10B比特块编码方式,1GE物理层链路传递的是8B/10B比特块;10GE/40GE/100GE采用的是64B/66B比特块编码方式,10GE/40GE/100GE物理层链路传递的是64B/66B比特块。可理解,未来随着以太网技术的发展,可能还也会出现其他编码方式,比如128B/130B(也可以称为128b/130b)比特块、256B/258B(也可以称为256b/258b)比特块等,本申请对上述P1和P2的具体取值不作限定。
下文将以64B/66B码块为例示出本申请提供的方法。可理解,下文示出的64B/66B码块也可以替换为64B/66B比特块,或者64/66码块,或者64/66比特块,或者64b/66b码块,或者64b/66b比特块,或者64B/66B比特块流,或者64B/66B编码块等。
作为示例,图2示出的是一种64B/66B码块的不同码型定义。如图2所示,首部的2个比特“10”或“01”为同步头比特,后64比特即为净荷比特,可以用于承载净荷数据等。图2中每一行代表一种码型定义,其中,D0~D7代表数据字节,C0~C7代表控制字节,S0代表MAC帧的开始,T0~T7代表MAC帧的结束。
3、速率适配需求
一般的,任意两个以太网端口或者说基于以太网物理层(physical layer,PHY)的端口之间存在着200ppm的频偏,即任意端口之间会存在±100ppm的偏差。比如,以100G比特以太网(100gigabit ethernet,100GE)的以太网端口为例,其标称速率为100Gbit/s,但是实际速率可能为
即实际速率为103.1146875Gbit/s~103.1353125Gbit/s。
媒体访问控制(medium access control,MAC)帧与MAC帧之间存在帧间隙(inter packet gap,IPG),且平均IPG的长度至少为12字节。该MAC帧之间的IPG可以用于填充控制码块,例如可以包括空闲(idle)码块或称为idle字符(下文以idle码块为例)等。由此,为适应上述示出的端口之间的频偏,通信装置可以增加或删除控制码块如idle码块。例如,当发送端的发送速率比接收端的发送速率快时,接收端的缓存数据写入速率会比读取速率快,长期以往造成缓存溢出,因此接收端需要通过删除控制码块如idle码块的方式避免接收端缓存溢出。又例如,当发送端的发送速率比接收端的发送速率慢时,接收端的缓存写入速率会比 读取速率慢,长期以往会造成缓存读空,因此接收端需要通过增加控制码块如idle码块的方式避免接收端缓存读空。上述所示的方法,不管是增加控制码块如idle码块的方法,还是删除控制码块如idle码块的方法,有效数据MAC帧并没有改变,只是IPG内填充的控制码块如idle码块被增加或删除。
本申请将上述示出的发送端的发送速率与接收端的发送速率的之间的差异,而导致接收端需要删除和/或增加idle码块的需求,简称为速率适配需求。换句话说,由于速率适配需求,接收端需要删除和/或添加idle码块。进一步的,本申请中,还可以将由于其他原因导致接收端需要删除和/或增加idle码块的需求,也称为速率适配需求。即不管是端口之间的速率差异,还是其他方式的占用idle码块占用的带宽资源,而导致接收端需要删除和/或添加idle码块,均可以称为速率适配需求。
可理解,本申请示出的速率适配,还可以称为速率调整。由此,速率适配需求,也可以称为速率调整需求等等,本申请对其名称不作限定。
4、OAM码块
从关于图1的介绍可以看出,MTN需要在MTN通道层插入OAM码块。进一步的,一般是在帧间隙插入OAM码块,该帧间隙在MAC层可以理解为MAC帧与MAC帧之间的帧间隙,在物理编码子层(physical coding sublayer,PCS)层可以理解为结束码块与开始码块之间的控制码块如idle码块、低功耗(low power idle,LPI)码块、错误(error)码块或O码块等。为便于描述,下文将以idle码块为例说明下文提供的各个实施例。
可理解,本申请介绍的OAM码块也可以理解为序列(sequence ordered set,O)码块或信号(signal ordered set,O)码块。为便于描述,以下将以O码块为例说明下文提供的各个实施例。
进一步的,MTN可以通过两种方式插入O码块,第一种为idle码块替换的方式,第二种为IPG强插的方式,以下分别介绍。
第一种:idle码块替换需要64B/66B码块流中至少存在一个idle码块。图3a示出的是64B/66B码块流的不同码块类型的示意图,从图3a可以看出,idle码块(即图3a中的I)可以被替换为O码块。
第二种:IPG强插可以不需要64B/66B码块流中存在idle码块,即可以不需要IPG位置上有idle码块,只要发现有MAC帧的结尾如T码块就可以插入O码块。如图3b所示,如IPG强插的方式可以在T码块之后,插入O码块;又如还可以在idle码块(即图3b中的I)之后,插入O码块等。换句话说,IPG强插的方式可以理解为在T码块之后,且S码块之前,插入O码块,但是该T码块与该S码块之间不包括数据码块(即D码块)。由于发送端插入O码块而占用的带宽,接收端可以通过idle码块的删除来补偿。
一般的,O码块可以有多种类型,图4a示出的是不同类型的O码块。如图4a所示,O码块可以包括基本码块(basic block/path status and error monitoring block,BAS)、自动保护倒换(auto protection switching,APS)码块、链接验证(connection verification,CV)码块、延迟测量(delay measurement,DM)码块、客户信号类型指示(client service,CS)码块等。其中,BAS可以包含远端故障指示信号(remote defect indication,RDI)、远端错误指示(remote error indication,REI)或奇偶校验码(Bitinterleaved parity,BIP)等。DM码块可以包括单向时延测量(one-way delay measure,1DM)、双向时延测量(two-way delay measure message,2DMM)或双向时延测量响应(two-way delay measure message response,2DMMR)等。该CS也可以称为负载类型指示(payload type indication,PTI)等,本申请对于各个类型的O码 块的具体名称不作限定。
具体的,BAS码块由于所占带宽较小,用一个码块即可承载所有信息。而CV码块、DM码块等类型O码块需要带宽较大,需要多个O码块承载。因此不同类型O码块可以按照需要码块数目分为单码块和多码块。可理解,当通信装置需要发送多个多码块时,通信装置可以按照OAM信息交织的方式发送,也可以按照码块交织的方式发送。从重要性的程度,BAS实时性较强,发送频率高,优先级更高,同时,为了及时实施保护倒换,APS码块的优先级也高。而CV码块、DM码块、CS码块等发送频率低,实时性弱,可以容忍较大的检测抖动,因此优先级较低。
以上介绍的O码块的类型仅为示例,对于O码块可能存在的其他类型,本申请不作限定。
5、周期
本申请示出的不同类型的O码块即使具有一定的周期,但是,由于O码块只能在插入在IPG中,因此,不同类型的O码块的周期可以有一定的浮动。如图4b所示,根据O码块的周期T确定该O码块的插入位置为第一个位置,但是O码块不能被插入在数据码块中间,因此,该O码块的插入位置为第二个位置。同时,下一个O码块的周期,还可以从图4b所示的第一个位置开始计数。换句话说,由于O码块只能插入在IPG中间,因此,下文示出的周期或间隔等可以理解为标称值,O码块的实际周期会有一定程度的浮动,但是该一定程度的浮动不会累积到下一个O码块的周期内。即本申请下文示出的各个实施例中,当需要插入O码块时,不仅仅需要根据O码块的周期插入该O码块,还需要根据IPG的位置(包括idle码块的位置等),即idle码块的位置来插入该O码块。
上述介绍的idle码块的删除方法,除了可以适应速率适配需求外,也可以通过删除idle码块来为其他码块/消息获得带宽。例如,以太网物理层(physical layer,PHY)中的对齐字符(alignment marker,AM)也需要在链路上传输,即可以通过删除idle码块的方式来为其获得带宽。换句话说,可以通过删除idle码块的方式补偿由于插入AM而占用的带宽。同样的,FlexE开销(overhead,OH)或MTN段层OH等也可以通过删除idle码块的方式来获得带宽。即idle码块所占用的带宽资源可以被用在如下几个方面:
一、FlexE OH信息或MTN段层OH信息,如每1023*20个码块可以插入一个O码块,即每20461个码块中占用一个idle码块。
二、AM,如以100GE为例,每16384个码块可以插入一个O码块,即每16384个码块中占用一个idle码块。
三、端口速率适配,由于两个端口之间的速率频偏最大值为200ppm,200ppm=200/1e6=1/5000,因此每5000个码块中可以占用一个idle码块。
四、MTN通道层OH信息,如通道层OAM信息。
最差情况下,比如9600字节报文(即对应1200个码块)按照满速率发送时,连续两个9600字节的报文可能才会有一个idle码块。即idle码块在两个9600字节报文中占用的比值为(1*8)/(2*9600)=0.00041667。如果以浓度的表达为例,则两个9600字节报文中idle码块的浓度约为416.7ppm。以上示出的9600字节的报文仅为示例,最差情况下,还可以按照报文的长度为9616字节(即对应1202个码块)为例计算idle码块的浓度等,本申请对于报文的最大长度具体为多少不作限定。同时,如果将上述介绍的一和二也以浓度的表达为例,则对于FlexE OH或MTN段层OH来说,每1023*20个码块中idle码块的浓度约为49ppm;对于AM来说,每16384个码块中idle码块的浓度约为61ppm。换句话说,本申请中,关于 idle码块在至少两个码块中占用的比值的说法,也可以替换为该idle码块的浓度。
从中可以看出,idle码块占用的带宽资源不仅仅需要用于端口速率适配,还需要用于MTN段层OH信息或MTN通道层OAM信息等。因此,如何合理利用idle码块亟待解决。
进一步的,在发送端的发送速率大于接收端的发送速率时,如果接收端没有足够的idle码块来删除,以适应不同端口的速率,则可能会造成该接收端的缓存溢出或增加处理码块的时延。例如,在接收端的缓存过小的情况下,由于该接收端的发送速率小于发送端的发送速率,即接收端不能及时将接收到的码块流发送出去,由此该接收端很快就会出现缓存溢出的情况。又例如,在接收端的缓存过大的情况下,由于该接收端的发送速率小于发送端的发送速率,因此,该接收端需要缓存大量的码块,不仅会出现阻塞情况,还会增加该接收端的处理时延。这里所示的接收端可以理解为图5a中的第二通信装置,或者,也可以理解为图5b中的P1节点、P2节点等。
鉴于此,本申请提供一种码块流的处理方法及装置,能够保证idle码块被合理利用,在发送端需要插入BAS码块或APS码块等时,避免发送端将任一个idle码块替换为BAS码块或APS码块等,从而导致由于速度适配需求,接收端没有足够idle码块被删除。即本申请提供的方法,不仅能够合理控制发送端将idle码块替换为BAS码块或APS码块等等。还能够保证有足够的idle码块被接收端删除。即本申请提供的方法,在发送端的发送速率大于接收端的发送速率的情况下,可以保证该接收端及时通过删除控制码块的方式避免该接收端的缓存溢出,或者,可以保证该接收端及时通过删除控制码块的方式避免增加该接收端的处理时延。
本申请提供的方法不仅可以应用于基于高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)、以太网、互联网协议(internet protocol,IP)网络、分组传送网(packet transport network,PTN)、灵活传送网(agile transport network,ATN)、切片分组网(slicing packet network,SPN)或MTN等,对于本申请提供的方法可以应用的网络不作限定。对于MTN可以参考如图1所示的架构,同时,图1所示的架构也可以适用于SPN的切片通道层(slicing channel layer,SCL)。换句话说,对于SCL的介绍也可以参考图1,这里不再详述。
具体的,本申请提供的方法可以应用于通信装置,该通信装置可以为任意形态的计算机、服务器、交换机(或者称为交换设备、交换芯片等)、路由器、网卡等,本申请对于该通信装置的具体形态不作限定。即本申请提供的方法可以应用于发送端,该发送端可以理解为发送码块流的装置等,对于发送端的具体形式可参考上述介绍的通信装置的形态。其中,该发送端还可以理解为网络边缘(provider edge,PE)节点,该网络边缘节点即为网络边缘与用户连接的网络设备,该网络边缘节点被设置有网络之间或网络内设备之间的接口(network to network interface,NII)和/或用户侧接口(user network interface,UNI)。为便于区分,以下将以发送端和接收端为例示出本申请实施例提供的各个方法。这里所示的接收端可以理解为网络(provider,P)节点,该P节点即为网络内的网络设备,且该网络节点被设置有NNI。
图5a是本申请实施例提供的一种网络架构示意图。如图5a所示,第一通信装置可以理解为发送端,第二通信装置可以理解为接收端。即第一通信装置向第二通信装置发送码块流,而第二通信装置需要接收来自于第一通信装置的码块流。或者,第一通信装置也可以理解为需要在MTN通道层插入O码块的装置等。可选的,第一通信装置可以理解为源端或宿端、第二通信装置可以理解为中间节点。即源端在MTN通道层插入O码块,宿端接收该O码块,读取该O码块中的OAM信息。可选的,第一通信装置可以理解为网络边缘节点(如PE节 点),第二通信装置可以理解为网络节点(如P节点)。
可理解,图5a所示的客户(client)接口还可以理解为UNI,灵活以太(FlexE)接口还可以理解为NII。
图5b是本申请实施例提供的一种网络架构示意图。该网络架构是基于MTN网络示出的,且图5b所示的网络架构中仅示出四个节点,如PE1节点、P1节点、P2节点、PE2节点。
对于PE1节点和/或PE2节点来说,PE1节点和/或PE2节点可以将客户信号适配映射到MTN通道中,并插入MTN通道层O码块等。可理解,对于PE1节点和/或PE2节点的具体描述,还可以参考关于图1的说明,这里不再详述。对于P1节点和/或P2节点来说,P1节点和/或P2节点可以根据速率适配需求,在MTN段层适配层删除idle码块。在一种可能的实现方式中,P1节点和/或P2节点也可以在码块流中插入BAS码块或非BAS码块等,本申请对此不作限定。
图6是本申请实施例提供的一种码块流的处理方法的流程示意图,如图6所示,该方法包括:
601、发送端获取第一码块流,该第一码块流中包括至少两个码块,该至少两个码块中包括至少两个第一控制码块。
对于码块的具体说明,可参考上文介绍,这里不再详述。至于第一控制码块的说明,可如下所示:
第一控制码块,可理解为由于MAC帧与MAC帧之间的帧间隙,而适配成的结束码块(即T码块)与开始码块(即S码块)之间的控制码块。具体的,该第一控制码块可以为idle码块、LPI码块、error码块或O码块等,本申请实施例对于第一控制码块的具体类型不作限定。下文将以idle码块为例说明本申请实施例提供的方法,但是不排除LPI码块或error码块等,也能够基于速率适配需求被删除和/或添加,或者被替换为其他控制码块等。
由于发送端可以通过MTN通道适配层将业务流(即客户信号的业务流)适配成64B/66B码块流的形式,因此步骤601所示的发送端获取第一码块流,可以理解为:发送端通过MTN通道适配层适配成第一码块流;或者,发送端通过MTN通道终结层获取第一码块流等。
在一种可能的实现方式中,第一码块流中还可以包括第三控制码块。即发送端所获得的第一码块流除了可以理解为从MTN通道适配层获取的码块流,还可以理解在MTN通道终结层插入第三控制码块,而获得的码块流。对于第三控制码块的具体说明,可参考下文关于idle码块的用途的介绍,这里先不详述。
结合图5b,客户信号如MAC帧(frame)序列流(MAC frame sequence)(也可以称为MAC frames)在进入MTN通道适配层后,由MTN通道适配层转化为64B/66B码块序列流,该64B/66B码块序列流可以理解为第一码块流。由此,MTN确定用于承载该第一码块流的通道(path)。可理解,通道与客户信号的码块流之间可以是一一对应的关系,即MTN确定的用于承载第一码块流的通道可以不承载其他客户信号对应的码块流。换句话说,第一码块流为客户信号经过MTN通道适配层适配成的码块流。承载第一码块流的通道与客户信号具有对应关系。
进一步的,MTN可以在该用于承载第一码块流的通道中插入第二控制码块和/或第三控制码块等。然后,发送端在得到第二码块流之后,MTN段层可以根据上述用于承载第一码块流的通道的速率为第二码块流(仍然可以理解为承载于上述通道中)分配Y个时隙。示例性的,如图5c所示,捆绑组可以由一个或多个PHY捆绑而成,且捆绑组的带宽为该一个或多 个PHY的带宽之和。进一步的,该捆绑组可以被划分为X个时隙,每个时隙的带宽可以包括5Gbps或25Gbps等。由此,发送端可以通过MTN段层将第二码块流分配至图5c所示的Y个时隙上。X和Y均为正整数,且X大于或等于Y。可理解,图5b中所示的MTN通道则可以理解为图5c中示出的包括Y个时隙的通道。
换句话说,客户信号(client)可以在捆绑组上指定的时隙(一个时隙或多个时隙)上传输业务流,一个捆绑组上可承载多个客户信号,一个客户信号对应一个业务流(典型的,可以称为媒体访问控制(medium access control,MAC)client)。可理解,本申请中,客户信号还可以在PHY的一个或多个时隙上传输。
对于捆绑组的理解:由一个或多个PHY构成,如将两个100比特以太网(gigabit ethernet,GE)PHY端口绑定,则该2×100GE捆绑组可以支持200G的MAC业务。可理解,这里给出的例子仅为示例,在具体实现中,捆绑组可能还有更多种实现方式,这里不再详述。
结合下文示出的步骤603,当需要插入第二控制码块时,将至少一个目标控制码块中的一个目标控制码块替换为第二控制码块,得到第二码块流包括:当需要插入第二控制码块时,在承载第一码块流的通道中,将至少一个目标控制码块中的一个目标控制码块替换为第二控制码块,得到第二码块流。该第二码块流通过MTN段层被分配到Y个时隙上,一个或多个PHY对应X个时隙,该X个时隙中包括Y个时隙。
602、发送端确定至少两个第一控制码块中的至少一个目标控制码块,该目标控制码块是可以被替换为第二控制码块的第一控制码块。
目标控制码块是可以被替换为第二控制码块的第一控制码块,换句话说,目标控制码块可以被替换为第二控制码块,或者,目标控制码块允许被替换为第二控制码块,或者,目标控制码块能够被替换为第二控制码块,或者,目标控制码块是能够被替换为第二控制码块的第一控制码块等。即本申请实施例中,不是所有的第一控制码块都能被替换为第二控制码块,而是由发送端先确定出目标控制码块,确定出的目标控制码块可以被替换为第二控制码块。也就是说,发送端需要区分哪些第一控制码块可以作为目标控制码块,以及区分哪些第一控制码块不可以作为目标控制码块。
本申请实施例中,之所以说目标控制码块是可以被替换为第二控制码块的第一控制码块,一方面是由于该目标控制码块可能会被替换为第二控制码块,当然,也可能不会被替换为第二控制码块。另一方面,该目标控制码块可能会被替换为第三控制码块,而该第三控制码块的优先级高于或等于第二控制码块。换句话说,目标控制码块是否会被替换为第二控制码块,一方面,取决于第二控制码块的需求,即发送端是否需要在第一码块流中插入第二控制码块。另一方面,取决于是否有其他更高优先级的控制码块(如第三控制码块)需要插入第一码块流中。这里所示的目标控制码块是否能够被替换为第二控制码块的两个原因,仅为示例,在具体实现中,可能还会有其他原因导致目标控制码块不被替换为第二控制码块等,本申请实施例对此不作限定。
如果发送端不执行步骤602,则发送端可以根据需要将第一码块流中的idle码块全部用来替换为第二控制码块,由此在发送端的发送速率大于接收端的发送速率时,接收端可能没有足够的idle码块来删除。因此,本申请实施例中,发送端通过确定目标控制码块,避免了发送端需要插入第二控制码块时,将所有的第一控制码块都替换为第二控制码块,或者,避免了发送端根据需要任意的在第一码块流中强插第二控制码块。从而保证了发送端能够合理利用idle码块,避免了接收端由于速率适配需求需要删除idle码块时,没有足够的idle码块被删除。换句话说,通过保证发送端合理利用idle码块,接收端可以有足够的idle码块被删 除,避免了增加接收端的处理时延,保证了接收端及时处理码块流。
发送端确定至少两个第一控制码块中的至少一个目标控制码块包括:发送端通过MTN通道终结层确定至少两个第一控制码块中的至少一个目标控制码块。
在一种可能的实现方式中,步骤602中发送端确定至少两个第一控制码块中的至少一个目标控制码块包括:发送端确定至少两个第一控制码块中的至少一个非目标控制码块。具体的,发送端可以根据第一阈值确定该至少两个第一控制码块中的至少一个非目标控制码块。对于该第一阈值的描述可参考本申请其他实施例中的说明,这里不再一一赘述。
本申请实施例中,至少两个第一控制码块可以被划分为目标控制码块和非目标控制码块,上文关于步骤602的介绍,主要是发送端直接确定目标控制码块。然而,发送端还可以通过确定非目标控制码块,间接地确定目标控制码块。由此,发送端确定至少两个第一控制码块中的至少一个非目标控制码块,且非目标控制码块是不能被替换为第二控制码块的第一控制码块。
其中,非目标控制码块的用途可以有:
用途1:非目标控制码块为基于速率适配需求被预留的第一控制码块。或者,非目标控制码块可以是基于速率适配需求被删除的第一控制码块。
由此,发送端确定至少两个第一控制码块中的非目标控制码块包括:发送端根据第一阈值确定至少两个第一控制码块中的至少一个非目标控制码块,该第一阈值基于速率适配需求得到。对于第一阈值的具体说明,可参考上文介绍。例如,该第一阈值可以大于0,且小于或等于200ppm等。由于两个端口之间最大可能存在200ppm的频偏,因此,为了保证接收端有足够的idle码块被删除,非目标控制码块在第一码块流中的比值可以大于或等于0.0002,即非目标控制码块在第一码块流中的浓度大于或等于200ppm。
举例来说,第一码块流中的码块数量可以为5000个,该第一码块流中的非目标控制码块的数量可以为1个。或者,第一码块流中的idle码块的数量为2个或3个时,发送端可以从该2个或3个idle码块中确定一个idle码块作为非目标控制码块。
可理解,这里所示的第一阈值大于0,小于或等于200ppm仅为示例,在非目标控制码块用于下文示出的更多用途时,该第一阈值可以大于200ppm,如该第一阈值可以根据该200ppm、49ppm或61ppm中的任一项或多项得到等等,这里不再详述。
用途2:非目标控制码块可以被替换为第三控制码块。或者,也可以理解为非目标控制码块用于补偿由于插入第三控制码块而占用的带宽资源。
由此,发送端确定至少两个第一控制码块中的非目标控制码块包括:发送端根据第三控制码块的周期,确定至少两个第一控制码块中的至少一个非目标控制码块。这里所示的第三控制码块可以理解为优先级高于或等于第二控制码块的控制码块,如第三控制码块可以理解为BAS码块。该情况下,第二控制码块可以理解为APS码块、CV码块、DM码块或CS码块中的任一项或多项。或者,第三控制码块还可以理解为APS码块,该情况下,第二控制码块可以理解为CV码块、DM码块或CS码块中的任一项或多项。或者,第三控制码块为BAS码块,第二控制码块为包括以下任一项或多项信息的码块,APS信息、CV信息、DM信息、CS信息。示例性的,第二控制码块中可以包括APS信息和CV信息,或者,第二控制码块中包括APS信息、CV信息和DM信息等,这里不再一一举例。或者,第三控制码块为APS码块,第二控制码块为包括CV信息、DM信息或CS信息的码块等。下文将以第三控制码块为BAS码块,第二控制码块包括APS码块、CV码块、DM码块或CS码块中的任一项或多项为例说明本申请实施例提供的各个方法。
示例性的,如以码块数量为单位,则BAS码块的周期可以为16k个码块,即每16k(即16*1024)个码块中可以有一个BAS码块。该情况下,如果非目标控制码块用于被替换为第三控制码块,则第一码块流中的码块数量可以为16*1024个,该第一码块流中的非目标控制码块的数量可以为1个。这里所示的例子,仅仅是以非目标控制码块可以被替换为第三控制码块为例示出,如果将用途1和用途2结合,则第一码块流中的码块数量为5000个的情况下,非目标控制码块的数量可以为2个或3个等等。或者,第一码块流中的码块数量为16*1024个的情况下,非目标控制码块的数量可以为5个或6个等等。可理解,这里仅为举例,对于第一码块流中的码块数量以及非目标控制码块的数量,本申请实施例不作限定。
可选的,以上所示的例子是结合用途1和用途2为例示出的,在具体实现中,还可以将用途1和用途2解耦,如发送端可以设置两个窗口计数器,其中一个窗口计数器用于对5000计数,另一个窗口计数器用于对16k计数,且每个窗口计数器内还可以分别设置用于计数非目标控制码块的计数器。该情况下,对于BAS码块何时插入到码块流中,本申请实施例不作限定。由于两个窗口计数器互不干扰,独立工作,因此BAS码块可能会被先插入到码块流中,然后发送端确定非目标控制码块(或目标控制码块)(如上述关于步骤601获取第一码块流的介绍)。或者,BAS码块也可能会在发送端确定了非目标控制码块(或目标控制码块)之后,再被插入到码块流中(如关于用途2的介绍)。
总体来说,BAS码块的插入顺序或插入方式比较灵活,如BAS码块的插入顺序可以在发送端确定非目标控制码块(或目标控制码块)之前,或者,BAS码块的插入顺序也可以在发送端确定非目标控制码块(或目标控制码块)之后。BAS码块的插入方式可以是idle码块替换的方式,也可以是IPG强插的方式等,本申请实施例对于BAS码块的插入顺序或插入方式等不作限定。发送端甚至可以将目标控制码块替换为第三控制码块,或者将非目标控制码块替换为第三控制码块。对于该第三控制码块具体替换目标控制码块还是非目标控制码块,本申请实施例不作限定。如目标控制码块不被替换为第二控制码块,其中一个原因,可能是目标控制码块用于被替换为第三控制码块。由此,导致目标控制码块未被替换为第二控制码块。
用途3:非目标控制码块可以被替换为MTN段层OAM码块。或者,也可以理解为非目标控制码块用于补偿由于插入MTN段层OAM码块而占用的带宽资源。
由此,发送端确定至少两个第一控制码块中的非目标控制码块包括:发送端根据MTN段层OAM码块的周期,确定至少两个第一控制码块中的至少一个非目标控制码块。
这里所示的MTN段层OAM码块,与前面所示的MTN通道层OAM码块类似,所不同的是,上文介绍的O码块是发送端在MTN通道层插入的O码块,而这里所示的MTN段层OAM码块是发送端在MTN段层插入的O码块。如MTN段层OAM码块中可以包括MTN段层开销信息等。如64B/66B码块流在经过MTN段层终结层时,可以被插入MTN段层OAM码块,或者简称为MTN段层O码块。对于MTN段层OAM码块的周期,或者MTN段层OAM码块的浓度等,本申请实施例不作限定。对于其具体说明,可参考上述关于第三控制码块的介绍等。
用途4:非目标控制码块可以用于补偿由于插入AM而占用的带宽资源。
由于发送端可能在码块流中插入AM,因此,由于插入AM而占用的带宽资源,可以由idle码块来补偿,如接收端可以删除idle码块。
用途5:非目标控制码块可以用于补偿由于插入段层OH信息而占用的带宽资源。
可理解,对于用途4和用途5的具体说明,可参考上述关于用途1至用途3的描述,或者,也可以参考上文介绍的关于idle码块占用的带宽资源。
如果考虑用途1至用途5,则第一码块流中的码块数量和非目标控制码块的数量,可以由两个端口之间的速率频偏、第三控制码块的周期、MTN段层OAM码块的周期、MTN段层开销信息的周期或AM的周期中的任一项或多项确定。
举例来说,考虑两个端口之间的速率频偏、AM(每16384个插入一个O码块)或MTN段层开销信息(每1023*20个码块插入一个O码块),且以浓度为例说明,则发送端可以预留310ppm(即200ppm+49ppm+61ppm)的非目标控制码块。由此,发送端可以每获取3000个码块,从该3000个码块中包括的idle码块中确定一个非目标控制码块。其中,1/3000约等于333ppm,且333ppm大于310ppm。或者,发送端还可以每获取6000个码块,从该6000个码块中包括的idle码块中确定两个非目标控制码块等,本申请实施例对此不作限定。或者,发送端还可以根据5000、20461和16384的最小公倍数确定码块流中包括的码块数量和非目标控制码块的数量。如最小公倍数为T,则非目标控制码块的数量至少可以为(T/5000)+(T/20461)+(T/16384)。这里所示的关于T的计算结果,可能不是整数,因此本申请实施例还可以通过向上取整的方式得到最终的结果。
可理解,以上示出的非目标控制码块的用途仅为示例,对于非目标控制码块的其他用途,本申请实施例不作限定。
在一种可能的实现方式中,上述步骤602包括:从N个码块中的至少两个第一控制码块中确定至少一个非目标控制码块。
即发送端可以从第一码块流中的每N个码块中的至少两个第一控制码块中确定至少一个非目标控制码块。这里所示的每N个码块之间相互独立,如第一码块流中的第一个5000个码块中确定了一个非目标控制码块之后,该第一个5000个码块中的其余第一控制码块作为目标控制码块。然后从该第一码块流中的第二个5000个码块中再确定一个非目标控制码块,依次类推。示例性的,发送端还可以将每5000个码块中的第一个第一控制码块确定为非目标控制码块。
603、当需要插入第二控制码块时,发送端将至少一个目标控制码块中的一个目标控制码块替换为第二控制码块,得到第二码块流。
在步骤602中,具体介绍了目标控制码块是否能够被替换为第二控制码块的原因。因此,在步骤603中,当发送端需要插入第二控制码块时,即目标控制码块可以被替换为第二控制码块时,发送端将至少一个目标控制码块中的一个目标控制码块替换为第二控制码块,得到第二码块流。对于步骤603的具体说明,可参考上述步骤602的介绍,这里不再详述。
本申请实施例中,第二控制码块可以包括APS码块、CV码块、DM码块或CS码块中的任一项或多项。由此,发送端将至少一个目标控制码块中的一个目标控制码块替换为第二控制码块可以有以下几种方式:
第一种,发送端根据第二控制码块的优先级将至少一个目标控制码块中的一个目标控制码块替换为第二控制码块。
由于APS码块的优先级可以高于或等于CS码块,因此,在发送端需要插入APS码块和CS码块时,如果目标控制码块的数量足够被替换为APS码块和CS码块,则发送端可以将至少一个目标控制码块替换为APS码块和CS码块。如果目标控制码块的数量只允许插入一个第二控制码块,则发送端可以根据APS码块的优先级将至少一个目标控制码块替换为APS码块。可理解,对于DM码块、CV码块等的具体说明,可以参考CS码块。
第二种,发送端根据第二控制码块的周期将至少一个目标控制码块中的一个目标控制码块替换为第二控制码块。
示例性的,CV码块的周期可以为1秒,即发送端可以每1秒在码块流中插入CV码块。即按照每1秒的周期,将至少一个目标控制码块中的一个目标控制码块替换为CV码块。可选的,由于CV码块可以理解为多码块,因此,在至少一个目标控制码块的数量允许被替换为如图4a所示的8个CV码块,则发送端可以将至少一个目标控制码块替换为CV码块。然而,在至少一个目标控制码块的数量不够的情况下,发送端可以按照目标控制码块的数量,将至少一个目标控制码块替换为至少一个CV码块。换句话说,发送端可以根据目标控制码块的数量,确定是否按照码块为单位将至少一个目标控制码块替换为至少一个CV码块,或者,确定是否按照CV信息(即8个CV码块)为单位,将至少一个目标控制码块替换为8个CV码块。
示例性的,APS码块的周期可以以时间为单位,如1秒。或者,APS码块的周期也可以按照码块的数量为单位,如64k个码块。即发送端可以每1秒在码块流中插入APS码块,或者,发送端可以每64k个码块中插入一个APS码块。即按照上述周期,发送端可以将至少一个目标控制码块中的一个目标控制码块替换为APS码块。
对于DM码块的周期或CS码块的周期这里不再一一详述。本申请实施例示出的APS码块的周期或CV码块的周期仅为示例,在具体实现中,其周期可能会发生变化等,本申请实施例对此不作限定。
可理解,上述示出的两种方式,还可以相互结合,如发送端可以根据第二控制码块的周期和/或优先级,将至少一个目标控制码块中的一个目标控制码块替换为第二控制码块。对于该实现方式,可参考上述介绍,这里不再一一详述。
本申请实施例中,发送端确定出目标控制码块(或非目标控制码块)之后,发送端可以根据确定的目标控制码块将其替换为第二控制码块。对于发送端识别目标控制码块或非目标控制码块的方式可以如下所示:
第一种,发送端将固定位置的idle码块确定为目标控制码块。
具体的,获取到第一码块流之后,发送端可以将该第一码块流中的前N个第一控制码块确定为目标控制码块,该N的具体取值与第二控制码块相关。举例来说,发送端每获取到5000个码块,则可以将该5000个码块中的前1个(或前2个、前3个等)idle码块确定为目标控制码块。关于N的具体取值可以参考上述介绍的第二控制码块的周期等,这里不再详述。由此,发送端可以将第一码块流中的前N个idle码块替换为非BAS码块。
第二种,发送端将固定位置的idle码块确定为非目标控制码块。
具体的,获取到第一码块流之后,发送端可以将第一码块流中的前M个第一控制码块确定为非目标控制码块。该M的取值基于第一阈值得到,如基于两个端口之间的速率差异、BAS码块的周期、AM的插入周期或MTN段层开销信息的插入周期中的任一项或多项得到等。可理解,对于第一码块流中包括的码块数量与M的具体描述,可参考上文,这里不再详述。
第三种,发送端标记目标控制码块。
该情况下,发送端执行步骤603时,可以将标记的至少一个目标控制码块中的一个目标控制码块替换为第二控制码块,得到第二码块流。
示例性的,第一控制码块中可以被增加指示信息,该指示信息可以用于表示该第一控制码块是否为被标记的目标控制码块。例如,发送端可以在第一控制码块中设置1比特(bit)的指示位,通过该1bit的指示位标记第一控制码块,即得到目标控制码块。
第四种,发送端标记非目标控制码块。
该情况下,发送端执行步骤603时,可以将未标记的第一控制码块中的一个第一控制码 块替换为第二控制码块,得到第二码块流。
本申请实施例中,发送端标记目标控制码块和/或非目标控制码块,可以理解为发送端在MTN通道终结层标记目标控制码块和/或非目标控制码块。对于标记结果,本申请实施例还提供了两种方式,1、对于该MTN通道终结层之外的其他模块或功能等,无法获知发送端的标记结果。即该标记结果仅仅对MTN通道终结层有效,当第二码块流经过MTN段层时,该MTN段层无法感知标记结果。2、对于该MTN通道终结层之外的其他模块或功能或装置等,能够获知发送端的标记结果。
在一种可能的实现方式中,图6所示的方法还可以包括步骤604和步骤605。
604、发送端发送第二码块流,相应的,接收端接收该第二码块流。
示例性的,如图5b所示,发送端可以通过MTN通道(MTN path)发送该第二码块流,相应的,接收端可以通过MTN通道接收该第二码块流。
这里所示的第二码块流仅为统称,对于发送端执行步骤603之后,在第二码块流经过MTN段层时,发送端还可能在该第二码块流中插入MTN段层开销信息。或者,该第二码块流还可能被插入AM等,本申请实施例对此不作限定。
605、接收端根据速率适配需求删除第二码块流中的至少一个非目标控制码块。
示例性的,接收端可以在MTN段层适配层,根据速率适配需求删除第二码块流中的至少一个非目标控制码块。
可理解,这里所示的步骤605仅为示例,在具体实现中,接收端还可能根据速率适配需求在第二码块流中增加至少一个第一控制码块。
在接收端的发送速率小于发送端的发送速率的情况下,接收端需要通过删除idle码块,以避免接收端的缓存溢出。因此,本申请实施例提供的技术方案,通过合理利用idle码块,避免了接收端没有足够的idle码块被删除,避免了增加接收端的处理时延。
为更形象理解本申请实施例提供的码块流的处理方法,以下结合具体的实施例说明。
以下示出的各个示例,可以理解为是由发送端执行。具体的,可以理解为是由发送端的处理器执行,或者,也可以理解为是在发送端的MTN网络中的MTN通道终结层中实现,或者,也可以理解为是由发送端中的功能或模块或单元执行等,本申请实施例对此不作限定。
在介绍下文示例之前,首先对下文涉及到的图7a和图7b中各个功能或模块的作用进行详细说明。下文示出的各个功能或模块等可以理解为处理器中的功能或模块等,或者,还可以理解为MTN通道终结层中的功能或模块等,本申请实施例对于下文示出的各个功能或模块的具体形态不作限定。
图7a或图7b所示的示意图为MTN通道层O码块插入模块,也可以称为MTN通道层OAM插入模块。该MTN通道层O码块插入模块可以理解为被设置在发送端的处理器中,或者,也可以理解为是设置在处理器中的功能或模块等,或者,也可以理解为是设置在发送端的逻辑电路中的功能或模块等。
MTN通道层O码块插入模块,可以用于在MTN通道层插入O码块。例如,该MTN通道层O码块插入模块可以用于插入BAS码块、APS码块、DM码块、CV码块或CS码块中的任一项或多项等。在一种可能的实现方式中,MTN通道层O码块插入模块包括BAS码块插入模块、idle码块预留模块、非BAS码块替换模块和仲裁器。其中,BAS码块插入模块也可以称为BAS码块替换或强插(base block replacement or insertion)模块。非BAS码块替换模块也可以理解为APS码块替换模块、CV码块替换模块、DM码块替换模块或CS码块替换 模块等,或者,也可以称为OAM码块替换(OAM block replacement)模块等。idle码块预留(control for reserveing)模块,也可以称为idle资源预留模块。该idle预留模块可以用于实现idle码块的监测、idle码块的预留或结果反馈等。其中,结果反馈可以用于反馈下文示出的实施例三中的P值。M仲裁器(arbiter)可以用于实现非BAS码块的调度,如可以用于将对应码块送入非BAS码块替换模块,以便于将idle码块替换为非BAS码块。
图7a和图7b所示的示意图中还包括:BAS码块生成器(base block generation)(即图7a和图7b中的BAS码块产生)、APS码块生成器(APS block generation)、CV码块生成器(CV block generation)、DM码块生成器或CS码块生成器(CS/PTI block generation)(即图7a和图7b中的非BAS码块产生)等等。这里所示的生成器可用于生成对应的码块,尽管图7a或图7b仅示出了一部分码块,但是,对于其他类似的O码块本申请实施例同样适用。
可理解,图7d所示的示意图可以理解为图7a的变形,图7e可以理解为图7b的变形。在图7d和/或图7e中,BAS码块插入模块不仅可以用于生成BAS码块,还可以用于在码块流中插入BAS码块。同样的,非BAS码块替换模块不仅可以用于生成非BAS码块,还可以用于将码块流中的idle码块替换为非BAS码块等。对于其他模块的功能可参考图7a和/或图7b,这里不再一一详述。可理解,本申请实施例提供的图7a至图7d仅为示例,在具体实现中,还可以根据实际的需求基于该图7a至图7d进行任何形式的变形等,这里不再详述。
基于上述关于图7a和图7b的示意图,以下具体说明本申请实施例提供的码块流的处理方法。
实施例一、
图8a是本申请实施例提供的一种码块流的处理方法的具体流程示意图,如图8a所示,该方法包括:
801、BAS码块生成器生成BAS码块,BAS码块插入模块根据该BAS码块的周期在码块流中插入BAS码块,获得第一码块流,该第一码块流中还包括至少两个idle码块。
示例性的,BAS码块生成器可以在MTN通道终结层生成BAS码块。可理解,其他类型的O码块也可以在MTN通道终结层生成。生成BAS码块的时间与在码块流中插入BAS码块的时间,可以相同,也可以不同等,本申请实施例对此不作限定。
这里所示的在码块流中插入BAS码块,可以理解为:将码块流中的至少一个idle码块替换为BAS码块,或者在码块流中的至少一个T码块之后,且S码块之前插入BAS码块。可以理解的是,该T码块之后,S码块之前,不包括D码块,如图3b所示。即BAS码块的插入方式可以包括idle替换的方式,或者IPG强插的方式,对于BAS码块的具体插入方式可参考上文介绍,这里不再详述。
示例性的,每16k(即16*1024)个码块中可以插入一个BAS码块。如果以浓度的方式为例,则BAS码块的浓度为(1*8)/(16*1024*8)=61ppm,这里所示的61ppm可理解为利用四舍五入的方法得到的数值。其中,1表示一个BAS码块,8表示该BAS码块的字节数,16*1204表示16k个码块,8表示每个码块的字节数。
802、idle预留模块检测第一码块流中的idle码块,根据第一阈值对第一码块流中的idle码块进行标识。
该第一阈值可以根据端口之间的速率频偏确定,如该第一阈值可以为200ppm。或者,该第一阈值还可以根据端口之间的速率频偏,以及MTN段层开销占用的idle资源确定,如该第一阈值可以为200ppm+49ppm=249ppm。或者,该第一阈值还可以根据端口之间的速率频偏,以及AM占用的idle资源确定,如该第一阈值可以为200pp+61ppm=261ppm。或者,该 第一阈值还可以为200ppm+49ppm+61ppm=310ppm。该第一阈值用于衡量预留的idle码块与至少两个码块之间的比值大小,因此,本申请实施例对于该第一阈值的具体取值不作限定。该第一阈值还可以根据端口之间的速率频偏的变化而变化,或者,根据MTN段层开销或AM的周期的变化而变化。可理解,关于第一阈值的具体描述,还可以参考图6所示的相关介绍,这里不再一一赘述。
示例性的,如图7a所示,idle预留模块可以每5000个码块中预留一个idle码块,预留的idle码块基于速率适配需求可以被删除。具体的,每5000个码块中可以标识一个idle码块,该标识的idle码块不能被替换为非BAS码块。而未被标识的idle码块则可以被替换为非BAS码块,或者,5000个码块中除了标识的idle码块之外,剩余的idle码块可以被替换为非BAS码块。这里所示的标识的idle码块可以理解为图6所示的非目标控制码块,未被标识的idle码块可以理解为图6所示的目标控制码块。
可选的,idle预留模块检测第一码块流中的idle码块的方法可以如下所示:
idle预留模块内被设置一个检测窗口计数器,该检测窗口计数器最大值可以为5000,该检测窗口计数器计数到最大值后被重置为0,且每接收到一个码块计数器加1。同时,idle预留模块内被设置idle码块计数器,当上述检测窗口计数器被重置时,重置该idle码块计数器。idle资源预留模块对输入的码块流进行判断,如果码块的格式匹配idle码块的格式,则可以确定输入了一个idle码块,idle码块计数器加1。查询idle码块计数器的值,在idle码块计数器的值小于或等于K(如K=1或2等)的情况下,idle预留模块标识idle码块为预留的idle码块(即非目标控制码块)。在idle码块计数器的值大于K的情况下,idle预留模块标识idle码块为可以被替换为非BAS码块的idle码块(即目标控制码块)。
以上所示的方法,如果以发送端为例,则该发送端确定非目标控制码块的方法包括:发送端通过检测窗口获取第一码块流中的5000个码块,从该5000个码块中的至少两个idle码块中确定至少一个非目标控制码块。具体的,发送端通过检测窗口计数器获取第一码块流中的5000个码块,通过idle码块计数器将该5000个码块中的前K个idle码块确定为非目标控制码块。
可理解,以上示出的方法是以idle预留模块对idle码块进行标识,以区分idle码块是否能被替换为非BAS码块。然而,本申请实施例中,idle预留模块还可以不对idle码块进行标识,如将每5000个码块中的第一个idle码块预留为不能被替换为非BAS码块的idle码块,由此,剩余的idle码块,如每5000个码块中的第二个idle码块或第三个idle码块等,则可以被替换为非BAS码块。
803、仲裁器根据idle码块的标识结果指示非BAS码块替换模块插入非BAS码块,以及该非BAS码块替换模块根据非BAS码块的周期和/或优先级将未标识的至少一个idle码块替换为非BAS码块,获得第二码块流。
本申请实施例中,idle预留模块对idle码块进行标识之后,可以将标识结果发送给仲裁器。接着,该仲裁器可以根据标识结果,对于标识的idle码块不能被替换为非BAS码块,而未标识的idle码块则可以替换为非BAS码块。即仲裁器可以指示非BAS码块的插入位置,仲裁器指示非BAS码块替换模块将未标识的idle码块替换为非BAS码块。如图7c所示,仲裁器可以指示非BAS码块替换模块被标识的idle码块不能被替换为非BAS码块,而未被标识的idle码块可以被替换为非BAS码块。
在将idle码块替换为非BAS码块之前,对应生成器可以按照非BAS OAM的周期产生对应的O码块。对于非BAS码块的生成,本申请实施例可以有两种理解方式:第一种,只要 满足非BAS码块的插入周期,对应的生成器均可以生成非BAS码块,但是是否在码块流中插入(这里指的是替换方式)非BAS码块,还需要根据第一码块流中未标识的idle码块的位置来插入非BAS码块。第二种,满足非BAS码块的插入周期时,生成的非BAS码块可能不是完整的非BAS码块,而将第一码块流中未标识的idle码块替换为非BAS码块时,该非BAS码块才被理解为生成非BAS码块(即完整的非BAS码块)。
本申请实施例中,idle预留模块通过检测idle码块,并预留200ppm的idle码块,可以保证即使仲裁器插入非BAS码块,仍然能够保证接收端有200ppm的idle码块被删除。
图8a所示的方法中,是以idle预留模块预留200ppm的idle码块为例示出的。但是在具体实现中,idle预留模块还可以预留更多的idle码块等,如对于第一阈值的说明,预留的idle码块的其他用途可以参考图6所示的方法,这里不再详述。如图7a所示的示意图中,以浓度为例,BAS码块的浓度为61ppm,非目标控制码块的浓度为200ppm,如果MTN通道层O码块插入模块获取到的码块流的浓度为Yppm,则目标控制码块的浓度等于(Y-61-200)ppm。当然,如果非目标控制码块的浓度为200ppm+(即大于200ppm),则目标控制码块的浓度小于(Y-61-200)ppm。可理解,如果以其他方式确定非目标控制码块的个数,则可以通过浓度的换算得到,如根据浓度的计算方式得到非目标控制码块的数量,以及第一码块流中包括的码块的数量,或者,得到目标控制码块的数量等,这里不再详述。可理解,这里关于idle码块的说明,同样适用于图8b所示的方法,为避免赘述,下文不再详述。
可理解,图8a所示的方法与图6所示的方法各有侧重,对于图8a所示的方法中未详尽描述的实现方式,可参考图6所示的方法,这里不再一一详述。
实施例二、
图8b是本申请实施例提供的另一种码块流的处理方法的具体流程示意图,如图8b所示,该方法包括:
811、idle预留模块获取第一码块流,该第一码块流中包括至少两个码块,且该至少两个码块中包括至少两个idle码块。
即idle预留模块从MTN通道适配层获得第一码块流。
812、idle预留模块检测第一码块流中的idle码块,根据第一阈值对第一码块流中的idle码块进行标识。
可理解,关于步骤812的具体说明,可参考步骤802,这里不再详述。所不同的是,步骤802中,第一码块流中包括BAS码块,但是步骤812中第一码块流中可以不包括BAS码块。
813、BAS码块插入模块根据BAS码块的周期在第一码块流中插入BAS码块。
本申请实施例中,BAS码块的周期可以为每16k个码块中有一个BAS码块,但是idle预留模块可以每5000个码块中标识一个idle码块(即非目标控制码块)。因此,在一些实现方式中,如果以5000单位,则一些5000个码块中可能不会被插入BAS码块,在另一些实现方式中,一些5000个码块中可能会被插入BAS码块。
可选的,BAS码块插入模块可以将标识的idle码块(即目标控制码块)替换为BAS码块。可选的,BAS码块插入模块也可以将未被标识的idle码块(即非目标控制码块)替换为BAS码块。可选的,BAS码块插入模块还可以通过IPG强插的方式插入BAS码块等,本申请实施例对此不作限定。结合图6所示的方法,BAS码块可以有如下几种方式:
方式1、由于BAS码块的优先级高于或等于非BAS码块的优先级,因此未被标记的idle码块还可以被替换为BAS码块。
方式2、在idle预留模块标记的idle码块数量较少,而未被标记的idle码块数量较多,即未被标记的idle码块在第一码块流中的浓度大于61ppm,则未被标记的idle码块不仅可以被替换为BAS码块,还可以被替换为非BAS码块。
方式3、在idle预留模块标记的idle码块数量较多,即标记的idle码块在第一码块流中的浓度大于61ppm+200ppm,则该标记的idle码块不仅可以基于速率适配需求被删除,还可以被替换为BAS码块(或者也可以理解为BAS码块插入模块还可以在第一码块流中插入BAS码块)。
对于BAS码块的具体说明,还可以参考图6,这里不再详述。
814、仲裁器根据idle码块的标识结果指示非BAS码块替换模块插入非BAS码块,以及该非BAS码块替换模块根据非BAS码块的周期和/或优先级将未标识的至少一个idle码块替换为非BAS码块。
可理解,图8b所示的方法与图6或图8a所示的方法各有侧重,对于图8b所示的方法中未详尽描述的实现方式,可参考图6或图8a所示的方法,这里不再一一详述。
图9a是本申请实施例提供的另一种码块流的处理方法的流程示意图,如图9a所示,该方法包括:
901、发送端获取第一码块流,该第一码块流中包括至少两个码块,该至少两个码块包括第一边界码块和第二边界码块。
本申请实施例中,该第一边界码块和该第二边界码块为不同类型的边界码块,如第一边界码块为S码块,第二边界码块为T码块。可选的,第一码块流中的码块中可以包括第一边界码块和第二边界码块。可选的,第一码块流中的码块中还可以包括第一边界码块或第二边界码块。可选的,第一码块流中的码块中还可以不包括第一边界码块和第二边界码块。
在一种可能的实现方式中,第一码块流中还可以包括第三控制码块。可理解,这里关于第三控制码块的描述,可参考图6中的介绍,这里不再详述。
902、发送端根据第一边界码块和第二边界码块之间的码块数量确定第二控制码块的周期。
这里所示的第一边界码块和第二边界码块之间的码块数量中可以不包括第一边界码块和第二边界码块,或者,包括第一边界码块或第二边界码块,或者,包括第一边界码块和第二边界码块。第二控制码块的周期,也可以理解为两个第二控制码块之间的间隔,即两个第二控制码块之间的码块数量的间隔。同样的,两个第二控制码块之间的码块数量中可以包括两个第二控制码块的数量,也可以包括第一个第二控制码块的数量,或者,也可以包括第二个第二控制码块的数量,或者,也可以不包括两个第二控制码块的数量。
对于第一边界码块和第二边界码块之间的码块数量,可以有如下几种理解:
第一种,发送端可以抽样统计S码块到T码块之间的码块数量,将S码块到T码块之间的码块数量作为P值。示例性的,如图9b所示,发送端根据S码块与T码块之间的码块数量P确定第二控制码块的周期。其中,第一个非BAS码块的插入位置与第二个非BAS码块的插入位置之间的码块数量则是由P确定。可理解,图9b是以发送端通过idle替换的方式在第一码块流中插入非BAS码块示出的。如图9c所示,发送端还可以通过IPG强插的方式在第一码块流中插入非BAS码块。本申请实施例中,码块流中第一个非BAS码块的插入位置可以是随机确定的等,本申请实施例对此不作限定。
第二种,发送端可以统计预设时长内,S码块到T码块之间的码块数量,将该预设时长内,S码块到T码块之间的码块数量的最大值作为P值。示例性的,如果将S码块到T码块之间的码块数量作为M,则发送端可以统计10ms内的M值,然后将该10ms内的最大的M 值作为P值。可理解,对于预设时长的具体取值,本申请实施例不作限定。
第三种,发送端可以根据预设次数多次统计S码块到T码块之间的码块数量,将该预设次数内的S码块到T码块之间的码块数量的最大值作为P值。示例性的,预设次数为5次,则发送端可以统计5次S码块到T码块之间的码块数量,得到5个M值。然后,将该5个M值内的最大值作为P值。可理解,对于预设次数的具体取值,本申请实施例不作限定。
在一种可能的实现方式中,上述步骤902发送端根据第一边界码块和第二边界码块之间的码块数量确定第二控制码块的周期包括:
根据第二边界码块与第一边界码块之间的码块数量确定第一控制码块在至少两个码块中的比值;
根据第一控制码块在至少两个码块中的比值以及第一阈值确定第二控制码块在至少两个码块中的比值;
根据第二控制码块在至少两个码块中的比值确定第二控制码块的周期。
为便于理解,以浓度的计算方式为例,考虑最差情况,如以P为例,P用于表示S码块与T码块之间的码块数量,则连续两个P长度的码块流中有一个idle码块。该情况下,idle码块在该两个P长度的码块流中的浓度为(1*8)/(2*P*8)=1/2P(即
),其中“/”用于表示运算符号。如第一阈值为200ppm,则非BAS码块在两个P长度的码块流中的浓度为
由此,根据P值得到的非BAS码块周期为
在一种可能的实现方式,第一边界码块与第二边界码块之间的码块数量不同,第二控制码块的周期不同。第二控制码块的周期不同,即两个第二控制码块之间的间隔不同,即两个非BAS码块之间的间隔不同。对于该种实现方式,可参考上述关于P的介绍。
在一种可能的实现方式中,第一边界码块和第二边界码块之间的码块数量对应的范围不同,第二控制码块的周期不同,即两个非BAS码块之间的间隔不同。如表1所示,表1是本申请实施例提供的一种P与非BAS码块的周期的关系示例。可理解,表1所示的关系仅为示例,在具体实现中,P与非BAS码块的周期可能还有其他对应关系,对此,本申请实施例不作限定。
表1
903、在需要插入第二控制码块时,发送端根据第二控制码块的周期在第一码块流中插入至少一个第二控制码块,得到第二码块流。
本申请实施例中,第二控制码块的插入方式可以是idle替换的方式,也可以是IPG强插的方式,本申请实施例对此不作限定。当发送端需要插入第二控制码块时,不仅需要根据第二控制码块的周期,还需要根据第一码块流中第一控制码块的位置,在第一码块流中插入第二控制码块。这里关于周期的说明,可参考上文对周期的介绍,这里不再详述。
在一种可能的实现方式中,图9a所示的方法还可以包括步骤904和步骤905。
904、发送端发送第二码块流,相应的,接收端接收该第二码块流。
这里发送端发送第二码块流可以理解为:发送端通过MTN通道终结层发送第二码块流,或者,发送端通过出端口发送第二码块流等,本申请实施例对此不作限定。
905、接收端根据速率适配需求删除第二码块流中的至少一个第一控制码块。
在接收端的发送速率小于发送端的发送速率的情况下,接收端需要通过删除idle码块,以避免接收端的缓存溢出。因此,本申请实施例提供的技术方案,根据S码块与T码块之间的码块数量以及第一阈值等,确定非BAS码块的周期。从而使得该非BAS码块合理的被插入到码块流中。避免了非BAS码块过多的占用idle资源,而导致接收端没有足够的idle码块被删除,避免了增加接收端的处理时延。
可理解,对于图9a所示的方法实施例中未详尽描述的实现方式,可参考上文示出的各个实施例或说明等,这里不再详述。
为更形象的理解图9a所示的方法,以下结合具体的实施例说明。
实施例三、
如图10a和/或图10b所示,图10a和图10b示出的MTN通道层O码块插入模块与图7a、图7b、图7d或图7e所示的MTN通道层O码块插入模块大致相同,所不同的是,这里所示的idle预留模块用于检测S码块与T码块之间的码块数量P,且非BAS码块插入模块用于将idle码块替换为非BAS码块,或者用于在码块流中强插非BAS码块。对于图10a和/或图10b所示的其他模块或功能的具体描述,可参考图7a、图7b、图7d或图7e等,这里不再详述。
图10c是本申请实施例提供的又一种码块流的处理方法的具体流程示意图,如图10c所示,该方法包括:
1001、BAS码块生成器生成BAS码块,BAS码块插入模块将BAS码块插入到码块流中,获得第一码块流。
1002、idle预留模块将以太网报文分组序列流的S码块与T码块之间的码块数量最大的值作为P值。
即idle预留模块可以检测多个S码块与T码块之间的码块数量,然后将S码块与T码块之间的码块数量最大的值作为P值。可理解,步骤1002仅为一种实现方式,对于其他方式,可参考图9a所示的方法,这里不再详述。
示例性的,idle预留模块根据码块的格式识别S码块和T码块。如idle预留模块识别到S码块之后,报文长度计数器开始计数,idle预留模块每接收到一个码块,报文长度计数器加1;当idle预留模块识别到T码块后,报文长度计数器停止计数,根据报文长度计数器得到P值。可理解,报文长度计数器识别到T码块之后,该报文长度计数器可以被清零。但是Idle预留模块可以比较P值,从而保留较大的P值。在P值被输出至仲裁器后,idle预留模块中的P值被重置为0。
1003、仲裁器根据P值与非BAS码块的周期之间的对应关系,以及上述计数器得到的P值确定非BAS码块的周期。
示例性的,P值为1200(或1202)(即报文长度为9600B或9616B)时,非BAS码块的周期可以为64k,即非BAS码块插入模块可以每隔64k个码块插入一个非BAS码块。又例如,P值为194时,非BAS码块的周期可以为500,即非BAS码块插入模块可以每隔500个码块插入一个非BAS码块。这里示出的对应关系仅为示例,具体还可参考图9a所示的方法,这里不再详述。可理解,当P值发生变化时,非BAS码块的周期也会随着发生变化。
可理解,图10c所示的方法仅为发送端确定第二控制码块的周期的具体方法,对于发送端的其他步骤或接收端的步骤等,可参考图9a所示的方法,这里不再详述。
本申请实施例中,通过统计以太网分组序列流中S码块到T码块之间的最大间隔,可以间接获得该以太网分组序列流中的idle码块的数量。从而根据idle码块的数量以及被预留的idle码块的数量确定非BAS码块的周期,使得非BAS码块可以合理的被插入到码块流中。而且,还保证了接收端有足够的idle码块删除,避免增加接收端处理码块流的时延。
以下将介绍本申请实施例提供的装置。
图11是本申请实施例提供的一种通信装置的结构示意图,该通信装置可以为任意形态的计算机、服务器、交换机(或者称为交换设备、交换芯片等)、路由器、网卡等,本申请对于该通信装置的具体形态不作限定。如图11所示,该通信装置包括:处理单元1101和收发单元1102。
在本申请的一些实施例中,处理单元1101,用于获取第一码块流,该第一码块流中包括至少两个码块,该至少两个码块中包括至少两个第一控制码块;
处理单元1101,还用于确定至少两个第一控制码块中的至少一个目标控制码块,该目标控制码块是可以被替换为第二控制码块的第一控制码块;
处理单元1101,还用于当需要插入第二控制码块时,将至少一个目标控制码块中的一个目标控制码块替换为该第二控制码块,得到第二码块流。
在一种可能的实现方式中,处理单元1101,具体用于确定至少两个第一控制码块中的至少一个非目标控制码块,该非目标控制码块是不能被替换为第二控制码块的第一控制码块。
在一种可能的实现方式中,处理单元1101,具体用于根据第一阈值确定至少两个第一控制码块中的至少一个非目标控制码块,该第一阈值基于速率适配需求得到。
在一种可能的实现方式中,处理单元1101,还用于标记该至少一个目标控制码块;处理单元1101,具体用于将标记的至少一个目标控制码块中的一个目标控制码块替换为第二控制码块,得到第二码块流。
在一种可能的实现方式中,处理单元1101,还用于标记至少一个非目标控制码块;处理单元1101,具体用于将未标记的第一控制码块中的一个第一控制码块替换为第二控制码块,得到第二码块流。
在一种可能的实现方式中,处理单元1101,具体用于根据第二控制码块的周期和/或第二控制码块的优先级将至少一个目标控制码块中的一个目标控制码块替换为第二控制码块,得到第二码块流。
在本申请的另一些实施例中,处理单元1101,用于获取第一码块流,该第一码块流中包括至少两个码块,该至少两个码块中包括第一边界码块和第二边界码块;
处理单元1101,还用于根据第一边界码块和该第二边界码块之间的码块数量确定第二控制码块的周期;
处理单元1101,还用于在需要插入第二控制码块时,根据该第二控制码块的周期在第一码块流中插入至少一个第二控制码块,得到第二码块流。
在一种可能的实现方式中,处理单元1101,具体用于根据第一边界码块与第二边界码块之间的码块数量确定第一控制码块在至少两个码块中的比值;以及根据第一控制码块在至少两个码块中的比值以及第一阈值确定第二控制码块的周期,该第一阈值基于速率适配需求得到。
在一种可能的实现方式中,处理单元1101,具体用于根据预设时长内,第一边界码块和第二边界码块之间的码块数量的最大值确定第二控制码块的周期;或者,处理单元1101,具 体用于根据预设次数内,第一边界码块和第二边界码块之间的码块数量的最大值确定第二控制码块的周期,该预设次数用于表示第一边界码块和第二边界码块之间的码块数量的统计次数。
在一种可能的实现方式中,处理单元1101,具体用于根据第二控制码块的周期,以及第一码块流中包括的第一控制码块的位置,在该第一码块流中插入至少一个第二控制码块。
以上各个实施例中,收发单元1102,可以用于发送第二码块流。
本申请实施例中,收发单元和处理单元的具体说明,还可以参考上述方法实施例中由发送端执行的步骤,这里不再详述。示例性的,处理单元可以用于执行图6所示的步骤601至步骤603。收发单元可以用于执行图6所示的步骤604中的发送步骤。示例性的,处理单元还可以用于执行图8a所示的步骤801至步骤803。示例性的,处理单元还可以用于执行图8b中的步骤811至步骤814。示例性的,处理单元还可以用于执行图9a所示的步骤901至步骤903。收发单元还可以用于执行图9a所示的步骤904中的发送步骤。示例性的,处理单元还可以用于执行图10c所示的步骤1001至步骤1003等。
本申请实施例中,关于第一码块流、第一控制码块、第二控制码块、第三控制码块、目标控制码块、非目标控制码块以及周期等的说明,可参考上述实施例,这里不再详述。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块或单元可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块或单元集成在一个模块或单元中。上述集成的模块或单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
在一种可能的实现方式中,当图11所示的通信装置是任意形态的计算机、服务器、交换机、路由器或网卡等;或者是任意形态的计算机、服务器、交换机、路由器或网卡等中的装置,或者是与任意形态的计算机、服务器、交换机、路由器或网卡等匹配使用的装置时,处理单元1101可以是一个或多个处理器,收发单元1102可以是收发器,或者收发单元1102还可以是发送单元和接收单元,发送单元可以是发送器,接收单元可以是接收器,该发送单元和接收单元集成于一个器件,例如收发器。本申请实施例中,处理器和收发器可以被耦合等,对于处理器和收发器的连接方式,本申请实施例不作限定。
如图12所示,该通信装置120包括一个或多个处理器1220和收发器1210。该处理器和该收发器可以用于执行上述发送端执行的功能或操作等。
在本申请的一些实施例中,示例性的,处理器1220,用于获取第一码块流,该第一码块流中包括至少两个码块,该至少两个码块中包括至少两个第一控制码块;处理器1220,还用于确定至少两个第一控制码块中的至少一个目标控制码块,该目标控制码块是可以被替换为第二控制码块的第一控制码块;处理器1220,还用于当需要插入第二控制码块时,将至少一个目标控制码块中的一个目标控制码块替换为该第二控制码块,得到第二码块流。
示例性的,处理器1220,具体用于确定至少两个第一控制码块中的至少一个非目标控制码块,该非目标控制码块是不能被替换为第二控制码块的第一控制码块。
示例性的,处理器1220,具体用于根据第一阈值确定至少两个第一控制码块中的至少一个非目标控制码块。
示例性的,处理器1220,还用于标记该至少一个目标控制码块;处理器1220,具体用于将标记的至少一个目标控制码块中的一个目标控制码块替换为第二控制码块,得到第二码块流。
示例性的,处理器1220,还用于标记至少一个非目标控制码块;处理器1220,具体用于 将未标记的第一控制码块中的一个第一控制码块替换为第二控制码块,得到第二码块流。
在本申请的另一些实施例中,示例性的,处理器1220,用于获取第一码块流,该第一码块流中包括至少两个码块,该至少两个码块中包括第一边界码块和第二边界码块;处理器1220,还用于根据第一边界码块和该第二边界码块之间的码块数量确定第二控制码块的周期;处理器1220,还用于在需要插入第二控制码块时,根据该第二控制码块的周期在第一码块流中插入至少一个第二控制码块,得到第二码块流。
示例性的,收发器1210,用于发送第二码块流。
可理解,对于收发器和/或处理器执行的功能或操作等,可以参考图11示出的各个实施例,或者,还可以参考图6、图8a、图8b、图9a和图10c所示的方法实施例等,这里不再一一详述。
在图12所示的通信装置的各个实现方式中,收发器可以包括接收机和发射机,该接收机用于执行接收的功能(或操作),该发射机用于执行发射的功能(或操作)。以及收发器用于通过传输介质和其他设备/装置进行通信。
可选的,通信装置120还可以包括一个或多个存储器1230,用于存储程序指令和/或数据。存储器1230和处理器1220耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器1220可能和存储器1230协同操作。处理器1220可可以执行存储器1230中存储的程序指令。可选的,上述一个或多个存储器中的至少一个可以包括于处理器中。
本申请实施例中不限定上述收发器1210、处理器1220以及存储器1230之间的具体连接介质。本申请实施例在图12中以存储器1230、处理器1220以及收发器1210之间通过总线1240连接,总线在图12中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成等。
本申请实施例中,存储器可包括但不限于硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等非易失性存储器,随机存储记忆体(Random Access Memory,RAM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、只读存储器(Read-Only Memory,ROM)或便携式只读存储器(Compact Disc Read-Only Memory,CD-ROM)等等。存储器是能够用于携带或存储具有指令或数据结构形式的程序代码,并能够由计算机(如本申请示出的通信装置等)读和/或写的任何存储介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
可理解,本申请实施例示出的通信装置还可以具有比图12更多的元器件等,本申请实施例对此不作限定。
可理解,以上所示的处理器和收发器所执行的方法仅为示例,对于该处理器和收发器具体所执行的步骤可参照上文介绍的方法。
在另一种可能的实现方式中,当上述通信装置是芯片系统,如计算机、服务器、交换机(或者称为交换设备、交换芯片等)、路由器、网卡等中的芯片系统时,处理单元1101可以 是一个或多个逻辑电路,收发单元1102可以是输入输出接口,又或者称为通信接口,或者接口电路,或接口等等。或者收发单元1102还可以是发送单元和接收单元,发送单元可以是输出接口,接收单元可以是输入接口,该发送单元和接收单元集成于一个单元,例如输入输出接口。如图13所示,图13所示的通信装置包括逻辑电路1301和接口1302。即上述处理单元1101可以用逻辑电路1301实现,收发单元1102可以用接口1302实现。
其中,该逻辑电路1301可以为芯片、处理电路、集成电路或片上系统(system on chip,SoC)芯片等,接口1302可以为通信接口、输入输出接口等。本申请实施例中,逻辑电路和接口还可以相互耦合。对于逻辑电路和接口的具体连接方式,本申请实施例不作限定。
该逻辑电路和接口可用于执行上述发送端执行的功能或操作等。
在本申请的一些实施例中,示例性的,逻辑电路,用于获取第一码块流,第一码块流中包括至少两个码块,至少两个码块中包括至少两个第一控制码块;以及,还用于确定至少两个第一控制码块中的至少一个目标控制码块,目标控制码块是可以被替换为第二控制码块的第一控制码块;以及,还用于当需要插入第二控制码块时,将至少一个目标控制码块中的一个目标控制码块替换为第二控制码块,得到第二码块流。
示例性的,接口,用于输出第二码块流。
示例性的,逻辑电路,具体用于确定至少两个第一控制码块中的至少一个非目标控制码块,非目标控制码块是不能被替换为第二控制码块的第一控制码块。
示例性的,逻辑电路,具体用于根据第一阈值确定至少两个第一控制码块中的至少一个非目标控制码块,第一阈值基于速率适配需求得到。
示例性的,逻辑电路,还用于标记至少一个目标控制码块,以及将标记的至少一个目标控制码块中的一个目标控制码块替换为第二控制码块,得到第二码块流。
示例性的,逻辑电路,还用于标记至少一个非目标控制码块;以及将未标记的第一控制码块中的一个第一控制码块替换为第二控制码块,得到第二码块流。
示例性的,逻辑电路,具体用于根据第二控制码块的周期和/或第二控制码块的优先级将至少一个目标控制码块中的一个目标控制码块替换为第二控制码块,得到第二码块流。
在本申请的另一些实施例中,示例性的,逻辑电路,用于获取第一码块流,第一码块流中包括至少两个码块,至少两个码块中包括第一边界码块和第二边界码块;以及还用于根据第一边界码块和第二边界码块之间的码块数量确定第二控制码块的周期;以及还用于在需要插入第二控制码块时,根据第二控制码块的周期在第一码块流中插入至少一个第二控制码块,得到第二码块流。
示例性的,接口,用于输出第二码块流。
示例性的,逻辑电路,具体用于根据第一边界码块与第二边界码块之间的码块数量确定第一控制码块在至少两个码块中的比值;根据第一控制码块在至少两个码块中的比值以及第一阈值确定第二控制码块的周期,第一阈值基于速率适配需求得到。
示例性的,逻辑电路,具体用于根据预设时长内,第一边界码块和第二边界码块之间的码块数量的最大值确定第二控制码块的周期;或者,根据预设次数内,第一边界码块和第二边界码块之间的码块数量的最大值确定第二控制码块的周期,预设次数用于表示第一边界码块和第二边界码块之间的码块数量的统计次数。
示例性的,逻辑电路,具体用于根据第二控制码块的周期,以及第一码块流中包括的第一控制码块的位置,在第一码块流中插入至少一个第二控制码块。
对于图13所示的通信装置所执行的功能或步骤等,还可以参考图11示出的各个实施例, 或者,还可以参考图6、图8a、图8b、图9a和图10c所示的方法实施例等,这里不再一一详述。
本申请实施例中,关于第一码块流、第一控制码块、第二控制码块、第三控制码块、目标控制码块、非目标控制码块以及周期等的说明,可参考上述实施例,这里不再详述。
此外,本申请还提供一种计算机程序,该计算机程序用于实现本申请提供的方法中由发送端执行的操作和/或处理。
本申请还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机代码,当计算机代码在计算机上运行时,使得计算机执行本申请提供的方法中由发送端执行的操作和/或处理。
本申请还提供一种计算机程序产品,该计算机程序产品包括计算机代码或计算机程序,当该计算机代码或计算机程序在计算机上运行时,使得本申请提供的方法中由发送端执行的操作和/或处理被执行。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例提供的方案的技术效果。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者通信装置等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (41)
- 一种码块流的处理方法,其特征在于,所述方法包括:获取第一码块流,所述第一码块流中包括至少两个码块,所述至少两个码块中包括至少两个第一控制码块;确定所述至少两个第一控制码块中的至少一个目标控制码块,所述目标控制码块是可以被替换为第二控制码块的第一控制码块;当需要插入所述第二控制码块时,将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流。
- 根据权利要求1所述的方法,其特征在于,所述第一控制码块为空闲码块、低功耗空闲码块或错误码块中的任一项。
- 根据权利要求1或2所述的方法,其特征在于,所述确定所述至少两个第一控制码块中的至少一个目标控制码块包括:确定所述至少两个第一控制码块中的至少一个非目标控制码块,所述非目标控制码块是不能被替换为所述第二控制码块的第一控制码块。
- 根据权利要求3所述的方法,其特征在于,所述非目标控制码块为基于速率适配需求被预留的第一控制码块。
- 根据权利要求3或4所述的方法,其特征在于,所述确定所述至少两个第一控制码块中的至少一个非目标控制码块包括:根据第一阈值确定所述至少两个第一控制码块中的所述至少一个非目标控制码块,所述第一阈值基于速率适配需求得到。
- 根据权利要求1-5任一项所述的方法,其特征在于,所述将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流之前,所述方法还包括:标记所述至少一个目标控制码块;所述将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流包括:将标记的所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到所述第二码块流。
- 根据权利要求3-5任一项所述的方法,其特征在于,所述将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流之前,所述方法还包括:标记所述至少一个非目标控制码块;所述将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流包括:将未标记的第一控制码块中的一个所述第一控制码块替换为所述第二控制码块,得到所述第二码块流。
- 根据权利要求1-7任一项所述的方法,其特征在于,所述将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流包括:根据所述第二控制码块的周期和/或所述第二控制码块的优先级将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到所述第二码块流。
- 根据权利要求1-8任一项所述的方法,其特征在于,所述第一码块流中还包括第三控制码块。
- 根据权利要求1-9任一项所述的方法,其特征在于,所述目标控制码块还用于被替换为第三控制码块。
- 根据权利要求9或10所述的方法,其特征在于,所述第三控制码块的优先级高于或等于所述第二控制码块的优先级。
- 根据权利要求1-11任一项所述的方法,其特征在于,所述第二控制码块包括自动保护倒换APS码块、链接验证CV码块、延迟测量DM码块、客户信号类型指示CS码块中的任一项或多项。
- 根据权利要求1-11任一项所述的方法,其特征在于,所述第二控制码块中包括自动保护倒换APS信息、链接验证CV信息、延迟测量DM信息、客户信号类型指示CS信息中的任一项或多项。
- 一种码块流的处理方法,其特征在于,所述方法包括:获取第一码块流,所述第一码块流中包括至少两个码块,所述至少两个码块中包括第一边界码块和第二边界码块;根据所述第一边界码块和所述第二边界码块之间的码块数量确定第二控制码块的周期;在需要插入所述第二控制码块时,根据所述第二控制码块的周期在所述第一码块流中插入至少一个所述第二控制码块,得到第二码块流。
- 根据权利要求14所述的方法,其特征在于,所述第一边界码块和所述第二边界码块之间的码块数量不同,所述第二控制码块的周期不同。
- 根据权利要求14所述的方法,其特征在于,所述第一边界码块和所述第二边界码块之间的码块数量对应的范围不同,所述第二控制码块的周期不同。
- 根据权利要求14-16任一项所述的方法,其特征在于,所述根据所述第一边界码块和所述第二边界码块之间的码块数量确定第二控制码块的周期包括:根据所述第一边界码块与所述第二边界码块之间的码块数量确定第一控制码块在所述至少两个码块中的比值;根据所述第一控制码块在所述至少两个码块中的比值以及第一阈值确定所述第二控制码块的周期,所述第一阈值基于速率适配需求得到。
- 根据权利要求14-17任一项所述的方法,其特征在于,根据所述第一边界码块和所述第二边界码块之间的码块数量确定第二控制码块的周期包括:根据预设时长内,所述第一边界码块和所述第二边界码块之间的码块数量的最大值确定所述第二控制码块的周期;或者,根据预设次数内,所述第一边界码块和所述第二边界码块之间的码块数量的最大值确定所述第二控制码块的周期,所述预设次数用于表示所述第一边界码块和所述第二边界码块之间的码块数量的统计次数。
- 根据权利要求14-18任一项所述的方法,其特征在于,所述根据所述第二控制码块的周期在所述第一码块流中插入至少一个所述第二控制码块,得到第二码块流包括:根据所述第二控制码块的周期,以及所述第一码块流中包括的第一控制码块的位置,在所述第一码块流中插入至少一个所述第二控制码块。
- 一种通信装置,其特征在于,所述装置包括:处理器,用于获取第一码块流,所述第一码块流中包括至少两个码块,所述至少两个码 块中包括至少两个第一控制码块;所述处理器,还用于确定所述至少两个第一控制码块中的至少一个目标控制码块,所述目标控制码块是可以被替换为第二控制码块的第一控制码块;所述处理器,还用于当需要插入所述第二控制码块时,将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到第二码块流。
- 根据权利要求20所述的装置,其特征在于,所述第一控制码块为空闲码块、低功耗空闲码块或错误码块中的任一项。
- 根据权利要求20或21所述的装置,其特征在于,所述处理器,具体用于确定所述至少两个第一控制码块中的至少一个非目标控制码块,所述非目标控制码块是不能被替换为所述第二控制码块的第一控制码块。
- 根据权利要求22所述的装置,其特征在于,所述非目标控制码块为基于速率适配需求被预留的第一控制码块。
- 根据权利要求22或23所述的装置,其特征在于,所述处理器,具体用于根据第一阈值确定所述至少两个第一控制码块中的所述至少一个非目标控制码块,所述第一阈值基于速率适配需求得到。
- 根据权利要求20-24任一项所述的装置,其特征在于,所述处理器,还用于标记所述至少一个目标控制码块;所述处理器,具体用于将标记的所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到所述第二码块流。
- 根据权利要求22-24任一项所述的装置,其特征在于,所述处理器,还用于标记所述至少一个非目标控制码块;所述处理器,具体用于将未标记的第一控制码块中的一个所述第一控制码块替换为所述第二控制码块,得到所述第二码块流。
- 根据权利要求20-26任一项所述的装置,其特征在于,所述处理器,具体用于根据所述第二控制码块的周期和/或所述第二控制码块的优先级将所述至少一个目标控制码块中的一个所述目标控制码块替换为所述第二控制码块,得到所述第二码块流。
- 根据权利要求20-27任一项所述的装置,其特征在于,所述第一码块流中还包括第三控制码块。
- 根据权利要求20-28任一项所述的装置,其特征在于,所述目标控制码块还用于被替换为第三控制码块。
- 根据权利要求28或29所述的装置,其特征在于,所述第三控制码块的优先级高于或等于所述第二控制码块的优先级。
- 根据权利要求20-30任一项所述的装置,其特征在于,所述第二控制码块包括自动保护倒换APS码块、链接验证CV码块、延迟测量DM码块、客户信号类型指示CS码块中的任一项或多项。
- 根据权利要求20-30任一项所述的装置,其特征在于,所述第二控制码块中包括自动保护倒换APS信息、链接验证CV信息、延迟测量DM信息、客户信号类型指示CS信息中的任一项或多项。
- 一种通信装置,其特征在于,所述装置包括:处理器,用于获取第一码块流,所述第一码块流中包括至少两个码块,所述至少两个码 块中包括第一边界码块和第二边界码块;所述处理器,还用于根据所述第一边界码块和所述第二边界码块之间的码块数量确定第二控制码块的周期;所述处理器,还用于在需要插入所述第二控制码块时,根据所述第二控制码块的周期在所述第一码块流中插入至少一个所述第二控制码块,得到第二码块流。
- 根据权利要求33所述的装置,其特征在于,所述第一边界码块和所述第二边界码块之间的码块数量不同,所述第二控制码块的周期不同。
- 根据权利要求33所述的装置,其特征在于,所述第一边界码块和所述第二边界码块之间的码块数量对应的范围不同,所述第二控制码块的周期不同。
- 根据权利要求33-35任一项所述的装置,其特征在于,所述处理器,具体用于根据所述第一边界码块与所述第二边界码块之间的码块数量确定第一控制码块在所述至少两个码块中的比值;以及根据所述第一控制码块在所述至少两个码块中的比值以及第一阈值确定所述第二控制码块的周期,所述第一阈值基于速率适配需求得到。
- 根据权利要求33-36任一项所述的装置,其特征在于,所述处理器,具体用于根据预设时长内,所述第一边界码块和所述第二边界码块之间的码块数量的最大值确定所述第二控制码块的周期;或者,所述处理器,具体用于根据预设次数内,所述第一边界码块和所述第二边界码块之间的码块数量的最大值确定所述第二控制码块的周期,所述预设次数用于表示所述第一边界码块和所述第二边界码块之间的码块数量的统计次数。
- 根据权利要求33-37任一项所述的装置,其特征在于,所述处理器,具体用于根据所述第二控制码块的周期,以及所述第一码块流中包括的第一控制码块的位置,在所述第一码块流中插入至少一个所述第二控制码块。
- 一种通信装置,其特征在于,所述装置包括用于执行权利要求1-19任一项所述的方法的单元。
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,当所述计算机程序被执行时,如权利要求1-19任一项所述的方法被执行。
- 一种计算机程序,其特征在于,所述计算机程序在计算机上运行时,如权利要求1-19任一项所述的方法被执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011016575.4A CN114257333A (zh) | 2020-09-24 | 2020-09-24 | 一种码块流的处理方法及装置 |
CN202011016575.4 | 2020-09-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022062930A1 true WO2022062930A1 (zh) | 2022-03-31 |
Family
ID=80790038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/117859 WO2022062930A1 (zh) | 2020-09-24 | 2021-09-11 | 一种码块流的处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114257333A (zh) |
WO (1) | WO2022062930A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979311B (zh) * | 2022-05-24 | 2024-09-06 | 苏州盛科通信股份有限公司 | 以太网报文控制码块检验方法、装置、服务器及存储介质 |
CN117294579A (zh) * | 2022-06-17 | 2023-12-26 | 华为技术有限公司 | 数据处理装置、主备切换方法以及系统 |
CN118449650A (zh) * | 2023-02-03 | 2024-08-06 | 华为技术有限公司 | 补偿链路两端时钟频率偏差的方法及通信端口 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180123714A1 (en) * | 2015-07-06 | 2018-05-03 | Huawei Technologies Co., Ltd. | Method, Device, and System for Sending and Receiving Code Block Data Stream |
CN109962762A (zh) * | 2017-12-25 | 2019-07-02 | 华为技术有限公司 | 一种数据传输方法、发送装置及接收装置 |
CN110932999A (zh) * | 2018-09-20 | 2020-03-27 | 中国移动通信有限公司研究院 | 业务处理方法和设备 |
-
2020
- 2020-09-24 CN CN202011016575.4A patent/CN114257333A/zh active Pending
-
2021
- 2021-09-11 WO PCT/CN2021/117859 patent/WO2022062930A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180123714A1 (en) * | 2015-07-06 | 2018-05-03 | Huawei Technologies Co., Ltd. | Method, Device, and System for Sending and Receiving Code Block Data Stream |
CN109962762A (zh) * | 2017-12-25 | 2019-07-02 | 华为技术有限公司 | 一种数据传输方法、发送装置及接收装置 |
CN110932999A (zh) * | 2018-09-20 | 2020-03-27 | 中国移动通信有限公司研究院 | 业务处理方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114257333A (zh) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022062930A1 (zh) | 一种码块流的处理方法及装置 | |
US20180176131A1 (en) | Apparatus and methods of routing with control vectors in a synchronized adaptive infrastructure (sain) network | |
US6831932B1 (en) | Transfer of SONET traffic over a packet-switched network | |
WO2018090856A1 (zh) | 用于建立灵活以太网群组的方法和设备 | |
US8416770B2 (en) | Universal service transport transitional encoding | |
CN113972997A (zh) | 一种传输数据的方法和设备 | |
US7668202B2 (en) | Communications bus having low latency interrupts and control signals, hotpluggability error detection and recovery, bandwidth allocation, network integrity verification, protocol tunneling and discoverability features | |
WO2021254508A1 (zh) | 一种确定码组丢失的方法及装置 | |
US8121138B2 (en) | Communication apparatus in label switching network | |
WO2022183875A1 (zh) | 确定传输时隙的方法和相关装置 | |
US20230299880A1 (en) | Code block identification method and apparatus | |
EP2222022B1 (en) | A forwarding device and a forwarding method of signaling communication network information and management communication network information | |
WO2020108392A9 (zh) | 一种业务比特流处理方法及装置 | |
KR100875040B1 (ko) | 이더넷 기반의 디지털 가입자 회선 통신망에서Virtual Concatenation을 이용한패킷 전송 방법 | |
KR102337650B1 (ko) | 비트 블록 스트림 처리, 레이트 매칭 및 교환을 위한 방법 및 디바이스 | |
CN113938246A (zh) | 一种业务流误码指示方法和通信装置 | |
WO2024032269A1 (zh) | 通信方法、相关装置及计算机可读存储介质 | |
WO2024032191A1 (zh) | 一种故障码块处理方法及装置 | |
WO2023083175A1 (zh) | 报文传输方法及通信装置 | |
WO2022022724A1 (zh) | 比特块的发送方法及装置 | |
WO2024000378A1 (zh) | 码块识别方法及装置 | |
US20080159332A1 (en) | Methods and devices for using variable length subpackets in data transmissions | |
CN118055076A (zh) | 一种报文处理方法、信息处理方法及装置 | |
CN118677718A (zh) | 一种数据处理方法及装置 | |
CN114915371A (zh) | 一种通信方法、设备和芯片系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21871301 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21871301 Country of ref document: EP Kind code of ref document: A1 |