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 More... | |
Data Fields | |
nm_cond_status_t | status |
status, including status bits and synchronization More... | |
struct nm_data_s | data |
data descriptor to send/recv More... | |
struct nm_monitor_s | monitor |
monitor attached to this request (only 1) More... | |
nm_req_flag_t | flags |
flags given by user More... | |
nm_gate_t | p_gate |
dest/src gate; NULL if recv from any source More... | |
nm_core_tag_t | tag |
tag to send to/from (works in combination with tag_mask for recv) More... | |
nm_seq_t | seq |
packet sequence number on the given tag More... | |
struct nm_gtag_s * | p_gtag |
cache for tag status on gate; NULL if tag or gate is unspecified yet More... | |
int | err |
error status of the request More... | |
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) More... | |
a generic pack/unpack request
Definition at line 399 of file nm_core_interface.h.
nm_req_s::PUK_LIST_LINK | ( | nm_req | ) |
link to enqueue req in pending requests lists
union { ... } nm_req_s::@19 |
uint32_t nm_req_s::checksum |
data checkusm when pack was submitted- for debug only
Definition at line 419 of file nm_core_interface.h.
nm_len_t nm_req_s::chunk_len |
Definition at line 436 of file nm_core_interface.h.
nm_len_t nm_req_s::chunk_offset |
Definition at line 435 of file nm_core_interface.h.
nm_len_t nm_req_s::cumulated_len |
amount of data unpacked so far
Definition at line 424 of file nm_core_interface.h.
Referenced by nm_sr_request_get_size().
struct nm_data_s nm_req_s::data |
data descriptor to send/recv
Definition at line 403 of file nm_core_interface.h.
Referenced by nm_req_chunk_init(), and nm_tactic_req_data_density().
nm_len_t nm_req_s::done |
cumulated length of data sent so far
Definition at line 416 of file nm_core_interface.h.
Referenced by nm_sr_request_get_size().
int nm_req_s::err |
error status of the request
Definition at line 410 of file nm_core_interface.h.
Referenced by nm_sr_request_get_error(), and nm_sr_rwait_data().
nm_len_t nm_req_s::expected_len |
length of posted recv (may be updated if matched packet is shorter)
Definition at line 423 of file nm_core_interface.h.
Referenced by nm_sr_request_get_expected_size().
nm_req_flag_t nm_req_s::flags |
flags given by user
Definition at line 405 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().
nm_len_t nm_req_s::hlen |
length of header to send eagerly
Definition at line 417 of file nm_core_interface.h.
Referenced by nm_core_pack_set_hlen().
nm_len_t nm_req_s::len |
cumulated data length
Definition at line 415 of file nm_core_interface.h.
Referenced by nm_header_init_rdv(), nm_req_chunk_init(), nm_sr_request_get_expected_size(), and nm_tactic_req_is_short().
struct nm_matching_container_s nm_req_s::matching |
link to store request in a matching map
Definition at line 428 of file nm_core_interface.h.
struct nm_monitor_s nm_req_s::monitor |
monitor attached to this request (only 1)
Definition at line 404 of file nm_core_interface.h.
int nm_req_s::n_partitions |
Definition at line 431 of file nm_core_interface.h.
nm_len_t nm_req_s::offset |
offset of data partially received
Definition at line 425 of file nm_core_interface.h.
Referenced by nm_status_wait_all().
nm_gate_t nm_req_s::p_gate |
dest/src gate; NULL if recv from any source
Definition at line 406 of file nm_core_interface.h.
Referenced by nm_sr_request_get_gate().
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 409 of file nm_core_interface.h.
struct nm_req_pchunk_s* nm_req_s::p_next |
Definition at line 434 of file nm_core_interface.h.
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
struct nm_pkt_wrap_s* nm_req_s::p_prefetch_pw |
packet wrapper to prefetch recv
Definition at line 439 of file nm_core_interface.h.
struct { ... } nm_req_s::pack |
struct { ... } nm_req_s::partition |
partitioned unpack, used only if NM_REQ_FLAG_UNPACK_PARTITIONED is set
nm_prio_t nm_req_s::priority |
request priority level
Definition at line 418 of file nm_core_interface.h.
Referenced by nm_header_init_rdv().
struct nm_req_chunk_s nm_req_s::req_chunk |
preallocated chunk for the common case (single-chunk)
Definition at line 442 of file nm_core_interface.h.
Referenced by nm_req_chunk_destroy().
nm_req_seq_t nm_req_s::req_seq |
request sequence number used to interleave wildcard/non-wildcard requests
Definition at line 426 of file nm_core_interface.h.
nm_seq_t nm_req_s::seq |
packet sequence number on the given tag
Definition at line 408 of file nm_core_interface.h.
Referenced by nm_header_init_rdv().
nm_cond_status_t nm_req_s::status |
status, including status bits and synchronization
Definition at line 402 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().
nm_core_tag_t nm_req_s::tag |
tag to send to/from (works in combination with tag_mask for recv)
Definition at line 407 of file nm_core_interface.h.
Referenced by nm_header_init_rdv(), and nm_sr_request_get_tag().
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 427 of file nm_core_interface.h.
struct { ... } nm_req_s::unpack |
Referenced by nm_sr_request_get_expected_size(), and nm_sr_request_get_size().