Hello folks, Message TLVs and Address Block TLVs are taken from two different numbering spaces. It might be pleasing to have those two number spaces lining up for TargSeqNum, but since the alignment would not happen for other TLVs, it won't be much of a help. Regards, Charlie P. On 3/2/2015 3:02 PM, Victoria Mercieca wrote:
Hi Lotte,Thats a very good question. In our section 14 they are in sub-sections where we separate message TLVs and address block TLVs. I interpreted this to mean that TargSeqNum was only an Address Block TLV. I might well be wrong!I noted the TargSeqNumber List to Charlie already - I think he's updated it for the next version :-)Regards, VickyOn Monday, March 2, 2015, Lotte Steenbrink <lotte.steenbrink@xxxxxxxxxxxx <mailto:lotte.steenbrink@xxxxxxxxxxxx>> wrote:Hi Vicky, Am 01.03.2015 um 19:35 schrieb Victoria Mercieca <vmercieca0@xxxxxxxxx <javascript:_e(%7B%7D,'cvml','vmercieca0@xxxxxxxxx');>>:Hi Charlie, Good point, because there's no address block, so there's no address block TLVs, so we can't use the already defined TargSeqNum TLV.Stupid question: why not? If I understand it correctly, TargSeqNum at the end of the day only represents a TLV of type 13. Whether the context of this TLV is that it's a messae or an Address TLV should be made obvious by the 5444 parser/builder... Or am I missing something here? (quick note: while looking this up in 07j, I found one instance of “TargSeqNumber List” instead of “Targseqnum List”, is this intentional? I'm not sure where my email client buried the more recent versions that you cent around so I'm not sure if this is fixed and I'm unnecessarily going on your nerves either.. :/ )I have two points on SeqNum in RREP_Ack: 1. The SeqNum in the RREP_Ack may not be enough. E.g. If we have a RREP for TargAddr A with SeqNum 1, and another RREP for TargAddr B with SeqNum 1, and both require an ack, when the RREP_Ack comes back with SeqNum 1, how do we know which RREP it corresponds to? To really match a RREP_Ack to an RREP, do we need to include the TargAddr? In which case we can use address block and address block TLVs already defined. Also another question here: if we send one message with AckReq, should we avoid sending a second to the same neighbour, at least while the first timeout is active? 2. Alternatively, we could say that the SeqNum isn't necessary at all. E.g. if any ack or any AODVv2 message, or any other message in fact, is received in the time window expected, from the node it's expected from, is that good enough? Another question: Say two RREPs with AckReq were sent to the same router, and only one RREP_Ack came back, should the router be blacklisted? What do you think? Regards, Vicky. On Sunday, March 1, 2015, Charlie Perkins <charles.perkins@xxxxxxxxxxxxx <javascript:_e(%7B%7D,'cvml','charles.perkins@xxxxxxxxxxxxx');>> wrote: Hello folks, I reckon that, if the RFC 5444 representation of RREP_Ack is to include TargSeqNum, then we have to define a new RFC 5444 Message TLC for TargSeqNum. Similarly, if we were to define any sort of transaction ID for RREP_Ack (or indeed any future message). Bleahhh. Does anyone want to argue for getting rid of TargSeqNum in RREP_Ack? Regards, Charlie P. On 3/1/2015 9:00 AM, Charlie Perkins wrote:Hello Vicky, Follow up below... On 2/28/2015 8:04 AM, Victoria Mercieca wrote:Thanks for all the hard work you put in last night!Thanks -- and likewise for these comments!6.4 - I noticed a space has gone missing in "DSDV[Perkins94]" - was that intentional? 6.5 - we should change "OrigNode Sequence Number" to OrigSeqNum, and "TargNode Sequence Number" to TargSeqNum... because later when we talk about checking for redundancy (8.6) we look at seqnum for orig*addr*/targ*addr* rather than seqnum for the node. 9.1.1 - 2nd paragraph - TargSeqNum, ValidityTime, MetricType and PrefixLengthList should be optional, using same structure as in 9.2.1 9.1.1 - step 4 - "Address List" to "AddressList" 9.1.1 - step 6 - should probably say: "For the sequence numbers: * Increment the SeqNum as specified in Section 6.4. * Set OrigSeqNum to the new value of SeqNum. * If an Invalid route exists matching TargAddr using longest prefix matching, include TargSeqNum and set it to the sequence number on the Invalid route. Otherwise omit TargSeqNum." 9.1.3 - step 4 - change VALIDITY_TIME to ValidityTime 9.2 - in the diagram, the PrefixLengthList line is missing the "}" 9.2.1 - change TargSeqNumber List to TargSeqNum 9.2.1 - step 5 - "Address List" to "AddressList" 9.2.1 - step 7 should say: "For the TargSeqNum: * RREP_Gen increments its SeqNum as specified in Section 6.4. * Set TargSeqNum to the new value of SeqNum." 9.2.3 - step 6 - change VALIDITY_TIME to ValidityTime 9.3.1 - paragraph 4 - change "Address List" to "AddressList" and "Metric List" to "MetricList" 9.3.1 - step 6 - "SeqNum List" to "SeqNumList" (twice)All fixed.Section 10 - where it says "see section 14.2" and "see section 14.3" - is it more correct to remove AODVv2 in these sentences? the message TLVs and address block TLVs are owned by rfc5444.Here I am not sure. The TLVs are owned by RFC 5444 but specified by AODVv2.Section 10 - the paragraph before the table needs the first sentence rewording, maybe to "The following table shows how AODVv2 data elements are represented in RFC 5444 messages."Done.Questions: I wondered if the references to TLVs should be removed from everywhere except section 10 and appendices. If so, 6.2 - "AckReq Message TLV" should be "AckReq data element" (occurs twice in 6.2) 7 - "MetricType TLV" to "MetricType data element" 9.1.1 - step 3 - "MetricType TLV" to "MetricType data element" 9.1.1 - step 8 - "ValidityTime Address Block TLV" to "ValidityTime data element" 9.1.2 - step 4 - "MetricType TLV" to "MetricType data element" 9.2.1 - step 3 - "AckReq TLV" to "AckReq data element" 9.2.1 - step 4 - "MetricType TLV" to "MetricType data element" 9.2.2 - step 3 - "MetricType TLV" to "MetricType data element" 9.2.2 - step 6 - "AckReq TLV" to "AckReq data element" 9.2.3 - step 5 - "AckReq TLV" to "AckReq data element" 9.3.1 - step 2 - "PktSource TLV" to "PktSource data element" 9.3.1 - step 3 - "MetricType TLV" to "MetricType data element" and remove "in the TLV" from the end of the sentence. 9.3.2 - step 2 - "MetricType TLV" to "MetricType data element" 9.3.3 - step 2 - "PktSource TLV" to "PktSource data element" 9.3.3 - step 3 - "MetricType TLV" to "MetricType data element" 9.3.3 - paragraph after step 6 - "PktSource TLV" to "PktSource data element" 9.4.1 - "AckReq message TLV" to "AckReq data element" A.5.1 - "AckReq TLV" to "AckReq data element"All done.We could change from ValidityTimeList to ValidityTime throughout? I think the current way is OK, but it seems like ValidityTime is more similar to OrigSeqNum than to MetricList and should be handled without a list. (It's my fault its in there as ValidityTimeList so I'll find all the bits to adjust if you think this is worth doing)I'm not sure about this. Notably, in the specification right now, only one address ever has an associated ValidityTime in any AODVv2 message. I'll send another email shortly with more discussion.Do we need UnreachableAddressList? Can we just use AddressList and put one or more UnreachableAddresses in it? Again, not a pressing issueI really like this idea. But I encountered a logistical problem in Table 3. I created "RteMsg AddressList" and "RERR AddressList" for the purpose. Now, the section of that table looks as follows: | RteMsg AddressList | RFC 5444 Address Block | | - OrigAddr | | | - TargAddr | | | - PrefixLengthList | | | RERR AddressList | RFC 5444 Address Block | | - UnreachableAddress | | | - PrefixLengthList | |Do we need to add OrigSeqNum, OrigAddrMetric, TargAddrMetric and TargSeqNum in the terminology section? They are in section 3 but someone might expect them to be in with all the other terminology too. AckReq, PktSource too?As far as Terminology goes, the more definitions the merrier, as long as they are used in the document. Another possibility would be to enlarge some of the definitions in the Terminology section to indicate which of the terms are "official" AODVv2 data elements.I think you have enough text in there already to understand the RFC5444 multi-value address block TLVs - I just hadn't read it properly. However, it is in section 10, so the reader could get confused by section 9 before getting to it. Since Section 3 and Section 10 have so many similarities, is it worth relocating section 10 to immediately after section 3?Section 10 seems to be a "late-document" kind of section. Maybe it should be moved right after section 13?Suggested text in relation to recent emails: In section 2 SeqNumList The list of Sequence Numbers associated with addresses in an AddressList. Used in RERR messages. In Section 3 SeqNumList A list of SeqNums, included in RERR messages.Done.Apologies for the length of the email again, I hope this is all useful and I'm not just being a GIANT pain in the ass!This is super useful, and since I have in the past met people who really are a giant pain in the ass I can state with confidence that you bear no resemblance. Regards, Charlie P.