Subject: [Idr] [IDR] Questions regarding draft-ietf-idr-bgpls-srv6-ext

From: "Wanghaibo (Rainsword)" <[email-masked]>
Date: Tue, 6 Aug 2019 10:13:29 +0000

Hi authors,
     I have some questions about this draft, comment with blue words.

2.  BGP-LS Extensions for SRv6

   o  SRv6 End.X SID of the link state routing adjacency or the BGP EPE

      Peer Adjacency is advertised via a new SRv6 End.X SID TLV
// No doubt about this
   o  The BGP EPE Peer Node and Peer Set SID context is advertised via a
      new SRv6 BGP EPE Peer Node SID TLV
// Here use a new TLV to descripe peer node & peer set

7.2.  SRv6 BGP Peer Node SID TLV

   The BGP Peer Node SID and Peer Set SID for SR with MPLS dataplane are

   specified in [I-D.ietf-idr-bgpls-segment-routing-epe].  The similar

   Peer Node and Peer Set SID functionality can be realized with SRv6

   using the END.X SRv6 SID.  The SRv6 BGP Peer Node SID TLV is an

   optional TLV for use in the BGP-LS Attribute for an SRv6 SID NLRI

   corresponding to BGP protocol.  This TLV MUST be included along with

   SRv6 End.X SID that is associated with the BGP Peer Node or Peer Set

   functionality.
// Here said the peer node sid followed by the SRv6 SID NLRI

6.  SRv6 SID NLRI

   A new "Link-State NLRI Type" is defined for SRv6 SID information as

   following:

   o  Link-State NLRI Type: SRv6 SID NLRI (value TBD see IANA

      Considerations Section 8.1).

     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

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

    |  Protocol-ID  |

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

    |                        Identifier                             |

    |                        (64 bits)                              |

    ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|

    |               Local Node Descriptors (variable)              //

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

    |               SRv6 SID Descriptors (variable)                //

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

                      Figure 11: SRv6 SID NLRI Format
     // Here defined the SRv6 SID NLRI. If we use this NLRI, when we have more than one peer node,
   We may construct routes with:
   Route1: SRv6 SID NLRI1 (Local Node Desc + SID1) + Peer Node SID (peer1) + other Attr Tlv
   Route2: SRv6 SID NLRI2 (Local Node Desc + SID2) + Peer Node SID (peer2) + other Attr Tlv
   Why do we have to change to this? What are the benefits of this change?

   For draft draft-ietf-idr-bgpls-segment-routing-epe, the route will be
   Route1: Link NLRI1(Local Node Desc + peer1) + Peer Node SID (peer1) + other Attr Tlv
   Route2: Link NLRI2(Local Node Desc + peer2) + Peer Node SID (peer2) + other Attr Tlv

     Also in this format, when a peer join a peer set, how to create the route? Perhaps：
   Route1: SRv6 SID NLRI1 (Local Node Desc + SID1) + Peer Node SID (peer1) + other Attr Tlv
   Route2: SRv6 SID NLRI1 (Local Node Desc + SID2) + Peer Node SID (S-flag) + other Attr Tlv
   What’s the relationship about the two routes ?
   If there exist a route3:
   Route3: SRv6 SID NLRI1 (Local Node Desc + SID3) + Peer Node SID (S-flag) + other Attr Tlv
   Now the Peer node route1 belongs to route2’s Peer Set or route3’s Peer Set?

   But it’s clear for old mpls epe draft:
   Route1: Link NLRI1(Local Node Desc + peer1) + Peer Node SID (peer1) + Peer Set Sid(set1)+other Attr Tlv
   Route2: Link NLRI2(Local Node Desc + peer2) + Peer Node SID (peer2) + Peer Set Sid(set1)+ other Attr Tlv

Best Regards
Haibo

---

From: "Ketan Talaulikar (ketant)" <[email-masked]>
Date: Thu, 8 Aug 2019 18:14:09 +0000

Hi Haibo,

Thanks for your review and your comments. The draft proposal for how EPE SIDs are signalled for SRv6 do differ from how they are done for SR/MPLS. This change is based on our implementation and deployment experience - there was a potential to simplify the signalling of EPE SIDs for SRv6.

In a nutshell, the proposal is as follows:

  1.  PeerAdj SID is associated with an underlying interface to the connected peer. In almost every sense, it is similar to the IGP Adjacency SID. Hence, the SRv6 End.X SID TLV is used to advertise it (associated with Link NLRI) similar to how it’s done for PeerAdj SID for SR/MPLS. This part you have no issue/doubt about.
  2.  For the PeerNode and the PeerSet SIDs, in SR/MPLS case we created another BGP-LS Link NLRI that is separate from the one created for PeerAdj SID. This is because the link descriptors are different. They may be same or may not be same depending on whether the session is single-hop (i.e. using interface addresses for peering) or multi-hop (e.g. using loopback addresses for peering). Note in https://tools.ietf.org/html/draft-ietf-idr-bgpls-segment-routing-epe-19#section-4.2 that use of link local/remote IDs are MUST for PeerAdj SID but may not be available for the PeerNode SID for a multi-hop session.

