Tom,

I think most of what you write is allowed by, or required by, the current spec. (As you probably knew.)

Phelan, Tom wrote:
REQ: A DCCP implementation MUST require the using application to
explicitly set the service code associated with a socket before it can
be used in a listen or connect request.  The service code for a socket
MUST NOT default to 0.  It could default to SC=xFFFF, which is not a
valid value for SC and will be rejected if ever used.

You mean SC=xFFFFFFFF.

The current RFC doesn't require the "MUST NOT" here.

I believe the Linux implementers went this way for a while, using SC=xFFFFFFFF exactly as you describe. It was found frustrating for DCCP users and was removed. I wouldn't recommend it. A default SC of 0 is OK.

REQ: A DCCP application in development SHOULD NOT use SC=0.  It SHOULD
choose a code from the private use space (first ASCII character equal to
'?').

Obviously allowed by the spec.

REQ: A DCCP implementation MUST reject a DCCP-Request with SC=0 if no
socket is listening on that port with SC=0 (SC=0 MUST NOT be interpreted
as a wildcard).

This simply restates the spec. Wildcards are not allowed by the spec. (I think you know this, just stating it out loud.)

REQ: A DCCP implementation MUST allow multiple sockets with different
service codes to listen on the same port.

This strengthens the MAY in the RFC to a MUST, and seems fine, but...

I realize that none of the existing implementations work this way, but I
think that's asking for long-term problems.

I don't know about long-term problems with the status quo. I think when port scarcity becomes an issue in practice, Service Codes will be there to solve the issue; and at that point "multiple SCs per port" will quickly become widely deployed.

Eddie

Reply via email to