Subject: [Bier] Questions on draft-zhang-bier-te-yang

From: benjamin r <[email-masked]>
Date: Thu, 9 May 2019 14:43:24 +0000

Hi,

Authors, please clarify the below questions.

      module: ietf-bier-te
        augment /rt:routing:
          +--rw bier-te
             +--rw subdomain* [subdomain-id]
                +--rw subdomain-id    uint16
                +--rw te-adj-id
                |  +--rw si* [si]
                |     +--rw si     uint16
                |     +--rw adj* [adj-id]
                |        +--rw adj-id     uint16
                |        +--rw adj-if     if:interface-ref
                |        +--rw bp-type?   Enumeration // BEN1
BEN1//
Bp-type is the property of interface and I think the bp-type will not change (or) need to be configured for each SD.
Example: bp-type of an interface is p2p no matter the SD ?
Considering this, can we remove this config under SD and instead define this bp-type configuration under bier-te/adj-if
This means, a hierarchy like "bier-te/adj-if/bp-type".

                +--rw bsl* [fwd-bsl]
                |  +--rw fwd-bsl    uint16
                |  +--rw si* [si]
                |     +--rw si            uint16
                |     +--rw te-bift-id
                |     |  +--rw type?    enumeration
                |     |  +--rw value    rt-types:mpls-label
                |     +--rw fwd-items* [te-bp]
                |        +--rw te-bp       uint16
                |        +--rw bp-type?    enumeration // BEN2
BEN2//
Fwd-items need not have bp-type. I think there is no use of this field in forwarding. Can this be removed ?
                |        +--rw (fwd-type)
                |        |  +--:(connected)
                |        |  +--:(routed)
                |        |  +--:(local-decap)
                |        |  +--:(other)
                |        +--rw dnr-flag?   boolean
                |        +--rw out-info //BEN3
BEN3//

"Section 3.6. Requirements"  of draft-ietf-bier-te-arch-01:
"BIER-TE forwarding MAY support more than one adjacency on a bit and
ECMP adjacencies."

It is advantageous to have a single bit position mapped to more than one adjacency.
So the fields like out-info, fwd-type, dnr-flag etc need to be grouped to a container, and there can be a list of this container under te-bp.

                |        |  +--rw fwd-intf          if:interface-ref
                |        |  +--rw te-out-bift-id
                |        |     +--rw type?    enumeration
                |        |     +--rw value    rt-types:mpls-label
                |        +--rw te-frr {bier-te-frr}?
                |        |  +--rw frr-index?      uint16
                |        |  +--rw resetbitmask* [bitmask]
                |        |     +--rw bitmask    bit-string
                |        +--rw te-ecmp* [out-if] {bier-te-ecmp}?
                |           +--rw out-if            if:interface-ref
                |           +--rw te-out-bift-id
                |              +--rw type?    enumeration
                |              +--rw value    rt-types:mpls-label

Thanks
Benjamin R
VRP PDU, Network Business Line
Huawei Technologies India Pvt. Ltd.
Survey No. 37, Next to EPIP Area, Kundalahalli, Whitefield
Bengaluru-560066, Karnataka
Tel: + 91-80-49160700 Ext II Mob: 8123906320 Email: [email-masked]<mailto:[email-masked]>
[Company_logo]

________________________________

This e-mail and its attachments contain confidential information from HUAWEI, which
is intended only for the person or entity whose address is listed above. Any use of the
information contained herein in any way (including, but not limited to, total or partial
disclosure, reproduction, or dissemination) by persons other than the intended
recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by
phone or email immediately and delete it!

---

From: <[email-masked]>
Date: Fri, 10 May 2019 09:20:53 +0800 (CST)

Hi Ben,

Thank you very much for your comments!

Please find my answer below with [Sandy].

Thanks,

Sandy

原始邮件

发件人：benjaminr <[email-masked]>
收件人：BIER WG <[email-masked]>;
日 期 ：2019年05月09日 22:44
主 题 ：[Bier] Questions on draft-zhang-bier-te-yang

_______________________________________________
BIER mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/bier

Hi,

 

      module: ietf-bier-te

        augment /rt:routing:

          +--rw bier-te

                +--rw te-adj-id

                |  +--rw si* [si]

                |     +--rw si     uint16

                |     +--rw adj* [adj-id]

                |        +--rw adj-id     uint16

BEN1//

This means, a hierarchy like “bier-te/adj-if/bp-type”.

[Sandy] The BIER-TE's BP is different with BIER. The BP of BIER-TE should under SD and SI. Please find the description in the first paragraph, section 1 in "draft-ietf-bier-te-arch-01".

