Verification component, verification method, and storage medium

By designing a verification component that includes a retransmission management module, and using channel identifiers and sequence numbers to simulate various abnormal scenarios, the reusability and universality issues of existing retransmission mechanism verification technologies are solved, and effective verification of multi-sender scenarios is achieved.

CN121585328BActive Publication Date: 2026-05-01GETONG INTELLIGENT TECHNOLOGY (SHANGHAI) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
GETONG INTELLIGENT TECHNOLOGY (SHANGHAI) CO LTD
Filing Date
2026-01-27
Publication Date
2026-05-01

AI Technical Summary

Technical Problem

Existing retransmission mechanism verification technologies have low reusability, high business coupling, and poor versatility. They are difficult to simulate various abnormal scenarios and boundary states, and can only simulate one-to-one sending end scenarios.

Method used

A verification component was designed, including a retransmission management module. It interacts with the device under test (DUT) through message descriptors (PD) and adapters, and uses channel identifiers, sequence numbers, and error annotation fields to simulate various abnormal scenarios to verify the retransmission mechanism.

Benefits of technology

The verification component achieves high reusability and versatility, and can simulate various abnormal scenarios and retransmission mechanisms of multiple senders, thereby improving the robustness verification capability of the retransmission mechanism.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121585328B_ABST
    Figure CN121585328B_ABST
Patent Text Reader

Abstract

The application provides a verification component, a verification method and a storage medium. The verification component comprises a retransmission management module. A sending module in the retransmission management module sends a packet descriptor (PD) to an adapter according to the order of a sequence number, so that the adapter sends a packet corresponding to the PD to a DUT according to the indication of an error injection field of the PD. A retransmission judgment module in the retransmission management module performs retransmission judgment according to the response of the DUT received by the adapter. If the reception is correct, the PD with the same channel identifier and the sequence number less than or equal to the response sequence number in the PD is released. If the reception is incorrect, the PD with the same channel identifier and the sequence number less than the response sequence number in the PD is released, and the PD with the sequence number equal to the response sequence number is retransmitted to the adapter through the sending module, so as to verify the DUT. The application can improve the reusability and universality of the verification component of the retransmission mechanism of the network communication chip and reduce the business coupling.
Need to check novelty before this filing date? Find Prior Art

Description

Verification components, verification methods, and storage media Technical Field

[0001] This application relates to the field of integrated circuit verification technology, and in particular to a verification component, verification method and storage medium. Background Technology

[0002] As large-scale models with billions of data points become the new norm for AI (Artificial Intelligence) training, the communication reliability of distributed GPU (Graphics Processing Unit) clusters is evolving into a critical bottleneck. Packet loss during communication severely impacts performance; a 1% packet loss can lead to a 50% performance degradation, causing significant economic losses. Retransmission mechanisms are crucial for addressing packet loss issues in network communication chips and are of paramount importance for ensuring reliability in chip design. Therefore, verifying retransmission mechanisms is particularly important. Summary of the Invention

[0003] This application provides a verification component, verification method, and storage medium to solve the technical problems of low reusability, high service coupling, and poor versatility in network communication chip retransmission mechanism verification technology.

[0004] Based on a first aspect of the embodiments of this application, a verification component is provided, the verification component including a retransmission management module; the retransmission management module includes: a sending module configured to: send at least one message descriptor (PD) to an adapter in sequence number order, so that the adapter sends the message corresponding to the PD to the object under test (DUT) according to the indication of the error field of the PD; wherein, the PD includes a channel identifier, a sequence number, and an error field, the error field including at least one of the following: error type, whether lost; the error type includes no error and error type; a retransmission judgment module configured to: determine the retransmission based on the response returned by the DUT received by the adapter. The retransmission is determined; the response includes the response channel identifier, the response sequence number, and the reception status, which includes correct reception and incorrect reception. If the response is correct reception, at least one PD with the same channel identifier as the response channel identifier and a sequence number less than or equal to the response sequence number is released. If the response is incorrect reception, at least one PD with the same channel identifier as the response channel identifier and a sequence number less than the response sequence number is released, and at least one PD with the same channel identifier as the response channel identifier and a sequence number equal to the response sequence number is retransmitted to the adapter through the transmitting module to verify the DUT.

[0005] Based on a second aspect of the embodiments of this application, a verification method is provided, comprising: sending at least one message descriptor (PD) to an adapter in sequence according to the sequence number, so that the adapter sends the message corresponding to the PD to the object under test (DUT) according to the indication of the error field of the PD; wherein the PD includes a channel identifier, a sequence number, and an error field, the error field including at least one of the following: error type, whether lost; the error type includes no error and error type; performing a retransmission judgment based on the response returned by the DUT received by the adapter; wherein the response includes a response channel identifier, a response sequence number, and a reception status, the reception status including correct reception and incorrect reception; if the response is correct reception, releasing at least one PD whose channel identifier is the same as the response channel identifier and whose sequence number is less than or equal to the response sequence number; if the response is incorrect reception, releasing at least one PD whose channel identifier is the same as the response channel identifier and whose sequence number is less than the response sequence number, and retransmitting at least one PD whose channel identifier is the same as the response channel identifier and whose sequence number is equal to the response sequence number to the adapter, so as to verify the DUT.

[0006] Based on a third aspect of the embodiments of this application, a storage medium is provided, wherein the code of the verification component described above is stored in the storage medium.

[0007] The technical solutions provided by the embodiments of this specification may include the following beneficial effects: a verification component that can be reused with three key pieces of information, namely channel identifier, sequence number and receiving status, is decoupled from business and has stronger versatility.

[0008] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this specification. Attached Figure Description

[0009] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments of the present invention or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the present invention. For those skilled in the art, other drawings can be obtained from these drawings of the embodiments of the present invention.

[0010] Figure 1 is a verification framework illustrated in this specification according to an exemplary embodiment.

[0011] Figure 2 is a schematic diagram of a verification component according to an exemplary embodiment of this specification.

[0012] Figure 3 is a schematic diagram of another verification component illustrated in this specification according to an exemplary embodiment.

[0013] Figure 4 is a schematic diagram of state transitions of a state machine according to an exemplary embodiment of this specification.

[0014] Figure 5 is a schematic diagram of state transitions of another state machine according to an exemplary embodiment of this specification. Detailed Implementation

[0015] The exemplary embodiments will now be described in detail. When the description refers to the accompanying drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this specification; they are merely exemplary embodiments of apparatuses and methods consistent with some aspects of this specification.

[0016] The terminology used in this specification is for the purpose of describing particular embodiments only and is not intended to be limiting of this specification. The singular forms “a,” “described,” and “the” as used herein are also intended to include the plural forms unless the context clearly indicates otherwise.

[0017] It should be understood that the terms "first," "second," "third," etc., may be used in this specification to describe various information or structural modules for the purpose of more clearly describing the solution. These terms should not be construed as indicating or implying relative importance or implicitly specifying the number, order, or position of the indicated technical features. Therefore, a feature defined with "first," "second," "third," etc., may explicitly or implicitly include one or more of that feature. In the description of this specification, unless otherwise stated, "a plurality of" means two or more; "if" can be interpreted as "when," "when," or "in response to determination."

[0018] In this specification, "and / or" describes the relationship between associated objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following associated objects are in an "or" relationship.

[0019] The existing verification techniques for retransmission mechanisms have the following problems:

[0020] 1. Low reusability of retransmission mechanism verification tools: Existing verification technologies are often highly coupled with business logic, resulting in low reusability.

[0021] 2. Limited error injection scenarios: Existing verification technologies often involve limited error injection scenarios, making it difficult to simulate various random and abnormal mixed scenarios of information exchange between the sender and receiver. This results in insufficient verification of the robustness of lossless transmission of retransmission mechanisms under abnormal scenarios.

[0022] 3. Fixed incentives: Existing verification techniques often have relatively fixed incentives, making it difficult to simulate the complete process of a message from being discarded after being retransmitted to being received after retransmission.

[0023] 4. Fixed initial state: Existing verification techniques often construct stimuli from the initial state, which is insufficient for some boundary states that are difficult to reach, such as the scenario of retransmission sequence number looping.

