SCTP Discussions

Text archives Help


AW: 2nd try: AW: [SCTP-Discussion] Request for comments: API for SCTP 1.0


Chronological Thread 
  • From: Schruefer Wolfgang <Wolfgang.Schruefer AT icn.siemens.de>
  • To: "'discussion AT sctp.de'" <discussion AT sctp.de>
  • Subject: AW: 2nd try: AW: [SCTP-Discussion] Request for comments: API for SCTP 1.0
  • Date: Tue Feb 27 13:21:00 2001
  • List-id: SCTP Discussions <discussion.sctp.de>

Dear Michael and all,

thanks for your reply.
see my comments below regarding 1a).and 5) and this
new Points:

7) Data fragmentation is not yet supported. Therefore the maximum data length
should be visible for the ULP and be defined by SCTP in sctp.h.

8) sctp_requestHeartbeat(), sctp_getSRTT_Report(),
sctp_setAssociationParams():
For me "destAddressIndex" and "path_id" are the same, so I'd prefer the same
name and type.

Thanks and
Viele Gruesse
Wolfgang Schruefer

**************************************
Wolfgang Schrüfer SIEMENS AG
ICN WN CC EKJ 14 TEL: 722-61646
mailto:Wolfgang.Schruefer AT icn.siemens.de
**************************************

> -----Ursprüngliche Nachricht-----
> Von: Tuexen Michael
> [SMTP:Michael.Tuexen AT icn.siemens.de]
> Gesendet am: Montag, 26. Februar 2001 15:37
> An:
> 'discussion AT sctp.de'
> Betreff: RE: 2nd try: AW: [SCTP-Discussion] Request for comments: API
> for SCTP 1.0
>
> Dear all,
> see my comments below.
> During the coding of an echo server I found some problems with
> sctp.h. After discussing this with Andreas we will publish
> an updated version.
> Best regards
> Michael
>
> Michael Tüxen Tel.: +49 89 722 47210
> Siemens AG Fax: +49 89 722 48212
> ICN WN CS SE 51 E-mail:
> Michael.Tuexen AT icn.siemens.de
>
> > -----Original Message-----
> > From: Schruefer Wolfgang
> > [SMTP:Wolfgang.Schruefer AT icn.siemens.de]
> > Sent: Monday, February 26, 2001 3:02 PM
> > To:
> > 'discussion AT sctp.de'
> > Subject: 2nd try: AW: [SCTP-Discussion] Request for comments: API for
> > SCTP 1.0
> >
> > Dear Michael, Dear Andreas,
> >
> > thanks for this new API and its documentation. You spent a lot of effort
> > and I like the result very much.
> >
> > Especially I like the new features :
> > - all RFC-proposed functions are included
> > - in sctp.h is no include of external header-files (socket.h / in.h /
> > glib.h)
> > - the IP-addresses are passed by string
> > - the new paramenter "pointer to ULP data"
> > - the many instance and association parameters
> > - the documentation
> > - ...
> >
> > Of course with this big stroke there are some (small) comments /questions:
> >
> > 1) InstanceParams:
> > 1a) What is difference between my_rwnd and max_recvQueue?
> > My idea about it:
> > My_rwnd (number of bytes) is responsible for the calculation of a_rwnd
> > passed back to the sender.
> > Max_recvQueue is the number of chunks (not bytes!) in the recvQueue. If
> > the limit is reached a_rwnd will be set to 0?
> > Is this the idea?
> [Tuexen Michael] My_rwnd is needed for the setup of the association.
> Max_recvQueue
> came up in a discussion with Wolfgang, so I really do not know the
> semantics. Wolfgang,
> could you clarify? Was is not a limit of the recvQueue?
[Schruefer Wolfgang]

I think of the following behaviour:
-- parameter my_rwnd defines the default receiver window a_rwnd
(necessary for INIT / INIT ACK)
-- The rwnd should also be possible to set per assoc: e.g. new
assocParam: my_assoc_rwnd ?

>>>> calculation of a_rwnd for a SACK at the receiver works this way:
a_rwnd = my_assoc_rwnd - number_of_bytes_in_recvQueue
If a_rwnd would become negative, a SACK will be sent with:
a_rwnd=0
cumulative TSN ACK = received TSN -1

Is this correct according to RFC?

