Re: RMD Comments

Hannes Tschofenig <[email protected]>
Newsgroups gmane.ietf.nsis
Message-ID <[email protected]>
Hi Georgios,

Georgios Karagiannis wrote:
> Hi Hannes
>
> Thank you very much!
> Please see some answers in line!
>
> Best regards,
> Georgios
>
> On 11/1/2007, "Hannes Tschofenig" <[email protected]> wrote:
>
>   
>> Hi Georgios,
>> Hi all,
>>
>> I am working my way through the RMD QOSM specification. I have a few comments:
>>
>> Major comment:
>> --------------
>>
>> * From the IANA registry I understand that the PHR Container is a
>> QSPEC parameter. Correct?
>>
>> If it is then there is a problem since the "Container ID" is supposed
>> to be a single value registered for the name of the object. You cannot
>> assign different IDs to it, such as PHR_Resource_Request,
>> PHR_Release_Request, PHR_Refresh_Update
>>     
>
> Georgios: Not really!
> The Container ID is similar to Parameter ID. You can have as many as
> many values as the containers you want to have!
>
>   

Section 4.1.2. of 
http://www.ietf.org/internet-drafts/draft-ietf-nsis-rmd-12.txt defines 
the PHR Container.
Here is the relevant text:

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |M|E|N|r|       Container ID    |r|r|r|r|          2            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |S|M| Admitted  Hops|B|U| Time  Lag     |  Overload %   |K|     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Max Adm  Hops |                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

        Figure 6: PHR container

   Parameter/Container ID:
   8 bit field, indicating the PHR type: PHR_Resource_Request, 
   PHR_Release_Request, PHR_Refresh_Update.  


While it appears that it is a single QSPEC parameter it really isn't.
It is, in fact, a request to IANA to allocate 3 QSPEC parameters, as 
shown above.

I don't know whether anyone in the group considers this to be a problem. 
So far, nobody raised some concerns. 


>> To resolve the problem I would put the "Container ID" into a separate
>> field. Not a big change.
>>     
>
> Georgios: I am not sure that this is a problem, since, similar to
> Parameter ID, you can use more values for the Container ID.
>
>   
>> -------------------
>>
>> * The IANA consideration section is a mess.
>>
>> 6. IANA Considerations
>>
>> RMD-QOSM requires a new IANA registry for the RMD QoS Model
>> Identifier. It is a 8-bit value, carried in the <QSPEC
>> Type> field of
>> the QSpec object [QSP-T].
>>
>> [hannes] I think you want to say that
>>
>> "
>> A new QOSM ID ("RMD QOSM") needs to be assigned by IANA. The value has
>> to be placed into the QSPEC Type registry that was created with
>> [ref-to-QSPEC].
>> "
>>     
>
> Georgios: Agree! thank you very much!
>
>   
>> RMD-QOSM defines 2 new objects for the QSpec Template: PHR container
>> and PDR container, see 4.1.2 and 4.1.3. For these new containers, new
>> IDs in the QSpec Template Object Type registry should be assigned.
>>
>>
>> [hannes] You should write:
>>
>> "
>> The following new parameters are registered in the Parameter
>> ID registry that was created with [ref-to-QSPEC]:
>>
>> Value Parameter ID
>> --------------------------------+------------------------
>> To-be-assigned-by-IANA | PHR Container
>> To-be-assigned-by-IANA | Bandwidth
>> To-be-assigned-by-IANA | PDR Container
>>
>> ---------------------------
>>     
>
> Georgios: Agree! thank you very much!
>
>   
>>
>> Minor comments:
>> ---------------
>>
>> * Figure 4 and Figure 5
>>
>> I don't know what format is described with this figure. Is
>> Figure 4 a snippet of <PHB Class> Parameter defined in the QSPEC?
>>     
>
> Georgios: Yes! We can mention this in the text!
>
>   
>> --------------------
>> * Delete the following sentence:
>>
>> Note that the Parameter ID is equal to
>> Bandwidth_ID. After IANA assigns the proper ID value to the
>> <Bandwdith> parameter then the Bandwdith_ID term has
>> to be replaced accordingly.
>>
>> Just replace the "Parameter ID" in the figure with "Bandwidth ID".
>>     
>
> Georgios: Okay
>
>   
>> ----------------------
>>
>> * The figure with <Bandwidth> parameter format has no figure #.
>>
>> * <K>: 1 bit. When set to "1" it indicates that the
>> resources/bandwidth
>> carried by a tearing RESERVE MUST not be released.
>>
>> --> MUST NOT be ...
>>     
>
> Georgios: Okay!
>
>   
>> ----------------
>>
>> More comments
>>
>> ---------------------------------------------------------
>>
>> * I am curious what the per flow intra-domain QoS-NSLP states actually
>> mean. I thought that RMD is particularly targeting non-per flow
>> intra-domain states.
>>     
>
> Georgios: It is related to the per flow states that are maintained at the
> edges!
> The per-flow intra-domain QoS-NSLP means that there are per flow states
> at the edges that are used to store information associated with RMD-QOSM.
>
>   

