Merge pull request #16967 from miri64/dsm/enh/peer-sync

dsm: rename DTLS_PEER_MAX and make it dependent on CONFIG_DTLS_PEER_MAX
This commit is contained in:
Martine Lenders 2021-10-18 16:27:26 +02:00 committed by GitHub
commit 44927b493f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 15 deletions

View File

@ -62,13 +62,6 @@
*/ */
#ifndef CONFIG_DTLS_CONTEXT_MAX #ifndef CONFIG_DTLS_CONTEXT_MAX
#define CONFIG_DTLS_CONTEXT_MAX (2) #define CONFIG_DTLS_CONTEXT_MAX (2)
#endif
/**
* @brief The maximum number DTLS peers (i.e. sessions)
*/
#ifndef CONFIG_DTLS_PEER_MAX
#define CONFIG_DTLS_PEER_MAX (1)
#endif #endif
/** /**

View File

@ -31,6 +31,8 @@
#define NET_DSM_H #define NET_DSM_H
#include <stdint.h> #include <stdint.h>
#include "dtls.h"
#include "net/sock/dtls.h" #include "net/sock/dtls.h"
#ifdef __cplusplus #ifdef __cplusplus
@ -40,8 +42,8 @@ extern "C" {
/** /**
* @brief Maximum number of maintained DTLS sessions (tinyDTLS) * @brief Maximum number of maintained DTLS sessions (tinyDTLS)
*/ */
#ifndef DTLS_PEER_MAX #ifndef CONFIG_DSM_PEER_MAX
#define DTLS_PEER_MAX (1) #define CONFIG_DSM_PEER_MAX (CONFIG_DTLS_PEER_MAX)
#endif #endif
/** /**

View File

@ -40,6 +40,13 @@
extern "C" { extern "C" {
#endif #endif
/**
* @brief The maximum number DTLS peers (i.e. sessions)
*/
#ifndef CONFIG_DTLS_PEER_MAX
#define CONFIG_DTLS_PEER_MAX (1)
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -37,13 +37,13 @@ static int _find_session(sock_dtls_t *sock, sock_dtls_session_t *to_find,
dsm_session_t **session); dsm_session_t **session);
static mutex_t _lock; static mutex_t _lock;
static dsm_session_t _sessions[DTLS_PEER_MAX]; static dsm_session_t _sessions[CONFIG_DSM_PEER_MAX];
static uint8_t _available_slots; static uint8_t _available_slots;
void dsm_init(void) void dsm_init(void)
{ {
mutex_init(&_lock); mutex_init(&_lock);
_available_slots = DTLS_PEER_MAX; _available_slots = CONFIG_DSM_PEER_MAX;
} }
dsm_state_t dsm_store(sock_dtls_t *sock, sock_dtls_session_t *session, dsm_state_t dsm_store(sock_dtls_t *sock, sock_dtls_session_t *session,
@ -116,7 +116,7 @@ uint8_t dsm_get_num_available_slots(void)
uint8_t dsm_get_num_maximum_slots(void) uint8_t dsm_get_num_maximum_slots(void)
{ {
return DTLS_PEER_MAX; return CONFIG_DSM_PEER_MAX;
} }
ssize_t dsm_get_least_recently_used_session(sock_dtls_t *sock, sock_dtls_session_t *session) ssize_t dsm_get_least_recently_used_session(sock_dtls_t *sock, sock_dtls_session_t *session)
@ -124,12 +124,12 @@ ssize_t dsm_get_least_recently_used_session(sock_dtls_t *sock, sock_dtls_session
int res = -1; int res = -1;
dsm_session_t *session_slot = NULL; dsm_session_t *session_slot = NULL;
if (dsm_get_num_available_slots() == DTLS_PEER_MAX) { if (dsm_get_num_available_slots() == CONFIG_DSM_PEER_MAX) {
return res; return res;
} }
mutex_lock(&_lock); mutex_lock(&_lock);
for (uint8_t i=0; i < DTLS_PEER_MAX; i++) { for (uint8_t i=0; i < CONFIG_DSM_PEER_MAX; i++) {
if (_sessions[i].state != SESSION_STATE_ESTABLISHED) { if (_sessions[i].state != SESSION_STATE_ESTABLISHED) {
continue; continue;
} }
@ -164,7 +164,7 @@ static int _find_session(sock_dtls_t *sock, sock_dtls_session_t *to_find,
dsm_session_t *empty_session = NULL; dsm_session_t *empty_session = NULL;
sock_dtls_session_get_udp_ep(to_find, &to_find_ep); sock_dtls_session_get_udp_ep(to_find, &to_find_ep);
for (uint8_t i=0; i < DTLS_PEER_MAX; i++) { for (uint8_t i=0; i < CONFIG_DSM_PEER_MAX; i++) {
if (_sessions[i].state == SESSION_STATE_NONE) { if (_sessions[i].state == SESSION_STATE_NONE) {
empty_session = &_sessions[i]; empty_session = &_sessions[i];
continue; continue;