# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

syscfg.defs:
    BLE_CONTROLLER:
        description: >
            Indicates that NimBLE controller is present. The default value for
            this setting shall not be overriden.
        value: 1

    BLE_HW_WHITELIST_ENABLE:
        description: >
            Used to enable hardware white list
        value: 1

    BLE_LL_SYSVIEW:
        description: >
            Enable SystemView tracing module for controller.
        value: 0

    BLE_LL_PRIO:
        description: 'The priority of the LL task'
        type: 'task_priority'
        value: 0

    BLE_LL_SCA:
        description: Sleep clock accuracy of our device (in ppm)
        value: MYNEWT_VAL(BLE_LL_OUR_SCA)
        range: 0..500

    BLE_LL_TX_PWR_DBM:
        description: 'Transmit power level.'
        value: '0'

    BLE_LL_NUM_COMP_PKT_ITVL_MS:
        description: >
            Determines the interval at which the controller will send the
            number of completed packets event to the host. Rate is in milliseconds.
        value: 2000

    BLE_LL_MFRG_ID:
        description: >
            Manufacturer ID. Should be set to unique ID per manufacturer.
        value: '0xFFFF'

    # Configuration items for the number of duplicate advertisers and the
    # number of advertisers from which we have heard a scan response.
    BLE_LL_NUM_SCAN_DUP_ADVS:
        description: 'The number of duplicate advertisers stored.'
        value: '8'
    BLE_LL_NUM_SCAN_RSP_ADVS:
        description: >
            The number of advertisers from which we have heard a scan
            response. Prevents sending duplicate events to host.
        value: '8'

    BLE_LL_WHITELIST_SIZE:
        description: 'Size of the LL whitelist.'
        value: '8'

    BLE_LL_RESOLV_LIST_SIZE:
        description: 'Size of the resolving list.'
        value: '4'

    # Data length management definitions for connections. These define the
    # maximum size of the PDU's that will be sent and/or received in a
    # connection.
    BLE_LL_MAX_PKT_SIZE:
        description: 'The maximum PDU size that can be sent/received'
        value: '251'
    BLE_LL_SUPP_MAX_RX_BYTES:
        description: 'The maximum supported received PDU size'
        value: MYNEWT_VAL(BLE_LL_MAX_PKT_SIZE)
    BLE_LL_SUPP_MAX_TX_BYTES:
        description: 'The maximum supported transmit PDU size'
        value: MYNEWT_VAL(BLE_LL_MAX_PKT_SIZE)
    BLE_LL_CONN_INIT_MAX_TX_BYTES:
        description: >
            Used to set the initial maximum transmit PDU size in a
            connection. If this is set to a value greater than 27,
            the controller will automatically attempt to do the
            data length update procedure. The host can always tell
            the controller to update this value.
        value: '27'

    # The number of slots that will be allocated to each connection
    BLE_LL_CONN_INIT_SLOTS:
        description: >
            This is the number of "slots" allocated to a connection when scheduling
            connections. Each slot is 1.25 msecs long. Note that a connection event may
            last longer than the number of slots allocated here and may also end earlier
            (depending on when the next scheduled event occurs and how much data needs
            to be transferred in the connection). However, you will be guaranteed that
            a connection event will be given this much time, if needed. Consecutively
            scheduled items will be at least this far apart
        value: '4'

    BLE_LL_CONN_INIT_MIN_WIN_OFFSET:
        description: >
            This is the minimum number of "slots" for WindowOffset value used for
            CONNECT_IND when creating new connection as a master. Each slot is 1.25
            msecs long. Increasing this value will delay first connection event after
            connection is created. However, older TI CC254x controllers cannot change
            connection parameters later if WindowOffset was set to 0 in CONNECT_IND. To
            ensure interoperability with such devices set this value to 2 (or more).
        value: '0'

    # Strict scheduling
    BLE_LL_STRICT_CONN_SCHEDULING:
        description: >
            Forces the scheduler on a central to schedule connections in fixed
            time intervals called periods. If set to 0, the scheduler is not forced
            to do this. If set to 1, the scheduler will only schedule connections at
            period boundaries. See comments in ble_ll_sched.h for more details.
        value: '0'

    BLE_LL_ADD_STRICT_SCHED_PERIODS:
        description: >
            The number of additional periods that will be allocated for strict
            scheduling. The total # of periods allocated for strict scheduling
            will be equal to the number of connections plus this number.
        value: '0'

    BLE_LL_USECS_PER_PERIOD:
        description: >
            The number of usecs per period.
        value: '3250'

    # The number of random bytes to store
    BLE_LL_RNG_BUFSIZE:
        description: >
            The number of random bytes that the link layer will try to
            always have available for the host to use. Decreasing this
            value may cause host delays if the host needs lots of random
            material often.
        value: '32'

    BLE_LL_RFMGMT_ENABLE_TIME:
        description: >
            Time required for radio and/or related components to be fully
            enabled before any request from LL is sent. This value is used
            by rfmgmt to enable PHY in advance, before request from LL is
            made. It depends on radio driver selected and may also depend
            on hardware used:
            - nrf51 - time required for XTAL to settle
            - nrf52 - time required for XTAL to settle
            Value is specified in microseconds. If set to 0, rfmgmt keeps
            PHY enabled all the time.
        value: MYNEWT_VAL(BLE_XTAL_SETTLE_TIME)

    # Configuration for LL supported features.
    #
    # There are a total 8 features that the LL can support. These can be found
    # in v4.2, Vol 6 Part B Section 4.6.
    #
    # These feature definitions are used to inform a host or other controller
    # about the LL features supported by the controller.
    #
    # NOTE: 'the' controller always supports extended reject indicate and thus
    # is not listed here.


    BLE_LL_CFG_FEAT_LE_ENCRYPTION:
        description: >
            This option enables/disables encryption support in the controller.
            This option saves both both code and RAM.
        value: '1'

    BLE_LL_CFG_FEAT_CONN_PARAM_REQ:
        description: >
            This option enables/disables the connection parameter request
            procedure.  This is implemented in the controller but is disabled
            by default.
        value: '1'

    BLE_LL_CFG_FEAT_SLAVE_INIT_FEAT_XCHG:
        description: >
            This option allows a slave to initiate the feature exchange
            procedure.  This feature is implemented but currently has no impact
            on code or ram size
        value: '1'

    BLE_LL_CFG_FEAT_LE_PING:
        description: >
            This option allows a controller to send/receive LE pings.
            Currently, this feature is not implemented by the controller so
            turning it on or off has no effect.
        value: 'MYNEWT_VAL_BLE_LL_CFG_FEAT_LE_ENCRYPTION'

    BLE_LL_CFG_FEAT_DATA_LEN_EXT:
        description: >
            This option enables/disables the data length update procedure in
            the controller. If enabled, the controller is allowed to change the
            size of tx/rx pdu's used in a connection. This option has only
            minor impact on code size and non on RAM.
        value: '1'

    BLE_LL_CFG_FEAT_LL_PRIVACY:
        description: >
            This option is used to enable/disable LL privacy.
        value: '1'

    BLE_LL_CFG_FEAT_LE_CSA2:
        description: >
            This option is used to enable/disable support for LE Channel
            Selection Algorithm #2.
        value: '0'

    BLE_LL_CFG_FEAT_LE_2M_PHY:
        description: >
            This option is used to enable/disable support for the 2Mbps PHY.
        value: '0'

    BLE_LL_CFG_FEAT_LE_CODED_PHY:
        description: >
            This option is used to enable/disable support for the coded PHY.
        value: '0'

    BLE_LL_CFG_FEAT_LL_EXT_ADV:
        description: >
            This option is used to enable/disable support for Extended
            Advertising Feature. That means extended scanner, advertiser
            and connect.
        value: MYNEWT_VAL(BLE_EXT_ADV)

    BLE_LL_CFG_FEAT_LL_PERIODIC_ADV:
        description: >
            This option is used to enable/disable support for Periodic
            Advertising Feature.
        value: MYNEWT_VAL(BLE_PERIODIC_ADV)

    BLE_LL_CFG_FEAT_LL_PERIODIC_ADV_SYNC_CNT:
        description: >
            This option is used to configure number of supported periodic syncs.
        value: MYNEWT_VAL(BLE_MAX_PERIODIC_SYNCS)

    BLE_LL_CFG_FEAT_LL_PERIODIC_ADV_SYNC_LIST_CNT:
        description: >
            Size of Periodic Advertiser sync list.
        value: MYNEWT_VAL(BLE_MAX_PERIODIC_SYNCS)

    BLE_LL_CFG_FEAT_LL_PERIODIC_ADV_SYNC_TRANSFER:
        description: >
            This option is use to enable/disable support for Periodic
            Advertising Sync Transfer Feature.
        value: MYNEWT_VAL(BLE_PERIODIC_ADV_SYNC_TRANSFER)

    BLE_LL_CFG_FEAT_CTRL_TO_HOST_FLOW_CONTROL:
        description: >
            Enable controller-to-host flow control support. This allows host to
            limit number of ACL packets sent at once from controller to avoid
            congestion on HCI transport if feature is also supported by host.
        value: 0

    BLE_LL_CFG_FEAT_LL_SCA_UPDATE:
        description: >
            This option is used to enable/disable support for SCA update procedure
        value: 0
        restrictions:
            - '(BLE_VERSION >= 52) if 1'

    BLE_LL_CFG_FEAT_LL_ISO:
        description: >
            This option is used to enable/disable support for LE Isochronous Channels
            as per Bluetooth v5.2 channels
        value: MYNEWT_VAL(BLE_ISO)
        restrictions:
            - '(BLE_VERSION >= 52) if 1'

    BLE_LL_CFG_FEAT_LL_ISO_TEST:
        description: >
            This option is used to enable/disbale test commands for ISO support
        value: MYNEWT_VAL(BLE_ISO_TEST)
        restrictions:
            - 'BLE_LL_CFG_FEAT_LL_ISO if 1'

    BLE_LL_EXT_ADV_AUX_PTR_CNT:
         description: >
            This option configure a max number of scheduled outstanding auxiliary
            packets for receive on secondary advertising channel.
         value: 0

    BLE_PUBLIC_DEV_ADDR:
        description: >
            Allows the target or app to override the public device address
            used by the controller. If all zero, the controller will
            attempt to retrieve the public device address from its
            chip specific location. If non-zero, this address will
            be used.
        value: "(uint8_t[6]){0x00, 0x00, 0x00, 0x00, 0x00, 0x00}"

    BLE_LL_DTM:
        description: >
             Enables HCI Test commands needed for Bluetooth SIG certification
        value: MYNEWT_VAL(BLE_LL_DIRECT_TEST_MODE)
    BLE_LL_DTM_EXTENSIONS:
        description: >
             Enables non-standard extensions to HCI test commands. Once enabled,
             HCI_LE_Transmitter_Test accepts extra parameters in addition to
             those defined in Core specification
               interval (2 octets)   interval between packets (usecs), overrides
                                     standard interval
               pkt_count (2 octets)  number of packets to transmit, controller
                                     will automatically stop sending packets
                                     after given number of packets was sent
             Setting either of these parameters to 0 will configure for default
             behavior, as per Core specification.
             If specified interval is shorter then allowed by specification it
             will be ignored.
             Extended parameters shall immediately follow standard parameters.
             Controller can accept both standard and extended version of command
             depending on specified HCI command length.
        value: 0

    BLE_LL_VND_EVENT_ON_ASSERT:
        description: >
            This options enables controller to send a vendor-specific event on
            an assertion in controller code. The event contains file name and
            line number where assertion occured.
        value: 0

    BLE_LL_SYSINIT_STAGE:
        description: >
            Sysinit stage for the NimBLE controller.
        value: 250

    BLE_LL_DEBUG_GPIO_HCI_CMD:
        description: >
            GPIO pin number to debug HCI commands flow. Pin is set to high state
            when HCI command is being processed.
        value: -1
    BLE_LL_DEBUG_GPIO_HCI_EV:
        description: >
            GPIO pin number to debug HCI events flow. Pin is set to high state
            when HCI event is being sent.
        value: -1
    BLE_LL_DEBUG_GPIO_SCHED_RUN:
        description: >
            GPIO pin number to debug scheduler running (on timer). Pin is set
            to high state while scheduler is running.
        value: -1
    BLE_LL_DEBUG_GPIO_SCHED_ITEM_CB:
        description: >
            GPIO pin number to debug scheduler item execution times. Pin is set
            to high state while item is executed.
        value: -1