That might be good to mention somewhere. For example, in the terminology 
section.

>   
>> -----------
>>
>> * The protocol has a number of options.
>> A couple of very fundamental deployment choices are listed at
>> beginning of Section 3.2.3. Is there are single mandatory-to-implement
>> variant?
>>     
>
> Georgios: We have not defined a single mandatory-to-implement variant!
> We, however identified which deployment choices can be combined together
> in Section 3.2.3.
>
>   
I see.

>> -----------------
>>
>>
>> * I don't understand this sentence:
>>
>> " The RMD QoS model functionality is notified by reading the <M>
>>   parameter of the "PDR Container" that the reservation has been
>>    successful. "
>>     
>
> Georgios: We can chnge it as:
> "The reservation has been successful if the <M> bit carried by the
> "PDR Container" is not set and equal to "0"."
>
>   
Sounds good.

>> -----------------
>>
>> * I am not sure what you mean by "QoS-NSLP" functionality in the
>> following sentence:
>>
>> "
>> Furthermore, the INFO_SPEC object SHOULD be read by the QoS-NSLP
>>    functionality.
>> "
>>     
>
> Georgios: What about:
> "The "INFO_SPEC" is processed as defined in the QoS-NSLP
> specification."
>
>   
Sounds good.

>> * Why do you say that the values of the INFO_SPEC object "SHOULD" be:
>>
>> "
>> In case of successful reservation the INFO_SPEC object
>>
>>    SHOULD have the following values:
>>
>>    * Error Severity Class: Success
>>    * Error Code value: Reservation successful "
>>
>> rather than MUST.
>>     
>
> Georgios: Okay!
>
>   
>> ---------------------------
>>
>> * "the SCOPING flag MUST not be set, meaning that a default
>>       scoping of the message is used.
>> "
>>
>> ... flag MUST NOT ...
>>     
>
> Georgios; Okay!
>
>   
>> -----------------------------------
>>
>>
>>
>> *  Section 4.6.1.1.2:
>>
>> * " Note that the DSCP value MUST be obtained from the
>>       MRI values obtained from GIST. The value of the DSCP value
>> SHOULD
>>       be obtained via the MRI parameters that the QoS-NSLP receives
>> from GIST.
>>
>> Duplicate sentence. Why not to say "MUST" instead of SHOULD?
>> Where else would you get the prarameters from.
>>     
>
> Georgios: Okay!
>
>   
>> * "   *  If the bandwidth allocated for the PHB_high_priority
>> traffic is fully utilized, and a high priority request arrives, other
>> policies can be used, which are beyond the scope of this document."
>>
>> ... other policies can be used for what? For granting the request ?
>>     
>
> Georgios: we have to clarify that the policies are related to
> how the allocated bandwidth is allocated, rather than policies that
> e.g., grant the request
>
>   
OK.

>> * Furthermore, the "B" (BREAK) QoS-NSLP flag in the end to end
>>    RESERVE message MUST not be set and it MUST be unset if it was set,
>>    see QoS-NSLP-RMF API described in QoS-NSLP.
>>
>>
>> ... MUST NOT ...
>>     
>
> Georgios: Okay!
>
>   
>> Why do you want to clear the B flag?
>>     
>
> Georgios: You are right! The text "and it MUST be unset if it was set"
> should be removed.
>
>   
>> * "   *  the value of the <M> field of the PDR container MUST
>> be equal to
>>       the value of the <M> parameter of the PHR container that was
>>       carried by its associated intra-domain RESERVE(RMD-QSpec)
>>       message."
>>
>> Why is this necessary?
>>     
>
> Georgios: because the PDR container will be sent to the ingress and
> the M value should be the same as the M value contained in the
> intra-domain RESERVE message. We will clarify this!
>
>
>   
Thanks.

>> *  the value of the Parameter/Container ID field of the
>> PDR container MUST be set "PDR_7" (i.e., PDR_Reservation_Report);
>>
>> Why is this specific value used?
>>     
>
> Georgios: This is a temporary value, that should be used until
> IANA assigns the values required by RMD-QOSM. In Section 4.1 we
> explain this point.
>
>   
Got it.

>> *    * Furthermore, an initial QSpec object MUST be included in the
>>      RESPONSE message. The parameters included in the QSPEC <QoS
>>      Reserved> object are copied from the original <QoS Desired> values.
>>
>> About what RESPONSE message are we talking about? In all other cases
>> so far you distinguished between the e2e and the intra-domain
>> RESPONSE.
>>     
>
> Georgios: The bullet is associated with the end-to-end RESPONSE.
> We can emphasize this even more!
>
>   
Ok.

>> --------------------------------------------------
>>
>> *  Section 4.6.1.4:
>>
>> If a QNE edge or QNE Interior node is not able to
>> reserve the number of requested resources, the
>> "PHR_Resource_Request" that is associated with
>> the <Bandwidth> parameter MUST be marked.
>>
>> How is it marked?
>>     
>
> Georgios: You are right! It should say "MUST be <M> marked (i.e.,
> <M> bit MUST be set)
>
>   
>> -------------------------
>>
>> * Section  4.6.1.5
>>
>> "If a refresh RESERVE message does not arrive at a
>> QNE Interior node within the refresh time-out period then the
>> resources associated with this message are removed."
>>
>> How do you remove resources based on a non-received message?
>>     
>
> Georgios: It should say "then the resources associated with this message
> are not updated. This will mean that the reserved bandwdith associated
> with the reduced state is decreased in the next refresh period by the
> corresponding bandwidth that was not refreshed, see Section 4.3.3."
> We will clarify this, thanks.
>
>   
Ok.

>> "However, in the situation
>> that an end-to-end (tear) RESERVE is retransmitted, see Section 5.2.4
>> in [QoS-NSLP], then this message MUST not initiate an intra-domain
>> (tear) RESERVE message. This is because the RMF values related to
>> the end-to-end (tear) RESERVE message have been already released
>> during the process of the original (initial) end-to-end (tear) RESERVE
>> message."
>>
>> In short you want to say that when resources have been released
>> already then you do not release them again.
>>
>> ... use MUST NOT .... if you want to keep the above listed text.
>>     
>
> Georgios: Agree!
>
>   
>> * In Section 4.6.1.5 you do a lot of calculation on the T_Lag.
>> Unfortunately, you do not expain why you do all the calculation.
>>     
>
> Georgios: You are right! We will do that!
>
>   
>> --------------------------------------------------
>>
>> * 4.6.1.2.3
>>
>> " The QSpec that was carried by the end to end RESERVE belonging to
>> the same session as this end-to-end RESPONSE is included in this
>> message."
>>
>> When you say "this message" then to what message do you refer?
>>     
>
> Georgios: We refer to the end-to-end RESPONSE message. We will include
> end-to-end RESPONSE message.
>
>   
>> * To which context does this statement refer "
>> The "E" flag associated with
>> the QSpec <QoS Reserved> object and the "E" flag associated with the
>> <TMOD-1> parameter are set. "
>>     
>
> Georgios: The above paragraph refers to the generation of the end-to-end
> RESPONSE message.
> Note that <QoS Desired> values are carried by the end-to-end RESERVE and
> the values of the <QoS Reserved> are carried by the end-to-end RESPONSE.
> We will clarify this.
>
>   
>> This paragraph is totally confusing.
>>     
>
> Georgios: We will try to clarify it!
>
>   
>> --------------------------------------------------------
>>
>>
>> * 4.6.1.3.1
>>
>> * Up to this section I have not understood what the "single-" vs.
>> "multiple-" domain stuff is about .
>>
>> " In a single-domain case the PDR container field
>>       is not needed in the message. "
>>     
>
> Georgios: I see what you mean! We will clarify this!
>
>   
>> *  "the PDR has to be processed and removed by the RMD-QOSM
>>       functionality in the QNE Ingress node.  The RMD-QOSM
>>       functionality is notified by the <PDR M> parameter of the PDR
>> container
>>       that the refresh procedure has been successful or unsuccessful."
>>
>> Does the first ingress node remove the PDR container?
>> What does the last sentence mean?
>>     
>
> Georgios: Yes, there is only one ingress node.
> The second sentence should actually be used as first sentence.
>
>   
>> More comments ---------------------------------
>>
>> * Section 4.6.1.4.
>>
>> * "If a QNE edge or QNE Interior node is not able to
>>      reserve the number of requested resources, the
>>      "PHR_Resource_Request" that is associated with
>>      the <Bandwidth> parameter MUST be marked."
>>
>> How is it marked?
>>     
>
> Georgios: Agree, we will fix this! It should say that it is <M> marked
> (i.e., <M> bit is set).
>
>   
>> ------------------------------------------
>>
>> * PDR container and a PHR Container.
>>
>> Section 4.1.2. and 4.1.3 just say "This is the container."
>> but do not really explain why they need to exist.
>>
>> I think that it would be really important to say something about it.
>>     
>
> Georgios: Agree, we will fix this!
>
>   
>> -----------------------
>>
>>
>> * Why do you need the <Admitted Hops> value? For statistical purposes?
>>     
>
> Georgios: No, this is used during the partial release procedure!
> I thought that we gave examples for the use of each parameter in the
> containers!
>
>   
I have to re-read that part.

>>
>>
>> More comments:  -------------------
>>
>> With an aggregate reservation the timeout for a reservation refers to
>> the entire aggregate.
>> Hence, if there is a timeout then the entire aggregate is removed.
>>
>> Correct?
>>     
>
> Georgios: yes it is correct!
> We will include a procedure that solves this issue.
>
>   
>> ------------------------
>>
>> Is the <PHB Class> object mandatory in an intra-domain RESERVE?
>>
>> Reading Section 4.6.1.1. I didn't get the impression.
>>
>> Reading Section 4.6.1.3.2 I got the impression it is mandatory:
>>
>> " Any QNE edge or QNE Interior
>>    node that receives a "PHR_Refresh_Update" field
>>    MUST identify the traffic class state (PHB) (using the
>>    <PHB Class> parameter). "
>>     
>
> Georgios: Thanks, we will fix this!
>
>   
>> -----------------------
>>
>> In  Section 4.6.1.3.1 you write:
>>
>> "
>>    Most of the non-default values of the objects contained in this
>>    message MUST be used and set by the QNE Ingress in the same
>>    way as described in Section 4.6.1.1.  The following objects are
>>    used and/or set differently:
>> "
>> Still, you list the following statement although it is written in the
>> same way in Section 4.6.1.1:
>>
>> *  The flag REPLACE MUST be set to FALSE = 0;
>>     
>
> Georgios: You are right! We will have to remove the sentence above!
>
>   
>> ----------------------------------
>>
>> * "When the RMD-RMF of a QNE edge or QNE Interior node processes a
>> "PHR_Release_Request"  PHR container it MUST identify the
>> <PHB Class> parameter and estimate the time period that elapsed
>> after the previous refresh, see also Section 3 of [CsTa05].
>>
>>
>> The sentence should say "QNE egress and interior nodes ..."
>> The ingress is not included since it sends the PHR_Release_Request.
>>     
>
> Georgios: Yes, you are right!
>
>   
>> -------------------------
>>
>> * There is something wrong with the description of the Partial Release
>> Procedure since the description assumes that the PHR container
>> contains the <Max_Admitted_Hops> parameter.
>>
>> The PHR container only contains the <Admitted Hops> parameter.
>>     
>
> Georgios: You are right! We assumed that this will be carried by the PDR
> container. However, there is a mismatch in the text. We will fix this by
> including the <Max_Admitted_Hops> parameter into the PHR container and
> fixing the text where needed.
> Thus the PHR container will include, in addition to the
> common header, 2 words, instead of one.
>
>   
>> Example:
>> "
>> * the value of the <Max Admitted Hops> parameter of the PDR  container
>> included in the received PDR container (with <M>=1 and
>> <S.=0) carried by the intra-domain RESPONSE message, MUST be  included
>> in the <Max_Admitted_Hops> parameter of the "PHR  Container".
>> "
>>
>> The following text only works if the RESERVE message contains a PDR
>> container, which is currently not mandated.
>> "
>>     
>
> Georgios: Yes! But it is better to include the <Max_Admitted_Hops>
> parameter into the PHR container.
>
>   
>> Furthermore, the QNE MUST perform the following procedures.
>> If the values of the <M> and <S> parameters included in the
>> "PHR_Resource_Release" PHR container are (<M=1> and <S>=0) then the
>> <Max_Admitted Hops> value MUST be compared with the calculated
>> <Admitted Hops> value."
>>     
>
> Georgios: Yes, you are right! we will modify it!
>
>   
>> ---------------------------
>>
>> *  Furthermore, somewhere in Section 4.6.1.5.2 you write:
>>
>> "Note that the above described procedure applies to the situation that
>> the QNE edges maintain a per flow QoS-NSLP reservation state."
>>
>> It would be good to know which parts exactly relate to the per-flow vs.
>> the aggregate reservation state since there is obviously a lot of text
>> "above".
>>     
>
> Georgios: Agree, we will make it more clear!
>
>   
>> I am not sure why you think that the partial release procedure would
>> only be applicable to the per-flow reservation state.
>>     
>
> Georgios: This is because the aggregated reservation procedure depends on
> more than one micro-flows and the way of adding or releasing aggregated
> resources is different than the method used for the per-flow reservation
> states.
>
>   
Have to re-read that part again.


Ciao
Hannes

>> Ciao
>> Hannes
>>
>>
>>
>>
>> _______________________________________________
>> nsis mailing list
>> [email protected]
>> https://www1.ietf.org/mailman/listinfo/nsis
>>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.