Skip to content

Commit 9eb6de9

Browse files
committed
subsys: mgmt: mcumgr: serial transport rework
cuts down some unused Kconfigs Signed-off-by: Mateusz Michalek <mateusz.michalek@nordicsemi.no>
1 parent e5b8dba commit 9eb6de9

2 files changed

Lines changed: 1 addition & 79 deletions

File tree

subsys/mgmt/mcumgr/transport/include/serial.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,6 @@ struct mcumgr_serial_rx_ctxt {
4848
/** Length of full packet, as read from header. */
4949
uint16_t pkt_len;
5050

51-
#if defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_SMP_OVER_CONSOLE) && \
52-
defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_RAW_BINARY_NON_SMP_OVER_CONSOLE)
53-
/**
54-
* Set to true by transports which use raw MCUmgr over UART (not SMP over console) to know
55-
* not to deal with the extra base64 etc. processing.
56-
*/
57-
const bool raw_transport;
58-
#endif
5951
};
6052

6153
/** @typedef mcumgr_serial_tx_cb

subsys/mgmt/mcumgr/transport/src/serial_util.c

Lines changed: 1 addition & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,7 @@
1515
#include <zephyr/sys/base64.h>
1616
#include <zephyr/mgmt/mcumgr/mgmt/mgmt.h>
1717
#include <zephyr/mgmt/mcumgr/smp/smp.h>
18-
#include <zephyr/mgmt/mcumgr/transport/serial.h>
19-
20-
#if defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_RAW_BINARY_NON_SMP_OVER_CONSOLE)
21-
#include <mgmt/mcumgr/transport/smp_internal.h>
22-
#endif
18+
#include <serial.h>
2319

2420
static void mcumgr_serial_free_rx_ctxt(struct mcumgr_serial_rx_ctxt *rx_ctxt)
2521
{
@@ -29,7 +25,6 @@ static void mcumgr_serial_free_rx_ctxt(struct mcumgr_serial_rx_ctxt *rx_ctxt)
2925
}
3026
}
3127

32-
#if defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_SMP_OVER_CONSOLE)
3328
static uint16_t mcumgr_serial_calc_crc(const uint8_t *data, int len)
3429
{
3530
return crc16_itu_t(0x0000, data, len);
@@ -62,49 +57,7 @@ static int mcumgr_serial_decode_frag(struct mcumgr_serial_rx_ctxt *rx_ctxt,
6257

6358
return 0;
6459
}
65-
#endif
66-
67-
#if defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_RAW_BINARY_NON_SMP_OVER_CONSOLE)
68-
static inline bool mcumgr_serial_process_frag_raw(struct mcumgr_serial_rx_ctxt *rx_ctxt,
69-
const uint8_t *frag, int frag_len,
70-
struct smp_hdr *rec_hdr)
71-
{
72-
uint16_t total_size;
7360

74-
net_buf_add_mem(rx_ctxt->nb, frag, frag_len);
75-
76-
if (rx_ctxt->nb->len < sizeof(struct smp_hdr)) {
77-
/* Missing header */
78-
return false;
79-
}
80-
81-
/*
82-
* Perform some basic cursory checks to ensure some fields of the packet are
83-
* actually valid.
84-
*/
85-
rec_hdr = (struct smp_hdr *)rx_ctxt->nb->data;
86-
total_size = sys_be16_to_cpu(rec_hdr->nh_len) + sizeof(struct smp_hdr);
87-
88-
if (total_size > CONFIG_MCUMGR_TRANSPORT_NETBUF_SIZE) {
89-
/* Payload is longer than the maximum supported MTU. */
90-
mcumgr_serial_free_rx_ctxt(rx_ctxt);
91-
return false;
92-
} else if (rec_hdr->nh_op >= MGMT_OP_COUNT) {
93-
/* Unknown op-code, likely not a valid MCUmgr message. */
94-
mcumgr_serial_free_rx_ctxt(rx_ctxt);
95-
return false;
96-
} else if (rx_ctxt->nb->len < total_size) {
97-
/* More fragments expected. */
98-
return false;
99-
} else if (rx_ctxt->nb->len > total_size) {
100-
/* Payload longer than indicated in header. */
101-
mcumgr_serial_free_rx_ctxt(rx_ctxt);
102-
return false;
103-
}
104-
105-
return true;
106-
}
107-
#endif
10861

10962
/**
11063
* Processes a received mcumgr frame.
@@ -118,14 +71,9 @@ struct net_buf *mcumgr_serial_process_frag(struct mcumgr_serial_rx_ctxt *rx_ctxt
11871
{
11972
struct net_buf *nb;
12073

121-
#if defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_SMP_OVER_CONSOLE)
12274
int rc;
12375
uint16_t crc;
12476
uint16_t op;
125-
#endif
126-
#if defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_RAW_BINARY_NON_SMP_OVER_CONSOLE)
127-
struct smp_hdr *rec_hdr;
128-
#endif
12977

13078
if (rx_ctxt->nb == NULL) {
13179
rx_ctxt->nb = smp_packet_alloc();
@@ -135,20 +83,8 @@ struct net_buf *mcumgr_serial_process_frag(struct mcumgr_serial_rx_ctxt *rx_ctxt
13583
}
13684
}
13785

138-
#if defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_SMP_OVER_CONSOLE) && \
139-
defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_RAW_BINARY_NON_SMP_OVER_CONSOLE)
14086
if (rx_ctxt->raw_transport == true) {
141-
#endif
142-
#if defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_RAW_BINARY_NON_SMP_OVER_CONSOLE)
143-
if (mcumgr_serial_process_frag_raw(rx_ctxt, frag, frag_len, rec_hdr) == false) {
144-
return NULL;
145-
}
146-
#endif
147-
#if defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_SMP_OVER_CONSOLE) && \
148-
defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_RAW_BINARY_NON_SMP_OVER_CONSOLE)
14987
} else {
150-
#endif
151-
#if defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_SMP_OVER_CONSOLE)
15288
if (frag_len < sizeof(op)) {
15389
return NULL;
15490
}
@@ -203,18 +139,13 @@ struct net_buf *mcumgr_serial_process_frag(struct mcumgr_serial_rx_ctxt *rx_ctxt
203139

204140
/* Packet is complete; strip the CRC. */
205141
rx_ctxt->nb->len -= 2U;
206-
#endif
207-
#if defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_SMP_OVER_CONSOLE) && \
208-
defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_RAW_BINARY_NON_SMP_OVER_CONSOLE)
209142
}
210-
#endif
211143

212144
nb = rx_ctxt->nb;
213145
rx_ctxt->nb = NULL;
214146
return nb;
215147
}
216148

217-
#if defined(CONFIG_MCUMGR_TRANSPORT_SERIAL_HAS_SMP_OVER_CONSOLE)
218149
/**
219150
* Base64-encodes a small chunk of data and transmits it. The data must be no larger than three
220151
* bytes.
@@ -386,4 +317,3 @@ int mcumgr_serial_tx_pkt(const uint8_t *data, int len, mcumgr_serial_tx_cb cb)
386317

387318
return 0;
388319
}
389-
#endif

0 commit comments

Comments
 (0)