libcoap 4.3.5-develop-c46c64b
Loading...
Searching...
No Matches
coap_block_internal.h File Reference

CoAP block internal information. More...

+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  coap_lg_range
 
struct  coap_rblock_t
 Structure to keep track of received blocks. More...
 
struct  coap_l_block1_t
 Structure to keep track of block1 specific information (Requests) More...
 
struct  coap_l_block2_t
 Structure to keep track of block2 specific information (Responses) More...
 
struct  coap_lg_xmit_data_t
 
struct  coap_lg_xmit_t
 Structure to hold large body (many blocks) transmission information. More...
 

Macros

#define STATE_MAX_BLK_CNT_BITS   20
 
#define STATE_TOKEN_BASE(t)   ((t) & (0xffffffffffffffffULL >> STATE_MAX_BLK_CNT_BITS))
 
#define STATE_TOKEN_RETRY(t)   ((uint64_t)(t) >> (64 - STATE_MAX_BLK_CNT_BITS))
 
#define STATE_TOKEN_FULL(t, r)   (STATE_TOKEN_BASE(t) + ((uint64_t)(r) << (64 - STATE_MAX_BLK_CNT_BITS)))
 
#define COAP_BLOCK_SET_MASK
 
#define COAP_BLOCK_MAX_SIZE_MASK   0x7000000 /* (svr)Mask to get the max supported block size */
 
#define COAP_BLOCK_MAX_SIZE_SHIFT   24 /* (svr)Mask shift to get the max supported block size */
 
#define COAP_BLOCK_MAX_SIZE_GET(a)   (((a) & COAP_BLOCK_MAX_SIZE_MASK) >> COAP_BLOCK_MAX_SIZE_SHIFT)
 
#define COAP_BLOCK_MAX_SIZE_SET(a)   (((a) << COAP_BLOCK_MAX_SIZE_SHIFT) & COAP_BLOCK_MAX_SIZE_MASK)
 
#define COAP_SINGLE_BLOCK_OR_Q   (COAP_BLOCK_SINGLE_BODY)
 
#define COAP_RBLOCK_CNT   4
 
#define coap_check_update_token(a, b)
 

Typedefs

typedef struct coap_rblock_t coap_rblock_t
 Structure to keep track of received blocks.
 
typedef struct coap_l_block1_t coap_l_block1_t
 Structure to keep track of block1 specific information (Requests)
 
typedef struct coap_l_block2_t coap_l_block2_t
 Structure to keep track of block2 specific information (Responses)
 
typedef struct coap_lg_xmit_data_t coap_lg_xmit_data_t
 

Enumerations

enum  coap_recurse_t { COAP_RECURSE_OK , COAP_RECURSE_NO }
 

Functions

coap_lg_xmit_tcoap_find_lg_xmit (coap_session_t *session, coap_pdu_t *pdu)
 Find the current lg_xmit for the session that matches the pdu.
 
void coap_block_delete_lg_xmit (coap_session_t *session, coap_lg_xmit_t *lg_xmit)
 
int coap_block_check_lg_xmit_timeouts (coap_session_t *session, coap_tick_t now, coap_tick_t *tim_rem)
 
void coap_check_code_lg_xmit (const coap_session_t *session, const coap_pdu_t *request, coap_pdu_t *response, const coap_resource_t *resource, const coap_string_t *query)
 The function checks that the code in a newly formed lg_xmit created by coap_add_data_large_response_lkd() is updated.
 
void coap_context_set_block_mode_lkd (coap_context_t *context, uint32_t block_mode)
 Set the context level CoAP block handling bits for handling RFC7959.
 
int coap_context_set_max_block_size_lkd (coap_context_t *context, size_t max_block_size)
 Set the context level maximum block size that the server supports when sending or receiving packets with Block1 or Block2 options.
 
coap_binary_tcoap_block_build_body_lkd (coap_binary_t *body_data, size_t length, const uint8_t *data, size_t offset, size_t total)
 Re-assemble payloads into a body.
 

Detailed Description

CoAP block internal information.

Definition in file coap_block_internal.h.