This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SRIO Device ID Pattern Matching

I'd like to connect a relatively large number of cores (thus SRIO sockets) using the SRIO Driver (for 6678).

 

I can see that all device IDs that can potentially be attached to must be specified by TLM Port BRR's -- but if I use each BRR to be an exact match, then I could only connect up to 16 devices (4 ports x 4 BRRs).

 

I can see that there's a pattern match, but I am thoroughly confused about how to use it the way that suits my purpose.  I believe I could come up with multiple device IDs that could match a pattern (I'm familiar with how masking works), but a quick example would save me a headache.  

My main concern is: Is the pattern matching used for anything besides registering Device IDs?  In particular, are incoming packets judged using the BRRs or does it use specific IDs.

For example, if I used a pattern that didn't match all bits so that 4 unique deviceIDs satisfied the pattern, would a message incoming from 1 of those 4 be coming from "the single unique deviceID" or "one of the device IDs that matched the pattern, regardless of which exact device was the sender"?  If it's the first case, then I guess I'm fine. If it's the second case, does the Srio_SockAddrInfo argument of Srio_sockRecv() contain the unique DeviceID?

  • Tim,

    The DeviceIDs in the BRR's contain the 16 deviceIDs that are local to the DSP.  Any one of these IDs can be used in the SRCID field of an outgoing message.  The DESTID of an outgoing message/packet can be set to anything, supporting connections to thousands of devices.  This is done when programming the LSU for DirectIO traffic, or the TX descriptors for message traffic. 

    The other purpose of the BRR's is for accepting packets.  Please see sections 2.3.12 and 2.3.13 in the sprugw1 user's guide.  There are modes for explicit checking of an incoming packet's DESTID versus the BRR contents.  There are also modes where this check is ignored and any packet is accepted.

     

    Regards,

    Travis