123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348 |
- /**
- * \file MS_limits.h
- *
- * This file lists all the Tunable constants used in
- * EtherMind Mesh Stack modules.
- */
- /*
- * Copyright (C) 2016. Mindtree Ltd.
- * All rights reserved.
- */
- #ifndef _H_MS_LIMITS_
- #define _H_MS_LIMITS_
- /* ----------------------------------------------------------------------- */
- /* ============================= Bearer ================================ */
- /* ----------------------------------------------------------------------- */
- #define MS_NUM_NETWORK_INTERFACES 2
- #define MS_NUM_PROVISIONING_INTERFACES 2
- /* ----------------------------------------------------------------------- */
- /* ============================= Network =============================== */
- /* ----------------------------------------------------------------------- */
- /*
- * In a 'flooding' mesh implementation, one of the methods used to restrict
- * unlimited flooding, is using message cache.
- * This parameter specifies the size of the Network message cache.
- *
- * Minimum Value: 2
- * Maximum Value: can be anything.
- */
- #define MS_NET_CACHE_SIZE 30 //10->30 by ZQ
- /*
- * Maximum number of subnets the device can store information about.
- *
- * Minimum Value: 1
- * Maximum Value: can be anything.
- */
- #define MS_MAX_SUBNETS 3
- /*
- * Maximum number of device keys the device can store information about.
- * As a configuration client, there should be one additional space to
- * contain device key of configuration server.
- *
- * Minimum Value: 1
- * Maximum Value: can be anything.
- */
- #define MS_MAX_DEV_KEYS 256
- /*
- * Maximum number of addresses present in each proxy filter list.
- *
- * Minimum Value: 1
- * Maximum Value: can be anything.
- */
- #define MS_PROXY_FILTER_LIST_SIZE 5
- /*
- * The distance between the network sequence numbers, for every persistent
- * storage write. If the device is powered cycled, it will resume transmission
- * using the sequence number from start of next block.
- *
- * Minimum Value: can be anything. A smaller value will reduce the flash lifetime.
- * Maximum Value: can be anything.
- */
- #define MS_NET_SEQ_NUMBER_BLOCK_SIZE 512// 2048
- /*
- * The timeout in millisecond for proxy advertisement with Network ID for
- * each subnet
- *
- * Minimum Value: can be anything. Larger value will have lesser timeout load.
- * Maximum Value: can be anything.
- */
- #define PROXY_SUBNET_NETID_ADV_TIMEOUT (300 | EM_TIMEOUT_MILLISEC) //100
- /*
- * The timeout in millisecond for proxy advertisement with Node Identity for
- * each subnet
- *
- * Minimum Value: can be anything. Larger value will have lesser timeout load.
- * Maximum Value: can be anything.
- */
- #define PROXY_SUBNET_NODEID_ADV_TIMEOUT (300 | EM_TIMEOUT_MILLISEC) //100
- /*
- * The time period for proxy advertisement with Node Identity
- *
- * Minimum Value: Default 60 seconds as in specification
- * Maximum Value: can be anything.
- */
- #define PROXY_NODEID_ADV_TIMEOUT (60000 | EM_TIMEOUT_MILLISEC)
- /* ----------------------------------------------------------------------- */
- /* ============================= Transport ============================= */
- /* ----------------------------------------------------------------------- */
- /*
- * This parameter specifies the maximum number of Low Power Nodes (LPNs)
- * to which friendship can be established as a Friend.
- *
- * Minimum Value: 1
- * Maximum Value: can be anything.
- */
- #define MS_MAX_LPNS 5
- /*
- * Replay Protection cache is required to protect against relay attacks.
- * This parameter specifies the size of the Replay Protection cache.
- *
- * Minimum Value: 2
- * Maximum Value: can be anything.
- */
- #define MS_REPLAY_CACHE_SIZE 30
- /*
- * Reassembled SAR Rx cache is to avoid handling of segmented frames
- * which are already received and acked by the local implementation.
- * Saves the unnecessary effort of reassmbly and complex handling by
- * the upper layers to handle reception of same payload again from
- * the same source device.
- *
- * Minimum Value: 2
- * Maximum Value: can be anything.
- */
- #define MS_REASSEMBLED_CACHE_SIZE 30
- /*
- * The number of times to retry the FriendPoll message when
- * the FriendUpdate message is not received for the first attempt
- * of FriendPoll in the current sequence. When this count expires,
- * the friendship will be terminated with the Friend node.
- *
- * Minimum Value: 1
- * Maximum Value: can be anything.
- */
- #define MS_FRND_POLL_RETRY_COUNT 10
- /*
- * Number of Segmentation and Reassembly contexts.
- * Used during both reception and transmission and also for associated
- * LPNs.
- *
- * Minimum Value: 2
- * Maximum Value: can be anything.
- */
- #define LTRN_SAR_CTX_MAX 16
- /*
- * Segment Transmission Timeout.
- *
- * Minimum Value: 200 MS
- * Maximum Value: can be anything.
- */
- #define LTRN_RTX_TIMEOUT 200 /* Millisecond */
- /*
- * Segment Transmission Count.
- *
- * Minimum Value: 2
- * Maximum Value: can be anything.
- */
- #define LTRN_RTX_COUNT_UNICASS 5
- #define LTRN_RTX_COUNT_GROUP 3
- /*
- * Ack Timeout.
- *
- * Minimum Value: 200 MS
- * Maximum Value: can be anything.
- */
- /* TODO: Use ack timeout configured based on the TTL in the received frame */
- #define LTRN_ACK_TIMEOUT 50 /* Millisecond */
- /*
- * Incomplete Timeout.
- *
- * Minimum Value: 10 Seconds (10000 MS)
- * Maximum Value: can be anything.
- */
- /* TODO: Use ack timeout configured based on the TTL in the received frame */
- #define LTRN_INCOMPLETE_TIMEOUT (20*1000) /* Millisecond */
- /*
- * Receive window is the time in ms for which the Friend will be transmitting the
- * response to any request from the LPN after the Receive delay time of
- * getting any request
- *
- * Minimum Value: 100
- * Maximum Value: As required
- */
- #define MS_FRND_RECEIVE_WINDOW 100
- /*
- * This parameter defines the maximum number of messages that the friend
- * is capabale to queue for a single Low Power Node
- *
- * Minimum Value: 2
- * Maximum Value: As required
- */
- #define MS_FRIEND_MESSAGEQUEUE_SIZE 15
- /*
- * This parameter defines the maximum number of subscription addresses
- * that the friend is capabale to store for a single Low Power Node
- *
- * Minimum Value: 1
- * Maximum Value: As required
- */
- #define MS_FRIEND_SUBSCRIPTION_LIST_SIZE 8
- /*
- * This parameter defines the initial timeout in milliseconds
- * to be used to track the Friend clear Confirmation after
- * sending of a Friend Clear message
- *
- * Minimum Value: 1000
- * Maximum Value: As required
- */
- #define LPN_CLEAR_RETRY_TIMEOUT_INITIAL 1000
- /*
- * This parameter defines the timeout in milliseconds
- * to be used to retry friend request attempts in case an
- * offer is not received.
- *
- * Minimum Value: 1100
- * Maximum Value: As required
- */
- #define MS_TRN_FRNDREQ_RETRY_TIMEOUT 1200
- /* ----------------------------------------------------------------------- */
- /* ============================= Access ================================= */
- /* ----------------------------------------------------------------------- */
- /*
- * This parameter specifies the maximum number of elements.
- *
- * Minimum Value: 1
- * Maximum Value: can be anything.
- */
- #define MS_ACCESS_ELEMENT_COUNT 5
- /*
- * This parameter specifies the maximum number of models.
- *
- * Minimum Value: 1
- * Maximum Value: can be anything.
- */
- #define MS_ACCESS_MODEL_COUNT 10// 5
- /*
- * Maximum number of Applications (keys) the device can store information about.
- *
- * Minimum Value: 1
- * Maximum Value: can be anything.
- */
- #define MS_MAX_APPS 5
- /*
- * Maximum number of Virtual Addresses the device can store information about.
- *
- * Minimum Value: 1
- * Maximum Value: can be anything.
- */
- #define MS_MAX_VIRTUAL_ADDRS 5
- /*
- * Maximum number of Non-Virtual Addresses the device can store information about.
- *
- * Minimum Value: 1
- * Maximum Value: can be anything.
- */
- #define MS_MAX_NON_VIRTUAL_ADDRS 5
- /*
- * Maximum number of Addresses the device can store information about.
- * This includes both the Virtual and non-virtual addresses.
- *
- * Note: This depends on the other configurations.
- * Defined here for easy reference. Do not change manually.
- */
- #define MS_MAX_ADDRS (MS_MAX_VIRTUAL_ADDRS + MS_MAX_NON_VIRTUAL_ADDRS)
- #if (MS_MAX_ADDRS != (MS_MAX_VIRTUAL_ADDRS + MS_MAX_NON_VIRTUAL_ADDRS))
- #error "MS_MAX_ADDRS != (MS_MAX_VIRTUAL_ADDRS + MS_MAX_NON_VIRTUAL_ADDRS)"
- #endif /* (MS_MAX_ADDRS != (MS_MAX_VIRTUAL_ADDRS + MS_MAX_NON_VIRTUAL_ADDRS)) */
- /*
- * Maximum number of Transition Timers.
- *
- * Minimum Value: 1
- * Maximum Value: can be anything.
- */
- #define MS_MAX_NUM_TRANSITION_TIMERS 5
- /*
- * Maximum number of Periodic Step Timers.
- *
- * Minimum Value: 1
- * Maximum Value: can be anything.
- */
- #define MS_MAX_NUM_PERIODIC_STEP_TIMERS 5
- /* ----------------------------------------------------------------------- */
- /* ========================== Health Model ============================== */
- /* ----------------------------------------------------------------------- */
- /*
- * This parameter specifies the maximum number of Health Servers
- * to be supported.
- *
- * Minimum Value: 1
- * Maximum Value: can be anything.
- */
- #define MS_HEALTH_SERVER_MAX 2
- /* ----------------------------------------------------------------------- */
- /* ============================= Misc. ================================== */
- /* ----------------------------------------------------------------------- */
- /*
- * This parameter specifies Default Company ID.
- *
- * Phyplus Inc - Company ID
- * Ref: https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
- */
- #define MS_DEFAULT_COMPANY_ID 0x0504
- /*
- * This parameter specifies a 16-bit vendor-assigned product identifier.
- */
- #define MS_DEFAULT_PID 0x6212
- /*
- * This parameter specifies a 16-bit vendor-assigned product version identifier.
- */
- #define MS_DEFAULT_VID 0x0000
- #endif /* _H_MS_LIMITS_ */
|