When I said I prefer Option B earlier, I was actually referring to something 
similar to what was discussed below between Eric and Arkadiy, though with some 
differences.

Whether we call it Option F or whatever, I have the following text prepared for 
everyone to review and comment. Ironically, I started with the OSPF spec J


2.1.  BIER Sub-TLV



   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

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   |              Type             |             Length            |

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   | Sub-domain-ID |     MT-ID     |              BFR-id           |

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   |    BART       |     BARM      |            Reserved           |

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   |                      Sub-TLVs (variable)                      |

   +-                                                             -+

   |                                                               |



BART: A single-octet specifying the Bier AlgoRiThm used to calculate underlay

      paths to reach BFERs. Values are allocated from the BIER Algorithm 
Registry.

     Value 0 indicates the basic Shortest Path First algorithm using IGP metric.



BARM: A single-octet specifying the BIER AlgoRithm Modififer that can be used

      to either modify, enhance or replace calculation of underlay paths to

      reach BFERs as defined by the BART value.



In this document version, both the BART and BARM octets MUST be zero. If an

implementation based on this document receives a non-zero BART or BARM octet,

it MUST treat it as an error and ignore the received BIER sub-TLV.



BART and BARM are independent of each other, and the BARM value identify

an IGP Algorithm (either those 0~128 values registered in the “IGP Algorithm 
Type”

registry, or a number that identifies a Flexible Algorithm [<reference here>],

which is also considered as an IGP Algorithm.



Future specifications may specify BART values that change the

interpretation of the BARM octet. Those specifications must handle backwards

compatibility issues (or simply declare that backwards compatibility is not

required - the deployment will then require the operator to make sure that all

routers in the subdomain conform to the same specification).



[note that will not be added to the spec: if someone wants define a BART value

in the future that changes the meaning of BARM, he would need

to write a spec to explicitly state that and get the spec approved. W/o that,

the BARM field is always interpreted as an IGP Algorithm]



4.  IANA Considerations



  IANA is requested to set up a registry called "BIER Algorithm Registry".

  The registration policies for this registry are

   * "Standards Action" ([RFC5226] and [RFC7120]) for values 0-240

   * "Experimental Use" for values 240-255



   The initial values in the BIER Algorithm Registry are:



   0: Shortest Path First (SPF) algorithm based on IGP link metric

   1-255: Unassigned

Comments?

Jeffrey

From: BIER [mailto:[email protected]] On Behalf Of Eric C Rosen
Sent: Tuesday, February 20, 2018 2:43 PM
To: [email protected] <[email protected]>; 
[email protected]; [email protected]
Cc: [email protected]
Subject: Re: [Bier] BAR field length in draft-ietf-bier-isis-extensions and 
draft-ietf-bier-ospf-extensions

On 2/20/2018 12:56 PM, 
[email protected]<mailto:[email protected]> wrote:

I personally like Eric proposed option -two independed 1Byte filed one for IGP 
Algo and another one for BUAM : the "BIER Underlay Algorithm Modifier" 
registry.  The way the underlay paths are computed for a given BIER sub-domain 
is determined by the pair of codepoints: <IGP Algorithms codepoint, BIER 
Underlay Algorithm Modifier codepoint>.
Not sure why it is not in a list of proposed options since I saw a lot of 
support for it on the WG.
It sort of Option-B but allow more independence between BAR(BUAM) from IGP Algo

I'm also wondering what's wrong with this proposal as a way of moving forward.  
The only real change I'd make to it is that the first one-octet field would 
either be a codepoint from the IGP Algorithms registry or a Flex-Algo 
codepoint.  Since the former are in the range 1-127 and the latter in the range 
128-254, no ambiguity is possible.

With regard to the question of why it makes sense to use an IGP Algorithms 
codepoint, I think the argument is the following.  Per the architecture, BIER 
relies on a routing underlay to tell it the next hop for a given BFER.  Per the 
architecture, the routing underlay may use the exact same decision procedure 
applied to the exact same topology as can be applied for unicast routing.  One 
way of identifying a unicast routing decision procedure  is with codepoints 
from the IGP Algorithms registry and/or Flex-Algo codepoints.  Thus it makes 
sense for the IGP signaling to use these codepoints as a way of providing the 
BIER layer information about the routing underlay.

With regard to the question of why it makes sense to have a second one-octet 
BIER-specific field, I think the argument is the following.  The architecture 
does not require BIER to use a routing underlay that applies a decision 
procedure that is useful for or even applicable to unicast packets.   In such a 
case, there might not be a way to identify the decision procedure with a 
codepoint from the IGP Algorithms registry or even with a Flex-Algo codepoint.  
 So it's useful to have a codepoint that does not have to hold values from the 
IGP Algorithms registry and does not need to have Flex-Algo codepoints.

There is also some worry that there may in the future be a lot of arguments 
about populating IGP Algorithms registry, and it would be good to have a way to 
extend BIER by allocating codepoints that help identify the routing underlay, 
but that might not be useful for unicast applications.

To some extent, this is all a tempest in a teapot, because the extensible TLV 
structure can be used, as Alia points out, to work around any codepoint 
problems.  Of course, continually adding TLVs to modify the interpretation of 
other TLVs can becomes a problem in itself.

I think the most compelling argument for adding the second codepoint field is 
that it provide more options for exploring the issues that might arise as 
production deployments begin.

I don't believe that any field containing a codepoint should ever be created 
without an association to a registry.  That makes squatting and future 
codepoint clash inevitable.
Thus I think the current documents, which have a one-octet field that is not 
associated with a registry at all, are not really acceptable.  So I don't see 
any way to move forward now other than with a compromise like the one I 
suggested.  This is not exactly Alia's option B, because the second codepoint 
is not properly thought of as a sub-type of the other.
_______________________________________________
Isis-wg mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/isis-wg

Reply via email to