Subject: [hybi] Flow control quota

From: "Arman Djusupov" <[email-masked]>
Date: Wed, 30 May 2012 16:36:52 +0300

Hello Takeshi,

Sometimes the sending side cannot fully utilize the remaining quota
available (a typical example is when the remaining quota is too small) and
has to wait for the receiving side to send a flow control frame (even though
the remaining quota is not yet equal to 0). If the receiving side’s mux
implementation sends flow control frames only when all the quota has been
fully consumed (remaining quota = 0), this can lead to a deadlock situation
in which the sending side waits for a FC frame before sending the next frame
while the receiving side waits for more bytes to be received before sending
a FC frame.

It would be good if the specification includes some general guidelines on
sending flow control quotas, e.g. “receiver MUST NOT wait for sending side
to use its full quota before sending a FC frame”. The specification could
even require that a FC frame is sent when half of the remaining quota is
used by the sending side. Otherwise one implementation may prefer to wait
for a FC frame when the frame size exceeds the remaining quota, while the
other may prefer to send a FC frame only when more than, say, ¾  of the
quota is used.

There are a variety of flow control strategies that can be used and each
implementation can have its own, what we need is to define some rules so
that all implementations are interoperable.

With best regards,

Arman

---

From: Martin Sustrik <[email-masked]>
Date: Thu, 31 May 2012 10:59:08 +0200

On 30/05/12 15:36, Arman Djusupov wrote:

> available (a typical example is when the remaining quota is too small)

That's interesting. Can you provide a concrete example?

It seems to me that even if the quota is 1 byte, you can send a frame 
with 1 byte.

Martin

---

From: "Arman Djusupov" <[email-masked]>
Date: Thu, 31 May 2012 14:01:01 +0300

When the per-frame compression extension is being used on a logical channel,
it is impossible to create a frame of exactly the desired size. A few bytes
of quota will always be unutilized unless some padding is used. The mux
specification prohibits sending frames bigger than the available quota. When
per-frame compression is applied on the payload before mux, this payload
cannot be fragmented any more. Even if we make compression extension mux
aware, it cannot produce a 1 byte compressed frame, it can only flag a frame
as uncompressed and simply send 1 byte. In general, sending 1 byte in a
separate frame is not desirable.

Extensions that set RSV bits prohibit frame fragmentation. This causes a
general incompatibility issue with mux FC when an extension is applied
before the mux. We need to consider whether there is a solution to this.

With best regards,
Arman

-----Original Message-----
From: Martin Sustrik [mailto:[email-masked]] 
Sent: Thursday, May 31, 2012 11:59 AM
To: Arman Djusupov
Cc: 'Takeshi Yoshino'; [email-masked]
Subject: Re: [hybi] Flow control quota

It seems to me that even if the quota is 1 byte, you can send a frame with 1
byte.

Martin