- From: Tuexen Michael <Michael.Tuexen AT icn.siemens.de>
- To: "'discussion AT sctp.de'" <discussion AT sctp.de>
- Subject: RE: 2nd try: AW: [SCTP-Discussion] Request for comments: API for SCTP 1.0
- Date: Tue Feb 27 14:18:01 2001
- List-id: SCTP Discussions <discussion.sctp.de>
Dear Wolfang and others,
see my comments below.
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: Tuesday, February 27, 2001 1:20 PM
>
To:
>
'discussion AT sctp.de'
>
Subject: AW: 2nd try: AW: [SCTP-Discussion] Request for comments: API
>
for SCTP 1.0
>
>
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.
[Tuexen Michael] We rely on IP fragmentation. So you mean we should
make a 64k limit
visible?
>
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.
[Tuexen Michael] That is good. Andreas, could you do this.
Nevertheless we should
check the naming of all exported symbols, but that is the last thing
to to.
>
Thanks and
[Tuexen Michael] Thanks again for the comments.
>
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
>
> > */
>
> > uns> igned 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
>
_______________________________________________
>
discussion mailing list
>
discussion AT sctp.de
>
http://www.sctp.de/mailman/listinfo/discussion
- RE: 2nd try: AW: [SCTP-Discussion] Request for comments: API for SCTP 1.0, Tuexen Michael, 02/27/2001
Archive powered by MHonArc 2.6.19+.