Subject: [rohc] accept SMS=0 or not?

From: Carrie Zhang <[email-masked]>
Date: Tue, 09 May 2006 16:23:20 +0800

Hi, experts,

I have a couple of questions regarding the case where SMS=0.

3GPP specifies that both UE (User Equipment) and network
side should support minimum 4K of SMS when implementing SIP
compression, according to 3GPP, SMS=0 is not acceptable.

While there are some special cases:

Case 1:
UE may first advertise its SMS>=4k, and later use SMS=0 to
indicate that all states have been lost, in this case,
should network side accept this SMS=0?

Option 1: Network side would assume that this is an error
in UE and only lasts for very short time, and network side
can switch to sending bytecode just as UE is stateless. When UE
recovers from the failure and advertises again its SMS with
non-zero value, network can then switch back to whatever compression
it used before receiving SMS=0. But what if UE can not recover
from the failure, and keep sending SMS=0? Should network accept this?

Option 2: Network side can always treat SMS=0 as error because
3GPP says min SMS is 4K, and responds uncompressed message
regardless whether the topmost via header contains comp=sigcomp
in the incoming message with SMS=0.

Case 2: If UE never advertises its SMS with non-zero value, and
in the 1st message, the SMS is zero, should network side accept
this message?

Option 1: If network side accepts this message, it disobeys 3GPP
technical specification.

Option 2: If network side does not accept this message, this may
cause other problems, e.g., my phone is broken for some unknown
reason (SMS memory broken) and it sends out SMS=0 in the 1st message
and I need to make an emergency call. Now if the network side does
not allow that, I think it is not acceptable.

Appreciate any of your advices? Thanks in advance.

Regards,
Carrie

_______________________________________________
Rohc mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/rohc

---

From: Carsten Bormann <[email-masked]>
Date: Tue, 9 May 2006 11:05:25 +0200

> Option 1: If network side accepts this message, it disobeys 3GPP

I don't think this view would be right.

If I understand your scenario right, from an RFC3320 point of view,  
SMS=0 is perfectly valid.
Nothing will break by implementing the reception of this value.

In essence, requiring SMS>0 is a performance requirement, not an  
interoperability requirement.
Rejecting a peer that you could perfectly interoperate with just on  
the grounds that they violated some performance specification is not  
the way of the Internet.
RFC 1123 famously summarizes the Internet robustness principle as:

                 "Be liberal in what you accept, and
                  conservative in what you send"

So, in your example, the onus is on the handset to send the SMS value  
as mandated, not on the network to somehow enforce this.
(This argument would go into a different direction if SMS=0 would  
actually cause things to break.)
For diagnostic purposes, you might still want to log the out-of-range  
SMS value.

(Speaking from unhappy experience:)
Now, of course, the people who write the test suites that your  
implementation will be judged against may not understand all this and  
actually require your implementation to break in this case.  (Or they  
may require you to handle the case according to RFC3320.  You never  
know what you'll get in a test suite.)
But you asked this on an IETF mailing list...

Gruesse, Carsten