CMSIS-Driver Validation  Version 1.3.0
Driver Validation
 All Data Structures Files Functions Variables Typedefs Macros Groups Pages
WiFi Socket Relaxed API

The relaxed WiFi Socket API simplifies the return values of socket functions. This mode is active if the non-strict mode is selected in the DV_Config.h configuration of the test suite.

When implementing all the features of WiFi sockets yourself, we recommend choosing a BSD-strict mode. However, the non-strict mode is useful especially when you use the SDK functions of the module to perform the driver functions and you only add parameter conversion at the input and conversion of exit codes at the output.

WiFi socket API changes

  1. SocketCreate
    • no change
  2. SocketBind
    • bind socket same address again, return code EINVAL, added return code: OK, generic ERROR
    • bind 2nd socket on used address, return code EADDRINUSE, added return code: generic ERROR
    • bind on closed socket, return code ESOCK, added return code: generic ERROR
  3. SocketListen
    • listen socket again, return code EINVAL, added return code: OK, generic ERROR
    • listen on unbound socket, return code EINVAL, added return code: generic ERROR
    • listen on closed socket, return code ESOCK, added return code: generic ERROR
    • listen on datagram socket, return code ENOTSUP, added return code: generic ERROR
  4. SocketAccept
    • accept on closed socket, return code ESOCK, added return code: generic ERROR
    • accept on datagram socket, return code ENOTSUP, added return code: generic ERROR
  5. SocketConnect
    • connect socket same address again, return code EISCONN, added return code: OK, generic ERROR
    • bind on connected socket, return code EISCONN, added return code: generic ERROR
    • connect on listening socket, return code EINVAL, added return code: generic ERROR
    • connect on closed socket, return code ESOCK, added return code: generic ERROR
    • connect to non-existent port, return code ECONNREFUSED, added return code: generic ERROR
    • connect datagram socket to unspecified address (0.0.0.0), return code OK, added return code: EINVAL, generic ERROR
      (special case that deletes the socket destination & filtering address)
  6. SocketRecv
    • recv on closed socket, return code ESOCK, added return code: generic ERROR
    • recv on created socket return code ENOTCONN, added return code: generic ERROR
    • recv on bound socket, return code ENOTCONN, added return code: generic ERROR
    • recv on listening socket, return code ENOTCONN, added return code: generic ERROR
    • recv on disconnected socket, return code ECONNRESET, added return code: generic ERROR
  7. SocketRecvFrom
    • recvfrom on closed socket, return code ESOCK, added return code: generic ERROR
  8. SocketSend
    • send on closed socket, return code ESOCK, added return code: generic ERROR
    • send on created socket, return code ENOTCONN, added return code: generic ERROR
    • send on bound socket, return code ENOTCONN, added return code: generic ERROR
    • send on listening socket, return code ENOTCONN, added return code: generic ERROR
    • send on disconnected socket, return code ECONNRESET, added return code: generic ERROR
  9. SocketSendTo
    • sendto on closed socket, return code ESOCK, added return code: generic ERROR
  10. SocketGetSockName
    • getsockname on closed socket, return code ESOCK, added return code: generic ERROR
    • getsockname on unbound socket, return code EINVAL, added return code: generic ERROR
  11. SocketGetPeerName
    • getpeername on closed socket, return code ESOCK, added return code: generic ERROR
    • getpeername on created socket, return code ENOTCONN, added return code: generic ERROR
    • getpeername on bound socket, return code ENOTCONN, added return code: generic ERROR
    • getpeername on listening socket, return code ENOTCONN, added return code: generic ERROR
  12. SocketGetOpt
    • getsockopt on closed socket, return code ESOCK, added return code: generic ERROR
  13. SocketSetOpt
    • setsockopt on closed socket, return code ESOCK, added return code: generic ERROR
  14. SocketClose
    • close on closed socket, return code ESOCK, added return code: generic OK
  15. SocketGetHostByName
    • gethostbyname for non-existing host, return code EHOSTNOTFOUND, added return code: generic ERROR
  16. Ping
    • no change