[0024] 5. Single sender: Existing verification technologies often can only simulate one-to-one scenarios, which are insufficient for verifying scenarios where multiple senders send packets simultaneously.

[0025] To address the aforementioned issues, this disclosure provides embodiments of a verification component.

[0026] The embodiments described in this specification will now be described in detail.

[0027] Figure 1 illustrates a verification framework according to an exemplary embodiment of this specification. This framework includes a verification component 1, an adapter 2, and a device under test (DUT) 3. Verification component 1, acting as the stimulus source, generates a packet descriptor (PD) and control elements (such as a get_ack response request) and sends them to adapter 2. Adapter 2 locates the corresponding packet based on the PD's channel identifier (flow_id) and sequence number (seq_id), sends the packet and control elements to the DUT 3, and collects the response returned by the DUT 3, sending it back to verification component 1. This verifies the DUT 3 and the retransmission mechanism. Verification component 1 does not communicate directly with the DUT 3; all PD and control elements exchanged between verification component 1 and the DUT 3 are transmitted through adapter 2. The sending, transmission, and retransmission of verification component 1 to adapter 2 mentioned in this article refer to sending control elements or PD-corresponding messages to the object under test 3 through adapter 2. The response returned by the object under test 3 to adapter 2 will also be transmitted to verification component 1. This will not be explained separately in the following article.

[0028] The verification component, adapter, and object under test (DUT) of this disclosure can all be maintained in a code repository as source code files. After debugging, the verification component can be uploaded to the code repository for storage. The DUT can be a virtual chip, such as code written in Verilog according to the Register Transfer Level (RTL) specification. After chip designers complete the design, they can upload the virtual chip in software form to the code repository. The adapter can be adjusted according to the DUT under different business requirements. When verification of the DUT is required, a simulation environment can be set up on a local server, and the source code files of the verification component, adapter, and DUT can be pulled to the local server. Simulation verification can then be completed using electronic design automation (EDA) simulation tools.

[0029] Figure 2 shows a schematic diagram of a verification component according to an exemplary embodiment of this specification. Verification component 1 includes a retransmission management module 10. The retransmission management module 10 may include a sending module 101 and a retransmission judgment module 102.

[0030] The sending module 101 is configured to send at least one PD to the adapter 2 in the order of the sequence number, so that the adapter 2 sends the message corresponding to the PD to the DUT3 according to the indication of the error field of the PD.

[0031] In some optional embodiments of this disclosure, the PD may include a channel identifier (flow_id), a sequence number (seq_id), and an error field. Different channels are isolated from each other. If the channel identifiers are different, even if the sequence numbers are the same, they represent different PDs. The channel identifier and sequence number together serve as the unique identifier of the PD. The adapter associates and binds messages through the channel identifier and sequence number. The error field may include at least one of the following: error type and whether the message was lost. The error type (error) may include no error and error type. No error can be represented by 0. Error type can be, for example, message length mismatch (represented by 1), message length too long (represented by 2), message data error (represented by 3), etc., to instruct the adapter to perform error annotation on the message according to this field, thereby simulating various message error situations during the DUT verification process. Whether the message was lost (drop) can be represented by 0 to indicate no loss and 1 to indicate loss, to instruct the adapter to perform a loss operation on the message according to this field, thereby simulating message loss scenarios during the DUT verification process. The fields of the PD may be as shown in Table 1. The PD may also include a must_ack field indicating whether a response must be returned. If the value of this field is 0, the DUT may not need to reply to the message after receiving the message corresponding to the PD. If the value of this field is 1, the DUT must reply to the message after receiving the message corresponding to the PD.

[0032] Table 1

[0033]

[0034] The retransmission judgment module 102 is configured to perform a retransmission judgment based on the response returned by DUT3 received by adapter 2. The response may include a response channel identifier, a response sequence number, and a reception status. The reception status includes correct reception and incorrect reception. If the response is correct reception, at least one of the aforementioned PDs with a channel identifier identical to the response channel identifier and a sequence number less than or equal to the response sequence number is released. If the response is incorrect reception, at least one of the aforementioned PDs with a channel identifier identical to the response channel identifier and a sequence number less than the response sequence number is released, and the PD with a channel identifier identical to the response channel identifier and a sequence number equal to the response sequence number is retransmitted to adapter 2 via the sending module 101, thereby achieving packet retransmission for verification of DUT3.

[0035] Table 2

[0036]

[0037] In some optional embodiments of this disclosure, the response fields may be as shown in Table 2. The response includes a response channel identifier, a response sequence number, and a reception status. The response may also include a "drop" field, where 0 indicates no drop and 1 indicates drop. This field can simulate a response loss scenario during DUT verification.

[0038] Since different services may define different message formats and control information element definitions, this embodiment extracts the common parts of retransmission verification to form a verification component. An adapter corresponding to the service is used to associate and bind specific messages, and then retransmission interaction is performed with the object under test. The verification component can be reused by including three key pieces of information in the response information element: channel identifier, sequence number, and reception status. This embodiment decouples the verification component from the service, resulting in greater versatility.

[0039] Figure 3 shows a schematic diagram of another verification component according to an exemplary embodiment of this specification. The retransmission management module 10 may further include a generation module 103, a scheduling module 104, and a dequeue module 105.

[0040] The generation module 103 is configured to generate multiple initial PDs according to a configuration table. The configuration table may include: the number of channels, the number of sequence numbers for each channel, and an error configuration field. The error configuration field may include at least one of the following: the error type for each PD, and whether each PD is lost. The error configuration field corresponds to the error field of the PD. Each initial PD includes a channel identifier. Multiple initial PDs can be divided into initial queues according to their channel identifiers, with each channel corresponding to one queue in the initial queue.

[0041] Table 3

[0042]

[0043] In some optional embodiments of this disclosure, the configuration table can be as shown in Table 3. The configuration table may also include the number of senders. The error correction configuration field may also include at least one of the following: response loss count, and the number of response request loss counts. The configuration table can be user-input configuration or transmitted from an external source; this disclosure does not limit this. As shown in Table 3, the number of channels and the number of sequence numbers for each channel are equal for each sender. Alternatively, the number of channels and / or the number of sequence numbers may vary between different senders, requiring separate configuration for each sender and each channel. The number of channels can be set to the number of channels for each sender or the total number of channels, and then the sender and channel identifiers can be associated using data structures such as dictionaries. Regardless of whether there is a single sender or multiple senders, the channel identifier is globally unique. Setting the number of senders can simulate the scenario where multiple senders send PD corresponding messages to the DUT, enabling verification of the retransmission mechanism in multi-sender scenarios, and providing richer simulation verification scenarios.

[0044] In some optional embodiments of this disclosure, the response request can be as shown in Table 4, including channel identifier and sequence number. The response request may also include a "drop" field, where 0 indicates no drop and 1 indicates drop. This field can simulate the scenario of a lost response request during DUT verification.

[0045] Table 4

[0046]

[0047] In some optional embodiments of this disclosure, the error type pd_error_array for each PD can be set using a two-dimensional array. This array can have rows equal to the number of channels and columns equal to the number of sequence numbers for each channel. Each element in the array corresponds to an initial PD, and the element values ​​can be, for example, 0 for no error, 1 for message length mismatch, 2 for message length too long, and 3 for message data error, etc. Similarly, the drop status pd_drop_array for each PD can also be set using a two-dimensional array. This array can have rows equal to the number of channels and columns equal to the number of sequence numbers for each channel, and each element in the array corresponds to an initial PD, with 0 indicating no drop and 1 indicating drop.

[0048] In some optional embodiments of this disclosure, the verification component may further include an error management module 20. The error management module 20 is configured to: add error fields to multiple initial PDs according to the error configuration fields to obtain multiple intermediate PDs, and the multiple intermediate PDs form a scheduling queue. The scheduling queue includes at least one queue. At this time, the intermediate PD includes a channel identifier and error fields, but compared to the PD, it lacks a sequence number that has not been filled. When generating the initial PD, the generation module 103 can generate it according to the fields in Table 1. The channel identifier field of the initial PD is filled in, and other fields are empty or filled with 0. Then, the error management module 20 fills in the error fields of the initial PD according to the configuration table to obtain the intermediate PD, which includes a channel identifier and error fields.