# Below settings allow to change scheduler timings. These should be left at
# default values unless you know what you are doing!
    BLE_LL_SCHED_AUX_MAFS_DELAY:
        description: >
            Additional delay [us] between last ADV_EXT_IND and AUX_ADV_IND PDUs
            when scheduling extended advertising event. This extends T_MAFS.
        value: 0
    BLE_LL_SCHED_AUX_CHAIN_MAFS_DELAY:
        description: >
            Additional delay [us] between consecutive AUX_CHAIN_IND PDUs
            when scheduling extended or periodic advertising event. This extends
            T_MAFS.
        value: 0
    BLE_LL_SCHED_SCAN_AUX_PDU_LEN:
        description: >
            This is expected PDU len for AUX_ADV_IND and subsequent
            AUX_CHAIN_IND. When scheduling scan scheduler will reserve time for
            receiving this amount of time. Setting this to high value improves
            reception of large PDUs but results in wasting scheduler space when
            receiving small PDUs only. On the other hand too low value can
            result in not being able to scan whole PDU due to being preempted
            by next scheduled item. By default size matching legacy ADV_IND PDU
            payload is used: ExtHeader (Flags, AdvA, ADI) + 31 bytes of data.
        range: 1..257
        value: 41

    BLE_LL_SCHED_SCAN_SYNC_PDU_LEN:
        description: >
            This is expected PDU len for AUX_SYNC_IND and subsequent
            AUX_CHAIN_IND. When scheduling scan scheduler will reserve time for
            receiving this amount of time. Setting this to high value improves
            reception of large PDUs but results in wasting scheduler space when
            receiving small PDUs only. On the other hand too low value can
            result in not being able to scan whole PDU due to being preempted
            by next scheduled item. By default size matching PDU with legacy
            data size is used: ExtHeader + 31 bytes of data.
        range: 1..257
        value: 32

