All notable changes to this project are documented in this file.
- :cpp:func:`bsd_irrecoverable_handler()` has been removed. The application no longer needs to implement it to receive errors during initialization, which are instead reported via :cpp:func:`bsd_init()`.
- :cpp:func:`bsd_shutdown()` now returns an integer.
- Added RAW socket support.
- Added missing AGPS data models.
- Added APGS notification support.
- Fixed an issue where AGPS data could not be written when the GPS socket was in stopped state.
- Fixed a memory leak in GPS socket.
Updated the library with the following changes:
- Added support for signaling if a peer sends larger TLS fragments than receive buffers can handle.
If this scenario is triggered,
NRF_ENOBUFS
is reported in :cpp:func:`recv()`. The link is also disconnected on TLS level by issuing anEncryption Alert
, and TCP is reset from the device side. Subsequent calls to :cpp:func:`send()` or :cpp:func:`recv()` reportNRF_ENOTCONN
. The feature will be supported in an upcoming modem firmware version. - Resolved an issue where sending large TLS messages very close to each other in time would result in a blocking :cpp:func:`send()` that did not return.
- Reduced ROM footprint.
- Miscellaneous improvements to PDN sockets.
- Fixed an issue when linking with mbedTLS.
Updated the library with the following changes:
- Added socket option
NRF_SO_PDN_CONTEXT_ID
for PDN protocol sockets to retrieve the Context ID of the created PDN. - Added socket option
NRF_SO_PDN_STATE
for PDN protocol socket to check the active state of the PDN. - Fixed a TCP stream empty packet indication when a blocking receive got the peer closed notification while waiting for data to arrive.
- Fixed an issue where IP sockets did not propagate a fine-grained error reason, and all disconnect events resulted in
NRF_ENOTCONN
. Now the error reasons could be one of the following:NRF_ENOTCONN
,NRF_ECONNRESET
,NRF_ENETDOWN
,NRF_ENETUNREACH
. - Fixed an issue with a blocking :cpp:func:`send()` operation on IP sockets that was not really blocking but returning immediately in case of insufficient memory to perform the operation.
The new behavior is that blocking sockets will block until the message is sent.
Also, because of internal limitations, a non-blocking socket might block for a short while until shortage of memory has been detected internally, and then return with errno set to
NRF_EAGAIN
. - Corrected errno that is set by :cpp:func:`send()` from
NRF_ENOMEM
toNRF_EMSGSIZE
in case of attempts on sending larger messages than supported by the library. - Added a define
BSD_IP_MAX_MESSAGE_SIZE
in :file:`bsd_limits.h` to hint what size is used to reportNRF_EMSGSIZE
in the updated :cpp:func:`send()` function. - Fixed an issue with :cpp:func:`nrf_inbuilt_key_read()` not respecting the
p_buffer_len
input parameter, making it possible for the library to write out-of-bounds on the buffer provided.
- Added AGPS support to GNSS socket driver.
- Added support for GNSS power save modes.
- Added support for deleting stored GPS data.
- Changed NRF_CONFIG_NMEA* define names to NRF_GNSS_NMEA* for alignment.
Updated library with various changes:
- Improved error handling when running out of memory.
- Modified :cpp:func:`nrf_inbuilt_key_exists()` so that it does not return an error if a key does not exist. p_exists will be updated correctly in this case.
- Fixed a memory leak in :cpp:func:`nrf_inbuilt_key_exists()` on error.
Updated library with various changes:
- Bugfix internal to the library solving issue with unresponsive sockets.
Updated library with various changes:
- Changed socket option
NRF_SO_RCVTIMEO
to use nrf_timeval struct instead of uint32_t. - Improved the PDN socket close (
NRF_PROTO_PDN
) function. - Added new errno values
NRF_ENOEXEC
,NRF_ENOSPC
, andNRF_ENETRESET
. - Added a return value on :cpp:func:`bsd_init()` to indicate MODEM_DFU result codes or initialization result.
- Corrected GNSS struct :c:type:`nrf_gnss_datetime_t` to use correct size on the ms member.
- Updated modem DFU interface.
- Improved error reporting on network or connection loss.
- Corrected the value of
NRF_POLLNVAL
. - Improved TCP peer stream closed notification and empty packet indication.
Updated library with various changes:
- Corrected GNSS API to not fault if not read fast enough.
- Improved length reporting on GNSS NMEA strings to report length until zero-termination.
- Improved closing of GNSS socket. If closed, it will now also stop the GNSS from running.
- Corrected bitmask value of NRF_GNSS_SV_FLAG_UNHEALTHY.
- Added side API for APN Class management.
- Removed NRF_SO_PDN_CLASS from nrf_socket.h as it is replaced by side API for APN class management.
- Improved nrf_poll() error return on non-timeout errors to be NRF_EAGAIN, to align with standard return codes from poll().
- Added implementation of inet_pton() and inet_ntop().
- Added empty packet to indicate EOF when TCP peer has closed the connection.
- Added NRF_POLLHUP to poll() bitmask to indicate sockets that peer has closed the connection (EOF).
Updated library with experimental GNSS support.
Updated library with bug fixes:
- Fix issue of reporting NRF_POLLIN on a socket handle using nrf_poll, even if no new data has arrived.
- Fix issue of sockets not blocking on recv/recvfrom when no data is available.
Updated library with various changes:
- Updated library to use nrf_oberon v3.0.0.
- Updated the library to be deployed without inbuilt libc or libgcc symbols (-nostdlib -nodefaultlibs -nostartfiles -lnosys).
- Fixed issues with some unresolved symbols internal to the library.
- Updated API towards bsd_os_timedwait function. The time-out parameter is now an in and out parameter. The bsd_os implementation is now expected to set the remaining time left of the time-out value in return.
Updated library with API for setting APN name when doing getaddrinfo request.
- Providing API through nrf_getaddrinfo, ai_next to set a second hint that defines the APN name to use for getaddrinfo query. The hint must be using NRF_AF_LTE, NRF_SOCK_MGMT, and NRF_PROTO_PDN as family, type, and protocol. The APN is set through the ai_canonname field.
Updated library with bugfixes:
- Updated
nrf_inbuilt_key.h
with smaller documentation fixes. - Bugfix in the
nrf_inbuilt_key
API to allow PSK and Identity to be provisioned successfully. - Bugfix in the
nrf_inbuilt_key
API to allow security tags in the range of 65535 to 2147483647 to be deleted, read, and listed. - Bugfix in proprietary trace log.
Updated library and header files:
- Enabled Nordic Semiconductor proprietary trace log. Increased consumption of the dedicated library RAM, indicated in bsd_platform.h.
- Resolved include of
stdint.h
inbsd.h
.
Initial release.
- Added the following BSD Socket library variants for nrf9160, for soft-float and hard-float builds:
libbsd_nrf9160_xxaa.a
liboberon_2.0.5.a
(dependency of libbsd)