a generic pack/unpack request More...
#include <nm_core_interface.h>

Public Member Functions | |
| PUK_LIST_LINK (nm_req) | |
| link to enqueue req in pending requests lists | |
Data Fields | ||
| nm_cond_status_t | status | |
| status, including status bits and synchronization | ||
| struct nm_data_s | data | |
| data descriptor to send/recv | ||
| struct nm_monitor_s | monitor | |
| monitor attached to this request (only 1) | ||
| nm_req_flag_t | flags | |
| flags given by user | ||
| nm_gate_t | p_gate | |
| dest/src gate; NULL if recv from any source | ||
| nm_core_tag_t | tag | |
| tag to send to/from (works in combination with tag_mask for recv) | ||
| nm_seq_t | seq | |
| packet sequence number on the given tag | ||
| struct nm_gtag_s * | p_gtag | |
| cache for tag status on gate; NULL if tag or gate is unspecified yet | ||
| int | err | |
| error status of the request | ||
| union { | ||
| struct { | ||
| nm_len_t len | ||
| cumulated data length More... | ||
| nm_len_t done | ||
| cumulated length of data sent so far More... | ||
| nm_len_t hlen | ||
| length of header to send eagerly More... | ||
| nm_prio_t priority | ||
| request priority level More... | ||
| uint32_t checksum | ||
| data checkusm when pack was submitted- for debug only More... | ||
| } pack | ||
| struct { | ||
| nm_len_t expected_len | ||
| length of posted recv (may be updated if matched packet is shorter) More... | ||
| nm_len_t cumulated_len | ||
| amount of data unpacked so far More... | ||
| nm_len_t offset | ||
| offset of data partially received More... | ||
| nm_req_seq_t req_seq | ||
| request sequence number used to interleave wildcard/non-wildcard requests More... | ||
| nm_core_tag_t tag_mask | ||
| mask applied to tag for matching (only bits in mask need to match) More... | ||
| struct nm_matching_container_s matching | ||
| link to store request in a matching map More... | ||
| struct { | ||
| int n_partitions | ||
| struct nm_req_pchunk_s { | ||
| struct nm_req_pchunk_s * p_next | ||
| nm_len_t chunk_offset | ||
| nm_len_t chunk_len | ||
| } p_pchunks | ||
| unsorted list of arrived chunks; reads are lock-free, writes are within core_core_lock sections More... | ||
| } partition | ||
| partitioned unpack, used only if NM_REQ_FLAG_UNPACK_PARTITIONED is set More... | ||
| struct nm_pkt_wrap_s * p_prefetch_pw | ||
| packet wrapper to prefetch recv More... | ||
| } unpack | ||
| }; | ||
| struct nm_req_chunk_s | req_chunk | |
| preallocated chunk for the common case (single-chunk) | ||
Detailed Description
a generic pack/unpack request
Definition at line 482 of file nm_core_interface.h.
Member Function Documentation
◆ PUK_LIST_LINK()
| nm_req_s::PUK_LIST_LINK | ( | nm_req | ) |
link to enqueue req in pending requests lists
Field Documentation
◆ [union]
| union { ... } nm_req_s |
◆ checksum
| uint32_t nm_req_s::checksum |
data checkusm when pack was submitted- for debug only
Definition at line 502 of file nm_core_interface.h.
◆ chunk_len
| nm_len_t nm_req_s::chunk_len |
Definition at line 519 of file nm_core_interface.h.
◆ chunk_offset
| nm_len_t nm_req_s::chunk_offset |
Definition at line 518 of file nm_core_interface.h.
◆ cumulated_len
| nm_len_t nm_req_s::cumulated_len |
amount of data unpacked so far
Definition at line 507 of file nm_core_interface.h.
Referenced by nm_sr_request_get_size().
◆ data
| struct nm_data_s nm_req_s::data |
data descriptor to send/recv
Definition at line 486 of file nm_core_interface.h.
Referenced by nm_req_chunk_init(), and nm_req_chunk_update().
◆ done
| nm_len_t nm_req_s::done |
cumulated length of data sent so far
Definition at line 499 of file nm_core_interface.h.
Referenced by nm_sr_request_get_size().
◆ err
| int nm_req_s::err |
error status of the request
Definition at line 493 of file nm_core_interface.h.
Referenced by nm_sr_request_get_error(), and nm_sr_rwait_data().
◆ expected_len
| nm_len_t nm_req_s::expected_len |
length of posted recv (may be updated if matched packet is shorter)
Definition at line 506 of file nm_core_interface.h.
Referenced by nm_sr_request_get_expected_size().
◆ flags
| nm_req_flag_t nm_req_s::flags |
flags given by user
Definition at line 488 of file nm_core_interface.h.
Referenced by nm_header_init_rdv(), nm_req_chunk_init(), nm_sr_request_get_expected_size(), and nm_sr_request_get_size().
◆ hlen
| nm_len_t nm_req_s::hlen |
length of header to send eagerly
Definition at line 500 of file nm_core_interface.h.
Referenced by nm_core_pack_set_hlen().
◆ len
| nm_len_t nm_req_s::len |
cumulated data length
Definition at line 498 of file nm_core_interface.h.
Referenced by nm_header_init_rdv(), nm_req_chunk_init(), nm_req_chunk_update(), nm_sr_request_get_expected_size(), and nm_tactic_req_is_short().
◆ matching
| struct nm_matching_container_s nm_req_s::matching |
link to store request in a matching map
Definition at line 511 of file nm_core_interface.h.
◆ monitor
| struct nm_monitor_s nm_req_s::monitor |
monitor attached to this request (only 1)
Definition at line 487 of file nm_core_interface.h.
◆ n_partitions
| int nm_req_s::n_partitions |
Definition at line 514 of file nm_core_interface.h.
◆ offset
| nm_len_t nm_req_s::offset |
offset of data partially received
Definition at line 508 of file nm_core_interface.h.
Referenced by nm_status_wait_all().
◆ p_gate
| nm_gate_t nm_req_s::p_gate |
dest/src gate; NULL if recv from any source
Definition at line 489 of file nm_core_interface.h.
Referenced by nm_sr_request_get_gate().
◆ p_gtag
| struct nm_gtag_s* nm_req_s::p_gtag |
cache for tag status on gate; NULL if tag or gate is unspecified yet
Definition at line 492 of file nm_core_interface.h.
◆ p_next
| struct nm_req_pchunk_s* nm_req_s::p_next |
Definition at line 517 of file nm_core_interface.h.
◆ [struct]
| struct { ... } ::nm_req_pchunk_s * nm_req_s::p_pchunks |
unsorted list of arrived chunks; reads are lock-free, writes are within core_core_lock sections
◆ p_prefetch_pw
| struct nm_pkt_wrap_s* nm_req_s::p_prefetch_pw |
packet wrapper to prefetch recv
Definition at line 522 of file nm_core_interface.h.
◆ [struct]
| struct { ... } nm_req_s::pack |
◆ [struct]
| struct { ... } nm_req_s::partition |
partitioned unpack, used only if NM_REQ_FLAG_UNPACK_PARTITIONED is set
◆ priority
| nm_prio_t nm_req_s::priority |
request priority level
Definition at line 501 of file nm_core_interface.h.
Referenced by nm_header_init_rdv().
◆ req_chunk
| struct nm_req_chunk_s nm_req_s::req_chunk |
preallocated chunk for the common case (single-chunk)
Definition at line 525 of file nm_core_interface.h.
Referenced by nm_req_chunk_destroy().
◆ req_seq
| nm_req_seq_t nm_req_s::req_seq |
request sequence number used to interleave wildcard/non-wildcard requests
Definition at line 509 of file nm_core_interface.h.
◆ seq
| nm_seq_t nm_req_s::seq |
packet sequence number on the given tag
Definition at line 491 of file nm_core_interface.h.
Referenced by nm_header_init_rdv().
◆ status
| nm_cond_status_t nm_req_s::status |
status, including status bits and synchronization
Definition at line 485 of file nm_core_interface.h.
Referenced by nm_status_add(), nm_status_destroy(), nm_status_init(), nm_status_signal(), nm_status_test(), nm_status_unset(), nm_status_wait(), and nm_status_wait_all().
◆ tag
| nm_core_tag_t nm_req_s::tag |
tag to send to/from (works in combination with tag_mask for recv)
Definition at line 490 of file nm_core_interface.h.
Referenced by nm_header_init_rdv(), and nm_sr_request_get_tag().
◆ tag_mask
| nm_core_tag_t nm_req_s::tag_mask |
mask applied to tag for matching (only bits in mask need to match)
Definition at line 510 of file nm_core_interface.h.
◆ [struct]
| struct { ... } nm_req_s::unpack |
Referenced by nm_sr_request_get_expected_size(), and nm_sr_request_get_size().
The documentation for this struct was generated from the following file: