Vicky, +1 Regards, Stan Sent from my iPhone > On Mar 25, 2015, at 6:21 AM, Victoria Mercieca <vmercieca0@xxxxxxxxx> wrote: > > Hi all, > > A couple of comments based on Justin Dean's points: > > On bidirectional connectivity: > > I think we aren't helping ourselves by starting section 6.2 with stuff about > adjacencies and NHDP. I think we should cut this bit: > "Neighboring routers MAY form an adjacency based on AODVv2 messages, > other protocols (e.g. NDP [RFC4861] or NHDP [RFC6130]), or manual > configuration. Loss of a routing adjacency may also be indicated > similarly." > and maybe insert it later in the section, though I dont think it's necessary, > except for the references. Also remove > "In the absence of other information > about bidirectional connectivity" > because I think its leading people to think that if they have NHDP they dont > need to use our default AckReq approach, which leads to their comments "what > if I do it this way and someone else does it another way". > > We need it to be clear that they use AckReq, unless something else has given > them a signal. The way the section is written, its "unless you get > information from somewhere else, you use AckReq" which is a subtle > difference, but I think it's causing the confusion. > > Suggested text for first paragraph in Section 6.2: > "AODVv2 routers SHOULD monitor connectivity to neighboring AODVv2 routers > along active routes. If bidirectional connectivity does not exist, routers > should not share routing information using AODVv2. The default approach for > AODVv2 routers to monitor connectivity is to request acknowledgement of Route > Reply messages. To achieve this, the RREP message includes an AckReq data > element, to indicate that a RREP_Ack message is required in response. The > receiver of the RREP will reply with a RREP_Ack message. Receipt of the > acknowledgement proves that bidirectional connectivity exists. See Sections > 9.2 and 9.4 for further details. > > Additionally, when routers perform other operations such as those from the > list below, these can be used as extra indications of connectivity." > > Also, the bit that says > "For example, receipt of a Neighborhood Discovery message would signal > a connection to the sender. " > Should it be clarified like this: > "For example, receipt of a Neighborhood Discovery HELLO message with the > receiving router listed as a neighbour is a signal of bidirectional > connectivity." Connectivity isn't enough, we want bidirectional, and a > message on its own is not a signal of bidirectional connectivity. > > > On the message reception and "only from neighbors": > > Check 9.1.2 for RREQ. Is it correct to say "only from neighbours" there? Step > 2 checks the blacklist. I think we can delete Step 1. > 9.3.2 for RERR - we always process RERR even if it comes from a blacklisted > router. Is that correct? > 9.4.2 for RREP_Ack - should we always remove from the blacklist, even if we > didnt request the RREP_Ack? If a router was to send an unsolicited RREP_Ack > they could force removal of themselves from our blacklist. Should step 1 and > 2 be the other way around? > > Regards, > Vicky. > >> On Wed, Mar 25, 2015 at 2:46 AM, Charlie Perkins >> <charles.perkins@xxxxxxxxxxxxx> wrote: >> Hello Justin, >> >> Thanks for your comments. Here is some follow-up. >> >>> On 3/24/2015 12:32 PM, Justin Dean wrote: >>> Overview: There are uses of unicast and multicast which (I don't think) are >>> correct. The flow of information and messages might be similar to unicast >>> and multicast but I believe that there is processing happening at each hop >>> based on the flow of information. Disseminated throughout and forwarded >>> would be more appropriate IMO. >> >> The use of the word "multicast" can properly be replaced by "disseminated". >> However, the RREP is indeed unicast towards OrigAddr. The description makes >> it clear that the message is regenerated at each hop. >> >>> >>> Route maintenance consists of two operations.....(It's not clear what they >>> are) >> >> Route maintenance consists of two operations: continuously >> extending the lifetime of active routes, and invalidating >> routes that cannot be used to forward packets. >>> >>> It's also a bit verbose for an overview, for example >>> >>> When a data packet is received to be forwarded >>> but there is no valid route for the destination, then the AODVv2 >>> router of the source of the packet is notified via a Route Error >>> (RERR) message. Each upstream router that receives the RERR marks >>> the route as Invalid. Before such an upstream AODVv2 router could >>> forward a packet to the same destination, it would have to perform >>> route discovery again for that destination. RERR messages are also >>> When a data packet is received to be forwarded, and no valid route exists, >>> a error message is generated to inform upstream routers of the error. Route >>> discovery would re-establish the route. >> >> I basically used your wording but included the idea that the RERR message >> is used for this. >> >> >>> (I'm jumping around a bit now) Bi-directional requirement and text in >>> document isn't IMO sufficient (there are too many "optional" ways without >>> guidance on how to configure them and what happens if things are miss >>> configured. >> >> Mainly what goes wrong from the AODVv2 point of view is that RREQs >> can get forwarded in circumstances that would never allow a RREP to be >> returned to the router originating the RREQ. The AckReq / RREP_Ack >> mechanism just has to protect against that. >> >>> What happens if I'm using AODVv2 with NHDP for neighbor >>> discovery but another version is using the AckReq method. >> >> AckReq and RREP_Ack are mandated for implementation. We wanted to >> allow for NHDP to be used if available. What's the best way to say that >> without requiring NHDP for every implementation of AODVv2? >> >>> Do things >>> break? I think they do based on 9.2.2 RREP Reception step "1. A router >>> MUST handle RREPs only from neighbors. RREPs from nodes that are not >>> neighbors MUST be disregarded." You won't be my neighbor via NHDP so >>> I disregard it...Actually I don't see how AckReq method would work at >>> all with this first step. >> >> Step 1 should simply be deleted. If a node is receiving >> a RREP, the sender thinks it's a neighbor. The AckReq in the RREP would be >> for the purpose of verifying bidirectional connectivity to the sender. >> >>> The change might be as easy as formally defining >>> neighbor (i.e. an AODVv2 router without an address not on the blacklist >>> from which a message was received), but I could be wrong...I'm wrong >>> 9.4.2 RREP_Ack Reception has the same first step so if the address is in >>> the blacklist it would get dropped before removing itself from the blacklist >>> (if that definition was used). >> >> Similarly, step one in 9.4.2 can simply be deleted. There is no >> specification >> for regeneration of RREP_Ack, so compliant devices would not do such a >> bad thing. Plus, RREP_Ack is generated with msg_hop_limit := 1. >> >> These verification steps would make more sense when RFC 5082 can be >> employed. >> >> >>> Another functionality issue with RREP_Ack method... Step 3. ..."the >>> required RREP_Ack has been received (how is it known it's required nothing >>> was recorded in the generation section on which Acks were requested in >>> section RREP_Ack Generation) and cancels the associated timeout." (which >>> timeout? assuming RREP_Ack_SENT_TIMEOUT but it should be specified) Also >>> the neighbor gets added to the blacklist but won't the previous hops still >>> have invalid upstream routes to the source? >> >> Section 9.2.1 has the following specification: >> The AckReq data element indicates that an acknowledgement to the RREP >> has been requested. If no corresponding RREP_Ack is received within >> the RREP_Ack_SENT_TIMEOUT, the next hop is added to the blacklist as >> discussed in Section 6.2. >> >> I will add some text to Step 3 cross-referencing this requirement: >> " , in response to an AckReq data element that the >> router included in a preceding RREP message as specified in Section >> 9.2.1" >> >> This should clarify the need. >> >> >>> 4. Applicability Statement >>> "each AODVv2 router can also route on behalf of other non-routing nodes >>> that are directly reachable via its network interfaces." >>> and >>> "When AODVv2 is >>> the only protocol interacting with the forwarding table, AODVv2 MAY >>> be configured to perform route discovery for all unknown unicast >>> destinations." >>> Means that all "gateway routers" will reply for EACH address request. Is >>> my guess correct? >> >> Yes, that is correct. I added text for your observation. >> >>> Also how does the "Router Client and Client Networks" know where the AODVv2 >>> router addresses are reachable via the AODV router. I assume this has to be >>> manually configured with a set of "known" aodv addresses or some sort of >>> route injection. >> >> In the previous paragraph, it is stated: >> Each AODVv2 router, >> if serving router clients other than itself, SHOULD be configured with >> information about the IP addresses of its clients, using any suitable >> method. >> >> Doesn't this say what you requested? >> >> >> Regards, >> Charlie P. >> >> _______________________________________________ >> manet mailing list >> manet@xxxxxxxx >> https://www.ietf.org/mailman/listinfo/manet >