CN108616327B - FC-ASM protocol-based concurrent fragment message receiving method and circuit - Google Patents
FC-ASM protocol-based concurrent fragment message receiving method and circuit Download PDFInfo
- Publication number
- CN108616327B CN108616327B CN201611140195.5A CN201611140195A CN108616327B CN 108616327 B CN108616327 B CN 108616327B CN 201611140195 A CN201611140195 A CN 201611140195A CN 108616327 B CN108616327 B CN 108616327B
- Authority
- CN
- China
- Prior art keywords
- fragment
- cam
- message
- receiving
- retrieval
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
- H04L1/0016—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy involving special memory structures, e.g. look-up tables
-
- 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/0036—Systems modifying transmission characteristics according to link quality, e.g. power backoff arrangements specific to the receiver
Landscapes
- Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
The invention belongs to the technical field of computer application, and particularly relates to a stream message receiving method based on an FC-ASM protocol and a circuit for realizing the method. The method comprises a step of configuring a CAM retrieval table and a step of fragment receiving and reassembling; the circuit of the method comprises a receiving fragment detection module, a CAM retrieval table management module and a CAM retrieval table module; and receiving the concurrent fragment message sequence, recording the fragment receiving state of the message by setting a CAM (content addressable memory) retrieval table for receiving the message, and finishing the recombination of each fragment of the whole message.
Description
Technical Field
The invention belongs to the computer hardware technology, and relates to a message sending and receiving circuit based on an FC-ASM protocol.
Background
The FC-ASM protocol defines messages of the type data block message, stream message, etc. Where the message length of the streaming message can be up to 16M. In the message transmitting and receiving circuit based on the FC _ ASM protocol, the transmission and reception of messages are performed according to the standard FC frame. The standard FC frame length is 2148 bytes, marks such as a frame head, a frame tail and the like are removed, an effective load field is only 2096 bytes, and for the stream message with the maximum length of 16 Mbytes, the stream message needs to be subjected to fragmentation processing in the sending process, and the fragments are recombined in the receiving process to complete the sending and receiving of the whole stream message.
Disclosure of Invention
The purpose of the invention is as follows:
in order to solve the technical problem, the invention provides a concurrent fragment message receiving method based on an FC-ASM protocol, which is a simple and easy-to-implement and widely-applied solution stream message receiving circuit.
The technical scheme is as follows:
a receiving method of concurrent fragmentation messages based on FC-ASM protocol comprises the following steps:
a configuration step: configuring a CAM search table for recording the receiving status of the flow message, wherein the CAM search table comprises an N-bit valid flag signal and N search entries, and each search entry comprises the following information:
the received length of the stream message (cam _ length [24:0]) and,
The number of received packets of the stream message (cam _ seq _ num [15:0]),
Buffer unit ID (cam _ buf _ ID [4:0]) occupied by stream message in host memory,
The memory address of the header of the stream message (cam _ addr _ head [31:0]),
The memory address of the data part of the stream message (cam _ addr _ data [31:0]),
in the initial state, the CAM searching table is in a null state, and N-bit valid flag signals are all 0, which indicates that no valid searching item exists;
fragment receiving and recombining:
when receiving a fragment, if the fragment is the first fragment of the stream message, if the first fragment of the current stream message is not searched in the CAM search table, applying for a buffer unit from a receiving storage unit management module, simultaneously creating a new search item in the CAM search table, and setting an effective flag signal corresponding to the search item as 1; if the current flow message is searched in the CAM retrieval table, updating the retrieval item by taking the current front piece as the first piece, and reporting the loss error of the last piece of the host flow message;
if the current fragment is not the first fragment of the stream message and the current stream message is not retrieved in the CAM retrieval table, directly discarding the fragment, wherein the CAM retrieval table is not changed, if the current fragment is retrieved in the CAM retrieval table, the content in the retrieval item corresponding to the CAM retrieval table is updated when the current fragment is received, if the current fragment is retrieved in the CAM retrieval table but has a receiving state error, the fragment is directly discarded, and meanwhile, a valid flag signal corresponding to the retrieval item is set to be 0; the CAM search table records the starting storage address of the fragment and the number of received packets in available units. When the fragment of the stream message is received, the fragment is a subsequent fragment, the offset address of the current fragment in the host storage is calculated by multiplying the number of sub-packets by the length of each fragment, the address information of the fragment in the host storage can be obtained according to the starting storage address of the fragment recorded in the available unit, the process is that the fragment of the stream message is recombined when the fragment is received,
if the message is the last piece of the flow message, the valid flag signal corresponding to the retrieval item is directly set to 0 at the end, and the receiving completion state is sent to the host.
The existence of the receiving state error means that the sequence number of the receiving chip of the streaming message is discontinuous, and the receiving length exceeds the chip length field in the chip header.
And searching in a CAM searching table through the message ID and the sequence ID.
The value of N is determined according to the specific requirements of the receiving circuit.
The circuit for realizing the method comprises a receiving fragment detection module, a CAM search table management module and a CAM search table module, wherein the CAM search table module
A CAM searching table module, which is used for recording the receiving state of the flow message, wherein the CAM searching table comprises an N-bit valid flag signal and N searching items, and each searching item comprises the following information:
a received length (cam _ length [24:0]),
The number of received packets (cam _ seq _ num [15:0]) and the number of received packets,
Buffer unit ID (cam _ buf _ ID [4:0]) occupied in host memory,
The memory address of the message header (cam _ addr _ head [31:0]),
The memory address of the data portion (cam _ addr _ data [31:0]),
in the initial state, the CAM search table is empty, the N-bit valid flag signals are all 0, indicating that there is no valid entry,
a receiving fragment detection module for detecting whether the receiving fragment is the first fragment, the non-first fragment or the last fragment,
CAM searching list management module for searching item in CAM searching list, managing zone bit of each searching item, judging whether receiving piece has error,
each retrieval item in the CAM retrieval table is provided with a counter for detecting whether the receiving of two continuous sub-packets of the current stream message is overtime or not, before the counter is not full, the next sub-packet is received, which indicates that the receiving of the current packet is not overtime, the timer is cleared, the timing is restarted, if the counter is full, the next sub-packet of the stream message is not received, the timer is cleared, the information of the current stream message in the CAM retrieval table is cleared, the receiving overtime error of the host stream message is reported, and the value of the counter is configured by the processor.
Description of the drawings:
FIG. 1 is a diagram of a CAM lookup table in a receiving circuit;
FIG. 2 is a flow chart of streaming message reception;
fig. 3 is a diagram of a concurrent fragmentation message receiving circuit.
Detailed Description
A receiving method of concurrent fragmentation messages based on FC-ASM protocol comprises the following steps:
a configuration step: configuring a CAM search table for recording the receiving status of the flow message, wherein the CAM search table comprises a 32-bit valid flag signal and 32 search entries, and each search entry comprises the following information:
the received length of the stream message (cam _ length [24:0]) and,
The number of received packets of the stream message (cam _ seq _ num [15:0]),
Buffer unit ID (cam _ buf _ ID [4:0]) occupied by stream message in host memory,
The memory address of the header of the stream message (cam _ addr _ head [31:0]),
The memory address of the data part of the stream message (cam _ addr _ data [31:0]),
in the initial state, the CAM searching table is in a null state, and N-bit valid flag signals are all 0, which indicates that no valid searching item exists;
fragment receiving and recombining:
when receiving a fragment, if the fragment is the first fragment of the stream message, if the first fragment of the current stream message is not searched in the CAM search table, applying for a buffer unit from a receiving storage unit management module, simultaneously creating a new search item in the CAM search table, and setting an effective flag signal corresponding to the search item as 1; if the current flow message is searched in the CAM retrieval table, updating the retrieval item by taking the current front piece as the first piece, and reporting the loss error of the last piece of the host flow message;
if the current fragment is not the first fragment of the stream message and the current stream message is not retrieved in the CAM retrieval table, directly discarding the fragment, wherein the CAM retrieval table is not changed, if the current fragment is retrieved in the CAM retrieval table, the content in the retrieval item corresponding to the CAM retrieval table is updated when the current fragment is received, if the current fragment is retrieved in the CAM retrieval table but has a receiving state error, the fragment is directly discarded, and meanwhile, a valid flag signal corresponding to the retrieval item is set to be 0; the CAM search table records the starting storage address of the fragment and the number of received packets in available units. When the fragment of the stream message is received, the fragment is a subsequent fragment, the offset address of the current fragment in the host storage is calculated by multiplying the number of sub-packets by the length of each fragment, the address information of the fragment in the host storage can be obtained according to the starting storage address of the fragment recorded in the available unit, the process is that the fragment of the stream message is recombined when the fragment is received,
if the message is the last piece of the flow message, the valid flag signal corresponding to the retrieval item is directly set to 0 at the end, and the receiving completion state is sent to the host.
The existence of the receiving state error means that the sequence number of the receiving chip of the streaming message is discontinuous, and the receiving length exceeds the chip length field in the chip header.
And searching in a CAM searching table through the message ID and the sequence ID.
The value of N is determined according to the specific requirements of the receiving circuit.
The circuit for realizing the method comprises a receiving fragment detection module, a CAM search table management module and a CAM search table module, wherein the CAM search table module
A CAM searching table module, which is used for recording the receiving state of the flow message, wherein the CAM searching table comprises an N-bit valid flag signal and N searching items, and each searching item comprises the following information:
a received length (cam _ length [24:0]),
The number of received packets (cam _ seq _ num [15:0]) and the number of received packets,
Buffer unit ID (cam _ buf _ ID [4:0]) occupied in host memory,
The memory address of the message header (cam _ addr _ head [31:0]),
The memory address of the data portion (cam _ addr _ data [31:0]),
in the initial state, the CAM search table is empty, the N-bit valid flag signals are all 0, indicating that there is no valid entry,
a receiving fragment detection module for detecting whether the receiving fragment is the first fragment, the non-first fragment or the last fragment,
CAM searching list management module for searching item in CAM searching list, managing zone bit of each searching item, judging whether receiving piece has error,
each retrieval item in the CAM retrieval table is provided with a counter for detecting whether the receiving of two continuous sub-packets of the current stream message is overtime or not, before the counter is not full, the next sub-packet is received, which indicates that the receiving of the current packet is not overtime, the timer is cleared, the timing is restarted, if the counter is full, the next sub-packet of the stream message is not received, the timer is cleared, the information of the current stream message in the CAM retrieval table is cleared, the receiving overtime error of the host stream message is reported, and the value of the counter is configured by the processor.
Claims (5)
1. A method for receiving concurrent fragmentation messages based on FC-ASM protocol is characterized by comprising the following steps:
a configuration step:
configuring a CAM search table for recording the receiving status of the flow message, wherein the CAM search table comprises an N-bit valid flag signal and N search entries, and each search entry comprises the following information: the received length of the stream message, the number of fragments received by the stream message, the ID of a buffer unit occupied by the stream message in a host memory, the storage address of a stream message header and the storage address of a stream message data part; in the initial state, the CAM searching list is in a null state, the N-bit valid flag signals are all 0, which indicates that no valid searching item exists, and the value of N is determined according to the specific requirements of the receiving circuit;
fragment receiving and recombining:
when a fragment is received, if the current stream message is not retrieved in the CAM retrieval table and the first fragment of the current stream message is not retrieved in the CAM retrieval table, applying for a buffer unit to a receiving storage unit management module, simultaneously creating a new retrieval item in the CAM retrieval table, and setting an effective flag signal corresponding to the retrieval item as 1; if the current flow message is searched in the CAM retrieval table, updating the retrieval item by taking the current fragment as the first fragment, and reporting the loss error of the last fragment of the host flow message;
if the fragment is not the first fragment of the stream message and the current stream message is not retrieved in the CAM retrieval table, directly discarding the fragment without any change in the CAM retrieval table, if the current fragment is retrieved in the CAM retrieval table, updating the content in the retrieval item corresponding to the CAM retrieval table when the reception of the current fragment is finished, and if the current fragment is retrieved in the CAM retrieval table but has a reception state error, directly discarding the fragment and simultaneously setting the valid flag signal corresponding to the retrieval item to be 0; the CAM searching table records the initial storage address of the fragment and the number of the received fragments in the available unit, when the fragment of the stream message is received, the fragment is a non-first fragment, the offset address of the current fragment in the host storage is calculated by multiplying the number of the fragments by the length of each fragment, the address information of the fragment in the host storage can be obtained according to the initial storage address of the fragment recorded in the available unit, the process is that the fragment recombination of the stream message when the fragment is received is carried out concurrently,
if the message is the last piece of the flow message, the valid flag signal corresponding to the retrieval item is directly set to 0 at the end, and the receiving completion state is sent to the host.
2. The FC-ASM protocol based concurrent fragmentation message reception method of claim 1, wherein the presence of a reception status error is a streaming message reception slice sequence number discontinuity, reception length exceeding the slice length field in the slice header.
3. The FC-ASM protocol based concurrent fragmentation message reception method according to claim 1 or claim 2, wherein the retrieval is performed in a CAM retrieval table by means of message ID and stream message reception fragment sequence number.
4. A circuit for implementing the FC-ASM protocol-based concurrent fragmentation message receiving method according to claim 1 or 2, comprising a received fragmentation detection module, a CAM search table management module, and a CAM search table module, wherein the CAM search table module
The CAM searching table module comprises a CAM searching table for recording the receiving state of the flow message, the CAM searching table comprises an N-bit valid flag signal and N searching items, and each searching item comprises the following information: the received length of the stream message, the number of fragments received by the stream message, the ID of a buffer unit occupied by the stream message in a host memory, the storage address of a stream message header and the storage address of a stream message data part; in the initial state, the CAM searching list is in a null state, the N-bit valid flag signals are all 0, which indicates that no valid searching item exists, and the value of N is determined according to the specific requirements of the receiving circuit;
the receiving fragment detection module is used for detecting whether the receiving fragment is a first fragment, a non-first fragment or a last fragment;
and the CAM retrieval table management module is used for retrieving retrieval items in the CAM retrieval table, managing the zone bit of each retrieval item and judging whether the receiving fragment has errors or not.
5. The circuit for receiving concurrent slice messages according to claim 4, wherein each search entry in the CAM search table is configured with a timer for detecting whether reception timeout occurs for two consecutive slices of the current stream message, and when the timer is not expired, the next slice is received, indicating that the current slice reception has not timed out, the timer is cleared, and the counting is restarted.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611140195.5A CN108616327B (en) | 2016-12-12 | 2016-12-12 | FC-ASM protocol-based concurrent fragment message receiving method and circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611140195.5A CN108616327B (en) | 2016-12-12 | 2016-12-12 | FC-ASM protocol-based concurrent fragment message receiving method and circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108616327A CN108616327A (en) | 2018-10-02 |
CN108616327B true CN108616327B (en) | 2021-03-26 |
Family
ID=63644057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611140195.5A Active CN108616327B (en) | 2016-12-12 | 2016-12-12 | FC-ASM protocol-based concurrent fragment message receiving method and circuit |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108616327B (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713637A (en) * | 2004-06-27 | 2005-12-28 | 华为技术有限公司 | Reorganizing method of slicing message |
CN1929437A (en) * | 2005-09-08 | 2007-03-14 | 北京中电华大电子设计有限责任公司 | Method and device for solving recombination problem in WLAN |
CN1929436A (en) * | 2005-09-08 | 2007-03-14 | 北京中电华大电子设计有限责任公司 | Method and device for solving occupation problem of WLAN reception buffer zone |
WO2009069874A1 (en) * | 2007-11-30 | 2009-06-04 | Electronics And Telecommunications Research Institute | System and method for reassembling packets in relay node |
CN101662461A (en) * | 2008-08-27 | 2010-03-03 | 华为技术有限公司 | Method, device and system for recombining multilink protocol fragment data |
-
2016
- 2016-12-12 CN CN201611140195.5A patent/CN108616327B/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713637A (en) * | 2004-06-27 | 2005-12-28 | 华为技术有限公司 | Reorganizing method of slicing message |
CN1929437A (en) * | 2005-09-08 | 2007-03-14 | 北京中电华大电子设计有限责任公司 | Method and device for solving recombination problem in WLAN |
CN1929436A (en) * | 2005-09-08 | 2007-03-14 | 北京中电华大电子设计有限责任公司 | Method and device for solving occupation problem of WLAN reception buffer zone |
WO2009069874A1 (en) * | 2007-11-30 | 2009-06-04 | Electronics And Telecommunications Research Institute | System and method for reassembling packets in relay node |
CN101662461A (en) * | 2008-08-27 | 2010-03-03 | 华为技术有限公司 | Method, device and system for recombining multilink protocol fragment data |
Non-Patent Citations (2)
Title |
---|
IPv6包的分段及重组过程详解.;郑华 等.;《计算机与网络》;20080126;第34卷(第2期);全文 * |
光纤通道(FC)交换机监控端口的设计实现及验证.;卢钰林.;《中国优秀硕士学位论文全文数据库信息科技辑2016年》;20160315(第3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108616327A (en) | 2018-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11249688B2 (en) | High-speed data packet capture and storage with playback capabilities | |
WO2020236274A1 (en) | System and method for facilitating efficient event notification management for a network interface controller (nic) | |
US11392317B2 (en) | High speed data packet flow processing | |
US9294589B2 (en) | Header compression with a code book | |
US7751404B2 (en) | Method, system, and computer program product for high performance bonding resequencing | |
KR101018575B1 (en) | System and method for processing rx packets in high speed network applications using an rx fifo buffer | |
CN109257143B (en) | Method for fragmenting data packets for transmission in network transmission protocol with length limitation | |
US10348510B2 (en) | Switching device and packet discarding method | |
CN108306835B (en) | Input caching and data forwarding method of Ethernet switch | |
US7464201B1 (en) | Packet buffer management apparatus and method | |
CN1863158B (en) | IP message fragment cache memory and forwarding method | |
CN114584560A (en) | Fragmented frame recombination method and device | |
US20150304271A1 (en) | Address resolution protocol buffer and buffering method thereof | |
CN111224903A (en) | Data transmission method, data transmission equipment and computer readable storage medium | |
JP3911273B2 (en) | Packet distribution device and distribution method thereof | |
CN108616327B (en) | FC-ASM protocol-based concurrent fragment message receiving method and circuit | |
US7649906B2 (en) | Method of reducing buffer usage by detecting missing fragments and idle links for multilink protocols and devices incorporating same | |
US9559857B2 (en) | Preprocessing unit for network data | |
CN111770055A (en) | Multi-protocol communication frame rapid distinguishing method applied to electric energy meter | |
CN105162901B (en) | Method and device for realizing NAT based on SOPC | |
CN112612670A (en) | Session information statistical method, device, exchange equipment and storage medium | |
US9479622B2 (en) | Out-of-order message filtering with aging | |
US11979479B1 (en) | Packet sorting and reassembly circuit module | |
CN114760364A (en) | Time-triggered serial device communication management method | |
JP2010233063A (en) | Packet processor, and packet processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221009 Address after: Room S303, Innovation Building, No. 25, Gaoxin 1st Road, Xi'an, Shaanxi 710075 Patentee after: XI'AN XIANGTENG MICROELECTRONICS TECHNOLOGY Co.,Ltd. Address before: No.15, Jinye 2nd Road, Xi'an, Shaanxi 710000 Patentee before: AVIC XI''AN AERONAUTICS COMPUTING TECHNIQUE RESEARCH INSTITUTE |
|
TR01 | Transfer of patent right |