
Go to the source code of this file.
Data Structures | |
| struct | nm_header_global_s |
| global header at the beginning of pw More... | |
| struct | nm_header_pkt_data_s |
| struct | nm_header_pkt_data_chunk_s |
| sub-header for pkt_data chunks More... | |
| struct | nm_header_data_s |
| struct | nm_header_short_data_s |
| header for very short data; single chunk assumed (chunk_offset=0, chunk_len=len, FLAG_LASTCHUNK) More... | |
| struct | nm_header_msg_s |
| header for msg matching information only, contains no data; for cases where early information is needed (partitioned) More... | |
| struct | nm_header_ctrl_rdv_s |
| struct | nm_header_ctrl_rtr_s |
| struct | nm_header_ctrl_ack_s |
| struct | nm_header_common_s |
| base header that matches all data/ctrl headers first fields (except header_strat) More... | |
| union | nm_header_ctrl_generic_s |
| a unified control header type More... | |
| union | nm_header_data_generic_s |
| a unified data header type More... | |
| union | nm_header_generic_s |
| a unified header for all types (ctrl/data) More... | |
| struct | nm_header_strat_s |
| header for strategy private packets More... | |
| struct | nm_header_debug_s |
| header for debug messages More... | |
| struct | nm_ctrl_chunk_s |
| a chunk of control data More... | |
Macros | |
| #define | NM_PROTO_ID_MASK 0x0F |
| mask for proto ID part | |
| #define | NM_PROTO_FLAG_MASK 0xF0 |
| mask for proto flags | |
| #define | NM_PROTO_SMALL_DATA 0x01 |
| a chunk of data on small trk | |
| #define | NM_PROTO_SHORT_DATA 0x02 |
| a simplified (short header) chunk of data | |
| #define | NM_PROTO_PKT_DATA 0x03 |
| new optimized packet format | |
| #define | NM_PROTO_RDV 0x04 |
| rendez-vous request | |
| #define | NM_PROTO_RTR 0x05 |
| ready-to-receive, replay to rdv | |
| #define | NM_PROTO_ACK 0x06 |
| an ack for a ssend (sent when receiving first chunk) | |
| #define | NM_PROTO_STRAT 0x07 |
| ctrl chunk for strategy (don't decode in nm core) | |
| #define | NM_PROTO_MSG 0x08 |
| msg matching informations, contains no data chunk | |
| #define | NM_PROTO_DEBUG 0x0F |
| internal debug msg | |
| #define | NM_PROTO_FLAG_LASTCHUNK 0x10 |
| last chunk of data for the given pack | |
| #define | NM_PROTO_FLAG_ALIGNED 0x20 |
| data is 32 bit-aligned in packet | |
| #define | NM_PROTO_FLAG_ACKREQ 0x40 |
| data sent as synchronous send- please send an ack on first chunk | |
| #define | NM_HEADER_PKT_DATA_SIZE sizeof(struct nm_header_pkt_data_s) |
| #define | NM_HEADER_DATA_SIZE nm_aligned(sizeof(struct nm_header_data_s)) |
| #define | NM_HEADER_SHORT_DATA_SIZE nm_aligned(sizeof(struct nm_header_short_data_s)) |
| #define | NM_HEADER_CTRL_SIZE(P_CTRL) nm_header_ctrl_size(P_CTRL) |
Typedefs | |
| typedef union nm_header_ctrl_generic_s | nm_header_ctrl_generic_t |
| typedef union nm_header_data_generic_s | nm_header_data_generic_t |
Variables | |
| uint16_t | v0len |
| size of v0 actually used ( == offset value to reach v[1] ) | |
| nm_proto_t | proto_id |
| proto ID- should be NM_PROTO_PKT_DATA | |
| nm_core_tag_t | tag_id |
| tag for the message | |
| nm_seq_t | seq |
| sequence number | |
| nm_len_t | data_len |
| length of data enclosed | |
| nm_len_t | chunk_offset |
| offset of the enclosed chunk | |
| uint16_t | hlen |
| length in header (header + data in header) | |
| uint16_t | len |
| chunk len | |
| uint16_t | skip |
| skip value for iovec | |
| nm_len_t | msg_len |
| length of the full message | |
| nm_len_t | chunk_len |
| length of this chunk | |
| nm_prio_t | priority |
| int | is_contig_data |
| whether data is contiguous on the sender side | |
| nm_trk_id_t | trk_id |
| index of the track relative to the gate | |
| nm_len_t | payload_size |
| union nm_header_ctrl_generic_s | __attribute__ |
| uint64_t | req |
| a type of debug request; unused for now | |
Macro Definition Documentation
◆ NM_HEADER_CTRL_SIZE
| #define NM_HEADER_CTRL_SIZE | ( | P_CTRL | ) | nm_header_ctrl_size(P_CTRL) |
Definition at line 218 of file nm_headers.h.
◆ NM_HEADER_DATA_SIZE
| #define NM_HEADER_DATA_SIZE nm_aligned(sizeof(struct nm_header_data_s)) |
Definition at line 212 of file nm_headers.h.
◆ NM_HEADER_PKT_DATA_SIZE
| #define NM_HEADER_PKT_DATA_SIZE sizeof(struct nm_header_pkt_data_s) |
Definition at line 209 of file nm_headers.h.
◆ NM_HEADER_SHORT_DATA_SIZE
| #define NM_HEADER_SHORT_DATA_SIZE nm_aligned(sizeof(struct nm_header_short_data_s)) |
Definition at line 215 of file nm_headers.h.
◆ NM_PROTO_ACK
| #define NM_PROTO_ACK 0x06 |
an ack for a ssend (sent when receiving first chunk)
Definition at line 41 of file nm_headers.h.
◆ NM_PROTO_DEBUG
| #define NM_PROTO_DEBUG 0x0F |
internal debug msg
Definition at line 47 of file nm_headers.h.
◆ NM_PROTO_FLAG_ACKREQ
| #define NM_PROTO_FLAG_ACKREQ 0x40 |
data sent as synchronous send- please send an ack on first chunk
Definition at line 54 of file nm_headers.h.
◆ NM_PROTO_FLAG_ALIGNED
| #define NM_PROTO_FLAG_ALIGNED 0x20 |
data is 32 bit-aligned in packet
Definition at line 52 of file nm_headers.h.
◆ NM_PROTO_FLAG_LASTCHUNK
| #define NM_PROTO_FLAG_LASTCHUNK 0x10 |
last chunk of data for the given pack
Definition at line 50 of file nm_headers.h.
◆ NM_PROTO_FLAG_MASK
| #define NM_PROTO_FLAG_MASK 0xF0 |
mask for proto flags
Definition at line 28 of file nm_headers.h.
◆ NM_PROTO_ID_MASK
| #define NM_PROTO_ID_MASK 0x0F |
mask for proto ID part
Definition at line 26 of file nm_headers.h.
◆ NM_PROTO_MSG
| #define NM_PROTO_MSG 0x08 |
msg matching informations, contains no data chunk
Definition at line 45 of file nm_headers.h.
◆ NM_PROTO_PKT_DATA
| #define NM_PROTO_PKT_DATA 0x03 |
new optimized packet format
Definition at line 35 of file nm_headers.h.
◆ NM_PROTO_RDV
| #define NM_PROTO_RDV 0x04 |
rendez-vous request
Definition at line 37 of file nm_headers.h.
◆ NM_PROTO_RTR
| #define NM_PROTO_RTR 0x05 |
ready-to-receive, replay to rdv
Definition at line 39 of file nm_headers.h.
◆ NM_PROTO_SHORT_DATA
| #define NM_PROTO_SHORT_DATA 0x02 |
a simplified (short header) chunk of data
Definition at line 33 of file nm_headers.h.
◆ NM_PROTO_SMALL_DATA
| #define NM_PROTO_SMALL_DATA 0x01 |
a chunk of data on small trk
Definition at line 31 of file nm_headers.h.
◆ NM_PROTO_STRAT
| #define NM_PROTO_STRAT 0x07 |
ctrl chunk for strategy (don't decode in nm core)
Definition at line 43 of file nm_headers.h.
Typedef Documentation
◆ nm_header_ctrl_generic_t
| typedef union nm_header_ctrl_generic_s nm_header_ctrl_generic_t |
Definition at line 187 of file nm_headers.h.
◆ nm_header_data_generic_t
| typedef union nm_header_data_generic_s nm_header_data_generic_t |
Definition at line 188 of file nm_headers.h.
Function Documentation
◆ __attribute__()
| struct nm_header_global_s __attribute__ | ( | (packed) | ) |
◆ nm_header_ctrl_size()
|
inlinestatic |
Definition at line 221 of file nm_headers.h.
References nm_header_ctrl_generic_s::generic, NM_FATAL, NM_PROTO_ACK, NM_PROTO_ID_MASK, NM_PROTO_MSG, NM_PROTO_RDV, NM_PROTO_RTR, and nm_header_common_s::proto_id.
◆ nm_header_init_ack()
|
inlinestatic |
Definition at line 312 of file nm_headers.h.
References nm_header_ctrl_generic_s::ack, NM_PROTO_ACK, nm_header_ctrl_ack_s::proto_id, seq, nm_header_ctrl_ack_s::seq, tag, and nm_header_ctrl_ack_s::tag_id.
Referenced by nm_core_post_ack().
◆ nm_header_init_data()
|
inlinestatic |
Definition at line 255 of file nm_headers.h.
References chunk_offset, nm_header_data_s::chunk_offset, flags, len, nm_header_data_s::len, NM_PROTO_ID_MASK, NM_PROTO_SMALL_DATA, nm_header_data_s::proto_id, seq, nm_header_data_s::seq, skip, nm_header_data_s::skip, tag_id, and nm_header_data_s::tag_id.
◆ nm_header_init_debug()
|
inlinestatic |
Definition at line 319 of file nm_headers.h.
References NM_PROTO_DEBUG, nm_header_debug_s::proto_id, req, and nm_header_debug_s::req.
◆ nm_header_init_msg()
|
inlinestatic |
Definition at line 276 of file nm_headers.h.
References nm_header_ctrl_generic_s::msg, msg_len, nm_header_msg_s::msg_len, NM_PROTO_MSG, nm_header_msg_s::proto_id, seq, nm_header_msg_s::seq, tag_id, and nm_header_msg_s::tag_id.
Referenced by nm_core_post_msg().
◆ nm_header_init_pkt_data()
|
inlinestatic |
Definition at line 243 of file nm_headers.h.
References chunk_offset, nm_header_pkt_data_s::chunk_offset, nm_header_pkt_data_s::data_len, flags, nm_header_pkt_data_s::hlen, len, NM_HEADER_PKT_DATA_SIZE, NM_PROTO_ID_MASK, NM_PROTO_PKT_DATA, nm_header_pkt_data_s::proto_id, seq, nm_header_pkt_data_s::seq, tag_id, and nm_header_pkt_data_s::tag_id.
◆ nm_header_init_rdv()
|
inlinestatic |
Definition at line 284 of file nm_headers.h.
References chunk_len, nm_header_ctrl_rdv_s::chunk_len, chunk_offset, nm_header_ctrl_rdv_s::chunk_offset, nm_req_s::flags, is_contig_data, nm_header_ctrl_rdv_s::is_contig_data, nm_req_s::len, nm_header_ctrl_rdv_s::msg_len, NM_PROTO_FLAG_ACKREQ, NM_PROTO_ID_MASK, NM_PROTO_RDV, NM_REQ_FLAG_PACK_SYNCHRONOUS, nm_req_s::pack, nm_req_s::priority, nm_header_ctrl_rdv_s::priority, nm_header_ctrl_rdv_s::proto_id, nm_header_ctrl_generic_s::rdv, nm_req_s::seq, nm_header_ctrl_rdv_s::seq, nm_req_s::tag, and nm_header_ctrl_rdv_s::tag_id.
◆ nm_header_init_rtr()
|
inlinestatic |
Definition at line 300 of file nm_headers.h.
References chunk_len, nm_header_ctrl_rtr_s::chunk_len, chunk_offset, nm_header_ctrl_rtr_s::chunk_offset, NM_PROTO_RTR, payload_size, nm_header_ctrl_rtr_s::payload_size, nm_header_ctrl_rtr_s::proto_id, nm_header_ctrl_generic_s::rtr, seq, nm_header_ctrl_rtr_s::seq, tag, nm_header_ctrl_rtr_s::tag_id, trk_id, and nm_header_ctrl_rtr_s::trk_id.
Referenced by nm_core_post_rtr().
◆ nm_header_init_short_data()
|
inlinestatic |
Definition at line 267 of file nm_headers.h.
References len, nm_header_short_data_s::len, NM_PROTO_FLAG_LASTCHUNK, NM_PROTO_SHORT_DATA, nm_header_short_data_s::proto_id, seq, nm_header_short_data_s::seq, tag_id, and nm_header_short_data_s::tag_id.
◆ PUK_ALLOCATOR_TYPE_SINGLE()
| PUK_ALLOCATOR_TYPE_SINGLE | ( | nm_ctrl_chunk | , |
| struct nm_ctrl_chunk_s | |||
| ) |
allocator for control chunks
- Note
- single-threaded, needs core lock
◆ PUK_LIST_CREATE_FUNCS()
| PUK_LIST_CREATE_FUNCS | ( | nm_ctrl_chunk | ) |
◆ PUK_LIST_DECLARE_TYPE()
| PUK_LIST_DECLARE_TYPE | ( | nm_ctrl_chunk | ) |
Variable Documentation
◆ __attribute__
| struct nm_ctrl_chunk_s __attribute__ |
◆ chunk_len
| nm_len_t chunk_len |
length of this chunk
Definition at line 4 of file nm_headers.h.
Referenced by nm_core_post_rtr(), nm_data_excerpt_build(), nm_header_init_rdv(), nm_header_init_rtr(), nm_req_chunk_init(), and nm_tactic_req_data_max_size().
◆ chunk_offset
| nm_len_t chunk_offset |
offset of the enclosed chunk
offset of this chunk relative to full message
Definition at line 4 of file nm_headers.h.
Referenced by nm_core_post_rtr(), nm_data_excerpt_build(), nm_header_init_data(), nm_header_init_pkt_data(), nm_header_init_rdv(), nm_header_init_rtr(), and nm_req_chunk_init().
◆ data_len
| nm_len_t data_len |
length of data enclosed
Definition at line 3 of file nm_headers.h.
◆ hlen
| uint16_t hlen |
length in header (header + data in header)
Definition at line 5 of file nm_headers.h.
Referenced by nm_core_pack_set_hlen(), nm_rpc_recv_header(), nm_rpc_send(), and nm_sr_send_header().
◆ is_contig_data
| int is_contig_data |
whether data is contiguous on the sender side
Definition at line 7 of file nm_headers.h.
Referenced by nm_header_init_rdv().
◆ len
| uint8_t len |
chunk len
- Examples
- nm_bench_req_monitor.c, nm_rpc_hello.c, nm_sr_custom_data.c, nm_sr_hello.c, and nm_sr_peek.c.
Definition at line 0 of file nm_headers.h.
Referenced by _next(), clear_buffer(), control_buffer(), fill_buffer(), nm_data_contiguous_build(), nm_data_memcpy(), nm_data_memcpy_from(), nm_data_memcpy_to(), nm_datav_add_chunk(), nm_header_init_data(), nm_header_init_pkt_data(), nm_header_init_short_data(), nm_minidriver_recv(), nm_minidriver_recv_pkt_build(), nm_minidriver_recv_rdv(), nm_minidriver_send(), nm_minidriver_send_pkt_build(), nm_minidriver_send_rdv(), nm_rpc_irecv_body(), nm_sr_irecv(), nm_sr_irecv_with_ref(), nm_sr_isend(), nm_sr_isend_with_ref(), nm_sr_issend(), nm_sr_recv(), nm_sr_recv_unpack_contiguous(), nm_sr_rsend(), nm_sr_send(), and nm_sr_send_pack_contiguous().
◆ msg_len
| nm_len_t msg_len |
length of the full message
Definition at line 3 of file nm_headers.h.
Referenced by nm_core_post_msg(), and nm_header_init_msg().
◆ payload_size
| nm_len_t payload_size |
Definition at line 6 of file nm_headers.h.
Referenced by nm_core_post_ctrl(), and nm_header_init_rtr().
◆ priority
| nm_prio_t priority |
Definition at line 6 of file nm_headers.h.
Referenced by nm_rpc_req_set_priority(), and nm_sr_send_set_priority().
◆ proto_id
| nm_proto_t proto_id |
proto ID- should be NM_PROTO_PKT_DATA
proto ID- should be NM_PROTO_ACK
proto ID- should be NM_PROTO_RTR
proto ID- should be NM_PROTO_RDV
proto ID- should be NM_PROTO_MSG
proto ID- should be NM_PROTO_SHORT_DATA
proto ID- should be NM_PROTO_SMALL_DATA
Definition at line 0 of file nm_headers.h.
◆ req
| uint64_t req |
a type of debug request; unused for now
- Examples
- nm_onesided_queues.c, and nm_onesided_simple.c.
Definition at line 1 of file nm_headers.h.
Referenced by nm_header_init_debug().
◆ seq
| nm_seq_t seq |
sequence number
Definition at line 2 of file nm_headers.h.
Referenced by nm_core_post_ack(), nm_core_post_msg(), nm_core_post_rtr(), nm_header_init_ack(), nm_header_init_data(), nm_header_init_msg(), nm_header_init_pkt_data(), nm_header_init_rtr(), nm_header_init_short_data(), nm_mpi_rma_create_usertag(), nm_mpi_rma_seq_to_tag(), and nm_seq_next().
◆ skip
| uint16_t skip |
skip value for iovec
skip offset for data buffer, relative to v0 end (0xFFFF for inline data)
Definition at line 1 of file nm_headers.h.
Referenced by nm_header_init_data().
◆ tag_id
| nm_core_tag_t tag_id |
tag for the message
tag of the acknowledged data
Definition at line 1 of file nm_headers.h.
Referenced by nm_header_init_data(), nm_header_init_msg(), nm_header_init_pkt_data(), and nm_header_init_short_data().
◆ trk_id
| nm_trk_id_t trk_id |
index of the track relative to the gate
Definition at line 3 of file nm_headers.h.
Referenced by nm_core_post_rtr(), nm_header_init_rtr(), and nm_pw_assign().
◆ v0len
| uint16_t v0len |
size of v0 actually used ( == offset value to reach v[1] )
Definition at line 0 of file nm_headers.h.
Referenced by nm_header_global_finalize().