Comments in line.Hmm, I think I need to take you to task on this John. The *ack* is a MTL function that should not have anything to do with NSI layer message evaluation. i.e. its not the MTL's responsibility to send a NSI response of any type. The ACK (as opposed to a confirm or fail) is indication that the message was received, nothing else. An ACK should be returned regardless of whether a NSI message is proper or otherwise.
On 2011-09-14, at 12:37 PM, Radek Krzywania wrote
- GenericAcknowledgmentType - should xxxConfirmed/Failed messages be sent before returning this type, or asynchronously? It could be removed as well
The acknowledgement should be returned at the point you have accepted the message for processing. The other messages come later (considerably later in some cases).
I validate the key attributes first just in case I need to send a fault message back instead of the ACK. For example, on a reservation I verify the correlationId, replyTo, providerNSA, requesterNSA, and connectionId are present. I also verify that the message is destined for me. Once this is done I dispatch it for processing and return the ACK. There is a small chance that the Confirmed/Failed beats the ACK back, but you should defensively code for that.
Ugh- another "extension" not in the spec.
- queryConfirmed, queryFailed on provider interface - breaks consistency
- query on requester interface - breaks consistency
These were requested for error handling so that a providerNSA could query the requesterNSA to correlate schedule information after a restart. Are people aware they can get a query across the requester NSA interface?
Ugh! Why on earth would you do that?
- maybe allow suggestion that either chain or tree reservation model is prefered in reservation request
This is an interesting feature. Is it just a routing suggestion?
:-)Yes. Functioning as defined. I am concerned about this as well. It causes complicated code (nothing to do with Web Services JERRY, but with the protocol).Now my two cents:
- We experienced from the demo, that sending a provision request just after reservation request, results in simple ack. So in fact we are unaware if the reservation is in auto provision state or not. We just get provisioned status update when reservation start time comes. We can wait 1 minute for that during demo, but if the service is about to start in 4 weeks...
"People" ? Anyone can Query() a ConnectionID. This was solved in SLC I thought... If they have proper Authorization credentials, they will receive a full dump of the entire tree. Soup to nuts. If their credentials are not all powerful, they will get as far down the tree as their credentials will allow - and then the tree will stop. They will however learn which NSA rejected the child Query(). With this, the RA can issue a directed Query() to that NSA presumably with different (more powerful) credentials and can fillout the tree. If the RA does not have proper Authorization, he is SOL. Sorry - thats why its call "Authorization". (:-)
- People were asking for query message, to retrieve the reservation status at all partners and a path.
I don't know that we are explicit in the spec about this... I had always assumed that a detailed Path would be reserved at the time of the ReservationReq(). Though it could be modified up to start time as long as it met the original reserved service parameters. I would assert that once the connection is provisioned that the path should be fixed until the end of the reservation. A provision() should not change that. In essence, the PA must meet the parameters specified in the reservation request, but is otherwise free to manage its resources as it sees fit up until the start of the reservation. At the start of the reservation, the path is locked so that it will remain the same physical path until terminated. Provisioning simply changes the state and perhaps should also shut the connection to prevent data flow, but does not otherwise change the configuration of the resources.
- People were also interested if the same path will be configured for each provision message
IMO, This is an example of trying to recreate the problems we are trying to solve. We are trying to break the circle of fear where Networks are allowed to get away with empty performance promises. If the PA actually provides what they confirmed, then a quick test at the start of the reservation will verify it. Indeed, such a test should be performed by both the PA(s) and the RA. If the service is properly requested (User's responsibility) and properly provisioned (Network's responsibility) why would a connection then need "tuning" ?...it either functions as requested, or it does not.- protocol does not specify it, it’s actually up to domain, but in some cases it may be important (see Express scenario later)
- Express was also interested in specyfing path for the reservation. E.g. they have one reservation now, and another in two months - two reservations needs to go the same path. We can't solve it now. Express also experienced issues with any connections they get - they need to tune it before use. Sa they do that about 2 weeks before operations, and check again about 1 day or hours before sending data. This scenario is a real user scenario, which we should discuss. I've invited the guy (apology - I forgot his name, but I will find him at the venue during break) from Express for the March OGF meeting in Oxford so we could discuss it.
Best regards
Radek
________________________________________________________________________
Radoslaw Krzywania Network Research and Development
Poznan Supercomputing and
radek.krzywania@man.poznan.pl Networking Center
+48 61 850 25 26 http://www.man.poznan.pl
________________________________________________________________________
-----Original Message-----
From: nsi-wg-bounces@ogf.org [mailto:nsi-wg-bounces@ogf.org] On Behalf
Of John MacAuley
Sent: Wednesday, September 14, 2011 4:46 PM
To: nsi-plugfest@m.aist.go.jp; nsi-wg@ogf.org WG
Subject: [Nsi-wg] NSI Issues list – Rio de Janeiro Demo
Peoples,
Here are some of the notes I captured.
The reservation XML message contains two element tags both named
“reservation”. The first is the reservation operation and the second is the
reservation information contents. This will need to be fixed in the types XSD.
The “providerNSA” and “requesterNSA” elements in the NSI protocol header
caused some confusion. In the CS document we stated that this would be
populated with the NSnetwork URN as defined in Salt Lake City. However,
when the demo topology schema was created we introduced a new NSA
object. Some people used the URN of the NSA object in the “providerNSA”
and “requesterNSA” elements. We will need to make a definitive statement
as we define the formal NSI topology. Do we rename the elements to
“providerNSnetwork” and “requesterNSnetwork” and continue using the
NSnetwork URNs, or do we switch over to NSA URN?
Demo topology definition was an issue, but in the end we had something
workable for the demo. Going forward we need to formalize NSI topology
definition and how it relates to other schema such as DTOX and NML. I am
going to start working on the topology discovery/exchange problem to get use
moving forward.
Security presented interoperability issues as some people enforced
authentication and authorization while others did not. Some systems could
not provide the needed credentials, and resulted in some incompatibility. I
believe we are clear on what we want to implement for NSA-to-NSA security,
but we need to formalize the session security requirements so we can begin
to implement in the NSAs.
Namespace issues – this is not an issue with the protocol specification but with
a few of the less mature SOAP web services toolkits. They get confused
between the interface and type namespaces for the protocol elements due to
the use of “ref” to reference protocol operation elements from the types XSD
in the interfaces WSDL.
Now that we have had some demo experience with error handling, I think it is
time to start formalizing values in the NsiExceptionType. I have already
identified ten generic error conditions, and I am sure there are many more.
As a follow up to this item, NSA implementations need to populate the
NsiExceptionType.variables with additional information to help identify the
problem that caused the rejection of the message. I had done this in
OpenDRAC so any errors returned to other NSA would contain information
formatted as follows:
<messageId>SVC0001</messageId>
<text>Invalid or missing parameter</text>
<variables>
<Attribute Name="replyTo"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<AttributeValue xsi:type="xs:string"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<null></AttributeValue>
</Attribute>
</variables>
Interface version discovery – I had discussed this with the group previously,
but now that we are moving forward, up issuing NSI schema versions, and
adding new interfaces we will need a mechanism for discovering the
interfaces and versions supported by an NSA. I will propose something formal
when I get a chance.
John.
_______________________________________________
nsi-wg mailing list
nsi-wg@ogf.org
http://www.ogf.org/mailman/listinfo/nsi-wg