libcoap 4.3.5-develop-19cef11
coap_session_t Struct Reference

Abstraction of virtual session that can be attached to coap_context_t (client) or coap_endpoint_t (server). More...

#include <coap_session_internal.h>

+ Collaboration diagram for coap_session_t:

Data Fields

coap_proto_t proto
 protocol used More...
 
coap_session_type_t type
 client or server side socket More...
 
coap_session_state_t state
 current state of relationship with peer More...
 
unsigned ref
 reference count from queues More...
 
size_t tls_overhead
 overhead of TLS layer More...
 
size_t mtu
 path or CSM mtu (xmt) More...
 
size_t csm_rcv_mtu
 CSM mtu (rcv) More...
 
coap_addr_hash_t addr_hash
 Address hash for server incoming packets. More...
 
UT_hash_handle hh
 
coap_addr_tuple_t addr_info
 remote/local address info More...
 
int ifindex
 interface index More...
 
coap_socket_t sock
 socket object for the session, if any More...
 
coap_endpoint_tendpoint
 session's endpoint More...
 
coap_context_tcontext
 session's context More...
 
void * tls
 security parameters More...
 
uint16_t tx_mid
 the last message id that was used in this session More...
 
uint8_t con_active
 Active CON request sent. More...
 
uint8_t csm_block_supported
 CSM TCP blocks supported. More...
 
coap_mid_t last_ping_mid
 the last keepalive message id that was used in this session More...
 
coap_queue_tdelayqueue
 list of delayed messages waiting to be sent More...
 
coap_lg_xmit_tlg_xmit
 list of large transmissions More...
 
coap_lg_crcv_tlg_crcv
 Client list of expected large receives. More...
 
coap_lg_srcv_tlg_srcv
 Server list of expected large receives. More...
 
size_t partial_write
 if > 0 indicates number of bytes already written from the pdu at the head of sendqueue More...
 
uint8_t read_header [8]
 storage space for header of incoming message header More...
 
size_t partial_read
 if > 0 indicates number of bytes already read for an incoming message More...
 
coap_pdu_tpartial_pdu
 incomplete incoming pdu More...
 
coap_tick_t last_rx_tx
 
coap_tick_t last_tx_rst
 
coap_tick_t last_ping
 
coap_tick_t last_pong
 
coap_tick_t csm_tx
 
coap_dtls_cpsk_t cpsk_setup_data
 client provided PSK initial setup data More...
 
coap_bin_const_tpsk_identity
 If client, this field contains the current identity for server; When this field is NULL, the current identity is contained in cpsk_setup_data. More...
 
coap_bin_const_tpsk_key
 If client, this field contains the current pre-shared key for server; When this field is NULL, the current key is contained in cpsk_setup_data. More...
 
coap_bin_const_tpsk_hint
 If client, this field contains the server provided identity hint. More...
 
void * app
 application-specific data More...
 
coap_fixed_point_t ack_timeout
 timeout waiting for ack (default 2.0 secs) More...
 
coap_fixed_point_t ack_random_factor
 ack random factor backoff (default 1.5) More...
 
uint16_t max_retransmit
 maximum re-transmit count (default 4) More...
 
uint16_t nstart
 maximum concurrent confirmable xmits (default 1) More...
 
coap_fixed_point_t default_leisure
 Mcast leisure time (default 5.0 secs) More...
 
uint32_t probing_rate
 Max transfer wait when remote is not respoding (default 1 byte/sec) More...
 
unsigned int dtls_timeout_count
 dtls setup retry counter More...
 
int dtls_event
 Tracking any (D)TLS events on this session. More...
 
uint32_t tx_rtag
 Next Request-Tag number to use. More...
 
uint32_t block_mode
 Zero or more COAP_BLOCK_ or'd options. More...
 
uint8_t csm_bert_rem_support
 CSM TCP BERT blocks supported (remote) More...
 
uint8_t csm_bert_loc_support
 CSM TCP BERT blocks supported (local) More...
 
uint8_t doing_first
 Set if doing client's first request. More...
 
uint8_t proxy_session
 Set if this is an ongoing proxy session. More...
 
uint8_t delay_recursive
 Set if in coap_client_delay_first() More...
 
