Hello Charlie:
You have to admit that the word "legacy" in previous emails was open to ambiguity. Yes :) So let's define "old-legacy" to mean RFC 6775, and "new-legacy" to mean rfc6775-update-only. With that terminology, I will re-write my earlier comment. I have some follow-up comments interspersed below. On 5/21/2018 10:18 AM, Pascal Thubert (pthubert) wrote: Hello Charlie : This is not simple and I hope the list comes in and helps. The reason for proposing the text below is to enable future codes to be backward compatible with this spec. My suggestion also allows future codes to be backward compatible, right? I do not understand that; how would a node that implements this spec process a code of 10? In other words, how should we design variable-length ROVR fields so that a new-legacy node can skip past unrecognized Codes for DAR and DAC but still process their options? Yes; there is no room for that field and even the ROVR type is somewhat lacking In addition, I think we want to obey the constraint that old-legacy nodes can still interact with CodePfx=0 DAR and DAC with ROVRs of 64 bits. Well, old legacy Ignore the ICMP code so that much is not a requirement. But then they support only ROVR size of 64 bits. The situation of a legacy can be discovered with our spec and there is always the fallback situation of avoiding new incompatible stuff. If you agree with this reformulation, then I think the answer is clearly to define some length bits somewhere. Yes, and even better would have been more room for a ROVR type too. As currently proposed, we only need two length bits. But maybe future messages will need longer verifications. With three length bits, we get twice as many Codes and still very sufficient length signifiers. Maybe we could have 64, 128, 192, 256, 512, 1024, 2048, rsvd. This is why I carved 4 bits, yes. I also think it is better to be explicit, and call the new field "CodeSz" or something like that so that it is very clearly not a "subtype" field. Maybe a future non compatible format will use it differently in a situation with no new legacy device. I’d prefer indicating both; it is a sub code and it indicates the ROVR size. If it were not needed to process options for these ICMP types, then I think the ICMP length in the next header field would suffice. Agreed but an option is already coming up for using DAR DAC on the backbone. Anyway an inextensible message would be a great waste of ICMP space. Another possibility would be to reserve some initial bits of the ROVR field itself to indicate the length of the ROVR. Old-legacy nodes would still discard new DAR and DAC messages with a ROVR that was too long. New-legacy nodes would know to check the first three or four bits of the field for the length of the ROVR. But I did not think this all the way through yet. But old legacy will set those bits randomly. And then we have alignment problems. I proposed the subcode as a last resort... Take care, Pascal Regards, Charlie P.
_______________________________________________ 6lo mailing list [email protected] https://www.ietf.org/mailman/listinfo/6lo
