menuconfig RT_USING_SAL
    bool "Enable socket abstraction layer (SAL)"
    select RT_USING_NETDEV
    select RT_USING_SYSTEM_WORKQUEUE
    default n

if RT_USING_SAL

    config SAL_INTERNET_CHECK
        bool "Enable the ability that check internet status"
        default y
        help
            The ability that check internet status is provided by RT-Thread.

    if RT_USING_LWIP || AT_USING_SOCKET

        menu "protocol stack implement"

            config SAL_USING_LWIP
                bool "Support lwIP stack"
                default y
                depends on RT_USING_LWIP

            config SAL_USING_AT
                bool "Support AT Commands stack"
                default y
                depends on AT_USING_SOCKET

            config SAL_USING_TLS
                bool "Support MbedTLS protocol"
                default y
                depends on PKG_USING_MBEDTLS
        endmenu

    endif

    config SAL_USING_POSIX
        bool "Enable BSD socket operated by file system API"
        default n
        select RT_USING_POSIX_FS
        select RT_USING_POSIX_SELECT
        help
            Let BSD socket operated by file system API, such as read/write and involveed in select/poll POSIX APIs.

    if !SAL_USING_POSIX

        config SAL_SOCKETS_NUM
            int "the maximum number of sockets"
            default 16

    endif

endif