Subject: [AAA-WG]: FW: questions and comments regarding the Diameter API draft

From: Yiwen Jiang <[email-masked]>
Date: Tue, 1 May 2001 12:52:25 -0400

-----Original Message-----
From: Yiwen Jiang 
Sent: Tuesday, May 01, 2001 10:29 AM
To: 'James Kempf'; [email-masked]'
Subject: questions and comments regarding the Diameter API draft

Hi James,

I have some questions regarding the ID. If you could clarify them, it would
be great. My apologies for it being a long mail...

Thank you very much!

Yiwen

- General questions
	+ Language: Why is there a Java API for server? Is C API for server
not good enough? 'cause people can use JNI to put a wrapper around the C
API. Or is the intent to standardize the server interface despite the fact
that C API provides the same functionality? 
	+ Callback: Is callback associated with *all* existing commands or
is it only have one-to-one mapping with all extension commands? E.g., does
it make sense to have a callback for DRI messages which is only used during
the peer connection establishment?

- Section specific questions:
	3 questions for callbacks:
	+ Sec. 3.1.13, Pg. 11. last three paragraphs, description on
AAA_APP_INSTALL_FIRST and LAST. "If subsequent callbacks are installed with
this code, the callback is moved down/up the list". THis is inconsistent
with the description of the callback processing order in section 3.5.4 (pg
39), which says that "If the API client adds another, any existing pre- and
post-processors are removed". 
	+ Sec. 3.4.2.1, Pg. 20. From the signature of the function, does
this mean that there can be > 1 callbacks for the same command, but for
different extensions? (an example would be any accounting commands that can
be for MIP or NASREQ, etc)?
	+ Sec. 3.5.4, Pg. 40. Last paragraph. Does this imply that the LAST
callback is for error handling of message processing (since if ANY completes
successful, the LAST callback is not called)?

	6 questions for messages:
	+ Sec. 3.2.4, Pg 16. first line, identifier. Is this hop-by-hop ID
or End-to-End ID? Shouldn't there be another ID in the message?
	+ Sec. 3.2.4, Pg 16. 4th line, appHandle. Is this handle for user
session only? What about peer connection handle? Why would these two handles
be handled different?
	+ Sec. 3.4.5.1, Pg. 28. First paragraph. What is the
"Initialization-Vector AVP"? I can't find it in the base protocol. (base ID,
pg. 24).
	+ Sec. 3.4.5.2, Pg. 28. Shouldn't the signature be: 
		  AAAReturnCode AAAFreeMessage(AAAMessage **message)
Note: ** instead of *? I would assume that after the successful return,
value of message would be NULL.?
	+ Sec. 3.4.5.3, Pg. 29. When would I use the AAARespondToMessage()?
Can't I just do:
	  AAANewMessage();
	  AAASetServer();
	  AAASendMessage();
? 
	+ Sec. 3.4.6.2, Pg. 36. Why is the AAASendMessage() responsible for
assigning the msg ID to the message, wouldn't this be the responsibility of
AAANewMessage() function call? Also, what is the server id mentioned in this
paragraph?

	2 questions on AVPs:
	+ Sec. 3.4.5.9, Pg. 32. Shouldn't this function be associated with
AAA_AVP_LIST pointers rather than AAA_AVP pointers? The logic behind having
an Extended_AAA_AVP structure specified on Pg 39 is to hide the fact that
AVP actually is a node of a doubly linked list. In which case,
AAAJoinAVPList() should not be dealing with AAA_AVPs.
	+ Sec. 3.4.5.11, Pg. 33. Shouldn't the avp passed into the function
be **? I.e.
		AAAReturnCode AAAFreeAVP(AAA_AVP **avp)
? Successful return of this function would have avp to be NULL.

	one question on session:
	+ Sec. 3.4.3.1. THis is to start a user session, and *not* a peer
connection, correct?

Cheers,
Yiwen
---
Yiwen Jiang
Mobile IP Networking
Email: [email-masked]
Phone: (613)271-7710

Telecom Innovation Centre
505 March Road
Kanata, Ontario, Canada
K2K 2M5