[0049] In some optional embodiments of this disclosure, the initial queue can have a first dimension as the sender identifier and a second dimension as a dictionary. The dictionary key can be the channel identifier, and the value can be the number of initial PDs for each channel's sequence number. Each PD's error type (pd_error_array) corresponds one-to-one with the initial queue, thus the error management module 20 assigns values ​​to the error type field of each initial PD in the initial queue based on pd_error_array. Similarly, the error management module 20 assigns values ​​to the whether a PD is lost (pd_drop_array) field of each initial PD in the initial queue based on whether a PD is lost. The channel identifier field of the initial PD is filled by the generation module 103 using the key corresponding to the value of that initial PD. After the error field is filled, the initial queue becomes a scheduling queue. The generation of the scheduling queue lays the foundation for subsequent scheduling, transmission, and retransmission. In the scheduling queue, one queue corresponds to one channel.

[0050] In some optional embodiments of this disclosure, taking an example of 2 transmitters, 2 channels per transmitter, and 100 sequence numbers per channel, the scheduling queue contains a total of 2 * 2 * 100 = 400 intermediate PDs. The scheduling queue has two rows, i.e., two dictionaries (corresponding to the number of transmitters). Each dictionary contains two key-value pairs, each corresponding to a channel and 100 intermediate PDs for that channel. The scheduling queue contains four queues corresponding to four channels. The scheduling of queues from different transmitters is independent of each other.

[0051] In some optional embodiments of this disclosure, the error management module 20 is further configured to: randomly error-inject the response returned by DUT3 according to the number of response loss when the error configuration field includes the number of response loss; and randomly error-inject the response acquisition request sent by verification component 1 to DUT3 through adapter 2 according to the number of response acquisition request loss when the error configuration field includes the number of response acquisition request loss.

[0052] In some optional embodiments of this disclosure, the response loss count represents how many times a response is lost during the entire simulation verification process. The error management module 20 randomly selects responses returned by the DUT according to the response loss count and sets the "drop" field of the response to 1. The error management module 20 can use a counter to record the number of times a response has been lost; once the response loss count is reached, no further error annotation is added to the response. The response request loss count represents how many times a response request has been lost during the entire simulation verification process. The error management module 20 randomly selects response requests according to the response request loss count and sets the "drop" field of the response request to 1. The error management module 20 can use a counter to record the number of times a response request has been lost; once the response request loss count is reached, no further error annotation is added to the response request.

[0053] The error management module of this disclosure can be configured to randomly mix error injections into messages (by injecting errors into PDs) and control information elements (obtaining response requests and responses), verifying whether the retransmission mechanism meets the robustness requirements of lossless transmission under abnormal scenarios, and can also verify whether the tested object can cooperate with the verification component to complete lossless transmission under various error injection environments, thus evaluating the robustness of the design logic of the tested object itself.

[0054] The scheduling module 104 is configured to: query the status of each channel, randomly select a channel with a normal transmission status from the scheduling queue, and push the middle PD at the head of the queue to the dequeue queue.

[0055] In some optional embodiments of this disclosure, a channel can have four states: normal transmission, state one, state two, and state three. States one, two, and three all include a suspended state. State one could be a retransmission suspended state, state two could be a state of unknown suspension state, and state three could be a suspension state indicating the end of a round of retransmission. A suspended state indicates that the channel is paused in scheduling. Each channel corresponds to a state machine, and a state table VOQ_SUSPEND can be used to record the state of each channel's state machine, with one record per channel. The state table VOQ_SUSPEND can include a channel identifier (flow_id) and the state of the corresponding state machine (suspend_flag). The state table VOQ_SUSPEND can use the channel identifier (flow_id) as the logical address of each row and the state of the corresponding state machine (suspend_flag) as the value of the logical address for each channel identifier.

[0056] In some optional embodiments of this disclosure, the dequeue queue can be a FIFO (First In First Out) queue. If the number of transmitters is 2, then the dequeue queue has 2 rows, each corresponding to one transmitter. Intermediate PDs pushed by the scheduling module 104 are sequentially placed into the dequeue queue. In the dequeue queue, one queue corresponds to one channel.

[0057] The dequeue module 105 is configured to: query the channel identifier of the intermediate PD popped from the dequeue queue and the next first transmission sequence number corresponding to it; use the next first transmission sequence number to fill the sequence number field of the intermediate PD to obtain the PD, and update the next first transmission sequence number; push the PD with the sequence number to the buffer queue and the transmission module 101.

[0058] In some optional embodiments of this disclosure, each channel corresponds to a next first transmission sequence number. A sequence table VOQ_SEQ can be used to record the next first transmission sequence numbers for each channel, with each row corresponding to one channel. The sequence table VOQ_SEQ may include a channel identifier flow_id and the next first transmission sequence number next_seq_id corresponding to that channel identifier. The sequence table VOQ_SEQ can use the channel identifier flow_id as the logical address of each row, and use the next first transmission sequence number next_seq_id corresponding to each channel identifier as the value of the logical address corresponding to each channel identifier.

[0059] In some optional embodiments of this disclosure, when an intermediate PD is popped from the dequeue queue, the dequeue module 105 uses the sequence table VOQ_SEQ to query the next first transmission sequence number corresponding to the channel identifier of the intermediate PD, and uses this next first transmission sequence number to fill in the sequence number field of the intermediate PD, thereby obtaining the complete PD. The dequeue module 105 increments the next first transmission sequence number by 1 and compares the incremented value with the maximum sequence number (if the stored data bit width is 16 bits and the sequence number range is 0~65535, then the maximum sequence number is 65535). If the incremented value is less than or equal to the maximum sequence number, the incremented value is written into the sequence table VOQ_SEQ as the updated next first transmission sequence number corresponding to the channel identifier; if the incremented value is greater than the maximum sequence number, the next first transmission sequence number corresponding to the channel identifier is set to 1. The dequeue module 105 pushes the PD with the sequence number to the buffer queue and the transmission module 101. It should be noted that when the next first transmission sequence number is 0, the new sequence number consecutive to the next first transmission sequence number 0 is 2.

[0060] In some optional embodiments of this disclosure, the buffer queue can be a FIFO queue, and the buffer queue is dynamically changing. If the number of senders is 2, the buffer queue is a queue with 2 rows, and each queue corresponds to one sender. Because the PDs popped from the dequeue queue are all PDs sent for the first time, the buffer queue buffers these PDs sent for the first time, which facilitates subsequent retransmission judgment.

[0061] In some optional embodiments of this disclosure, the generation module 103 may also be integrated into the scheduling module 104.

[0062] In some optional embodiments of this disclosure, the retransmission management module 10 may further include a timing module 106. The timing module 106 is configured to pop the PD from the buffer queue and send it to the retransmission judgment module 102 when the duration of the PD in the buffer queue is greater than or equal to a preset time threshold.

[0063] In some optional embodiments of this disclosure, a preset time threshold can be stored in a register. By setting a reasonable preset time threshold, the retransmission judgment module 102 can be prompted to initiate retransmission judgment in a timely manner.

[0064] In some optional embodiments of this disclosure, the retransmission judgment module 102 can be configured to: perform a retransmission judgment on the PD based on the response record corresponding to the channel identifier in the PD popped from the buffer queue. The response record may include a recorded channel identifier, a recorded sequence number, and a recorded reception status. The recorded sequence number is the sequence number in the last response where the received channel identifier is the same as the recorded channel identifier. The recorded reception status is the reception status in the last response where the received channel identifier is the same as the recorded channel identifier. If the PD's sequence number is less than the recorded sequence number, or if the PD's sequence number is equal to the recorded sequence number and the recorded reception status is "correct reception," the PD is released. If the PD's sequence number is greater than the recorded sequence number, a request to obtain a response is sent to the adapter 2 through the sending module 101, and the PD is pushed to the buffer queue. If the PD's sequence number is equal to the recorded sequence number and the recorded reception status is "error reception," the PD is pushed to the sending module 101 and the buffer queue.

