RFC4875[P2MP]

专利点:1.压缩机制

                                A
                                |
                                |
                                B
                                |
                                |
                      C----D----E
                      |    |    |
                      |    |    |
                      F    G    H-------I
                           |    |      |
                           |    |      |
                           J    K   L   M
                           |    |   |   |
                           |    |   |   |
                           N    O   P   Q--R

              Figure 1.  Explicit Route Compression

Figure 1 shows a P2MP LSP with LSR A as the ingress LSR and six
egress LSRs: (F, N, O, P, Q and R). When all six S2L sub-LSPs are
signaled in one Path message, let us assume that the S2L sub-LSP to
LSR F is the first S2L sub-LSP, and the rest are subsequent S2L sub-
LSPs. The following encoding is one way for the ingress LSR A to
encode the S2L sub-LSP explicit routes using compression:

  S2L sub-LSP-F:   ERO = {B, E, D, C, F},  <S2L_SUB_LSP> object-F
  S2L sub-LSP-N:   SERO = {D, G, J, N}, <S2L_SUB_LSP> object-N
  S2L sub-LSP-O:   SERO = {E, H, K, O}, <S2L_SUB_LSP> object-O
  S2L sub-LSP-P:   SERO = {H, L, P}, <S2L_SUB_LSP> object-P
  S2L sub-LSP-Q:   SERO = {H, I, M, Q}, <S2L_SUB_LSP> object-Q
  S2L sub-LSP-R:   SERO = {Q, R}, <S2L_SUB_LSP> object-R

After LSR E processes the incoming Path message from LSR B it sends a
Path message to LSR D with the S2L sub-LSP explicit routes encoded as
follows:

  S2L sub-LSP-F:   ERO = {D, C, F},  <S2L_SUB_LSP> object-F
  S2L sub-LSP-N:   SERO = {D, G, J, N}, <S2L_SUB_LSP> object-N

LSR E also sends a Path message to LSR H, and the following is one
way to encode the S2L sub-LSP explicit routes using compression:

  S2L sub-LSP-O:   ERO = {H, K, O}, <S2L_SUB_LSP> object-O
  S2L sub-LSP-P:   SERO = {H, L, P}, S2L_SUB_LSP object-P
  S2L sub-LSP-Q:   SERO = {H, I, M, Q}, <S2L_SUB_LSP> object-Q
  S2L sub-LSP-R:   SERO = {Q, R}, <S2L_SUB_LSP> object-R

After LSR H processes the incoming Path message from E, it sends a
Path message to LSR K, LSR L, and LSR I. The encoding for the Path
message to LSR K is as follows:

  S2L sub-LSP-O:   ERO  = {K, O}, <S2L_SUB_LSP> object-O

The encoding of the Path message sent by LSR H to LSR L is as
follows:

  S2L sub-LSP-P:   ERO = {L, P}, <S2L_SUB_LSP> object-P

The following encoding is one way for LSR H to encode the S2L sub-LSP
explicit routes in the Path message sent to LSR I:

  S2L sub-LSP-Q:   ERO = {I, M, Q}, <S2L_SUB_LSP> object-Q
  S2L sub-LSP-R:   SERO = {Q, R}, <S2L_SUB_LSP> object-R

The explicit route encodings in the Path messages sent by LSRs D and
Q are left as an exercise for the reader.

This compression mechanism reduces the Path message size. It also
reduces extra processing that can result if explicit routes are
encoded from ingress to egress for each S2L sub-LSP. No assumptions
are placed on the ordering of the subsequent S2L sub-LSPs and hence
on the ordering of the SEROs in the Path message. All LSRs need to
process the ERO corresponding to the first S2L sub-LSP. An LSR needs
to process an S2L sub-LSP descriptor for a subsequent S2L sub-LSP
only if the first hop in the corresponding SERO is a local address of
that LSR. The branch LSR that is the first hop of an SERO propagates
the corresponding S2L sub-LSP downstream.

Path Message Format

5.3. Grafting

The operation of adding egress LSR(s) to an existing P2MP LSP is
termed grafting. This operation allows egress nodes to join a P2MP
LSP at different points in time.

There are two methods to add S2L sub-LSPs to a P2MP LSP. The first
is to add new S2L sub-LSPs to the P2MP LSP by adding them to an
existing Path message and refreshing the entire Path message. Path
message processing described in section 4 results in adding these S2L
sub-LSPs to the P2MP LSP. Note that as a result of adding one or
more S2L sub-LSPs to a Path message, the ERO compression encoding may have to be recomputed.