uint8_t no_observe_cancel
 Set if do not cancel observe on session close. More...
 
uint8_t csm_not_seen
 Set if timeout waiting for CSM. More...
 
volatile uint8_t max_token_checked
 Check for max token size coap_ext_token_check_t. More...
 
uint8_t negotiated_cid
 Set for a client if CID negotiated. More...
 
uint8_t doing_send_recv
 Set if coap_send_recv() active. More...
 
uint8_t is_dtls13
 Set if session is DTLS1.3. More...
 
coap_mid_t remote_test_mid
 mid used for checking remote support More...
 
uint32_t max_token_size
 Largest token size supported RFC8974. More...
 
uint64_t tx_token
 Next token number to use. More...
 
coap_bin_const_tlast_token
 
coap_bin_const_techo
 last token used to make a request More...
 
coap_mid_t last_ack_mid
 The last ACK mid that has been been processed. More...
 
coap_mid_t last_con_mid
 The last CON mid that has been been processed. More...
 
coap_response_t last_con_handler_res
 The result of calling the response handler of the last CON. More...
 
coap_bin_const_tclient_cid
 Contains client CID or NULL. More...
 
coap_pdu_tresp_pdu
 PDU returned in coap_send_recv() call. More...
 
coap_bin_const_treq_token
 Token in request pdu of coap_send_recv() More...
 

Detailed Description

Abstraction of virtual session that can be attached to coap_context_t (client) or coap_endpoint_t (server).

Definition at line 68 of file coap_session_internal.h.

Field Documentation

◆ ack_random_factor

coap_fixed_point_t coap_session_t::ack_random_factor

ack random factor backoff (default 1.5)

Definition at line 148 of file coap_session_internal.h.

◆ ack_timeout

coap_fixed_point_t coap_session_t::ack_timeout

timeout waiting for ack (default 2.0 secs)

Definition at line 146 of file coap_session_internal.h.

◆ addr_hash

coap_addr_hash_t coap_session_t::addr_hash

Address hash for server incoming packets.

Definition at line 77 of file coap_session_internal.h.

◆ addr_info

coap_addr_tuple_t coap_session_t::addr_info

remote/local address info

Definition at line 79 of file coap_session_internal.h.

◆ app

void* coap_session_t::app

application-specific data

Definition at line 145 of file coap_session_internal.h.

◆ block_mode

uint32_t coap_session_t::block_mode

Zero or more COAP_BLOCK_ or'd options.

Definition at line 179 of file coap_session_internal.h.

◆ client_cid

coap_bin_const_t* coap_session_t::client_cid

Contains client CID or NULL.

Definition at line 224 of file coap_session_internal.h.

◆ con_active

uint8_t coap_session_t::con_active

Active CON request sent.

Definition at line 90 of file coap_session_internal.h.

◆ context

coap_context_t* coap_session_t::context

session's context

Definition at line 86 of file coap_session_internal.h.

◆ cpsk_setup_data

coap_dtls_cpsk_t coap_session_t::cpsk_setup_data

client provided PSK initial setup data

Definition at line 116 of file coap_session_internal.h.

◆ csm_bert_loc_support

uint8_t coap_session_t::csm_bert_loc_support

CSM TCP BERT blocks supported (local)

Definition at line 181 of file coap_session_internal.h.

◆ csm_bert_rem_support

uint8_t coap_session_t::csm_bert_rem_support

CSM TCP BERT blocks supported (remote)

Definition at line 180 of file coap_session_internal.h.

◆ csm_block_supported

uint8_t coap_session_t::csm_block_supported

CSM TCP blocks supported.

Definition at line 91 of file coap_session_internal.h.

◆ csm_not_seen

uint8_t coap_session_t::csm_not_seen

Set if timeout waiting for CSM.

Definition at line 187 of file coap_session_internal.h.

◆ csm_rcv_mtu

size_t coap_session_t::csm_rcv_mtu

CSM mtu (rcv)

Definition at line 76 of file coap_session_internal.h.

◆ csm_tx

coap_tick_t coap_session_t::csm_tx

Definition at line 115 of file coap_session_internal.h.

◆ default_leisure

coap_fixed_point_t coap_session_t::default_leisure

Mcast leisure time (default 5.0 secs)

Definition at line 154 of file coap_session_internal.h.