[0065] In some optional embodiments of this disclosure, the verification component 1 updates the record of the response returned by the DUT3. A response record table VOQ_ACK can be used to store the response records for each channel, with one record corresponding to each channel. The response record table VOQ_ACK may include a record channel identifier, a record sequence number, and a record reception status. The response record table VOQ_ACK can use the channel identifier as the logical address of each row, and the response sequence number and reception status from the received response will be used as values ​​to overwrite the logical address corresponding to the response channel identifier.

[0066] In some optional embodiments of this disclosure, after receiving the PD sent by the verification component 1, the adapter 2 associates and binds the message with the channel identifier and sequence number in the PD, and then divides the message into multiple fragments and sends them sequentially to the DUT 3. The fragments can be divided into header fragments, tail fragments, and middle fragments. The header fragment, also known as the SOP (Start of Packet) fragment, contains a message header, which may carry the channel identifier and sequence number of the message to which the fragment belongs. The tail fragment, also known as the EOP (End of Packet) fragment, may contain both a message header and message data, while the middle and tail fragments may contain only the message data.

[0067] In some optional embodiments of this disclosure, the DUT3 maintains a reception status record table RC_ACK_RAM, which updates and records the message reception status of each channel, with one record corresponding to each channel. The reception status record table RC_ACK_RAM may include a reception channel identifier, a reception sequence number, and a reception status. The reception status record table RC_ACK_RAM can use the channel identifier as a logical address and the reception sequence number and reception status as the values ​​of the corresponding logical address.

[0068] In some optional embodiments of this disclosure, the DUT3 receives all fragments of the message sent by the adapter 2, extracts the channel identifier and sequence number from the message header, and checks the row in the RC_ACK_RAM receiving status record table corresponding to the receiving channel identifier that is the same as the channel identifier in the message header to determine whether the sequence numbers are consecutive, and determines whether the message is correct based on all the received message fragments. The correctness of the message is checked from different angles depending on the service, such as checking whether the message length is correct, and / or using the checksum of each fragment to check whether the verification of that fragment passes, etc. If the message sequence number is consecutive with the receiving sequence number of that row of records and the message is correct, it means that a message with consecutive and correct sequence numbers has been received. The DUT3 can use the message sequence number to update the receiving sequence number and update the receiving status to correct reception. If the sequence number of the message is not consecutive with the received sequence number of the record in that row, or if the message is erroneous, DUT3 does not change the received sequence number. Instead, it updates the received status to "erroneous reception" and immediately sends a response to adapter 2 so that adapter 2 forwards it to authentication component 1. The response channel identifier of this response is the channel identifier of the message that caused the error, the response sequence number is the sequence number of the message that caused the error (i.e., the next sequence number consecutive with the received sequence number), and the received status is "erroneous reception".

[0069] In some optional embodiments of this disclosure, an example is taken of a reception status record in the RC_ACK_RAM table as (3, 15, 0), where 3 is the reception channel identifier, 15 is the reception sequence number, and 0 indicates correct reception. If all fragments of a message are currently received, the message header carries (3, 16), where 3 is the channel identifier and 16 is the sequence number. DUT3 determines whether the sequence numbers are consecutive and whether the message is correct. If the sequence number 16 is 1 greater than the reception sequence number 15 in the reception status record corresponding to channel identifier 3 and the message is correct, DUT3 can increment the reception sequence number by 1, and the record is updated to (3, 16, 0). If the sequence numbers are consecutive but the message is incorrect, DUT3 immediately returns a response (3, 16, 1) to adapter 2, updates the reception status record to (3, 15, 1), and discards the entire erroneous message, where 1 indicates incorrect reception. If a message is received with (3, 17) in its header, DUT3 determines that the message's sequence number 17 is more than 1 greater than the received sequence number 15, indicating that a packet loss may have occurred and the sequence number is discontinuous. DUT3 immediately returns a response (3, 16, 1) to adapter 2 and updates the received information record to (3, 15, 1). DUT3 then discards the message.

[0070] It should be noted that if the receive sequence number corresponding to a certain receive channel identifier (e.g., 2) in the RC_ACK_RAM is 0, it indicates that the DUT has not yet handshaked with the adapter for that channel, and the DUT expects to receive a normal message with sequence number 0 on that channel. If the DUT receives a normal message with (2, 0) from the adapter, the DUT writes back the receive status record corresponding to that channel identifier in the RC_ACK_RAM as (2, 1, 0, handshacking=1), where 2 is the receive channel identifier, 1 is the receive sequence number, 0 indicates correct reception, and handshacking=1 indicates a successful handshaking. The DUT generates a handshaking response (2, 1, 0) and returns it to the authentication component through the adapter. Upon receiving this handshaking response, the authentication component completes the handshaking between the adapter and the DUT. If the DUT receives a message with channel identifier 2 but a sequence number other than 0, or if the message is incorrect, the DUT discards the message. Before receiving the handshaking response, the authentication component will retransmit the PD with (2, 0). After a successful handshake, the next sequence number immediately following the received sequence number on the DUT side is 2, not 1. When the received sequence number reaches the maximum sequence number (e.g., the maximum sequence number is 65535), sequence number 0 is skipped because it is used for the handshake to establish the connection. Therefore, the next sequence number immediately following the maximum sequence number is 1.

[0071] In some optional embodiments of this disclosure, the DUT3 does not respond to every correctly received message, as that would result in too much data. It can respond with a message based on the channel identifier and sequence number of the last correctly received message after correctly receiving a preset number of messages (e.g., 10), or it can respond if the must_ack field value of the received message is 1. For incorrectly received messages, the DUT3 will respond immediately.

[0072] In some optional embodiments of this disclosure, when the retransmission judgment module 102 performs a retransmission judgment on the PD based on the response record corresponding to the channel identifier in the PD, if the sequence number of the PD is less than the record sequence number, or the sequence number of the PD is equal to the record sequence number and the record reception status is correct reception, it indicates that the message corresponding to the PD has been correctly received by the DUT3, and the PD can be released. If the sequence number of the PD is greater than the record sequence number, it indicates that the reception status of the message corresponding to the PD is unknown, and the sending module 101 can send a request to obtain a response to the adapter 2 to actively inquire about the reception status of the message corresponding to the PD from the DUT3, and push the PD to the buffer queue. If the sequence number of the PD is equal to the record sequence number and the record reception status is incorrect reception, it indicates that the message corresponding to the PD has not been correctly received by the DUT3 and needs to be retransmitted. Therefore, the PD is pushed to the sending module 101 and the buffer queue.

[0073] By combining the response record with the PD's channel identifier and sequence number, the retransmission judgment module 102 can make an accurate judgment on how the PD should handle the data and perform operations such as release, retransmission, and query, ensuring the robustness of the entire retransmission logic.

[0074] In some optional embodiments of this disclosure, refer to the state transition diagram of the state machine in Figure 4. The retransmission determination module 102 can be configured as follows:

[0075] Query the state of the state machine corresponding to the channel identifier in the PD. The reference conditions for state machine transitions may include at least one of the following: the PD is received correctly, or the PD is received incorrectly.

[0076] If a PD is received incorrectly while the state machine is in the normal transmission state, the state machine will jump to state one, and the transmitting module 101 will be invoked to retransmit all PDs from the current PD to the last dequeued PD to the adapter 2. All PDs from the current PD to the last dequeued PD will then be pushed sequentially to the buffer queue. During the retransmission of the last dequeued PD, the state machine will jump from state one to state three. The last dequeued PD is the last PD pushed to the buffer queue by the dequeue module 105 when the dequeue queue corresponding to the channel identifier of that PD is cleared. Both states one and three include a suspension state.

[0077] If any PD from the beginning of the PD to the end of the dequeue is incorrectly received, then release all PDs from the beginning of the PD to the PD preceding the PD, and change the state of the state machine from state three to state one. Repeat the steps of calling the sending module 101 to retransmit all PDs from the beginning of the PD to the end of the dequeue to the adapter 2, and push all PDs from the beginning of the PD to the end of the dequeue to the buffer queue in sequence.

