Re: [Gen-art] Review: draft-ietf-pals-mpls-tp-mac-wd

"Ralph Droms (rdroms)" <> Thu, 22 October 2015 15:29 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 868F31B38D8; Thu, 22 Oct 2015 08:29:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -14.511
X-Spam-Status: No, score=-14.511 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 8FRzpeR_bRha; Thu, 22 Oct 2015 08:29:26 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 734E21B38CA; Thu, 22 Oct 2015 08:29:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;;; l=11908; q=dns/txt; s=iport; t=1445527766; x=1446737366; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=NvKIbDTALkMgICtBDFWwp4M0FLTbwJ4qBUe1wzstUW8=; b=JgeR0iP1a90M414ztxmqdErRCRaDJFuDda59tXEDoJA9+aV7/9irlIr7 JLeObPV2TiLRPOqo20YMatvM+7zPdkmDxzEmfMB8HKaAo145wn+G+BMMW K3VRBdKw/tBLE2Cyl6FMRBknzr7tsqF9DJzRjduXxtUtU0U67vTQ4Uass 0=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="5.20,182,1444694400"; d="scan'208";a="200174814"
Received: from ([]) by with ESMTP/TLS/DHE-RSA-AES256-SHA; 22 Oct 2015 15:29:25 +0000
Received: from ( []) by (8.14.5/8.14.5) with ESMTP id t9MFTPPn020163 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 22 Oct 2015 15:29:25 GMT
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.1104.5; Thu, 22 Oct 2015 10:29:05 -0500
Received: from ([]) by ([]) with mapi id 15.00.1104.000; Thu, 22 Oct 2015 10:29:05 -0500
From: "Ralph Droms (rdroms)" <>
To: "Shah, Himanshu" <>
Thread-Topic: [Gen-art] Review: draft-ietf-pals-mpls-tp-mac-wd
Thread-Index: AQHRBrtB0K0DtUmA2kyW/x0Nq3/Sjg==
Date: Thu, 22 Oct 2015 15:29:04 +0000
Message-ID: <>
References: <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: []
Content-Type: text/plain; charset="us-ascii"
Content-ID: <>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <>
Cc: General Area Review Team <>, "" <>, The IESG <>
Subject: Re: [Gen-art] Review: draft-ietf-pals-mpls-tp-mac-wd
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "GEN-ART: General Area Review Team" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 22 Oct 2015 15:29:33 -0000

(originally sent 10/16; second try)

Hi, Himanshu - responses in line...

> On Oct 15, 2015, at 7:44 PM 10/15/15, Shah, Himanshu <> wrote:
> Hi Ralph -
> Thanks for your thorough review.
> Let me first address your major concern.
> As you point out, this draft builds on existing standards.
> We (authors and WG) had to carefully balance between the right amount of information
> and wanting to describe details of methods described in other RFCs.
> This is frustrating to implementer (including myself) having to go back and forth
> between the documents. So I share that concern.
> But we would like to refrain from indulging in beefing up the doc and risk deviating
> from other base standards. However, for certain, if there is any conflict or lack of
> clarity, we would prefer to rectify.

I agree that, in general, duplicating specifications from other documents increases the possibility that the respective documents unintentionally conflict with each other or are not updated in parallel.
> To that end, I would rather prefer, trimming by removing conflicting/confusing text.

I wasn't clear in my review - I think making the references to other documents concise and clear, along with trimming unnecessary text from draft-ietf-pals-mpls-tp-mac-wd, will result in the best document.

> For example, sequence number processing - I rather would ask reader to get all details
> from relevant RFC, and point to only delta (which is to apply same logic that is used
> for 16-bit sequence number field to 32-bit field sequence number field that is used in
> this document).

This example is sort of an interesting one to consider, as I was thinking more of the examples in which the format and semantics of the MAC TLVs are exactly the same as in the cited defining documents.

> More comments in line.. and I look forward to your further guidance so we can wrap this
> up in time.
> As a data point, there are two implementations of this draft deployed in a Telco network
> in Asia.