◆ delay_recursive

uint8_t coap_session_t::delay_recursive

Set if in coap_client_delay_first()

Definition at line 184 of file coap_session_internal.h.

◆ delayqueue

coap_queue_t* coap_session_t::delayqueue

list of delayed messages waiting to be sent

Definition at line 94 of file coap_session_internal.h.

◆ doing_first

uint8_t coap_session_t::doing_first

Set if doing client's first request.

Definition at line 182 of file coap_session_internal.h.

◆ doing_send_recv

uint8_t coap_session_t::doing_send_recv

Set if coap_send_recv() active.

Definition at line 208 of file coap_session_internal.h.

◆ dtls_event

int coap_session_t::dtls_event

Tracking any (D)TLS events on this session.

Definition at line 176 of file coap_session_internal.h.

◆ dtls_timeout_count

unsigned int coap_session_t::dtls_timeout_count

dtls setup retry counter

Definition at line 175 of file coap_session_internal.h.

◆ echo

coap_bin_const_t* coap_session_t::echo

last token used to make a request

Echo value to send with next request

Definition at line 216 of file coap_session_internal.h.

◆ endpoint

coap_endpoint_t* coap_session_t::endpoint

session's endpoint

Definition at line 84 of file coap_session_internal.h.

◆ hh

UT_hash_handle coap_session_t::hh

Definition at line 78 of file coap_session_internal.h.

◆ ifindex

int coap_session_t::ifindex

interface index

Definition at line 80 of file coap_session_internal.h.

◆ is_dtls13

uint8_t coap_session_t::is_dtls13

Set if session is DTLS1.3.

Definition at line 210 of file coap_session_internal.h.

◆ last_ack_mid

coap_mid_t coap_session_t::last_ack_mid

The last ACK mid that has been been processed.

Definition at line 217 of file coap_session_internal.h.

◆ last_con_handler_res

coap_response_t coap_session_t::last_con_handler_res

The result of calling the response handler of the last CON.

Definition at line 221 of file coap_session_internal.h.

◆ last_con_mid

coap_mid_t coap_session_t::last_con_mid

The last CON mid that has been been processed.

Definition at line 219 of file coap_session_internal.h.

◆ last_ping

coap_tick_t coap_session_t::last_ping

Definition at line 113 of file coap_session_internal.h.

◆ last_ping_mid

coap_mid_t coap_session_t::last_ping_mid

the last keepalive message id that was used in this session

Definition at line 92 of file coap_session_internal.h.

◆ last_pong

coap_tick_t coap_session_t::last_pong

Definition at line 114 of file coap_session_internal.h.

◆ last_rx_tx

coap_tick_t coap_session_t::last_rx_tx

Definition at line 111 of file coap_session_internal.h.

◆ last_token

coap_bin_const_t* coap_session_t::last_token

Definition at line 215 of file coap_session_internal.h.

◆ last_tx_rst

coap_tick_t coap_session_t::last_tx_rst

Definition at line 112 of file coap_session_internal.h.

◆ lg_crcv

coap_lg_crcv_t* coap_session_t::lg_crcv

Client list of expected large receives.

Definition at line 98 of file coap_session_internal.h.

◆ lg_srcv

coap_lg_srcv_t* coap_session_t::lg_srcv

Server list of expected large receives.

Definition at line 101 of file coap_session_internal.h.

◆ lg_xmit

coap_lg_xmit_t* coap_session_t::lg_xmit

list of large transmissions

Definition at line 96 of file coap_session_internal.h.

◆ max_retransmit

uint16_t coap_session_t::max_retransmit

maximum re-transmit count (default 4)

Definition at line 150 of file coap_session_internal.h.

◆ max_token_checked

volatile uint8_t coap_session_t::max_token_checked

Check for max token size coap_ext_token_check_t.

Definition at line 204 of file coap_session_internal.h.

◆ max_token_size

uint32_t coap_session_t::max_token_size

Largest token size supported RFC8974.

Definition at line 213 of file coap_session_internal.h.

◆ mtu

size_t coap_session_t::mtu

path or CSM mtu (xmt)

Definition at line 75 of file coap_session_internal.h.

◆ negotiated_cid

uint8_t coap_session_t::negotiated_cid

