Menu

#180 Filtering rules for DestinationURI does not follow the standard

1.4.0.0
closed
None
2018-05-02
2017-10-18
No

According the Filtering rules in IEC61375-2-3 A.7.6.3 a)
An empty DestinationURI in a MD telegrams shall be received by a listener regardless of any specified DestinationURI.

The submited ptDestURI in tlm_addListener() is filtered in any case if it is unlike empty. The stack must therefore skip the DestinationURI filtering if the received MD telegram has an empty DestinationURI string.

Discussion

  • Armin-Hagen Weiss

    1) the interfaces of tlm_add/readdListener() need to be adapted acc. table A.20

    /******************/
    /
    Subscribe to MD messages.

    • Add a listener to TRDP to get notified when messages are received
      *
    • @param[in] appHandle the handle returned by tlc_init
    • @param[out] pListenHandle Handle for this listener returned
    • @param[in] pUserRef user supplied value returned with received message
    • @param[in] pfCbFunction Pointer to listener specific callback function, NULL to use default function
    • @param[in] comIdListener set TRUE if comId shall be observed
    • @param[in] comId comId to be observed
    • @param[in] etbTopoCnt ETB topocount to use, 0 if consist local communication
    • @param[in] opTrnTopoCnt operational topocount, != 0 for orientation/direction sensitive communication
    • @param[in] srcIpAddr Source IP address, lower address in case of address range, set 0 if not used
    • @param[in] srcIpAddr2 upper address in case of address range, set 0 if not used
    • @param[in] mcDestIpAddr multicast group to listen on
    • @param[in] pktFlags OPTION:
    • TRDP_FLAGS_DEFAULT, TRDP_FLAGS_MARSHALL
    • @param[in] srcURI only functional group of source URI, set 0 if not used
    • @param[in] destURI only functional group of destination URI, set 0 if not used
      *
    • @retval TRDP_NO_ERR no error
    • @retval TRDP_PARAM_ERR parameter error
    • @retval TRDP_MEM_ERR out of memory
    • @retval TRDP_NOINIT_ERR handle invalid
      /
      TRDP_ERR_T tlm_addListener (
      TRDP_APP_SESSION_T appHandle,
      TRDP_LIS_T
      pListenHandle,
      const void *pUserRef,
      TRDP_MD_CALLBACK_T pfCbFunction,
      BOOL8 comIdListener,
      UINT32 comId,
      UINT32 etbTopoCnt,
      UINT32 opTrnTopoCnt,
      TRDP_IP_ADDR_T srctIpAddr,
      TRDP_IP_ADDR_T srcIpAddr2,
      TRDP_IP_ADDR_T mcDestIpAddr,
      TRDP_FLAGS_T pktFlags,
      const TRDP_URI_USER_T srcURI,
      const TRDP_URI_USER_T destURI)

    /******************/
    /
    Resubscribe to MD messages.

    • Readd a listener after topoCount changes to get notified when messages are received
      *
    • @param[in] appHandle the handle returned by tlc_init
    • @param[out] listenHandle Handle for this listener
    • @param[in] etbTopoCnt ETB topocount to use, 0 if consist local communication
    • @param[in] opTrnTopoCnt operational topocount, != 0 for orientation/direction sensitive communication
    • @param[in] srcIpAddr Source IP address, lower address in case of address range, set 0 if not used
    • @param[in] srcIpAddr2 upper address in case of address range, set 0 if not used
    • @param[in] mcDestIpAddr multicast group to listen on
      *
    • @retval TRDP_NO_ERR no error
    • @retval TRDP_PARAM_ERR parameter error
    • @retval TRDP_MEM_ERR out of memory
    • @retval TRDP_NOINIT_ERR handle invalid
      /
      EXT_DECL TRDP_ERR_T tlm_readdListener (
      TRDP_APP_SESSION_T appHandle,
      TRDP_LIS_T listenHandle,
      UINT32 etbTopoCnt,
      UINT32 opTrnTopoCnt,
      TRDP_IP_ADDR_T srctIpAddr,
      TRDP_IP_ADDR_T srcIpAddr2,
      TRDP_IP_ADDR_T mcDestIpAddr /
      multiple destId handled in layer above */)

    2) in tlm_addListener() check that at least one filter parameter is not empty if there is more than 1 replier
    3) check incoming messages against filter criteria acc. A7.6.3
    4) for incoming unicast and multicast forward the incoming message to the first listener with fitting filter criteria (difference to A7.6.3)

     

    Last edit: Armin-Hagen Weiss 2017-11-24
  • Bernd Löhr

    Bernd Löhr - 2017-11-28
    • status: open --> accepted
    • assigned_to: Bernd Löhr
     
  • Bernd Löhr

    Bernd Löhr - 2017-11-28

    First step is to enhance API of tlm_addListener and tlm_reAddListener...

     
  • Bernd Löhr

    Bernd Löhr - 2017-11-28
    • status: accepted --> pending
     
  • Bernd Löhr

    Bernd Löhr - 2018-02-02

    Proposed interface does not follow the standard! source IP range is needed for PD subscribe, not for MD listener! -> new Ticket

     
  • Bernd Löhr

    Bernd Löhr - 2018-05-02
    • status: pending --> closed
     

Log in to post a comment.

MongoDB Logo MongoDB