[0078] In some optional embodiments of this disclosure, the state machine can transition from state one to state three at any point during the retransmission of the last dequeued PD. Any point during the retransmission of the last dequeued PD can be the moment the last dequeued PD begins retransmission, the moment the last dequeued PD completes retransmission, or any point during the retransmission process of the last dequeued PD. State one can be a retransmission suspension, and state three can be a suspension indicating the end of a retransmission round. A suspended state indicates that the channel is paused in scheduling.

[0079] In some optional embodiments of this disclosure, when the state machine is in the normal transmission state, if the PD is received incorrectly, the state machine jumps to state one, the scheduling queue corresponding to the channel identifier in the PD is suspended, the scheduling module 104 stops scheduling the queue, and the dequeue queue corresponding to the channel identifier needs to be cleared. Specifically, the last PD pushed to the buffer queue by the dequeue module 105 when the dequeue queue is cleared is the last dequeue PD. This PD is the first PD that needs to be retransmitted, and the last dequeue PD is the last PD that needs to be retransmitted. During retransmission, the retransmitted PD needs to be placed after the first transmitted PD with the channel identifier in the buffer queue to ensure that the retransmitted PD and the first transmitted PD are not interleaved or out of order.

[0080] In some optional embodiments of this disclosure, after one round of retransmission, if any PD from the beginning of that PD to the last dequeued PD is incorrectly received, it means that all PDs from the beginning of that PD to the PD preceding that PD were correctly received and can be released; however, all PDs from the beginning of that PD to the last dequeued PD need to be retransmitted again. During the retransmission, the retransmitted PD needs to be placed after the PD retransmitted in the previous round with the channel identifier in the buffer queue, thereby ensuring that the PDs retransmitted in the later round are not interleaved or out of order with the PDs retransmitted in the previous round.

[0081] In some optional embodiments of this disclosure, the retransmission judgment module 102 may also be configured to: if the PD is correctly received when the state machine is in the state of normal transmission, release the PD and keep the state machine in the state of normal transmission.

[0082] In some optional embodiments of this disclosure, the reference condition for state machine transition may further include the unknown reception state of the PD. The retransmission determination module 102 may also be configured to:

[0083] If the state machine is in the normal transmission state and the receiving state of the PD is unknown, the state machine will transition to state two, send a request to adapter 2 to obtain a response, and put all PDs from the current PD to the last dequeued PD back into the buffer queue in sequence. During the process of putting the last dequeued PD back into the buffer queue, the state machine will transition from state two to state three. State two includes the suspension phase.

[0084] If all PDs from the beginning of this PD to the end of the dequeue are correctly received, then all PDs from the beginning of this PD to the end of the dequeue are released. During the release of the last dequeue PD, the state machine transitions from state three to normal transmission.

[0085] If the reception status of any PD from the beginning of the PD to the end of the dequeue is unknown, then release all PDs from the beginning of the PD to the PD preceding the PD, and change the state machine from state three to state two. Repeat the steps of sending a request to adapter 2 to get a response and putting all PDs from the beginning of the PD to the end of the dequeue back into the buffer queue in order.

[0086] In some optional embodiments of this disclosure, the state machine transitions from state two to state three at any point during the process of putting the last dequeued PD back into the buffer queue. This "any time" can be the moment the last dequeued PD begins to be put back into the buffer queue, the moment the last dequeued PD completes its return to the buffer queue, or any time during the process of putting the last dequeued PD back into the buffer queue. State two can be a state of unknown suspension. Similarly, the state machine transitions from state three to normal transmission at any point during the process of releasing the last dequeued PD. This "any time" can be the moment the last dequeued PD begins to be released, the moment the last dequeued PD completes its release, or any time during the process of releasing the last dequeued PD.

[0087] In some optional embodiments of this disclosure, when the state machine is in the normal transmission state, if the reception state of the PD is unknown, the state machine jumps to state two, the scheduling queue corresponding to the channel identifier in the PD is suspended, the scheduling module 104 stops scheduling the queue, and the dequeue queue corresponding to the channel identifier needs to be cleared. For the PD that needs to send a request to obtain a response, subsequent PDs do not need to repeat the request; they can be directly put back into the buffer queue in sequence. During the process of putting the last dequeued PD back into the buffer queue, the state machine jumps from state two to state three. Before putting all PDs from the first PD to the last dequeued PD back into the buffer queue, the put-back PDs need to be placed after the first PD in the buffer queue with the channel identifier, thus ensuring that the put-back PDs and the first PDs are not interleaved or out of order.

[0088] In some optional embodiments of this disclosure, after one round of replacement, if the reception status of any PD from the beginning of that PD to the end of the dequeue is unknown, it indicates that all PDs from the beginning of that PD to the PD preceding that PD have been correctly received and can be released. All PDs from the beginning of that PD to the end of the dequeue need to send another request to obtain a response, transitioning the state machine to state two, and then sequentially returning all PDs from the beginning of that PD to the end of the dequeue to the buffer queue. Before returning all PDs from the beginning of that PD to the end of the dequeue to the buffer queue again, the PDs to be returned need to be placed after the PDs returned in the previous round that have the channel identifier in the buffer queue, thus ensuring that the PDs returned in the later round are not interleaved or out of order with the PDs returned in the previous round.

[0089] In some optional embodiments of this disclosure, when the state machine is in state three, the retransmission judgment module judges the reception status of the multiple PDs that are popped out of the buffer queue again after a round of retransmission or after a round of query, regardless of whether the multiple PDs are pushed to the buffer queue after a round of retransmission or put back into the buffer queue after a round of query. If they are all correctly received, the multiple PDs will be released.

[0090] In some optional embodiments of this disclosure, the retransmission determination module 102 is further configured to:

[0091] If the PD is received incorrectly and is the last dequeued PD when the state machine is in the state of normal transmission, then the PD is pushed to the buffer queue and the sending module 101 is called to retransmit the PD to the adapter 2, and the state machine is switched to state three.

[0092] If the state machine is in the normal transmission state, and the receiving state of the PD is unknown and the PD is the last dequeued PD, then the PD is pushed to the buffer queue and a request to obtain a response is sent to the adapter 2 through the sending module 101, and the state machine is switched to state three.

[0093] Although for the case where the PD is the last PD to be dequeued, if retransmission is needed, the process could first jump from the normal sending state to state one, and then from state one to state three. However, the above method of reaching state three through a single check saves one operation and speeds up the retransmission decision for this case. Similarly, if a request to receive a response needs to be sent, the process could first jump from the normal sending state to state two, and then from state two to state three. However, the above method of reaching state three through a single check saves one operation and speeds up the retransmission decision for this case.

[0094] By combining the state machine, the channel identifier and sequence number of the PD, the retransmission judgment module 102 can make an accurate judgment on how the PD should handle the data and perform operations such as release, retransmission in sequence, and query, thus ensuring the robustness of the entire retransmission logic.

[0095] In some optional embodiments of this disclosure, refer to the state transition diagram of the state machine in Figure 5. The figure uses a state machine for one channel as an example; the state machines for different channels are isolated from each other and do not affect each other.

[0096] In some optional embodiments of this disclosure, the retransmission determination module 102 can be configured as follows:

[0097] The system queries the response record, state machine state, and next initial transmission sequence number corresponding to the channel identifier in the PD. The response record may include the recorded channel identifier, recorded sequence number, and recorded reception state. The recorded sequence number is the sequence number in the last response where the received channel identifier is the same as the recorded channel identifier. The recorded reception state is the reception state in the last response where the received channel identifier is the same as the recorded channel identifier. The reference conditions for state machine transitions may include at least one of the following: the PD was correctly received (ACK), the PD was incorrectly received (NACK), the PD's reception state is unknown (UNCERTAIN), or the PD's sequence number is the maximum transmitted sequence number. Correct reception of the PD includes: the PD's sequence number is less than the recorded sequence number, or the PD's sequence number is equal to the recorded sequence number and the recorded reception state is correct reception. Incorrect reception of the PD includes: the PD's sequence number is equal to the recorded sequence number and the recorded reception state is incorrect reception. Unknown reception state of the PD includes: the PD's sequence number is greater than the recorded sequence number. The maximum transmitted sequence number is the sequence number of the PD most recently scheduled from the dequeue queue by the dequeue module 105. The maximum transmitted sequence number is the preceding sequence number that is consecutive to the next initial transmission sequence number (next_seq_id). If the next initial transmission sequence number (next_seq_id) corresponding to the channel identifier of the PD is 1 or 2, the maximum transmitted sequence number corresponding to that channel identifier is the next initial transmission sequence number (next_seq_id) minus 2. If the next initial transmission sequence number corresponding to the channel identifier is any sequence number other than 1 or 2, the maximum transmitted sequence number corresponding to that channel identifier is the next initial transmission sequence number (next_seq_id) minus 1.

