Skip to content
This repository was archived by the owner on Sep 6, 2023. It is now read-only.

Commit c022c9a

Browse files
author
Paul Sokolovsky
committed
zephyr/modusocket: Wrap pkt_get_info() call.
The most important info it returns are numbers of free buffers in different pools (rx/tx packet headers, data fragments).
1 parent 054a381 commit c022c9a

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

zephyr/modusocket.c

+14
Original file line numberDiff line numberDiff line change
@@ -507,6 +507,18 @@ STATIC const mp_obj_type_t socket_type = {
507507
.locals_dict = (mp_obj_t)&socket_locals_dict,
508508
};
509509

510+
STATIC mp_obj_t nbuf_get_info(void) {
511+
struct net_buf_pool *rx, *tx, *rx_data, *tx_data;
512+
net_nbuf_get_info(&rx, &tx, &rx_data, &tx_data);
513+
mp_obj_tuple_t *t = MP_OBJ_TO_PTR(mp_obj_new_tuple(4, NULL));
514+
t->items[0] = MP_OBJ_NEW_SMALL_INT(rx->avail_count);
515+
t->items[1] = MP_OBJ_NEW_SMALL_INT(tx->avail_count);
516+
t->items[2] = MP_OBJ_NEW_SMALL_INT(rx_data->avail_count);
517+
t->items[3] = MP_OBJ_NEW_SMALL_INT(tx_data->avail_count);
518+
return MP_OBJ_FROM_PTR(t);
519+
}
520+
STATIC MP_DEFINE_CONST_FUN_OBJ_0(nbuf_get_info_obj, nbuf_get_info);
521+
510522
STATIC const mp_map_elem_t mp_module_usocket_globals_table[] = {
511523
{ MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_usocket) },
512524
// objects
@@ -520,6 +532,8 @@ STATIC const mp_map_elem_t mp_module_usocket_globals_table[] = {
520532

521533
{ MP_OBJ_NEW_QSTR(MP_QSTR_SOL_SOCKET), MP_OBJ_NEW_SMALL_INT(1) },
522534
{ MP_OBJ_NEW_QSTR(MP_QSTR_SO_REUSEADDR), MP_OBJ_NEW_SMALL_INT(2) },
535+
536+
{ MP_OBJ_NEW_QSTR(MP_QSTR_nbuf_get_info), (mp_obj_t)&nbuf_get_info_obj },
523537
};
524538

525539
STATIC MP_DEFINE_CONST_DICT(mp_module_usocket_globals, mp_module_usocket_globals_table);

zephyr/prj_base.conf

+3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ CONFIG_NET_TCP=y
1717
CONFIG_TEST_RANDOM_GENERATOR=y
1818
CONFIG_NET_NBUF_RX_COUNT=5
1919

20+
# Required for usocket.pkt_get_info()
21+
CONFIG_NET_BUF_POOL_USAGE=y
22+
2023
# Uncomment to enable "INFO" level net_buf logging
2124
#CONFIG_NET_LOG=y
2225
#CONFIG_NET_DEBUG_NET_BUF=y

0 commit comments

Comments
 (0)