-- Max_recvQueue: (I'd prefer it as assocParam)
The problem of a byte-oriented Queue-supervision is, that the amount
of messages can not be predicted. Some ULP use e.g. for
interprocesscommunication or to avoid memory allocation pool elements of a
fixed size, and for every message an extra element is used.
For this case a message-based Queue-Supervison makes sense, because
the number of elements is limited.
I was thinking of a way like that:

--> If it is > 0, the number_of_messages_in_recvQueue will be
supervised:
If number_of_messages_in_recvQueue >= Max-recvQueue, then a_rwnd
can be set to 0 in the next SACK and the sender is stopped. How to handle the
chunks in flight must be discussed.

Is this a feature to go for (in the future)?

--MaxSendQueue: (I'd prefer it as assocParam)
Here again both ways are possible: Supervise the number of bytes or
the number of messages.
You must decide or implement 2 parameters ...


> >
> > 1b) delay: I'd prefer it as an AssocParam
> [Tuexen Michael] Yes!
> > 1c) assoc/pathMaxRetransmits can be set also as AssocParam, do you really
> > want it twice (but why not ...)?
> [Tuexen Michael] Hmm, let us think about it.
> > 2) AssocParams
> > The parameters "valid CookeiLife" and "maxInitRetransmits" are defined by
> > InstanceParams and make no sense here, because the values are not needed
> > after COMMUNICATION_UP, or am I wrong?
> [Tuexen Michael] Seems to be right!
> > Please can you provide an explaination of the flowcontrol-values?
> [Tuexen Michael] I think they are there to be able to supervise
> them. Is it right, Andreas?
> > 3) All Params
> > If the ULP wants to change only one param, he needs to fill in all values.
> > What do you think of this idea:
> > You choose "int" instead of "unsigned int" for all of them. And then a
> > negativ value means: "don't touch" ?
> [Tuexen Michael] We thought about the following way: You will always
> have a get_*
> and a set_* function. First get_* the current values, change some of
> them and use set_*
> to activate the modified settings.
> >
> > 4) *sctp_getAssociatinParams(), *sctp_getInstanceParams():
> > I'd prefer if the result is written in the memory of the ULP and not in a
> > memory allocated by SCTP and released by ULP.
> > It should be no problem, because the size of the result ist fixed.
> [Tuexen Michael] This is much better than the way we do it now.
> > 5)*sctp_status(),
> > Here the same point as at 4), but the problem is probably the undefined
> > length of the result of sctp_status().
> > Also the ULP has to free not only the memory for result-structure, but
> > also for *destinationAddresses, *SRTT, *RTO, ...
> > Here I would suggest that you return the status for only one destination
> > address. It is up to the ULP to run it several times for the various
> > destinations. I think that makes it easier for both sides.
> > Also the strings should be limited to avoid a release for every string.
> >
> > Here my proposal:
> >
> >
> > typedef struct
> > {
> > unsigned short association_state;
> > unsigned short number_of_dest_addresses;>
> > unsigned short AddressIndex;
> > unsigned char destinationAddress[50];
> > unsigned short outstreams;
> > unsigned short instreams;
> > short path_state; /* PM_ACTIVE 0, PM_INACTIVE 1
> > */
> > unsigned int SRTT; /* im msecs
> > */
> > unsigned int RTO; /* im msecs
> > */
> > unsigned int currentReceiverWindowSize; /* from FlowControl
> > */
> > unsigned int currentCongestionWindowSize;
> > unsigned int noOfChunksInSendQueue;
> > unsigned int noOfChunksInRetransmissionQueue; /* from
> > ReliableTransfer */
> > unsigned int noOfChunksInReceptionQueue; /* from StreamEngine ?
> > */
> > }
> > SCTP_AssociationStatus;
> >
> > int sctp_status
> > (unsigned int associationID,
> > short path_id, /* -1 for primary path, else address index
> > to be taken */
> > SCTP_AssociationStatus *status);
> [Tuexen Michael] I would suggest to split it in two funtions:
> get_assoc_state and get_path_state. Then everyting is of fixed
> length.
>
> > 5) sctp_associate()>
> > You forgot the parameter "pointer to ULP data".
> > [Tuexen Michael] Hmm, it will be in the comm_up. So should we ha>
> ve it twice?
> [Tuexen Michael]
>
[Schruefer Wolfgang]
Would be fine to have it twice, because then its easy for the ULP to
link the commUp or commLost to the appropriate sctp_associate().



> > 6 ) Constants / Typedefs:
> > Please don't beat me for this very formal comment and it is not important
> > at all: Could you add the letters "SCTP_" in front of all the externally
> > visible definitions, structs ... (e.g. SCTP_PATH_OK instead of PATH_OK)
> > in sctp.h? (here we have very critical guidelines restricting "namespace
> > pollution"...)
> [Tuexen Michael] Good point.
> > In general your naming conventions are clear and make it easy to
> > understand the code...
> >
> > Thanks and
> [Tuexen Michael] Thank you very much for your comments.
> > Viele Gruesse
> > Wolfgang
> >
> > **************************************
> > Wolfgang Schrüfer SIEMENS AG
> > ICN WN CC EKJ 14 TEL: 722-61646
> > mailto:Wolfgang.Schruefer AT icn.siemens.de
> > **************************************
> >
> > > -----Ursprüngliche Nachricht-----
> > > Von: Michael Tüxen
> > > [SMTP:Michael.Tuexen AT micmac.franken.de]
> > > Gesendet am: Donnerstag, 22. Februar 2001 19:35
> > > An:
> > > Betreff: [SCTP-Discussion] Request for comments: API for SCTP 1.0
> > >
> > > Dear all,
> > >
> > > please find attached the sctp.h file for the version 1.0 of our
> > > implementation.
> > > I have also included a .pdf file describing the API made by Andreas
> > > (thank you
> > > very much!).
> > >
> > > I will send out a sample program tomorrow (a discard server) and next
> > > week a more
> > > elaborated echo server.
> > >
> > > Please send all your comments to this list!
> > >
> > >
> > > Michael
> > >
> > > --
> > > e-mail:
> > > Michael.Tuexen AT micmac.franken.de
> > > << Nachricht: Unbenannte Anlage >>
> > _______________________________________________
> > discussion mailing list
> > discussion AT sctp.de
> > http://www.sctp.de/mailman/listinfo/discussion
> _______________________________________________
> discussion mailing list
> discussion AT sctp.de
> http://www.sctp.de/mailman/listinfo/discussion




Archive powered by MHonArc 2.6.19+.

Top of page