[0098] If the PD is correctly received when the state machine is in the normal transmission state, the PD is released and the state machine is kept in the normal transmission state.

[0099] ii. If the PD is received incorrectly when the state machine is in the state of normal transmission, it means that the PD needs to be retransmitted. Then, the PD is pushed to the transmission module 101 and the buffer queue, and the state machine is switched to state one.

[0100] iii. If the sequence number of the PD is not the maximum sent sequence number when the state machine is in state one, it means that the PD needs to be retransmitted. Then, the PD is pushed to the sending module 101 and the buffer queue, and the state machine is kept in state one.

[0101] If the PD's sequence number is the maximum sent sequence number when the state machine is in state one, then the PD is pushed to the sending module 101 and the buffer queue, and the state machine is switched to state three. If the PD's sequence number is the maximum sent sequence number, it means that the PD is the last PD in this batch, all PDs in this batch have completed a round of retransmission judgment, and the state machine of the channel corresponding to the PD switches to state three.

[0102] If the PD is received incorrectly when the state machine is in state three, it means that the PD needs to be retransmitted. The PD is then pushed to the sending module 101 and the buffer queue, and the state machine is switched to state one.

[0103] If the receiving status of the PD is unknown when the state machine is in the normal transmission state, the vi module sends a request to obtain a response to the adapter 2 through the transmission module 101, pushes the PD to the buffer queue, and jumps the state machine to state two.

[0104] vii If the sequence number of the PD is not the maximum sent sequence number when the state machine is in state two, it means that the receiving state of the PD is unknown. Then push the PD to the buffer queue and keep the state machine in state two.

[0105] viii If the sequence number of the PD is the maximum sent sequence number when the state machine is in state two, it means that the reception status of the PD is unknown. In this case, the PD is pushed to the buffer queue and the state machine is switched to state three. If the sequence number of the PD is the maximum sent sequence number, it means that the PD is the last PD in this batch and all PDs in this batch have completed a round of retransmission judgment. The state machine of the channel corresponding to the PD is switched to state three.

[0106] If the receiving status of the PD is unknown when the state machine is in state three, the 101 sends a request to the adapter 2 to obtain the response, pushes the PD to the buffer queue, and jumps the state machine to state two.

[0107] If the PD is correctly received but its sequence number is not the maximum sent sequence number when the state machine is in state three, release the PD and keep the state machine in state three.

[0108] If the PD is correctly received and its sequence number is the maximum transmitted sequence number when the state machine is in state three, the PD is released and the state machine transitions to normal transmission. If the sequence number of the PD is the maximum transmitted sequence number, it means that the PD is the last PD in this batch, all PDs in the batch have completed a round of retransmission judgment and have been received normally, and the state machine of the channel corresponding to the PD transitions to normal transmission.

[0109] In some optional embodiments of this disclosure, states one, two, and three all include suspension. State one can be, for example, a retransmission suspension; state two can be, for example, a state of unknown suspension; and state three can be, for example, a suspension after a round of retransmission determination has ended. A suspended state indicates that the channel is suspended from scheduling.

[0110] In some optional embodiments of this disclosure, when the state machine of a certain channel transitions from normal transmission to any suspended state, the verification component will perform a delisting operation on the queue corresponding to that channel in the scheduling queue. That is, the scheduling module stops scheduling intermediate PDs of this queue to the dequeue queue. The queue will only be relisted and rescheduled when the state machine returns to normal transmission. All PDs (including intermediate PDs and PDs) that have been scheduled out of the scheduling queue but have not yet been reached when the queue is delisted are called a PD in a retransmission judgment batch.

[0111] In some optional embodiments of this disclosure, when the state machine transitions from normal transmission to state two and from state three to state two, the retransmission judgment module 102 will send an acquisition response request to DUT3 through the adapter. When in state two, even if the reception status of the message corresponding to PD is unknown in DUT3, it is not necessary to send the acquisition response request to DUT3 again. This is because when DUT3 receives the acquisition response request, regardless of the sequence number in the acquisition response request, it will construct a response based on the reception sequence number and reception status corresponding to the channel identifier in the acquisition response request in the reception status record table RC_ACK_RAM, and return it to the verification component 1 through the adapter 2. Therefore, it is not necessary to send it again.

[0112] It should be noted that when the state machine corresponding to a channel identifier transitions from normal transmission to state one or state two (suspended), the dequeue queue corresponding to that channel identifier is not yet empty. At this time, the PD corresponding to the maximum transmitted sequence number is not the last dequeue PD. As intermediate PDs are continuously popped from the dequeue queue corresponding to that channel identifier and their sequence numbers are added by the dequeue module and pushed to the buffer queue, the PD obtained by popping the last intermediate PD from the dequeue queue and adding its sequence number is the final dequeue PD. The maximum transmitted sequence number dynamically increases and changes, continuously approaching and eventually equaling the sequence number of the final dequeue PD.

[0113] By combining response records, state machines, the next first transmission sequence number, the PD's channel identifier and sequence number, the retransmission judgment module 102 can make accurate judgments and controls on how the PD should be handled, and perform operations such as sequential release, sequential retransmission, and querying, ensuring the robustness of the entire retransmission logic.

[0114] In some optional embodiments of this disclosure, the retransmission determination module 102 is further configured to:

[0115] If, under the condition that the state machine is in the normal transmission state, the PD is received by error and the sequence number of the PD is the maximum transmitted sequence number, then the PD is pushed to the transmission module 101 and the buffer queue, and the state machine is switched to state three.

[0116] xiii If the receiving status of the PD is unknown and the sequence number of the PD is the maximum sent sequence number, then the sending module 101 sends a request to the adapter 2 to obtain a response, pushes the PD to the buffer queue, and jumps the state of the state machine to state three when the state machine is in the normal sending state.

[0117] Although for the case where the PD's sequence number is the maximum sent sequence number, if retransmission is needed, the process could first jump from the normal sending state to state one, and then from state one to state three. However, by setting xii, it can reach state three in a single check, saving one operation and speeding up the retransmission check for this situation. Similarly, if a request to receive a response needs to be sent, the process could first jump from the normal sending state to state two, and then from state two to state three. However, by setting xiii, it can reach state three in a single check, saving one operation and speeding up the retransmission check for this situation.

[0118] In some optional embodiments of this disclosure, the retransmission management module 10 further includes:

[0119] The delay module 107 is configured to delay the PDs pushed to the buffer queue by the retransmission judgment module 102 for a preset duration before placing them into the buffer queue. The retransmission judgment module 102 pushes the PDs after retransmission judgment to the buffer queue, indicating that the message corresponding to the PD was incorrectly received and needs retransmission or its status is unknown. At this time, the scheduling queue corresponding to the channel identifier of the PD suspends scheduling, the scheduling module 104 stops scheduling intermediate PDs of that channel identifier to the dequeue queue, and the dequeue module 105 continues to add sequence numbers to intermediate PDs popped from the dequeue queue until the dequeue queue is empty. The preset duration can be the estimated dequeue queue emptying time, thus ensuring that the PDs pushed to the buffer queue by the retransmission judgment module 102 for the same channel identifier will not be earlier than the PDs pushed to the buffer queue by the dequeue module 105, ensuring that the sequence numbers of PDs with the same channel identifier in the buffer queue are not out of order. The delay module 107 can maintain a delay queue to buffer the PDs pushed to the buffer queue. The delay queue can be a two-dimensional FIFO queue, where the first dimension is the number of senders.

