Replies: 1 comment
-
|
Man page update: As far as the SRX issue, this gets tricky because you're trying to define behavior for something that was deliberately left undefined for this reason. There are a lot of different cases to consider and so trying to define these cases for a use case that the application really shouldn't be doing is very difficult... My first question would be why is the application trying to do this and are you sure it's something you need to support and if so to what extent? The more bullet proof you make this, the more overhead you risk adding to everything else. (1) Unmatched/posted: easy - cancel Are you concerned at all about messages that come in from old peers after a new one has been inserted in the old one's place? I haven't fully thought out those cases... |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
FI_AV_TABLE man page clarification
According to the man page
The man page does not specify what happens when there is one or more fi_av_remove calls in between the fi_av_insert calls. I did a quick test and the current util AV implementation re-uses fi_addrs of removed peers. I think we should update the man page to clarify what happens when there are fi_av_remove calls and make sure the util AV implementation conforms to the man page
SRX behavior
The current SRX implementation maintains two per peer lists of RX entries: (1) application posted receives and (2) unexpected messages from the peer. Currently, SRX does not have an API to remove a peer. So if an application calls fi_av_remove followed by fi_av_insert and the fi_addr is re-used, the new peer will re-use the per peer lists maintained by SRX which could contain RX entries from a peer that has since been removed.
The man page for fi_av_remove says
So if the applications calls fi_av_remove with pending fi_recv operations and that corrupts the RX entry list with application posted receives, one can argue that the application should fix its behavior.
But the application has no knowledge of any pending unexpected receives in the SRX queue. The SRX should cleanly handle the case when the application calls fi_av_remove with pending unexpected messages. I think the best way to do that is to introduce an API to remove peers from the SRX
Beta Was this translation helpful? Give feedback.
All reactions