# deprecated settings (to be defunct/removed eventually)
    BLE_LL_DIRECT_TEST_MODE:
        description: use BLE_LL_DTM instead
        value: 0
        deprecated: 1
    BLE_XTAL_SETTLE_TIME:
        description: use BLE_LL_RFMGMT_ENABLE_TIME instead
        value: 0
        deprecated: 1
    BLE_LL_OUR_SCA:
        description: use BLE_LL_SCA instead
        value: 60
        deprecated: 1

# defunct settings (to be removed eventually)
    BLE_DEVICE:
        description: Superseded by BLE_CONTROLLER
        value: 1
        defunct: 1
    BLE_LP_CLOCK:
        description: Superseded by BLE_CONTROLLER
        value: 1
        defunct: 1
    BLE_NUM_COMP_PKT_RATE:
        description: Superseded by BLE_LL_NUM_COMP_PKT_ITVL_MS
        value: '(2 * OS_TICKS_PER_SEC)'
        defunct: 1
    BLE_LL_MASTER_SCA:
        description: use BLE_LL_SCA instead
        value: 4
        defunct: 1


syscfg.vals.BLE_LL_CFG_FEAT_LL_EXT_ADV:
    BLE_LL_CFG_FEAT_LE_CSA2: 1
    BLE_HW_WHITELIST_ENABLE: 0
    BLE_LL_EXT_ADV_AUX_PTR_CNT: 5

# Enable vendor event on assert in standalone build to make failed assertions in
# controller code visible when connected to external host
syscfg.vals.!BLE_HOST:
    BLE_LL_VND_EVENT_ON_ASSERT: 1

syscfg.restrictions:
    - OS_CPUTIME_FREQ == 32768
