• When the Repetition Phase is entered, the Service Discovery Module shall start the timer SdClientTimerInitialFindRepetitionsBaseDelay ⌋()
  • When the timer SdClientTimerInitialFindRepetitionsBaseDelay expires within the Repetition Phase, a FindOffer Message shall be sent. ⌋()
  • In the Repetition Phase up to SdClientTimerInitialFindRepetitionsMax FindServer entries shall be sent with doubling intervals (BaseDelay, first FindService Entry, 2x BaseDelay, second FindService Entry, 4x BaseDelay, third FindService Entry, …).
    在重复阶段,直到SdClientTimerInitialFindRepetitionsMax FindServer条目应以双倍间隔发送(BaseDelay,第一个FindService条目,2x BaseDelay,第二个FindService条目,4x BaseDelay,第三个FindService条目,……)。
  • Note: Example config and resulting behavior (no OfferService received during example):


[Initial Wait Phase starts]
Wait Initial Wait Delay based on Configured Min and Max
Send entry.
[Initial Wait Phase ends]

[Repetition Phase starts]
Wait 30ms (=30ms * 20).
Send entry.

Wait 60ms (=30ms * 21).
Send entry.

Wait 120ms (=30ms * 22).
Send entry.
[Repetition Phase ends]

  • If the Service Discovery Module receives an OfferService Entry while the current state SD_CLIENT_SERVICE_REQUESTED is for this Client Service Instance, the following step(s) shall be performed in the following order:
    • Cancel the repetition timer.
    • If received TTL is not equal to the max value, set the TTL timer for this entry to the received TTL value.
    • Open TCP connection if SdClientServiceTcpRef is configured and was not opened before.
    • Leave the Repetition Phase immediately and enter the Main Phase.
  • After sending the maximum repetitions (defined by SdClientTimerInitialFindRepetitionsMax) of FindService entries, the Repetition Phase shall be left and the Main Phase shall be entered.
  • If Sd_ClientServiceSetState()is called with state SD_CLIENT_SERVICE_RELEASED while being in Repetition Phase, this phase shall be left and the service instance shall enter Down Phase.
    如果在处于Repetition阶段时使用状态SD_CLIENT_SERVICE_RELEASED调用Sd_ClientServiceSetState(),则应离开此阶段,并且服务实例应进入Down Phase。
  • If Sd_LocalIpAddrAssignmentChg() is called with a state other than “TCPIP_IPADDR_STATE_ASSIGNED” while being in Repetition Phase the Down Phase shall be entered.
    如果在处于Repetition阶段时使用“TCPIP_IPADDR_STATE_ASSIGNED”以外的状态调用Sd_LocalIpAddrAssignmentChg(),则应输入Down Phase。
  • If the TCP/IP connection has been lost (Socket connection is other than SOAD_SOCON_ONLINE), the Service Discovery Module shall leave the Repetition Phase, enter the Wait Phase, and stop the TTL timers of the associated Client Service Instances and EventGroups.
    如果TCP / IP连接丢失(套接字连接不是SOAD_SOCON_ONLINE),服务发现模块应离开Repetition阶段,进入Wait阶段,并停止相关客户端服务实例和事件组的TTL定时器。