Set for a client if CID negotiated.

Definition at line 207 of file coap_session_internal.h.

◆ no_observe_cancel

uint8_t coap_session_t::no_observe_cancel

Set if do not cancel observe on session close.

Definition at line 185 of file coap_session_internal.h.

◆ nstart

uint16_t coap_session_t::nstart

maximum concurrent confirmable xmits (default 1)

Definition at line 152 of file coap_session_internal.h.

◆ partial_pdu

coap_pdu_t* coap_session_t::partial_pdu

incomplete incoming pdu

Definition at line 110 of file coap_session_internal.h.

◆ partial_read

size_t coap_session_t::partial_read

if > 0 indicates number of bytes already read for an incoming message

Definition at line 108 of file coap_session_internal.h.

◆ partial_write

size_t coap_session_t::partial_write

if > 0 indicates number of bytes already written from the pdu at the head of sendqueue

Definition at line 103 of file coap_session_internal.h.

◆ probing_rate

uint32_t coap_session_t::probing_rate

Max transfer wait when remote is not respoding (default 1 byte/sec)

Definition at line 156 of file coap_session_internal.h.

◆ proto

coap_proto_t coap_session_t::proto

protocol used

Definition at line 69 of file coap_session_internal.h.

◆ proxy_session

uint8_t coap_session_t::proxy_session

Set if this is an ongoing proxy session.

Definition at line 183 of file coap_session_internal.h.

◆ psk_hint

coap_bin_const_t* coap_session_t::psk_hint

If client, this field contains the server provided identity hint.

If server, this field contains the current hint for the client; When this field is NULL, the current hint is contained in context->spsk_setup_data

Value maintained internally

Definition at line 136 of file coap_session_internal.h.

◆ psk_identity

coap_bin_const_t* coap_session_t::psk_identity

If client, this field contains the current identity for server; When this field is NULL, the current identity is contained in cpsk_setup_data.

If server, this field contains the client provided identity.

Value maintained internally

Definition at line 118 of file coap_session_internal.h.

◆ psk_key

coap_bin_const_t* coap_session_t::psk_key

If client, this field contains the current pre-shared key for server; When this field is NULL, the current key is contained in cpsk_setup_data.

If server, this field contains the client's current key.

Value maintained internally

Definition at line 127 of file coap_session_internal.h.

◆ read_header

uint8_t coap_session_t::read_header[8]

storage space for header of incoming message header

Definition at line 106 of file coap_session_internal.h.

◆ ref

unsigned coap_session_t::ref

reference count from queues

Definition at line 73 of file coap_session_internal.h.

◆ remote_test_mid

coap_mid_t coap_session_t::remote_test_mid

mid used for checking remote support

Definition at line 211 of file coap_session_internal.h.

◆ req_token

coap_bin_const_t* coap_session_t::req_token

Token in request pdu of coap_send_recv()

Definition at line 228 of file coap_session_internal.h.

◆ resp_pdu

coap_pdu_t* coap_session_t::resp_pdu

PDU returned in coap_send_recv() call.

Definition at line 227 of file coap_session_internal.h.

◆ sock

coap_socket_t coap_session_t::sock

socket object for the session, if any

Definition at line 81 of file coap_session_internal.h.

◆ state

coap_session_state_t coap_session_t::state

current state of relationship with peer

Definition at line 71 of file coap_session_internal.h.

◆ tls

void* coap_session_t::tls

security parameters

Definition at line 87 of file coap_session_internal.h.

◆ tls_overhead

size_t coap_session_t::tls_overhead

overhead of TLS layer

Definition at line 74 of file coap_session_internal.h.

◆ tx_mid

uint16_t coap_session_t::tx_mid

the last message id that was used in this session

Definition at line 88 of file coap_session_internal.h.

◆ tx_rtag

uint32_t coap_session_t::tx_rtag

Next Request-Tag number to use.

Definition at line 178 of file coap_session_internal.h.

◆ tx_token

uint64_t coap_session_t::tx_token

Next token number to use.

Definition at line 214 of file coap_session_internal.h.

◆ type

coap_session_type_t coap_session_t::type

client or server side socket

Definition at line 70 of file coap_session_internal.h.


The documentation for this struct was generated from the following file: