Re: : ISSUE: Extensibility of commands (Auth-Application- Id)

Jo Hermans <[email protected]> Sat, 29 Oct 2005 17:56:29 +0200
Newsgroups gmane.ietf.aaa
Message-ID <[email protected]>
On 10/29/05, German Blanco (E2/EEM) <[email protected]> wrote:
>
> OK, if the ABNF of the command can be changed without restrictions
> for each application then these two issues about the application
> id and the result code do not make sense.
>
> German.

It seems that this issue comes up every couple of months. Some people
seems to think that the Vendor-ID, Support-Vendor-ID,
Vendor-Specific-Application-ID and similar attributes are supposed to
be set to the vendor that produced that software. A big part of the
conclusion comes from the word "application" that doesn't point to the
software implementation itself, but to the exact protocol itself
(derived from the Base protocol). I've seen a case where a
subcontractor was using 6 (six) different vendorids in the CER (1 real
one, and 5 supported vendor-ids) and , although it was supposed to be
a simple Cx interface.

When a vendor only wants to add an extra attribute to a command, and
it's an optional attribute (transparent for other vendors), then the
ABNF hasn't been changed, and there's no need to use a new command
code or apply for a whole new (vendorspecific) application-id. As long
as application from other vendors can safely ignore the unrecognized
attribute without affecting the behaviour, there won't be any problem.

When a new attribute is added that is mandatory, then you should apply
for a command-code (and a application-id), because the ABNF isn't
compatible anymore. You can still try to send the attribute with the M
flag set, but then you risk a DIAMETER_AVP_UNSUPPORTED, or a
proxy-server might not wanting to forward the request. No harm is
done, although it's against the spirit of DIAMETER. You should have
created a new command-code and a application-id. Or you can try to
resend the request without the offending attribute.

New command-codes in existing applications won't be recognized by
remote servers, so you receive a DIAMETER_COMMAND_UNSUPPORTED. Again,
it's not fatal, and the application might survive. But it would be
better to use a complete new application-id for this.

--
Jo Hermans

"Eagles may soar, but weasels aren't sucked into jet engines"