[0120] In some optional embodiments of this disclosure, the sending module 101 is configured to: place the PDs pushed by the dequeue module 105 into the initial sending queue; place the PDs pushed by the retransmission judgment module 102 into the retransmission queue; place the PDs scheduled from the initial sending queue and the retransmission queue into the PD sending queue; and sequentially transmit the PDs in the PD sending queue to the adapter 2. The sending module 101 can maintain three queues: the initial sending queue, the retransmission queue, and the PD sending queue, all of which can be FIFO queues. If the number of transmitters is 2, the initial sending queue and the retransmission queue each have 2 rows, with one row corresponding to one transmitter. The PD sending queue is one-dimensional and is independent of the number of transmitters. The initial sending queue buffers the PDs pushed by the dequeue module 105, and the retransmission queue buffers the PDs pushed by the retransmission judgment module 102. The sending module 101 can poll and schedule PDs from the initial sending queue and the retransmission queue to be placed into the PD sending queue, and then send the PDs to the adapter 2 sequentially according to the order in the PD sending queue. By setting up the queues and scheduling in this way, the PDs sent initially and those retransmitted have an equal chance of being sent. Alternatively, the sending module 101 can have a higher scheduling priority for the retransmission queue. This scheduling allows retransmitted PDs to be sent out faster, resulting in higher overall message transmission efficiency. As for the retrieval response request, since it uses a different interface to send to the adapter than the PD and the path it uses is also different, the sending module 101 can send the retrieval response request directly upon receiving it, without needing to set up a separate queue for the retrieval response request.

[0121] In some optional embodiments of this disclosure, verification component 1 may further include a configuration management module 30. The configuration management module 30 is configured to receive user input and obtain a configuration table. Through the configuration management module 30, the contents of the configuration table can be easily set and modified, allowing for more diverse and flexible construction of verification scenarios.

[0122] In some optional embodiments of this disclosure, the retransmission management module 10 may further include:

[0123] The self-test module 108 is configured to check whether the sequence number of the PD released by the retransmission judgment module 102 is consistent with the expected release sequence number corresponding to the channel identifier of that PD; if they are inconsistent, it is determined that there is an error in the verification component 1. The self-test module 108 can maintain an expected release sequence number for each channel. If the verification component 1 is normal, the PDs should be released in the order of their sequence numbers. If the sequence number of the PD released by the retransmission judgment module 102 is 19, and the expected release sequence number corresponding to the channel identifier of that PD is also 19, then the verification component 1 is performing normally. The self-test module 108 increments the expected release sequence number corresponding to the channel identifier by 1 to 20, and continues to wait for the next PD of that channel identifier released by the retransmission judgment module 102. By conducting self-tests during the verification process, potential problems in the verification component 1 can be detected in a timely manner, allowing the verification component 1 to be continuously improved.

[0124] In some optional embodiments of this disclosure, the retransmission management module 10 can also be configured to perform at least one of the following operations when a backpressure stop condition occurs: suspend the scheduling of the scheduling queue by the scheduling module 104 or reduce the scheduling speed of the scheduling queue by the scheduling module 104, suspend the popping of PDs from the buffer queue or extend the buffering time of PDs in the buffer queue. Backpressure stop occurs because the downstream processing speed cannot keep up with the upstream data production speed. The system triggers a backpressure mechanism to suspend or slow down data flow, thereby avoiding overload of downstream nodes. Users can set backpressure stop conditions as needed. Backpressure stop conditions may include at least one of the following: the initial transmission queue length is greater than or equal to a first length, the retransmission queue length is greater than or equal to a second length, the PD transmission queue length is greater than or equal to a third length, and the backpressure signal of DUT3 is pulled up to a first level, etc. Backpressure stop can suspend or slow down the data production speed of the upstream (scheduling module 104 and retransmission judgment module 102), allowing the downstream to process and clear the backlogged data in a timely manner, avoiding vicious cycles that lead to transmission timeouts, data overflows, etc. When the recovery condition occurs, the retransmission management module 10 can restore the scheduling speed of the scheduling module 104 and / or the normal popping of PDs from the buffer queue. The recovery condition may include at least one of the following: the initial transmission queue length is less than or equal to the fourth length, the retransmission queue length is less than or equal to the fifth length, the PD transmission queue length is less than or equal to the sixth length, or the reverse voltage signal of DUT3 is pulled low to the second level. Where the fourth length is less than the first length, the fifth length is less than the second length, the sixth length is less than the third length, and the second level is lower than the first level. The recovery condition corresponds to the reverse voltage stop condition.

[0125] As can be seen from the above introduction, the verification component maintains the receiving state of the PD by interacting with the DUT, and determines the processing method of the PD by combining the state machine state, so as to execute logic such as retransmission and release, thus simulating the complete life cycle of the message under the retransmission mechanism.

[0126] The three tables in the verification component of this disclosure embodiment—the sequence table VOQ_SEQ, the status table VOQ_SUSPEND, the response record table VOQ_ACK, and the DUT-side reception status record table RC_ACK_RAM—can all be customized by the user to quickly and fully verify some difficult-to-reach boundary states (such as the scenario of sequence number flipping), saving verification time.

[0127] Those skilled in the art can flexibly select and combine the contents of various embodiments of this disclosure as needed, thereby creating more solutions. This disclosure does not list all such recombined solutions, and all solutions formed by various recombinations should be included within the protection scope of this disclosure.

[0128] Accordingly, this disclosure also provides a verification method, including:

[0129] At least one Message Descriptor (PD) is sent to the adapter in sequence number order, so that the adapter sends the message corresponding to the PD to the Object Under Test (DUT) according to the error annotation field of the PD; wherein, the PD includes channel identifier, sequence number and error annotation field; the error annotation field includes at least one of the following: error annotation type, whether it is lost; the error annotation type includes no error annotation and error type;

[0130] The retransmission decision is made based on the response returned by the DUT received by the adapter; the response includes the response channel identifier, response sequence number and reception status, and the reception status includes correct reception and incorrect reception;

[0131] If the response is received correctly, release at least one PD whose channel identifier is the same as the response channel identifier and whose sequence number is less than or equal to the response sequence number.

[0132] In the event of an error reception, at least one PD with the same channel identifier as the response channel identifier and a sequence number less than the response sequence number is released, and at least one PD with the same channel identifier as the response channel identifier and a sequence number equal to the response sequence number is retransmitted to the adapter to verify the DUT.

[0133] Corresponding to the aforementioned embodiments of the verification components, this specification also provides an embodiment of a storage medium. The storage medium stores the code of the aforementioned verification components. For details on the implementation process of the functions and roles of each module of the verification components in the aforementioned storage medium, please refer to the various embodiments of the aforementioned verification components, which will not be repeated here.

[0134] Storage media can include, but are not limited to: flash memory cards, USB flash drives, external hard drives, cloud storage, read-only memory (ROM), random access memory (RAM), magnetic disks, optical disks, and other media capable of storing program code. There can be multiple storage media, and these multiple storage media can be of different types. Multiple different types of storage media can each store a portion of the code for the aforementioned verification component; when these portions of code are combined, the complete code for the verification component can be obtained.

[0135] For the storage medium embodiment, since it basically corresponds to the verification component embodiment, the relevant details can be found in the description of the verification component embodiment. The storage medium embodiments described above are merely illustrative. The modules described as separate components may or may not be physically separate. The components shown as modules may or may not be physical modules; that is, they may be located in one place or distributed across multiple network modules. Some or all of the modules can be selected to achieve the purpose of the solution described in this specification, depending on actual needs. Those skilled in the art can understand and implement this without any inventive effort.

[0136] The foregoing has described exemplary embodiments of this specification. It should be understood that in some cases, the modules described in this specification may be divided in a manner different from that in the embodiments, and the actions or steps described may be performed in a different order than those in the embodiments, and the desired results may still be achieved.

[0137] Other embodiments of this specification will readily occur to those skilled in the art upon consideration of the specification and practice of the invention claimed herein. This specification is intended to cover any variations, uses, or adaptations that follow the general principles of this specification and include common knowledge or customary techniques in the art not illustrated herein.

[0138] The above description is merely a preferred embodiment of this specification and is not intended to limit this specification. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this specification should be included within the scope of protection of this specification.

Claims

