For the immediate future, I think I can work around not having readfrom by 
exchanging some local 64-bit context information as the parameters for connect 
and accept.  Then, change fi_send calls to fi_senddata and provide the remote’s 
context as the data.  This will provide an easy way to map an incoming message 
to a local context.  

Longer term, it seems we could really use another fi_cq_readfrom() specific to 
connected endpoints.  Rather than return an fi_addr_t, it should return a 
fid_ep pointer.  It would be great to extend fi_cq_readfrom() with an extra 
parameter, but that would break existing code so perhaps creating a new call 
would be best.  Something like:

ssize_t fi_cq_readfromconn(struct fid_cq *cq, void *buf, size_t count,
    struct fid_eq **src_ep);
The local context could be retrieved from the context of the src_ep’s.  

Did you want me to create an issue on this to track it?

Doug


> On Sep 9, 2019, at 11:00 AM, Hefty, Sean <[email protected]> wrote:
> 
>> It seems to me that using a Shared Rx context and 1 CQ with connected 
>> endpoints is very
>> much like running connectionless: when a message is received, I cannot see 
>> an obvious
>> way to determine the source of the message.  The CQ entry does not have the 
>> endpoint in
>> it and I cannot get AVs to work with the TCP or verbs provider (thus I 
>> cannot use
>> fi_cq_readfrom).
> 
> I agree - this is an issue.
> 
> 
>> Is there an easy way to determine the source address/endpoint of a received 
>> message in
>> this scenario?  Would it make sense to include the ep fid in the CQ entry to 
>> help?
> 
> Some sort of extension is needed here.  I'm not sure what the best answer is. 
>  IMO, the ideal solution would make use of fi_cq_readfrom(), so that the 
> source data is reported the same way regardless of EP type.  I just don't see 
> a clean way to do this off the top of my head.
> 
> - Sean

_______________________________________________
ofiwg mailing list
[email protected]
https://lists.openfabrics.org/mailman/listinfo/ofiwg

Reply via email to