"

 The Bit Index Forwarding Table (BIFT) exists in every BFR. For every
 subdomain in use, it is a table indexed by SI:BitPosition and is
 populated by the BIER-TE control plane. Each index can be empty or
 contain a list of one or more adjacencies.
"

                +--rw bsl* [fwd-bsl]

                |  +--rw fwd-bsl    uint16

                |  +--rw si* [si]

                |     +--rw si            uint16

                |     +--rw te-bift-id

                |        +--rw te-bp       uint16

BEN2//

[Sandy] It is inherent from the adjacency's BP. If the router is total controlled by controller, the forwarding table can be delivered to router directly with no per adjacency BP configuration. 

So IMO it can be showed here though it may not be used in forwarding.

                |        +--rw (fwd-type)

                |        |  +--:(connected)

                |        |  +--:(routed)

                |        |  +--:(local-decap)

                |        |  +--:(other)

                |        +--rw out-info //BEN3

BEN3//

“Section 3.6. Requirements”  of draft-ietf-bier-te-arch-01:

“BIER-TE forwarding MAY support more than one adjacency on a bit and

ECMP adjacencies.”

[Sandy] I agree with you that in some circumstances the same BP can be used for multiple links. 

IMO the simplest modification is that change the leaf "out-info" to list, like out-info [if-index].

How do you think about it?

                |        |  +--rw te-out-bift-id

                |           +--rw te-out-bift-id

 

 

Thanks

Benjamin R

Tel: + 91-80-49160700 Ext II Mob: 8123906320 Email: [email-masked]

 

 
--------------------------------------------------------------------------------

---

From: benjamin r <[email-masked]>
Date: Fri, 10 May 2019 06:27:13 +0000

Hi Sandy,

Thanks for the reply.
Please find my reply below.

Thanks
Benjamin R

From: [email-masked] [mailto:[email-masked]]
Sent: Friday, May 10, 2019 6:51 AM
To: benjamin r <[email-masked]>
Cc: [email-masked]
Subject: Re:[Bier] Questions on draft-zhang-bier-te-yang

Hi Ben,

Thanks,

Sandy

原始邮件
发件人：benjaminr <[email-masked]<mailto:[email-masked]>>
收件人：BIER WG <[email-masked]<mailto:[email-masked]>>;
日 期 ：2019年05月09日 22:44
主 题 ：[Bier] Questions on draft-zhang-bier-te-yang
_______________________________________________
BIER mailing list
[email-masked]<mailto:[email-masked]>
https://www.ietf.org/mailman/listinfo/bier

Hi,

      module: ietf-bier-te
        augment /rt:routing:
          +--rw bier-te

   contain a list of one or more adjacencies.
"
[BEN] Sandy, I agree meaning of BP is different in BIER-TE(refers to adjacencies), and should be under SD/SI/BSL.
           The point I am telling is about BP-Type (not Bit position) which is the adjacency type(p2p/ring etc.), I think it should not be under SD/SI.
           Instead it should be under adj-if(adjacency interface).  Because, regardless of SD/SI, the adjacency type (p2p/ring etc..) is going to be the same.
           So, I suggest we can rename the bp-type to adj-type and have it like “bier-te/adj-if/adj-type”.

                +--rw bsl* [fwd-bsl]
                |  +--rw fwd-bsl    uint16
                |  +--rw si* [si]
                |     +--rw si            uint16
                |     +--rw te-bift-id
                |     |  +--rw type?    enumeration
                |     |  +--rw value    rt-types:mpls-label
                |     +--rw fwd-items* [te-bp]
                |        +--rw te-bp       uint16
                |        +--rw bp-type?    enumeration // BEN2
BEN2//
Fwd-items need not have bp-type. I think there is no use of this field in forwarding. Can this be removed ?
[Sandy] It is inherent from the adjacency's BP. If the router is total controlled by controller, the forwarding table can be delivered to router directly with no per adjacency BP configuration.
So IMO it can be showed here though it may not be used in forwarding.
[BEN] I feel, whether or not router is controlled by the controller, it is not correct to have bp-type under fwd-items. It is also redundant with “sd/te-adj-id/si/adj/bp-type”.
         Can be retained as a read only node, for display purpose. But, I feel not correct to have it as a write node per bit position(same reasoning as BEN1)

                |        +--rw (fwd-type)
                |        |  +--:(connected)
                |        |  +--:(routed)
                |        |  +--:(local-decap)
                |        |  +--:(other)

It is advantageous to have a single bit position mapped to more than one adjacency.
So the fields like out-info, fwd-type, dnr-flag etc need to be grouped to a container, and there can be a list of this container under te-bp.
[Sandy] I agree with you that in some circumstances the same BP can be used for multiple links.
IMO the simplest modification is that change the leaf "out-info" to list, like out-info [if-index].
How do you think about it?
[BEN] Assume a case like below, for example
SD=1, BSL=256, SI=0, fwd-items[te-bp=1, out-if=x, [fwd-type=connected, dnr-flag=1...]]
                                       fwd-items[te-bp=1, out-if=y, [fwd-type=local_decap, dnr-flag=0...]]
