|
iPXE
|
A PeerDist block download. More...
#include <peerblk.h>
Data Fields | |
| struct refcnt | refcnt |
| Reference count. | |
| struct interface | xfer |
| Data transfer interface. | |
| struct interface | raw |
| Raw data interface. | |
| struct interface | retrieval |
| Retrieval protocol interface. | |
| struct uri * | uri |
| Original URI. | |
| struct peerdist_range | range |
| Content range of this block. | |
| struct peerdist_range | trim |
| Trimmed range of this block. | |
| size_t | offset |
| Offset of first byte in trimmed range within overall download. | |
| struct digest_algorithm * | digest |
| Digest algorithm. | |
| size_t | digestsize |
| Digest size. | |
| void * | digestctx |
| Digest context (statically allocated at instantiation time) | |
| struct cipher_algorithm * | cipher |
| Cipher algorithm. | |
| void * | cipherctx |
| Cipher context (dynamically allocated as needed) | |
| unsigned int | segment |
| Segment index. | |
| uint8_t | id [PEERDIST_DIGEST_MAX_SIZE] |
| Segment identifier. | |
| uint8_t | secret [PEERDIST_DIGEST_MAX_SIZE] |
| Segment secret. | |
| unsigned int | block |
| Block index. | |
| uint8_t | hash [PEERDIST_DIGEST_MAX_SIZE] |
| Block hash. | |
| size_t | pos |
| Current position (relative to incoming data stream) | |
| size_t | start |
| Start of trimmed content (relative to incoming data stream) | |
| size_t | end |
| End of trimmed content (relative to incoming data stream) | |
| struct xfer_buffer | buffer |
| Data buffer. | |
| struct process | process |
| Decryption process. | |
| struct peerdist_block_decrypt | decrypt [PEERBLK_NUM_BUFFERS] |
| Decryption data buffer descriptors. | |
| size_t | cipher_remaining |
| Remaining decryption length. | |
| size_t | digest_remaining |
| Remaining digest length (excluding AES padding bytes) | |
| struct peerdisc_client | discovery |
| Discovery client. | |
| struct peerdisc_peer * | peer |
| Current position in discovered peer list. | |
| struct peerdist_block_queue * | queue |
| Block download queue. | |
| struct list_head | queued |
| List of queued block downloads. | |
| struct retry_timer | timer |
| Retry timer. | |
| unsigned int | cycles |
| Number of full attempt cycles completed. | |
| int | rc |
| Most recent attempt failure. | |
| unsigned long | started |
| Time at which block download was started. | |
| unsigned long | attempted |
| Time at which most recent attempt was started. | |
| struct refcnt peerdist_block::refcnt |
| struct interface peerdist_block::xfer |
Data transfer interface.
Definition at line 51 of file peerblk.h.
Referenced by peerblk_close(), peerblk_decrypt(), peerblk_deliver(), peerblk_done(), and peerblk_open().
| struct interface peerdist_block::raw |
Raw data interface.
Definition at line 53 of file peerblk.h.
Referenced by peerblk_close(), peerblk_open(), peerblk_raw_close(), peerblk_raw_open(), peerblk_raw_rx(), and peerblk_reset().
| struct interface peerdist_block::retrieval |
Retrieval protocol interface.
Definition at line 55 of file peerblk.h.
Referenced by peerblk_close(), peerblk_open(), peerblk_reset(), peerblk_retrieval_close(), peerblk_retrieval_open(), and peerblk_retrieval_rx().
| struct uri* peerdist_block::uri |
Original URI.
Definition at line 58 of file peerblk.h.
Referenced by peerblk_free(), peerblk_open(), and peerblk_raw_open().
| struct peerdist_range peerdist_block::range |
Content range of this block.
Definition at line 60 of file peerblk.h.
Referenced by peerblk_open(), peerblk_parse_block(), peerblk_raw_open(), peerblk_raw_rx(), and peerblk_reset().
| struct peerdist_range peerdist_block::trim |
Trimmed range of this block.
Definition at line 62 of file peerblk.h.
Referenced by peerblk_open(), and peerblk_reset().
| size_t peerdist_block::offset |
Offset of first byte in trimmed range within overall download.
Definition at line 64 of file peerblk.h.
Referenced by peerblk_offset(), and peerblk_open().
| struct digest_algorithm* peerdist_block::digest |
Digest algorithm.
Definition at line 67 of file peerblk.h.
Referenced by peerblk_decrypt(), peerblk_done(), peerblk_open(), peerblk_raw_rx(), and peerblk_reset().
| size_t peerdist_block::digestsize |
Digest size.
Note that this may be shorter than the digest size of the digest algorithm.
Definition at line 73 of file peerblk.h.
Referenced by peerblk_done(), peerblk_open(), peerblk_parse_block(), peerblk_parse_header(), peerblk_parse_iv(), peerblk_parse_useless(), and peerblk_retrieval_open().
| void* peerdist_block::digestctx |
Digest context (statically allocated at instantiation time)
Definition at line 75 of file peerblk.h.
Referenced by peerblk_decrypt(), peerblk_done(), peerblk_open(), peerblk_raw_rx(), and peerblk_reset().
| struct cipher_algorithm* peerdist_block::cipher |
Cipher algorithm.
Definition at line 78 of file peerblk.h.
Referenced by peerblk_decrypt(), peerblk_parse_header(), peerblk_parse_iv(), peerblk_reset(), and peerblk_retrieval_close().
| void* peerdist_block::cipherctx |
Cipher context (dynamically allocated as needed)
Definition at line 80 of file peerblk.h.
Referenced by peerblk_decrypt(), peerblk_free(), peerblk_parse_header(), peerblk_parse_iv(), and peerblk_reset().
| unsigned int peerdist_block::segment |
Segment index.
Definition at line 83 of file peerblk.h.
Referenced by peerblk_decrypt(), peerblk_deliver(), peerblk_done(), peerblk_expired(), peerblk_open(), peerblk_parse_block(), peerblk_parse_header(), peerblk_parse_iv(), peerblk_parse_useless(), peerblk_raw_open(), peerblk_retrieval_close(), peerblk_retrieval_open(), and peerblk_retrieval_rx().
| uint8_t peerdist_block::id[PEERDIST_DIGEST_MAX_SIZE] |
Segment identifier.
Definition at line 85 of file peerblk.h.
Referenced by peerblk_open(), peerblk_parse_block(), and peerblk_retrieval_open().
| uint8_t peerdist_block::secret[PEERDIST_DIGEST_MAX_SIZE] |
Segment secret.
Definition at line 87 of file peerblk.h.
Referenced by peerblk_open(), and peerblk_parse_header().
| unsigned int peerdist_block::block |
Block index.
Definition at line 89 of file peerblk.h.
Referenced by peerblk_decrypt(), peerblk_deliver(), peerblk_done(), peerblk_expired(), peerblk_open(), peerblk_parse_block(), peerblk_parse_header(), peerblk_parse_iv(), peerblk_parse_useless(), peerblk_raw_open(), peerblk_retrieval_close(), peerblk_retrieval_open(), and peerblk_retrieval_rx().
| uint8_t peerdist_block::hash[PEERDIST_DIGEST_MAX_SIZE] |
Block hash.
Definition at line 91 of file peerblk.h.
Referenced by peerblk_done(), and peerblk_open().
| size_t peerdist_block::pos |
Current position (relative to incoming data stream)
Definition at line 94 of file peerblk.h.
Referenced by peerblk_offset(), peerblk_raw_rx(), peerblk_reset(), and peerblk_retrieval_rx().
| size_t peerdist_block::start |
Start of trimmed content (relative to incoming data stream)
Definition at line 96 of file peerblk.h.
Referenced by peerblk_deliver(), peerblk_offset(), peerblk_parse_block(), peerblk_reset(), peerblk_retrieval_open(), and peerblk_retrieval_rx().
| size_t peerdist_block::end |
End of trimmed content (relative to incoming data stream)
Definition at line 98 of file peerblk.h.
Referenced by peerblk_deliver(), peerblk_parse_block(), peerblk_reset(), peerblk_retrieval_open(), and peerblk_retrieval_rx().
| struct xfer_buffer peerdist_block::buffer |
Data buffer.
Definition at line 100 of file peerblk.h.
Referenced by peerblk_open(), peerblk_parse_block(), peerblk_parse_header(), peerblk_parse_iv(), peerblk_parse_useless(), peerblk_reset(), and peerblk_retrieval_rx().
| struct process peerdist_block::process |
Decryption process.
Definition at line 103 of file peerblk.h.
Referenced by peerblk_open(), peerblk_reset(), and peerblk_retrieval_close().
| struct peerdist_block_decrypt peerdist_block::decrypt[PEERBLK_NUM_BUFFERS] |
Decryption data buffer descriptors.
Definition at line 105 of file peerblk.h.
Referenced by peerblk_decrypt(), peerblk_decrypt_read(), peerblk_decrypt_write(), and peerblk_parse_block().
| size_t peerdist_block::cipher_remaining |
Remaining decryption length.
Definition at line 107 of file peerblk.h.
Referenced by peerblk_decrypt(), peerblk_parse_block(), and peerblk_retrieval_close().
| size_t peerdist_block::digest_remaining |
Remaining digest length (excluding AES padding bytes)
Definition at line 109 of file peerblk.h.
Referenced by peerblk_decrypt(), and peerblk_parse_block().
| struct peerdisc_client peerdist_block::discovery |
Discovery client.
Definition at line 112 of file peerblk.h.
Referenced by peerblk_close(), peerblk_discovered(), peerblk_done(), peerblk_expired(), and peerblk_open().
| struct peerdisc_peer* peerdist_block::peer |
Current position in discovered peer list.
Definition at line 114 of file peerblk.h.
Referenced by peerblk_discovered(), peerblk_done(), and peerblk_expired().
| struct peerdist_block_queue* peerdist_block::queue |
Block download queue.
Definition at line 116 of file peerblk.h.
Referenced by peerblk_dequeue(), peerblk_enqueue(), and peerblk_reset().
| struct list_head peerdist_block::queued |
List of queued block downloads.
Definition at line 118 of file peerblk.h.
Referenced by peerblk_dequeue(), peerblk_enqueue(), peerblk_open(), and peerblk_step().
| struct retry_timer peerdist_block::timer |
Retry timer.
Definition at line 120 of file peerblk.h.
Referenced by peerblk_discovered(), peerblk_done(), peerblk_open(), peerblk_raw_open(), peerblk_raw_rx(), peerblk_reset(), peerblk_retrieval_close(), peerblk_retrieval_open(), and peerblk_retrieval_rx().
| unsigned int peerdist_block::cycles |
Number of full attempt cycles completed.
Definition at line 122 of file peerblk.h.
Referenced by peerblk_expired().
| int peerdist_block::rc |
Most recent attempt failure.
Definition at line 124 of file peerblk.h.
Referenced by peerblk_done(), peerblk_expired(), peerblk_raw_open(), and peerblk_retrieval_open().
| unsigned long peerdist_block::started |
Time at which block download was started.
Definition at line 127 of file peerblk.h.
Referenced by peerblk_close(), peerblk_discovered(), peerblk_expired(), and peerblk_open().
| unsigned long peerdist_block::attempted |
Time at which most recent attempt was started.
Definition at line 129 of file peerblk.h.
Referenced by peerblk_done(), and peerblk_expired().