sctplab / sctp-idata Goto Github PK
View Code? Open in Web Editor NEWDeveloping support for draft-ietf-tsvwg-sctp-ndata
License: BSD 2-Clause "Simplified" License
Developing support for draft-ietf-tsvwg-sctp-ndata
License: BSD 2-Clause "Simplified" License
Clarify the interleaving at the sender side. Interleaving ordered and unordered messages on the sender side is not allowed unless a new interleaving level is defined at the receiver side.
Make clear that the receiver MUST NOT make any assumptions about TSN assignments. It should also be noted that the sender MUST ensure that the receiver can make progress. One way of doing this is to assign later fragments higher TSNs and send TSNs out in sequence.
Should we allow the interleaving of an ordered and unordered message? SCTP_FRAGMENT_INTERLEAVE isn't clear about this. Clarify it!
Describe what happens when an application tries to select an stream scheduler requiring I-DATA support, but this isn't negotiated. EINVAL
might the appropriate errno
.
Describe what happens if the application selects a stream scheduler requiring I-DATA support before the association is established (on a listening socket, for example), and then the association is established without I-DATA support (since the peer doesn't support it).
This issue was brought up by Marcelo on the tsvwg mailing list.
Remove some_taken
from struct sctp_queued_to_read
. Double check if some other conditions needs to be considered.
Section 2.1 contains:
However, the lower 16-bit of the MID can be used as the SSN if necessary.
This should be moved to the Socket API Considerations making clear that the data structures exposing the SSN are not changed.
The SSN is exposed in
struct sctp_sndrcvinfo
as specified in SCTP Header Information Structure (SCTP_SNDRCV) - DEPRECATEDstruct sctp_extrcvinfo
as specified in Extended SCTP Header Information Structure (SCTP_EXTRCV) - DEPRECATEDstruct sctp_rcvinfo
as specified in SCTP Receive Information Structure (SCTP_RCVINFO)It currently removes the DATA chunk when reporting.
While there, it also reports any padding.
Make clear that either I-FORWARD-TSN or FORWARD-TSN is used. I-FORWARD-TSN is only used in combination with I-DATA. Make also clear how support for I-FORWARD-TSN is negotiated.
Replace
Since most schedulers require late TSN assignment, it should be noted
that the implementation of [RFC6525] needs to handle this.
by
Since most schedulers, especially all schedulers supporting user message
interleaving, require late TSN assignment, it should be noted that the
implementation of [RFC6525] needs to handle this.
I don't fully understand the description of assoc_id
in section 4.3.1.
This parameter is ignored for one-to-one style sockets.
For one-to-many style sockets, this parameter indicates upon which association
the user is performing an action.
So far so good.
The special sctp_assoc_t SCTP_FUTURE_ASSOC can also be used,
it is an error to use SCTP_{CURRENT|ALL}_ASSOC in assoc_id.
SCTP_CURRENT_ASSOC
and SCTP_ALL_ASSOC
are invalid? What does also refer to?SCTP_FUTURE_ASSOC
is invalid, why not just state exactly that?(Let me know if I should write this on the mailing list.)
In sctp_choose_boundspecific_stcb
for (laddr = stcb->asoc.last_used_address; laddr;
laddr = LIST_NEXT(laddr, sctp_nxt_addr)) {
if (laddr->ifa == NULL) {
/* address has been removed /
continue;
}
if (laddr->action == SCTP_DEL_IP_ADDRESS) {
/ address is being deleted /
continue;
}
sifa = sctp_is_ifa_addr_preferred(laddr->ifa, dest_is_loop, dest_is_priv, fam);
if (sifa == NULL)
continue;
if (((non_asoc_addr_ok == 0) &&
(sctp_is_addr_restricted2(stcb, sifa))) ||
(non_asoc_addr_ok &&
(sctp_is_addr_restricted2(stcb, sifa)) &&
(!sctp_is_addr_pending(stcb, sifa)))) {
/ on the no-no list */
continue;
}
stcb->asoc.last_used_address = laddr;
SCTP_TCB_UNLOCK(stcb);
atomic_add_int(&sifa->refcount, 1);
return (sifa);
}
if (start_at_beginning == 0) {
stcb->asoc.last_used_address = NULL;
goto sctp_from_the_top;
}
My application was crashing when in this part of code, when try to change some config related to sctp in my application and the reloading it. I some times see multiple threads are in this part of code, however they belong to different sctp connections.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.