Subject: [BEEPwg] pipelining within channel 0

From: Lei Zhang <[email-masked]>
Date: Fri, 07 May 2004 15:09:12 -0700

So RFC 3080 says:

   A BEEP peer acting in the server role must process all "MSG" messages
   for a given channel in the same order as they are received.  As a
   consequence, the BEEP peer must generate replies in the same order as
   the corresponding "MSG" messages are received on a given channel.

For channel 0, which peer is considered "acting in the server role"? 
 Cannot the modifier 'acting in the server role' be taken away?  I'm 
wondering if the chan0 MSG messages need to be replied in the same order 
they are received.  Specifically, if peer A receives <close number='1'> 
then <close number='2'>, but it takes longer to close channel 1 than it 
takes to close channel 2, cannot peer A reply to the 2nd close message 
first?

Thanks,
Lei

_______________________________________________
BEEPwg mailing list
[email-masked]
http://lists.beepcore.org/mailman/listinfo/beepwg

---

From: Marshall Rose <[email-masked]>
Date: Tue, 11 May 2004 15:21:57 -0700

> wondering if the chan0 MSG messages need to be replied in the same 
> order they are received.  Specifically, if peer A receives <close 
> number='1'> then <close number='2'>, but it takes longer to close 
> channel 1 than it takes to close channel 2, cannot peer A reply to the 
> 2nd close message first?

you raise an interesting point.

keith and/or pete may have a different perspective on this.

i would say that the peer acting the listening role would be considered 
as the peer acting in the server role for channel zero. (although i 
agree that the specification doesn't clearly spell this out.)

a related ambiguity is how to handle a simultaneous close on channel 
zero!

/mtr

---

From: james woodyatt <[email-masked]>
Date: Tue, 11 May 2004 21:34:53 -0700

> a related ambiguity is how to handle a simultaneous close on channel 

Here's how that works in my implementation: if you have sent a <close/> 
and not yet received a reply/error, then you respond to a <close/> by 
sending an <error code='450'> in response.  If you receive an <error 
code='450'> in response to a <close/> you've sent, and you've responded 
to a <close/> with an <error code='450'> then you retry the <close/> if 
you're the peer in the initiator role.

-- 
j h woodyatt <[email-masked]>