George Bosilca wrote:
Karol,
We (the folks at UTK) implemented a SCTP BTL. It's not yet in the
trunk, but it will get there shortly. Instead of starting from
scratch, it might be a good idea to start directly from there.
Thanks for the reply. This BTL would definitely be worth taking a look
at. Is there a preliminary copy of the source? If so, is there anyway I
could obtain it?
To answer your question, the TCP BTL use a copy of the original iovec.
After each write, this copy is modified in order to describe the next
operation (i.e. some of the iovec removed and some pointers modified
based on the return value of the write function).
I've seen this occurring in numerous gdb traces. I'm curious if anyone
has tried expanding the array of iovec's to handle large messages over
SCTP? Currently I'm copying the original iovec over and fragmenting the
data portion if it is over a certain size. The new series of iovecs are
then individually passed to writev(). There is probably a more elegant
solution and one in which the original frag pointer has knowledge of
what is going on.
--
Karol Mroz
km...@cs.ubc.ca