1. A verification component, characterized in that, The verification component includes a retransmission management module; The retransmission management module includes: a sending module configured to send at least one message descriptor (PD) to the adapter in sequence number order, so that the adapter sends the message corresponding to the PD to the device under test (DUT) according to the error annotation field of the PD; wherein the PD includes a channel identifier, a sequence number, and an error annotation field, and the error annotation field includes at least one of the following: error annotation type and whether the message was lost; the error annotation type includes no error annotation and error type; and a retransmission judgment module configured to perform retransmission judgment based on the response returned by the DUT received by the adapter; wherein the response includes a response channel identifier, a response sequence number, and a response order number. The system specifies the column number and reception status, including correct reception and incorrect reception. If the response is correct reception, it releases at least one PD whose channel identifier is the same as the response channel identifier and whose sequence number is less than or equal to the response sequence number. If the response is incorrect reception, it releases at least one PD whose channel identifier is the same as the response channel identifier and whose sequence number is less than the response sequence number, and retransmits at least one PD whose channel identifier is the same as the response channel identifier and whose sequence number is equal to the response sequence number to the adapter via the transmitting module to verify the DUT.

2. The verification component according to claim 1, characterized in that, The retransmission management module further includes: a generation module, configured to: generate multiple initial PDs according to a configuration table; wherein, the configuration table includes: the number of channels, the number of sequence numbers for each channel, and an error annotation configuration field; the error annotation configuration field includes at least one of the following: the error annotation type for each PD, and whether each PD is lost; the error annotation configuration field corresponds to the error annotation field of the PD; the initial PD includes a channel identifier; the verification component further includes: an error annotation management module, configured to: add error annotation fields to the multiple initial PDs according to the error annotation configuration fields to obtain multiple intermediate PDs, the multiple intermediate PDs forming a scheduling queue; In this context, the scheduling queue includes at least one queue; the retransmission management module further includes: a scheduling module configured to: query the status of each channel, randomly select a queue from the scheduling queue whose channel status is normal transmission, and push the intermediate PD at the head of the queue to the dequeue queue; and a dequeue module configured to: query the next first transmission sequence number corresponding to the channel identifier of the intermediate PD popped from the dequeue queue; use the next first transmission sequence number to fill the sequence number field of the intermediate PD to obtain the PD, and update the next first transmission sequence number; and push the PD with the sequence number to the buffer queue and the transmission module.

3. The verification component according to claim 2, characterized in that, The retransmission management module further includes a timing module, configured to pop the PD from the buffer queue and send it to the retransmission judgment module when the duration of the PD entering the buffer queue is greater than or equal to a preset time threshold.

4. The verification component according to claim 2, characterized in that, The retransmission judgment module is configured to: perform retransmission judgment on the PD based on the response record corresponding to the channel identifier in the PD; wherein, the response record includes a recorded channel identifier, a recorded sequence number, and a recorded reception status; the recorded sequence number is the sequence number in the last response where the received channel identifier is the same as the recorded channel identifier; the recorded reception status is the reception status in the last response where the received channel identifier is the same as the recorded channel identifier; if the sequence number of the PD is less than the recorded sequence number, or if the sequence number of the PD is equal to the recorded sequence number and the recorded reception status is "correct reception", the PD is released; if the sequence number of the PD is greater than the recorded sequence number, a request to obtain a response is sent to the adapter through the sending module, and the PD is pushed to the buffer queue; if the sequence number of the PD is equal to the recorded sequence number and the recorded reception status is "error reception", the PD is pushed to the sending module and the buffer queue.

5. The verification component according to claim 2, characterized in that, The retransmission judgment module is configured to: query the state of the state machine corresponding to the channel identifier in the PD; wherein, the reference conditions for the state machine transition include at least one of the following: the PD is correctly received, the PD is incorrectly received; if the PD is incorrectly received when the state machine is in the normal transmission state, the state machine transitions to state one, the sending module is invoked to retransmit all PDs from the PD to the last dequeued PD to the adapter, and all PDs from the PD to the last dequeued PD are pushed to the buffer queue in sequence; during the retransmission of the last dequeued PD, the state machine transitions from state one to state three; wherein, The last dequeued PD is the last PD pushed to the buffer queue by the dequeue module when the dequeue queue corresponding to the channel identifier in the PD is cleared; both state one and state three include suspension; if any PD from the PD to the last dequeued PD is received incorrectly, then all PDs from the PD to the PD before the PD are released, and the state machine is switched from state three to state one. The steps of calling the sending module to retransmit all PDs from the PD to the last dequeued PD to the adapter and pushing all PDs from the PD to the last dequeued PD to the buffer queue in sequence are repeated.

6. The verification component according to claim 5, characterized in that, The reference conditions for the state machine transition also include the unknown reception status of the PD; the retransmission judgment module is further configured to: when the state machine is in the normal transmission state, if the reception status of the PD is unknown, then the state machine will transition to state two, send a request to obtain a response to the adapter, and put all PDs from the PD to the last dequeued PD back into the buffer queue in order. During the process of putting the last dequeued PD back into the buffer queue, the state machine transitions from state two to state three; wherein, state two includes suspension; if all PDs from the beginning of the PD to the last dequeued PD are correctly received, then all PDs from the beginning of the PD to the last dequeued PD are released; during the process of releasing the last dequeued PD, the state machine transitions from state three to normal transmission. If the reception status of any PD from the start of the PD to the last dequeued PD is unknown, then release all PDs from the start of the PD to the PD preceding that PD, and transition the state machine from state three to state two. Repeat the steps of sending a request to the adapter to obtain a response and returning all PDs from that PD to the last dequeued PD back to the buffer queue in sequence.

7. The verification component according to any one of claims 2-6, characterized in that, The retransmission management module further includes a delay module, configured to: push the retransmission judgment module to the cache queue for a preset PD delay before putting it into the cache queue.

8. The verification component according to any one of claims 2-6, characterized in that, The sending module is configured to: place the PD pushed by the dequeue module into the initial sending queue; place the PD pushed by the retransmission judgment module into the retransmission queue; place the PDs scheduled from the initial sending queue and the retransmission queue into the PD sending queue; and sequentially pass the PDs in the PD sending queue to the adapter.

9. The verification component according to any one of claims 2-6, characterized in that, The configuration table also includes the number of sending ends; the error injection configuration field also includes at least one of the following: response loss count, and response request loss count; the error injection management module is further configured to: when the error injection configuration field includes the response loss count, randomly inject errors into the response returned by the DUT according to the response loss count; when the error injection configuration field includes the response request loss count, randomly inject errors into the response request sent by the verification component to the DUT through the adapter according to the response request loss count.

10. The verification component according to any one of claims 2-6, characterized in that, The retransmission management module is also configured to perform at least one of the following operations when a backpressure stop condition occurs: suspend the scheduling module's scheduling of the scheduling queue or reduce the scheduling speed of the scheduling module for the scheduling queue, suspend the PD from being popped from the buffer queue or extend the PD's buffering time in the buffer queue.

11. A verification method, characterized in that, include: At least one Message Descriptor (PD) is sent to the adapter in sequence number order, so that the adapter sends the message corresponding to the PD to the Device Under Test (DUT) according to the error annotation field of the PD; wherein, the PD includes a channel identifier, a sequence number, and an error annotation field, and the error annotation field includes at least one of the following: error annotation type, whether it is lost; the error annotation type includes no error annotation and error type; retransmission is determined based on the response returned by the DUT received by the adapter; wherein, the response includes a response channel identifier, a response sequence number, and a reception status, and the reception status includes correct reception and incorrect reception; if the response is correct reception, the PD with the same channel identifier as the response channel identifier and a sequence number less than or equal to the response sequence number is released; if the response is incorrect reception, the PD with the same channel identifier as the response channel identifier and a sequence number less than the response sequence number is released, and the PD with the same channel identifier as the response channel identifier and a sequence number equal to the response sequence number is retransmitted to the adapter to verify the DUT.

Citation Information

Patent Citations

  • Retransmission function prototype equipment-based testability error injection method and device

    CN117498991A

  • Retransmission and memory consumption tracking of data packets in a network device

    US20150063358A1