> Thanks,
> Himanshu
> -----Original Message-----
> From: Ralph Droms (rdroms) []
> Sent: Wednesday, October 14, 2015 4:02 PM
> To: A. Jean Mahoney; General Area Review Team;
> Subject: [Gen-art] Review: draft-ietf-pals-mpls-tp-mac-wd
> I am the assigned Gen-ART reviewer for this draft. The General Area Review Team (Gen-ART) reviews all IETF documents being processed by the IESG for the IETF Chair.  Please treat these comments just like any other last call comments.
> For more information, please see the FAQ at
> <>.
> Document: draft-ietf-pals-mpls-tp-mac-wd-02, "MAC Address Withdrawal over Static Pseudowire"
> Reviewer: Ralph Droms
> Review Date: 2015-10-14
> IETF LC End Date: 2015-10-19
> IESG Telechat date: (if known) N/A
> Summary:
> This draft is on the right track but has open issues, described in the review.
> Major issues:
> While this document is describing a straightforward adaptation of previously defined standards to statically provisioned PWs, in my opinion an implementor would not necessarily be able to construct a fully interoperable implementation from this document.  There are several sections of the document that are not clear in their description of how to use mechanisms from referenced documents in this standard.
> If it appears that some of my comments are overly finicky, I'll agree that the correct implementation could probably be deduced from the text in most cases.  That is, I didn't find many outright errors or inconsistencies.  Many of my comments took a lot of paging back and forth, reading of referenced documents and head-scratching, which, in my experience, can lead to implementations that don't interoperate.
> [Himanshu>] Please see above for the justification of this approach.

Again, I wasn't clear in my review - my paging back and forth was both within draft-ietf-pals-mpls-tp-mac-wd and between draft-ietf-pals-mpls-tp-mac-wd and cited documents.  What I think would improve this specification is clarification that trims redundant specification details from draft-ietf-pals-mpls-tp-mac-wd and cites, concisely and exactly, the other documents from which the specifications are copied.

> Section 1:
> When the number of MAC addresses to be
> removed is large, the empty MAC List TLV may be used.  The empty MAC
> List TLV signifies wildcard MAC Address withdrawl.
> This text seems to be the only reference to the processing of an empty MAC List TLV. Specification of how the protocol works doesn't belong in the Introduction, and "wildcard MAC Address withdrawal" could certainly use some more explanation.
> [Himanshu>] I would prefer taking the text out if its mention in "Introduction" section is not desirable.
> Wildcard MAC withdraw is a very well-known concept in VPLS architecture and needs no more description to L2VPNers, IMO.
> So absence of its reference in subsequent sections does not dilute the purpose of this document.

It wasn't obvious to me what is intended as a protocol specification and what is intended as a description of the protocol.  I see that RFC 4762 includes text that describes how to process an empty MAC List TLV, so perhaps removal of the text altogether would be best.

> Section 3:
> The PW OAM message header is exactly the same as what is
> defined in [RFC6478].
> Is this statement really true?  The MAC Address Withdraw header seems to replace the "Refresh Timer" field with a "Reserved" field, and adds a new "R" flag.  The statement might be misleading to an implementor.
> [Himanshu>] I agree with you. This is statement is used loosely.
> The PW OAM message header is meant to apply only to first 4 bytes.
> Perhaps -
> "The MAC withdraw PW OAM message follows the same guidelines used in [RFC6478],
> whereby first 4-bytes of OAM message header is followed by message specific
> field and a set of TLVs relevant for the message"
> a MAC address withdraw OAM message MUST contain a
> "Sequence Number TLV" otherwise the entire message is dropped.
> Is the "Sequence Number TLV" required to be the first TLV in the message?  Are the TLVs required to appear in any particular order?
> [Himanshu>] Yes. It is important to determine the "newness" of the message first for processing eligibility and should not require
> hunting through entire message to find that TLV. My hope is that this is obvious to the reader who 'follows' the concepts in the draft.
> If you feel, that such an explicit mention is necessary, I do not mind.

I think it would be helpful to state explicitly that the Sequence Number TLV MUST be the first TLV in the message.

