As per my understanding CYBLE_EVT_GATTC_DISC_SKIPPED_SERVICE event is generated when the Client finds services while discovery which are not defined in the GATT database. Let me check further into this to verify the behavior described by you and get back.
When it comes to dongle if you do startdiscovery() since these services will not be defined in the GATT Database, all will be skipped.
So it is preferable to use the discover all primary services/characteristics APIs.
Any update on the details here? Also, for the Start discovery, I'm not sure I understand your comment, as it appears the start calles the discover all primary services:
I am calling the CyBle_GattcStartDiscovery() API and internally it is calling the CyBle_GattcDiscoverAllPrimaryServices() API so I think I am already doing this.
1. Client execute discovery will discover only for services, chars, descriptors…which are selected in customizer (Profile-> gatt client role..).
If peer devise have some addition services it will skipped during discovery. Event CYBLE_EVT_GATTC_DISC_SKIPPED_SERVICE informs the user that addition services was found and skipped.
2. Each service which are not defined will trigger this event. Therefore if user doesn't add any service at Client side then this will get triggered.
I tried with a simple design having a customs service declared on Server and not on Client and this event was triggered.
And when I defined this service at client side this event was not triggered on the Client side on discovery.