Zephyr Project API
3.3.0
A Scalable Open Source RTOS
|
MCUmgr transport SMP API. More...
Data Structures | |
struct | smp_transport |
SMP transport object for sending SMP responses. More... | |
struct | zephyr_smp_transport |
Typedefs | |
typedef int(* | smp_transport_out_fn) (struct net_buf *nb) |
SMP transmit callback for transport. More... | |
typedef int | zephyr_smp_transport_out_fn(struct net_buf *nb) |
typedef uint16_t(* | smp_transport_get_mtu_fn) (const struct net_buf *nb) |
SMP MTU query callback for transport. More... | |
typedef uint16_t | zephyr_smp_transport_get_mtu_fn(const struct net_buf *nb) |
typedef int(* | smp_transport_ud_copy_fn) (struct net_buf *dst, const struct net_buf *src) |
SMP copy user_data callback. More... | |
typedef int | zephyr_smp_transport_ud_copy_fn(struct net_buf *dst, const struct net_buf *src) |
typedef void(* | smp_transport_ud_free_fn) (void *ud) |
SMP free user_data callback. More... | |
typedef void | zephyr_smp_transport_ud_free_fn(void *ud) |
typedef bool(* | smp_transport_query_valid_check_fn) (struct net_buf *nb, void *arg) |
Function for checking if queued data is still valid. More... | |
Functions | |
void | smp_transport_init (struct smp_transport *smpt, smp_transport_out_fn output_func, smp_transport_get_mtu_fn get_mtu_func, smp_transport_ud_copy_fn ud_copy_func, smp_transport_ud_free_fn ud_free_func, smp_transport_query_valid_check_fn query_valid_check_func) |
Initializes a Zephyr SMP transport object. More... | |
static void | zephyr_smp_transport_init (struct zephyr_smp_transport *smpt, zephyr_smp_transport_out_fn *output_func, zephyr_smp_transport_get_mtu_fn *get_mtu_func, zephyr_smp_transport_ud_copy_fn *ud_copy_func, zephyr_smp_transport_ud_free_fn *ud_free_func) |
void | smp_rx_remove_invalid (struct smp_transport *zst, void *arg) |
Used to remove queued requests for an SMP transport that are no longer valid. A smp_transport_query_valid_check_fn() function must be registered for this to function. If the smp_transport_query_valid_check_fn() function returns false during a callback, the queried command will classed as invalid and dropped. More... | |
void | smp_rx_clear (struct smp_transport *zst) |
Used to clear pending queued requests for an SMP transport. More... | |
MCUmgr transport SMP API.
smp_transport_get_mtu_fn |
#include <include/zephyr/mgmt/mcumgr/transport/smp.h>
SMP MTU query callback for transport.
The supplied net_buf should contain a request received from the peer whose MTU is being queried. This function takes a net_buf parameter because some transports store connection-specific information in the net_buf user header (e.g., the BLE transport stores the peer address).
nb | Contains a request from the relevant peer. |
smp_transport_out_fn |
#include <include/zephyr/mgmt/mcumgr/transport/smp.h>
SMP transmit callback for transport.
The supplied net_buf is always consumed, regardless of return code.
nb | The net_buf to transmit. |
smp_transport_query_valid_check_fn |
#include <include/zephyr/mgmt/mcumgr/transport/smp.h>
Function for checking if queued data is still valid.
This function is used to check if queued SMP data is still valid e.g. on a remote device disconnecting, this is triggered when smp_rx_remove_invalid() is called.
nb | net buf containing queued request. |
arg | Argument provided when calling smp_rx_remove_invalid() function. |
smp_transport_ud_copy_fn |
#include <include/zephyr/mgmt/mcumgr/transport/smp.h>
SMP copy user_data callback.
The supplied src net_buf should contain a user_data that cannot be copied using regular memcpy function (e.g., the BLE transport net_buf user_data stores the connection reference that has to be incremented when is going to be used by another buffer).
dst | Source buffer user_data pointer. |
src | Destination buffer user_data pointer. |
smp_transport_ud_free_fn |
#include <include/zephyr/mgmt/mcumgr/transport/smp.h>
SMP free user_data callback.
This function frees net_buf user data, because some transports store connection-specific information in the net_buf user data (e.g., the BLE transport stores the connection reference that has to be decreased).
ud | Contains a user_data pointer to be freed. |
#include <include/zephyr/mgmt/mcumgr/transport/smp.h>
typedef int zephyr_smp_transport_out_fn(struct net_buf *nb) |
#include <include/zephyr/mgmt/mcumgr/transport/smp.h>
#include <include/zephyr/mgmt/mcumgr/transport/smp.h>
typedef void zephyr_smp_transport_ud_free_fn(void *ud) |
#include <include/zephyr/mgmt/mcumgr/transport/smp.h>
void smp_rx_clear | ( | struct smp_transport * | zst | ) |
#include <include/zephyr/mgmt/mcumgr/transport/smp.h>
Used to clear pending queued requests for an SMP transport.
zst | The transport to use. |
void smp_rx_remove_invalid | ( | struct smp_transport * | zst, |
void * | arg | ||
) |
#include <include/zephyr/mgmt/mcumgr/transport/smp.h>
Used to remove queued requests for an SMP transport that are no longer valid. A smp_transport_query_valid_check_fn() function must be registered for this to function. If the smp_transport_query_valid_check_fn() function returns false during a callback, the queried command will classed as invalid and dropped.
zst | The transport to use. |
arg | Argument provided to callback smp_transport_query_valid_check_fn() function. |
void smp_transport_init | ( | struct smp_transport * | smpt, |
smp_transport_out_fn | output_func, | ||
smp_transport_get_mtu_fn | get_mtu_func, | ||
smp_transport_ud_copy_fn | ud_copy_func, | ||
smp_transport_ud_free_fn | ud_free_func, | ||
smp_transport_query_valid_check_fn | query_valid_check_func | ||
) |
#include <include/zephyr/mgmt/mcumgr/transport/smp.h>
Initializes a Zephyr SMP transport object.
smpt | The transport to construct. |
output_func | The transport's send function. |
get_mtu_func | The transport's get-MTU function. |
ud_copy_func | The transport buffer user_data copy function. |
ud_free_func | The transport buffer user_data free function. |
query_valid_check_func | The transport's check function for if a query is valid. |
|
inlinestatic |
#include <include/zephyr/mgmt/mcumgr/transport/smp.h>