Re: [manet] draft-ietf-manet-aodvv2-15 review
Charlie Perkins <charles.perkins@earthlink.net> Tue, 03 May 2016 05:17 UTC
Return-Path: <charles.perkins@earthlink.net>
X-Original-To: manet@ietfa.amsl.com
Delivered-To: manet@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9283A12D1BC for <manet@ietfa.amsl.com>; Mon, 2 May 2016 22:17:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.696
X-Spam-Level:
X-Spam-Status: No, score=-3.696 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, RP_MATCHES_RCVD=-0.996] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); domainkeys=pass (384-bit key) header.from=charles.perkins@earthlink.net header.d=earthlink.net
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9lpDgdugCYU2 for <manet@ietfa.amsl.com>; Mon, 2 May 2016 22:17:09 -0700 (PDT)
Received: from elasmtp-junco.atl.sa.earthlink.net (elasmtp-junco.atl.sa.earthlink.net [209.86.89.63]) by ietfa.amsl.com (Postfix) with ESMTP id 0E4A912D537 for <manet@ietf.org>; Mon, 2 May 2016 22:17:09 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=earthlink.net; b=RicsWkcf/P5n3LjP4Lu+Z+yREuCqzbh4rg8Vo9OG3EYj2V9bA7FTXm/2/BtaggRr; h=Received:Subject:To:References:From:Message-ID:Date:User-Agent:MIME-Version:In-Reply-To:Content-Type:X-ELNK-Trace:X-Originating-IP;
Received: from [99.51.72.196] (helo=[192.168.1.67]) by elasmtp-junco.atl.sa.earthlink.net with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.67) (envelope-from <charles.perkins@earthlink.net>) id 1axShZ-0002OQ-EY; Tue, 03 May 2016 01:16:53 -0400
To: Jiazi YI <ietf@jiaziyi.com>, manet <manet@ietf.org>
References: <CAN1bDFzhsrVXdtUbQHHa6wjM1fpjP=6+O8VeRAi7dLSBJDiyaQ@mail.gmail.com>
From: Charlie Perkins <charles.perkins@earthlink.net>
Message-ID: <0e7fb67e-2711-9912-7e97-e2a54d0bf8ed@earthlink.net>
Date: Mon, 02 May 2016 22:16:48 -0700
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.0
MIME-Version: 1.0
In-Reply-To: <CAN1bDFzhsrVXdtUbQHHa6wjM1fpjP=6+O8VeRAi7dLSBJDiyaQ@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------72C9FF9D8A674F28E42F3841"
X-ELNK-Trace: 137d7d78656ed6919973fd6a8f21c4f2d780f4a490ca6956527bd5036cbc8ac78d64d86839a2839e3c0eaa9ce74ae272350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 99.51.72.196
Archived-At: <http://mailarchive.ietf.org/arch/msg/manet/PL976M7G2WC9CVM0vlJKNbYUyhE>
Subject: Re: [manet] draft-ietf-manet-aodvv2-15 review
X-BeenThere: manet@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Mobile Ad-hoc Networks <manet.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/manet>, <mailto:manet-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/manet/>
List-Post: <mailto:manet@ietf.org>
List-Help: <mailto:manet-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/manet>, <mailto:manet-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 03 May 2016 05:17:12 -0000
Hello Jiazi, A bit of follow-up below... On 4/28/2016 7:53 AM, Jiazi YI wrote: > Hi, > > Here is my preliminary review on aodvv2-15. There are still some > points that I'm not sure that I have fully understood -- I will get > back to them if I had time. > > A summary of my review: > > 1. The specification lacks of a "big picture" of the protocol > functioning. People prefer to have a general idea of the whole > protocol at the very beginning. This is particularly important for > readers who are not familiar with reactive protocol in general. > Some of the sections can be reorganized a bit to improve the > readability. For example, with the current structure, the readers need > to reach section 6.6 (Route discovery) before they can really touch > the core function of the protocol. As with many documents, there is a need to establish definitions and data structures before specifying the details of the control protocol interactions. > > 2. As an experimental protocol, the part related to experiments needs > to be improved. IMO, at least the following information must be provided: > - The motivation of this experimental document > - The experiments to be conducted > - What kind of feedback is expected to reported. We will provide some indication for useful experiments. > > > 3. There are some redundant processing procedures in the draft. On the > other hand, some connections between the sections seem to be missing. > Sometimes it's hard to build connection between the message processing > and related information bases. If you could be more specific, that would help. I know that there has been a lot of effort to provide exactly this kind of continuity, so I don't know what is missing. > > 4. The specification uses lots of multicast messages. While multicast > RREQ is inevitable, the necessity of multicast RREP/RERR is not clear. > It bring issues related to control message overhead and security. Multicast RERR is useful when many precursors need to receive the message ASAP. The justification for multicast RREP is more detailed, but I think on this point there is definitely room for discussion. Even for multicast RERR, serial unicast is preferable whenever the number of precursors is small. > > 5. The interaction with RIB: The route state maintenance requires > "/LocalRoute.State MUST be checked before IP packet forwarding and > before any operation based on LocalRoute.State./". Having such check > for each data packet might be heavy load for the system if the routing > daemon runs in userspace (because of context switch). While > interaction with RIB is inevitable, we want to reduce it as much as > possible -- per data packet operation is too much. This is an implementation detail. Systems can be built with RIB and FIB co-located, which would be my preference. > > 6. There are too many "MAY" and "SHOULD" in the document without > elaboration. Some of which might cause interoperability issues or even > loops. Do you suggest an elaboration after every single RFC 2119 term? > Please check the details inline: > > *section 1, overview* > > The Ad hoc On-Demand Distance Vector Version 2 (AODVv2) protocol > enables dynamic,*self-starting*, multihop routing > > > The term "self-starting" is very vague. It makes people think of > auto-configuration. And I didn't see such kind of feature is > supported. I would avoid using it. The protocol is indeed self-starting, and previous commenters never suggested confusion with auto-configuration. I can't think of another term that denotes that the routing table is built dynamically without necessarily requiring any preconfigured route table entries. Can you suggest a better term? > > AODVv2 is an Experimental protocol. > ... > > I think much more information is required here: > > 1) Because RFC 3561 has already been experimented for 13 years, as its > version 2, AODVv2 should summarize what kind of experiences have been > obtained in the past 13 years, and justify the design choices made in > the current draft (like use of RFC5444, removing some of the features, > etc) I never heard of a rule like this - that if a protocol is going to Experimental, we need to describe the experiments that have already been done. However, the use of RFC 5444 was not justified by any experiment, but instead mandated by RFC 5498. I am surprised that you request justification for removing the features, since you were among the people who requested removing them. This was done to satisfy that request. > > 2) The motivation and experiments to be conducted need to be > elaborated. It's even necessary to have a separate section/subsection > for it. Some experiment points that come to my mind without much > thinking: support of multiple interfaces, support of gateways, use of > different metrics, the security model, etc.. These are reasonable experiments and should be mentioned in a section for that purpose. > > The basic operations of the AODVv2 protocol are route discovery and > route maintenance... > > > It's necessary to give an overview of the basic functioning of the > protocol, rather than simply saying "use RREQ/RREP to carry > information and build routes". Because after this, the draft jumps > directly into the protocol details. > It's extremely important for the readers who are not familiar with > reactive protocol. Which aspects of reactive protocol operation do you think should be mentioned? Perhaps the longer the description gets, the less likely it is that people will read and digest it. > > *section 2, Terminology* > > Please pay attention to the style of the terms. Most of the time, > style like AckReq is used, but sometimes RERR_Gen is used. > Good to be consistent. > > Unreachable Address > An address reported in a Route Error message, as described in > Section 7.4.1. > > > need to explain what's the address for exactly, rather than giving a > pointer to a big section. It seems difficult to imagine that someone would see the term "Unreachable Address" and be unable to determine that the address would be used in the Route Error message to notify other AODVv2 nodes that the address is unreachable. That is exactly what the address is used for, and seems intuitive to me. Do you have any suggestion about how to remedy the lack? > > *section 3, applicability statement* > * > * > > AODVv2 handles a wide variety of mobility and traffic patterns by > determining routes on-demand... > > > It necessary to explicitly call out what kind of traffic patterns that > reactive protocols are not suitable for, such as lots of routers send > data packets to instantaneous and multiple destinations. If that > happens, what's the consequence (broadcasting storm, etc). We can mention that AODVv2 supports traffic patterns for there are a lot of source/destination pairs that do not need routes to each other. Sending data to multiple destinations at the same time sounds like multicast, which is out of scope. I don't know about instantaneous destinations...? > The routing algorithm in AODVv2 MAY be operated at layers other > than > the network layer, using layer-appropriate addresses. > > > Considering the deep coupling between AODVv2 and IP, I don't see how > it can work. This should be removed. Well, it's been done at layer 2. It was used for 802.11s. It's been done for Bluetooth. Of course in those situations you wouldn't use the IP address, but that's a pretty simple translation to make. > > > 4.2 router client set > > RouterClient.Cost > The cost associated with reaching this address or address range. > > > Both "metric" and "cost" are used in the draft. If they are the same, > please pick a term and use it consistently. They are not the same. Some people have been using metrics that measure benefit, not cost. I don't like those metrics, myself. Both terms are needed. > > The AODVv2 router adding the Router Client MUST wait for > any existing routing information about this Router Client to be > purged from the network, i.e., at least MAX_SEQNUM_LIFETIME > since the > last SeqNum update on the router which is removing this Router > Client. > > > I'm not sure that I parsed this sentence correctly, but the > adding/removing of router client seems to be more an external > operation and out of the control of routing protocol itself. It's just the routing information about the client in other places of the network, not anything related to an external operation. Is there something specific that is confusing here? > > 4.3 neighbor set > > > Neighbor.State ... There are three possible states: Confirmed, > Unknown, and > Blacklisted. Unknown is the initial state. > > > I think the "Unknown" is a bit confusing here. It's actually something > we already know -- a state that "we heard from that node, but > bi-directionality is not confirmed". > I think "Heard" is a more appropriate term to be used here. That's O.K. with me - perhaps other people have some feedback here...? > > 4.4 sequence numbers > > I think the comparison in wrap-around cases should be specified here. Doesn't it work just to describe how subtraction works? If the wrap-around cases are not exceptions, do they really need to be specified? To me that sounds like a long and uninformative rathole. > > 4.5 Local route set > > > Alternatively, implementations > MAY choose to modify the Routing Information Base directly. > > > This should be either more precise (in which condition, how we can > modify the RIB?), or be removed. I think this is an attempt to point out that there are a lot of implementation strategies. > > Multiple valid routes for the same address and prefix length > but for > different metric types may exist in the Local Route Set, but the > decision of which of these routes to install in the Routing > Information Base to use for forwarding is outside the scope of > AODVv2. > > > It's OK, but maybe some rules must be specified and followed. For > example, the metric used must be the same: if a packet is forwarded > using metric A at router X, and then metric B at router Y, it's a > obvious source of loops. I don't think this is possible for monotonically increasing metrics. > > 4.6. Multicast Route Message Set > > Since this set is mainly for duplicate packet detection, I think some > of the fields are kind of redundant. For example, an RREQ/RREP message > can be identified by its originator's address and sequence number, why > 6 fields (OrigAddr, OrigFprefixLen, OrigSeqNum, TargAddr, > TargPrefixLen, TargSeqNum) are necessary here. Because the originator can have two route discovery operations happening at the same time. > > *section 5 Metrics* > * > * > > In Route Request messages, the metric describes the cost of the > route > from OrigAddr (and any other addresses included in the prefix > length > of RREQ_Gen's Router Client entry for OrigAddr) to the router > sending > the Route Request. > > > So the metric carried in the RREQ is the metric from Router Client to > the RREQ_Gen plus the metric from RREQ_Gen to the intermediate router. > In the Router Client Set, we have only one field for > RouterClient.Cost. On the other hand, "AODVv2 supports different > metrics". > > routerClient.cost AODVv2 metric > client-----------------------RREQ_gen--------------- > > What if those two metrics are of different types? This is quite > possible because the two links might use different medium. We should indeed allow for multiple metric types for any particular Router Client. The quoted passage does not specifically prevent that, but I agree it should be made clearer. > > > > section 6.2 (Next hop monitoring) and section 6.3 (Neighbor set > update) are very related. One is about the function, and one is about > the corresponding operation. The following sections don't follow this > pattern -- why not making them to one? This is worthwhile to explore, but I am not sure it could be done and finished this week. Anyway, different people might like different organizations and the one in the draft is not wrong. Could we put this as a second priority and look at it a little later? > > section 6.7.1 (Evaluating route information) and section 6.8 > (Suppressing redundant messages using Multicast Route message set) > seem to have some overlapped operations. They all need to check the > uniqueness of the messages, compare the metrics and stop processing > when duplication is detected. Although they are applied to different > information bases, they are doing the same thing. There is a certain amount of overlap because there aren't all that many data elements to start with. However, trying to structure an algorithm to use the minimum number of lines of code can start to make spaghetti code which is even harder to understand. The purposes are different enough that I don't agree they are doing the same thing. If this is not clear, then I can try to make an example but that would take another hour that I don't have until later this week. > > section 6.9 (suppressing redundant RERR messages using the Route Error > set) should obviously a part of section 6.10.2 (reporting invalid > routes), but it's a separate section with higher hierarchy. > > more details inline: > > If such an entry does not exist, a new entry is created as > described > in Section 6.3. *While the value of Neighbor.State is Unknown, > acknowledgement of RREP messages sent to that neighbor MUST be > requested*. ... > > > I think we need to precise this is one for the case of RREP transmission. Sounds reasonable, thanks! > > section 6.5. Message Transmission > > > To implement the congestion control, a queue length is set. If the > queue is full, in order to queue a new message, a message of lower > priority must be removed from the queue. If this is not possible, > the new message MUST be discarded. The queue should be sorted in > order of message priority. > > > I think it's more implementation details rather than specification. We were requested to specify this. I agree it is implementation detail and that should be made clear. > section 6.7.1 > > 4. Compare route costs > * If AdvRte is better than all matching LocalRoutes, it SHOULD > be used to update the Local Route Set because it offers > improvement. *If it is not used to update the Local > Route Set, > the existing non-optimal LocalRoute will continue to be > used, > causing data traffic to use a non-optimal route.* > > > If some routers made the update, and some routers choose not updating, > I'm afraid there will be loops in the network. A route that was previously loop free does not suddenly become a looping route in this situation. I'll try to respond to the rest of your comments tomorrow. Thanks for the careful review. Regards, Charlie P.
- [manet] draft-ietf-manet-aodvv2-15 review Jiazi YI
- Re: [manet] draft-ietf-manet-aodvv2-15 review Lotte Steenbrink
- Re: [manet] draft-ietf-manet-aodvv2-15 review Charlie Perkins
- Re: [manet] draft-ietf-manet-aodvv2-15 review Dearlove, Christopher (UK)
- Re: [manet] draft-ietf-manet-aodvv2-15 review Charlie Perkins
- Re: [manet] draft-ietf-manet-aodvv2-15 review Victoria Mercieca
- Re: [manet] draft-ietf-manet-aodvv2-15 review Jiazi YI
- Re: [manet] draft-ietf-manet-aodvv2-15 review Jiazi YI
- Re: [manet] draft-ietf-manet-aodvv2-15 review Jiazi YI