This new/additional Link NLRI for the signalling of PeerNode and PeerSet SIDs is avoidable.

With SRv6, we have just a single PeerNode SID which is advertised as a SID associated with the Node. The SRv6 BGP Peer Node SID TLV indicates the remote peer information. So it will become:
NLRI : SRv6 SID NLRI1 (local node desc + SID1)  and with it in BGP-LS Attribute : Peer Node SID TLV (peer1)
NLRI : SRv6 SID NLRI2 (local node desc + SID2)  and with it in BGP-LS Attribute : Peer Node SID TLV (peer2)

Now, for the PeerSet SID, it is actually the same SID that is associated with multiple peers. This can be signalled using the same SRv6 BGP Peer Node SID TLV with the S flag set. So for a shared Set SID between two peers, it will become:
NLRI : SRv6 SID NLRI3 (local node desc + SID3) and with it in BGP-LS Attribute : Peer Node SID TLV (peer 1 + Sflag=set), Peer Node SID TLV (peer 2 + Sflag=set)

This seems more simpler and intuitive because we describing the SID and not mixing it up with links in a link-state topology representation.

The other alternative approach was to also advertise the SRv6 BGP Peer Node SID TLV along with the Link NLRI advertised for the End.X SID TLV corresponding to the PeerAdj SID without requiring additional Link NLRIs (with different descriptors) for the PeerNode and PeerSet SIDs.

I hope this clarifies and explains the reason for departure from EPE signalling done for SR/MPLS.

Feedback/suggestions are welcome.

Thanks,
Ketan

From: Wanghaibo (Rainsword) <[email-masked]>
Sent: 06 August 2019 15:43
To: [email-masked]
Cc: [email-masked]
Subject: [IDR] Questions regarding draft-ietf-idr-bgpls-srv6-ext

Hi authors,

   functionality.

6.  SRv6 SID NLRI

   following:

     0                   1                   2                   3

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

    |  Protocol-ID  |

    |                        Identifier                             |

    |                        (64 bits)                              |

Best Regards
Haibo

---

From: "Wanghaibo (Rainsword)" <[email-masked]>
Date: Mon, 12 Aug 2019 03:54:25 +0000

Hi Ketan,

  Thanks for your reply.

  Your explanation is very clear, but there is still a little doubt.

1)    In this usage, when we create a EPE for a single-hop neighbor, we must create to routes , one for the SRv6 SID NLRI  and another for the Link NLRI  , when we need report the link info?
        In the previous method, we only need to report a PeerNode link NLRI

2)    In this new definition, a PeerSet may carry a large amount of Peer Node SID TLV, and it will cause the message to be too large.

In this way, the whole numbers NLRI will increase.
If it is multi-hop neighbors and all have joined to PeerSets, the number of routes added is equivalent to the number of PeerSets.
If it is single neighbor and all have joined to PeerSets, the number of added routes is equivalent to the number of neighbors plus the number of PeerSets.

Do we have to support both options at the same time, or do we only use the one described now?

Thanks,
Haibo

From: Ketan Talaulikar (ketant) [mailto:[email-masked]]
Sent: Friday, August 09, 2019 2:14 AM
To: Wanghaibo (Rainsword) <[email-masked]>; [email-masked]
Cc: [email-masked]
Subject: RE: [IDR] Questions regarding draft-ietf-idr-bgpls-srv6-ext

Hi Haibo,

Thanks for your review and your comments. The draft proposal for how EPE SIDs are signalled for SRv6 do differ from how they are done for SR/MPLS. This change is based on our implementation and deployment experience – there was a potential to simplify the signalling of EPE SIDs for SRv6.

1)      PeerAdj SID is associated with an underlying interface to the connected peer. In almost every sense, it is similar to the IGP Adjacency SID. Hence, the SRv6 End.X SID TLV is used to advertise it (associated with Link NLRI) similar to how it’s done for PeerAdj SID for SR/MPLS. This part you have no issue/doubt about.
2)      For the PeerNode and the PeerSet SIDs, in SR/MPLS case we created another BGP-LS Link NLRI that is separate from the one created for PeerAdj SID. This is because the link descriptors are different. They may be same or may not be same depending on whether the session is single-hop (i.e. using interface addresses for peering) or multi-hop (e.g. using loopback addresses for peering). Note in https://tools.ietf.org/html/draft-ietf-idr-bgpls-segment-routing-epe-19#section-4.2 that use of link local/remote IDs are MUST for PeerAdj SID but may not be available for the PeerNode SID for a multi-hop session.

Thanks,
Ketan

From: Wanghaibo (Rainsword) <[email-masked]<mailto:[email-masked]>>
Sent: 06 August 2019 15:43
To: [email-masked]<mailto:[email-masked]>
Cc: [email-masked]<mailto:[email-masked]>
Subject: [IDR] Questions regarding draft-ietf-idr-bgpls-srv6-ext

Hi authors,

   functionality.

6.  SRv6 SID NLRI

   following:

     0                   1                   2                   3

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

    |  Protocol-ID  |

    |                        Identifier                             |

    |                        (64 bits)                              |

Best Regards
Haibo