Subject: [mpls] MPLS-RT review of draft-kompella-mpls-lart

From: Yingzhen Qu <[email-masked]>
Date: Sat, 4 Dec 2021 19:08:01 -0800

Hi,

I have reviewed the draft and here are my thoughts and comments.

The document is technically sound. L-ARP is defined to advertise label bindings for IP host addresses, and the draft covers both control plane and data plane. One general comment is that it will be helpful if the authors add some explanations about how the protocol is used/deployed.

Detailed comments (line numbers are generated using idnits): 
15	   Distribution of labels via ARP enables simple plug-and-play operation
16	   of MPLS, which is key to deploying MPLS in data centers and
17	   enterprises.
[major] The motivation of this proposal is to easy the deployment of MPLS in data centers and enterprises using “MPLS Fabric”. More details/clarifications are needed, especially how it’s different from traditional service provider MPLS networks.

166	   L-ARP server.  Within the MPLS Fabric, the usual MPLS protocols (IGP,
167	   LDP, RSVP-TE) are run.
[nit] s/are run/are running

169	   the overlay virtual network technology).  H1 might also want to talk
170	   to a member of the MPLS Fabric, say T. 
[minor] Please elaborate why H1 might want to talk to T? A use case example would help.

201	   label into the MPLS Fabric.  This can be triggered by configuration
202	   on T3, or when T3 first receives an L-ARP request from H3 (indicating
203	   that H3 wants MPLS connectivity), or via some other protocol.
[minor] my understanding is that the kind of advertisement sent from T3 to H3 either triggered by configuration or request depends on the configuration on T3, so it could be a node SID or LDP message etc. Please correct me if my understanding is wrong.

238	   3.  sends a (proxy) L-ARP reply to H1 with the Source Hardware
239	       Address (SHA) set to (L, M), where M is T1's metric to H3. 
[nit] I assume the L here means a label to reach T3 from T1?
244	   To send a packet to H3 over an MPLS tunnel, H1 pushes L1 onto the
245	   packet, sets the destination MAC address to M1 and sends it to T1.
246	   On receiving this packet, T1 swaps the top label with the label(s)
247	   for its MPLS tunnel to H3.
[minor] Please clarify L1 and M1 here.

Section 3.4
It would be helpful if the forwarding table of H1 is shown here.

Thanks,
Yingzhen

---

From: Erik Auerswald <[email-masked]>
Date: Sun, 5 Dec 2021 19:08:28 +0100

Hi,

On 05.12.21 04:08, Yingzhen Qu wrote:
> [...]
It seems to me as if the names in section 3 used for specific labels are
not always completely consistent.

I think that section 3, L-ARP Protocol Operation, could be made even
clearer with a few simple changes.  I'll first describe my suggested
changes, and then provide text for direct inclusion in the draft for
your convenience.

Section 3 illustrates L-ARP operation based on an example topology,
looking at egress, ingress, and data plane operation.  This uses four
named LSRs (T1 to T4), three named hosts (H1 to H3), two named transport
labels (L3 and TL3/L1/L), and one named VPN label (VL3).

I think it would be clearer and more consistent if a single name were
used for the second named transport label instead of three different
names.

I would suggest to use "TL3," since this label is a transport label to
reach H3.  (Both "TL3" and "L1" are used thrice and thus require the
same amount of changes, but "TL3" corresponds better to "VL3".
Additionally, one could assume "L1" to be a transport label allocated
by T1 to reach H1, just as "L3" is the transport label allocated by T3
to reach H3.)

Additionally, one sentence seems to have a typo in an LSR name, using
"T" instead of "T4".

Thus I would suggest the following text changes:

1. In the second paragraph of section 3 (on page 5) replace "T" with
    "T4":

   OLD:

    H1 might also want to talk to a member of the MPLS Fabric, say T.

   NEW:

    H1 might also want to talk to a member of the MPLS Fabric, say T4.

2. In enumeration point 2 in section 3.3 (on page 5) replace "L1" with
    "TL3":

   OLD:

    2.  if it does, T1 allocates a label TL3 to reach H3 (if it doesn't
        already have such a label) and installs an L-FIB entry to swap L1
        with the label (stack) to reach H3.

   NEW:

    2.  if it does, T1 allocates a label TL3 to reach H3 (if it doesn't
        already have such a label) and installs an L-FIB entry to swap
        TL3 with the label (stack) to reach H3.

3. In enumeration point 3 in section 3.3 (on page 6) replace "L" with
    "TL3":

   OLD:

    3.  sends a (proxy) L-ARP reply to H1 with the Source Hardware
        Address (SHA) set to (L, M), where M is T1's metric to H3.  T1
        may also set some attribute bits in the SHA.

   NEW:

    3.  sends a (proxy) L-ARP reply to H1 with the Source Hardware
        Address (SHA) set to (TL3, M), where M is T1's metric to H3.  T1
        may also set some attribute bits in the SHA.

4. In the first paragraph of section 3.4 (on page 6) replace "L1" with
    "TL3":

   OLD:

    To send a packet to H3 over an MPLS tunnel, H1 pushes L1 onto the
    packet, sets the destination MAC address to M1 and sends it to T1.
    On receiving this packet, T1 swaps the top label with the label(s)
    for its MPLS tunnel to H3.  If T1's reachability to H3 is via a
    SPRING label stack, the label L1 acts as an implicit binding SID.

   NEW:

    To send a packet to H3 over an MPLS tunnel, H1 pushes TL3 onto the
    packet, sets the destination MAC address to M1 and sends it to T1.
    On receiving this packet, T1 swaps the top label with the label(s)
    for its MPLS tunnel to H3.  If T1's reachability to H3 is via a
    SPRING label stack, the label TL3 acts as an implicit binding SID.

Best regards,
Erik Auerswald
-- 
Dipl.-Inform. Erik Auerswald
Gesellschaft für Fundamental Generic Networking mbH
Geschäftsführung: Volker Bauer, Jörg Mayer
Gerichtsstand: Amtsgericht Kaiserslautern - HRB: 3630