> A single bit (called A-bit) is set to indicate if a MAC withdraw
> message is for ACK.  Also, ACK does not include MAC TLV(s).
> Does this mean that the message is an ACK if the A-bit is set?  Can an ACK contain a "Sequence Number" TLV?
> [Himanshu>] I do not quite follow. ACK HAS TO INCLUDE THE SEQ NO TLV, how else receiver know what is ACK of
> what seq# message is of? I think this falls into commonsense category BUT, the text explicitly says that ONLY
> MAC TLVs are not required.

I apologize if I appear to be finicky, again, but the sentence I quoted simply wasn't clear to me.  Common sense interpretation of specifications is, of course, expected, but in my experience a simple sentence like:

A MAC Address Withdraw OAM message with the A-bit set is sent by a receiver
to acknowledge receipt and processing of a MAC Address Withdraw OAM message.
The acknowledgment message contains a Sequence Number TLV to indicate which
message is being acknowledged.

...which raises a question about error handling: does the acknowledgment indicate simple receipt of the MAC Address Withdraw OAM message or does it also include successful processing?  Are there any error conditions that should be signaled?  If not, perhaps that should be made explicit in the specification.

> Only half of the sequence number space is used.  Modular arithmetic
> is used to detect wrapping of sequence number.  When sequence number
> wraps, all MAC addresses are flushed and the sequence number is
> reset.  The 16-bit sequence number handling is described in
> [RFC4385]. This document uses 32-bits sequence numbers and hence
> sequence number in half the number space (i.e. 31-bits or ~2billion)
> is considered in the valid receive range.
> This paragraph is not at all clear to me. Reading section 4 of RFC 4385 helped but left me unsure about how my understanding of how to extend the sequence number mechanism to 32 bits corresponds to the expectations of this document.
> [Himanshu>] OK.
> [Himanshu>] How about this paragraph -
> The lack of reliable transport protocol for the in-band OAM necessitates a presence of
> sequencing scheme so that the receiver can recognize newer message from retransmitted
> older messages. The [RFC4385] describes details of sequence number handling which include
> overflow detection. This document leverages the same scheme, with the exception of overflow
> detection which is simplified here such that sequence number exceed 2,147,483,647 (0x7fffffff) is
> considered overflow and reset to 1.

Again not meaning to be finicky, the term "overflow" is not used anywhere in RFC 4385, so RFC 4385 doesn't define "overflow detection".  I think what you mean is that the sequence number mechanism is treated as a 31-bit number space, instead of a 16-bit number space as in RFC 4385, which means:

* the expected sequence number that follows 2^31-1 (maximum unsigned 31-bit number) is one, and
* if the packet sequence number is greater than the expected sequence number, and the packet sequence number minus the expected sequence number is less than 2^30

In my opinion, it would be clearer to just call out those specific changes and otherwise refer to the text in section 4.2 of RFC 4385.

> Section 4.1:
> Each PW is associated with a counter to keep track of the sequence
> number of the transmitted MAC withdrawal messages.  Whenever a node
> sends a new set of MAC TLVs, it increments the transmitted sequence
> number counter, and include the new sequence number in the message.
> The transmit sequence number is initialized to 1 at the onset.
> I'm pretty sure this is supposed to mean that the sequence number in the first message is 1.  The text could be interpreted to mean that the counter is initialized to 1 and then incremented to 2 when sending the first message
> [Himanshu>]
> [Himanshu>] No. The text is correct. Each endpoint keeps the record of send and receive sequence number. These values are initialized to 1.
> If the sender sends the first MAC withdraw with sequence number 1, then receiver will ignore because it does not think that received MAC withdraw
> is new. So starting MAC withdraw send seq# is in fact 2. Do note that the purpose of the seq# logic is ONLY to detect the received message as NEWER than what was ack'ed
> before or re-transmits due to in-transits.

OK.  Might be helpful to add a phrase "and the sequence number of the first transmitted message is therefore 2"

(Himanshu - your e-mail to me is truncated at this point in my mail reader)

- Ralph