So, I think not only we should make out-if  to list, but also move the adjacency related fields under out-if, instead of te-bp, so that it will be more flexible.

Thanks
Benjamin R

---

From: <[email-masked]>
Date: Fri, 10 May 2019 16:55:19 +0800 (CST)

Hi Ben,

Thank you for your response!

Please find my answer below with [Sandy2].

Thanks,

Sandy

原始邮件

发件人：benjaminr <[email-masked]>
收件人：张征00007940;[email-masked] <[email-masked]>;
日 期 ：2019年05月10日 14:28
主 题 ：RE: Re:[Bier] Questions on draft-zhang-bier-te-yang

Hi Sandy,

Thanks for the reply.

 

Thanks

Benjamin R

  

 

 

 

 

Hi Ben,

Thanks,

Sandy

原始邮件

日 期 ：2019年05月09日 22:44

Hi,

 

      module: ietf-bier-te

        augment /rt:routing:

          +--rw bier-te

                +--rw te-adj-id

                |  +--rw si* [si]

                |     +--rw si     uint16

                |     +--rw adj* [adj-id]

                |        +--rw adj-id     uint16

BEN1//

"

   The Bit Index Forwarding Table (BIFT) exists in every BFR.  For every    subdomain in use, it is a table indexed by SI:BitPosition and is    populated by the BIER-TE control plane.  Each index can be empty or    contain a list of one or more adjacencies. 
"

 [Sandy2] You mean that we split the model into two parts, one is for adj-if configuration, and another is for forwarding table. And the adj-if configuration is indexed by adjacency not BP.

 Am I unstandand right? If I understand right, OK. we can do this change.

                +--rw bsl* [fwd-bsl]

                |  +--rw fwd-bsl    uint16

                |  +--rw si* [si]

                |     +--rw si            uint16

                |     +--rw te-bift-id

                |        +--rw te-bp       uint16

BEN2//

 [Sandy2] OK.  The deletion of bp-type is easy. 

                |        +--rw (fwd-type)

                |        |  +--:(connected)

                |        |  +--:(routed)

                |        |  +--:(local-decap)

                |        |  +--:(other)

                |        +--rw out-info //BEN3

BEN3//

ECMP adjacencies.”

 [Sandy2] Got it. I have a question: If this situration exist that different fwd-types are used by a te-bp?

For example, in the situration that every BFER is assigned a same BP, the fwd-type is same with local_decap and can not be others. Right?

                |        |  +--rw te-out-bift-id

                |           +--rw te-out-bift-id

 

 

Thanks

Benjamin R

---

From: benjamin r <[email-masked]>
Date: Fri, 10 May 2019 09:53:36 +0000

Hi Sandy,
 Thanks for the reply.

Thanks
Benjamin R

From: [email-masked] [mailto:[email-masked]]
Sent: Friday, May 10, 2019 2:25 PM
To: benjamin r <[email-masked]>
Cc: [email-masked]
Subject: Re:RE: Re:[Bier] Questions on draft-zhang-bier-te-yang

Hi Ben,

Thanks,

Sandy

原始邮件
发件人：benjaminr <[email-masked]<mailto:[email-masked]>>
收件人：张征00007940;[email-masked] <[email-masked]<mailto:[email-masked]>>;
日 期 ：2019年05月10日 14:28
主 题 ：RE: Re:[Bier] Questions on draft-zhang-bier-te-yang
Hi Sandy,

Thanks for the reply.

Thanks
Benjamin R

From: [email-masked]<mailto:[email-masked]> [mailto:[email-masked]]
Sent: Friday, May 10, 2019 6:51 AM
To: benjamin r <[email-masked]<mailto:[email-masked]>>
Cc: [email-masked]<mailto:[email-masked]>
Subject: Re:[Bier] Questions on draft-zhang-bier-te-yang

Hi Ben,

Thanks,

Sandy

原始邮件

Hi,

      module: ietf-bier-te
        augment /rt:routing:
          +--rw bier-te

[BEN2] Yes, index by “adj-if” and access “adj-type”.
[BEN2] OK.

                |        +--rw (fwd-type)
                |        |  +--:(connected)
                |        |  +--:(routed)
                |        |  +--:(local-decap)
                |        |  +--:(other)

[BEN2]
Reply to first statement:
Yes, I think situation can exist.
for example, when one interface fwd-type is forward_connected, another interface fwd-type is forward_routed.
Reply to second statement:
Yes, I agree.

Thanks
Benjamin R