Hi, Eliot. Thank you for the quick reply! We have updated the "Copyright (c) 2016 ..." entries per your note below.
Quick side question: If this document is published in January or later (which seems likely), should "2016-2025" be changed to "2016-2026" next month, or will it be fine to leave the range as is? The latest files are posted here. Please refresh your browser: https://www.rfc-editor.org/authors/rfc9923.txt https://www.rfc-editor.org/authors/rfc9923.pdf https://www.rfc-editor.org/authors/rfc9923.html https://www.rfc-editor.org/authors/rfc9923.xml https://www.rfc-editor.org/authors/rfc9923-diff.html https://www.rfc-editor.org/authors/rfc9923-rfcdiff.html (side by side) https://www.rfc-editor.org/authors/rfc9923-auth48diff.html https://www.rfc-editor.org/authors/rfc9923-auth48rfcdiff.html (side by side) https://www.rfc-editor.org/authors/rfc9923-lastdiff.html https://www.rfc-editor.org/authors/rfc9923-lastrfcdiff.html (side by side) https://www.rfc-editor.org/authors/rfc9923-xmldiff1.html https://www.rfc-editor.org/authors/rfc9923-xmldiff2.html We have also noted your approval on the AUTH48 status page: https://www.rfc-editor.org/auth48/rfc9923 Thanks again! Lynne Bartholomew RFC Production Center > On Dec 23, 2025, at 1:12 PM, Independent Submissions Editor (Eliot Lear) > <[email protected]> wrote: > > Hi Lynne > On 23.12.2025 15:47, Lynne Bartholomew wrote: >> Hi, Donald and *Eliot. >> >> Donald, thank you for your replies to our questions! We have updated this >> document per your notes below. >> >> *Eliot, we have updated our "Questions for the ISE" item. Currently: >> >> <!-- [rfced] [ISE] Questions for the ISE: >> >> a) Because the original Section 1.1 contains the key >> word "NOT RECOMMENDED", we (1) prepended the existing Section 1.1 >> with a new Section 1.1 with the title "Conventions Used in This >> Document", (2) added the typical boilerplate text, and (3) added >> entries for RFCs 2119 and 8174 to the Normative References >> section. Please let us know any concerns. > > No concerns. > >> >> b) May we list the years in the copyright notices within all of the >> code components (17 instances) as "2016-2025" per guidance from our >> legal counsel? > Yes > >> >> One example: >> >> Original: >> /* Copyright (c) 2016, 2024, 2025 IETF Trust and the persons >> * identified as authors of the code. All rights reserved. >> >> Perhaps: >> /* Copyright (c) 2016-2025 IETF Trust and the persons >> * identified as authors of the code. All rights reserved. >> >> c) Per the author, we have removed the textual citation and >> reference listing for [Vortetty]. We want to confirm with you that >> it is OK to remove mention of pseudorandom number generation. > That's fine. > > Eliot > >> >> Original: >> * to help seeding a pseudo random number generator [Vortetty], >> ... >> [Vortetty] "Raytracing for the gba", >> <https://github.com/Vortetty/gba-rtx>. --> >> >> ===================================================== >> >> Donald, we have some follow-up items for you: >> >> Regarding our question 4) and your question regarding superscripts in .txt >> output: >> >> >>>> 4) <!-- [rfced] Sections 1.1 and subsequent: Do the instances of "2**" >>>> in running text (seven, by our count) indicate superscripted numbers? >>>> If yes, would you like us to apply the <sup> (superscript) element, >>>> even though the artwork and sourcecode will still use the "**"s? >>>> >>>> Original: >>>> ... >>>> collisions among the hashes of more than 2**N distinct inputs. And >>>> if the hash function can produce hashes covering all 2**N possible >>>> ... >>>> also a power of 2, in particular n = 2**s. For each such n-bit FNV >>>> ... >>>> bits in it: one relatively high order one bit, the 2**9 bit, and 4 or >>>> ... >>>> hash size S such that 2**S > max. Then, calculate the following: >>>> ... >>>> from a bias against large values with the bias being larger if 2**S >>>> ... >>>> arithmetic mod 2**HashSize. --> >>>> >>> They do indicate exponents, i.e., superscripts, but what will your >>> suggested change do to occurrences in text in the .txt version? >>> Superscripts are probably great in the PDF and HTML versions but what >>> does it look like in .txt? >>> >>> >> The .txt file would not show any changes; these entries would still be >> "2**". We are fine with leaving as is but wanted to see if you'd like >> superscripts in the PDF and HTML versions. Apologies for not clarifying that >> earlier. >> >> = = = = = >> >> Regarding our question 8) and your reply: >> >> >>>> 8) <!-- [rfced] Section 1.2: We had trouble following these sentences. >>>> If the suggested text is not correct, please clarify. >>>> >>>> Please note that [BFDseq] underwent significant changes since >>>> March 2022 and no longer mentions FNV, so we took that into account >>>> in the suggested text. If the suggested text is incorrect, please >>>> let us know how this text should be updated. >>>> >>>> Original: >>>> A study has recommended FNV in connection with the IPv6 Flow Label >>>> field [IPv6flow]. Additionally, there was a proposal to use FNV for >>>> BFD sequence number generation [BFDseq] and a recent article and >>>> study on non-cryptographic hash functions [NCHF]. >>>> >>>> Suggested: >>>> [IPv6flow] researched and recommended using 32-bit FNV1a in >>>> connection with the IPv6 flow label value. Additionally, >>>> [ISAAC-Auth] proposes the use of Indirection, Shift, Accumulate, >>>> Add, and Count (ISAAC) as a means of BFD sequence number generation, >>>> and [NCHF] discusses criteria for evaluating non-cryptographic hash >>>> functions. --> >>>> >>> Later non-FNV recommendations are not important. This later change is >>> why our proposed text says "... there was a proposal ..." in the past >>> tense. I don't see any problem with your editorial changes re >>> [IPv6flow] and [NCHF] but I don't see what's wrong with the [BFDseq] >>> reference to a specific old, outdated, draft which used FNV. This >>> document is about FNV, not about ISAAC, and I see no reason for it to >>> mention/reference ISAAC. >>> >> Please review our updates to this text, and let us know if anything is >> incorrect. >> >> = = = = = >> >> Regarding our question 10) and your reply: >> >> >>>> 10) <!-- [rfced] <sourcecode> entries: Please review the sourcecode-type >>>> settings in this document, and please refer to >>>> <https://www.rfc-editor.org/rpc/wiki/doku.php?id=sourcecode-types> >>>> for the list of approved types. Please note that we changed >>>> 'type="C"' to 'type="c"' per the sourcecode-types page. >>>> Also, please note that "makefile" is not included on the >>>> sourcecode-types page. Does the page contain an acceptable >>>> substitute that you could use? If not, it's fine to leave the >>>> "type" attribute unset. >>>> >>> "C" -> "c" is OK. >>> >>> >>>> Another option: If the sourcecode-types page does not contain an >>>> applicable type, please let us know if you would like us to request >>>> that additional sourcecode types (e.g., "makefile") be approved and >>>> listed on the sourcecode-types page. (As noted above, it's also fine >>>> to leave the "type" attribute unset.) >>>> >>> Yes. "makefile" is a common and quite venerable "sourcecode" type >>> originating with early UNIXes and very widely in use every day today. >>> It has its own format and should be included in the allowed Sourcecode >>> Types. Please request its addition there. >>> >> >> Thank you for this information. We included it in our email to the RFC >> Production Advisory Team (RPAT); we asked them to consider adding "makefile" >> to the list of sourcecode types. >> >> ** Please note: One of the RPAT personnel sent the following: >> >> >>> It is indeed a widely used file format, but keep in mind that there are at >>> least three popular versions of make, Gnu, BSD, and Microsoft, and the >>> makefile formats are similar but not identical. >>> >>> "I'd be OK with a note to authors asking them to put a comment in the >>> makefile saying which flavor of make it's intended for, unless they're sure >>> it's so simple that it'll work in all of them. >>> >> >> Would you like to make such an update in the leading comments for the >> makefile (possibly just after the "# Makefile for fnv" line)? If yes, please >> specify how best to update. >> >> = = = = = >> >> Regarding our question 12) and your reply: >> >> >>>> 12) <!-- [rfced] Section 2.2: Is the offset_basis sometimes the hash >>>> output, or always? If neither suggestion below is correct, please >>>> clarify. >>>> >>>> Original: >>>> Any entity that can observe the FNV hash >>>> output, and can cause the null string (the string of length zero) to >>>> be hashed, will thereby be able to directly observe the offset_basis >>>> which will be the hash output. >>>> >>>> Suggestion #1 (sometimes): >>>> Any entity that can observe the FNV hash >>>> output, and can cause the null string (the string of length zero) to >>>> be hashed, will thereby be able to directly observe the offset_basis >>>> that will be the hash output. >>>> >>>> Suggestion #2 (always): >>>> Any entity that can observe the FNV hash >>>> output, and can cause the null string (the string of length zero) to >>>> be hashed, will thereby be able to directly observe the >>>> offset_basis, which will be the hash output. --> >>>> >>>> >>> The FNV hash function always produces the same output for the same >>> input. The null string as input always outputs the offset_basis but >>> other inputs almost never produce that output. Your suggestion #1 looks >>> good except I do not think there should be a comma after "output". The >>> structure of the sentence is "Any entity that can observe A and can >>> cause B will thereby be able to C." Does this structure really need >>> any commas? I don't actually have a problem with the comma after >>> "hashed" but I don't like the comma after "output". >>> >> >> It should be either two commas or none; we went with none. >> >> = = = = = >> >> Regarding our question 20) and your reply: >> >> >>>> 20) <!-- [rfced] Section 8.1.1: The following four entries don't seem to >>>> have any descriptive information below them. We also see that the >>>> first three entries are contained in an <artwork> element but the >>>> fourth entry is part of the description list. >>>> >>>> >>> That's not how it was in the XML we submitted. As submitted this is a >>> <dl> list with the first three lines having a <dd/> with null content and >>> the fourth having the descriptive text as the <dd> content. Perhaps >>> due to this change, the current .txt for the "paragraphs" in this >>> section has the descriptive text peculiarly flowed up. Please look at >>> this in the text produced from the original XML submitted. >>> >>>> Will the use/purpose of these four entries be clear to readers, or >>>> should all of them have definitions and be part of the same >>>> definition list? >>>> >>>> >>> The descriptive text applies to all four lines. See comment above. >>> >>>> Original: >>>> FNVxxxstring, FNVxxxblock, FNVxxxfile: >>>> >>>> FNVxxxstringBase, FNVxxxblockBase, FNVxxxfileBase: >>>> >>>> FNVxxxINTstring, FNVxxxINTblock, FNVxxxINTfile: >>>> ... >>>> FNVxxxinit, FNVxxxinitBasis: --> >>>> >> We reverted the formatting (i.e., returned to the <dl> format rather than >> <artwork>). >> >> = = = = = >> >> Regarding our question 22) and your reply: >> >> >>>> 22) <!-- [rfced] Section 8.1.2: We had trouble following these sentences. >>>> We updated them as follows. If these updates are incorrect, please >>>> clarify the text. >>>> >>>> Original: >>>> For support of a single FNV size, say "xxx", in an application, the >>>> application itself needs to include the FNVxxx.h (which will, in >>>> turn, include the FNVconfig.h and FNVErrorCodes.h) files. To build >>>> the particular FNVxxx code itself, compile the FNVxxx.c file with >>>> FNVconfig.h, fnv-private.h, FNVErrorCodes.h, and FNVxxx.h available. >>>> >>>> Currently: >>>> For support of a single FNV size, say "xxx" (e.g., FNV64), in an >>>> application, the application itself needs to include the appropriate >>>> FNVxxx.h file (which will, in turn, include the FNVconfig.h and >>>> FNVErrorCodes.h files). To build the particular FNVxxx code itself, >>>> compile the FNVxxx.c file with FNVconfig.h, fnv-private.h, >>>> FNVErrorCodes.h, and FNVxxx.h (available in Section 8.2). --> >>>> >>> "available" in this case means available to the compiler and has >>> nothing to do with appearance in a section of this document. I suppose >>> you could do something like "available." -> "available to the compiler >>> while compiling the FNVxxx.c file." >>> >> We weren't sure how best to update here. Please review our update to the "To >> build the particular FNVxxx code ..." sentence, and let us know if anything >> is incorrect. >> >> = = = = = >> >> Regarding your note in reply to our question 25): >> >> >>> NOTE: not exactly relevant to your question 25 but there is a >>> difference between "hash a ..." and "hash in a ...". In the first >>> instance, the function is calculating a hash solely dependent on the one >>> parameter. In there second, there is also a context parameter that was >>> previously initialized and may have had other data items hashed into >>> it and the function is hashing additional data into that context. >>> >> >> We appreciate this note. We had noticed that "hash in a" is used in the >> context of parameters that end with "in" (FNV32blockin, FNV32stringin, >> FNV32filein, etc.). Thank you for clarifying! >> >> = = = = = >> >> Thanks also for your replies regarding our question 29); much appreciated! >> >> = = = = = >> >> >>> Your suggested changes are fine (and will make the document 2 lines >>> shorter :-) ) >>> >> >> Thank you for the humor! >> >> = = = = = >> >> Regarding our question 39) and your reply: >> >> >>>> 39) <!-- [rfced] References: We see "Last modified on: February 21, 2021 >>>> by Danilo G. Baio" on the bottom of the provided page for [FreeBSD]. >>>> Should this listing be updated to reflect the "Last modified" date >>>> and possibly include "Baio, D. G."? >>>> >>>> Original: >>>> [FreeBSD] The Free BSD Project, "FreeBSD 4.3 Release Notes", 2025, >>>> <http://www.freebsd.org/releases/4.3R/notes.html>. --> >>>> >>> Yes, I think such an update and inclusion would be good. >>> >> >> Please review our update to this listing, and let us know if you prefer a >> different format/style. >> >> = = = = = >> >> Regarding our question 41) and your reply: >> >> >>>> 41) <!-- [rfced] References: Regarding [IEEE8021Qbp]: A Google search >>>> for "IEEE Std 802.1Qbp" yields several "hits", but >>>> <https://standards.ieee.org/ieee/802.1Qbp/5217/> and >>>> <https://ieeexplore.ieee.org/document/6783684> (1) show titles that >>>> include "Amendment 22:" and (2) list this standard as "Superseded". >>>> Please let us know how, or if, this listing should be updated. >>>> >>>> Original: >>>> [IEEE8021Qbp] >>>> "Media Access Control (MAC) Bridges and Virtual Bridged >>>> Local Area Networks - Equal Cost Multiple Path (ECMP)", >>>> IEEE Std 802.1Qbp-2014, 7 April 2014. --> >>>> >>> IEEE Std 802.1Qbp-2014 was an amendment to 802.1Q and has been merged >>> into IEEE Std 802.1Q-2022 where the reference to FNV occures in Clause >>> 44.1.2 entitled "ECMP ECT Algorithm". (IEEE refers to parts of their >>> Standards as "Clauses" rather than "Sections" but I don't think anyone >>> would be confused if the reference in this RFC was to "Section >>> 44.1.2".) In any case, the reference tag should now be [IEEE8021Q] and >>> an appropriate URL for IEEE Std 802.1Q-2022 should be used. >>> >> Would you like us to specifically cite Clause 44.1.2 in Section 1.3? Please >> note that the other two citations are general and do not list section >> numbers. Currently: >> >> ... It is also referenced in the following >> standards documents: [RFC7357], [RFC7873], and [IEEE8021Q-2022]. >> >> = = = = = >> >> Regarding this part of our question 47): Is it OK that the code in this >> document doesn't quite match the referenced code from Stefan Santesson? >> >> ... >> >>>> Also, we see that the code in this document is somewhat different >>>> than the code provided in draft-ietf-tls-cached-info-08. >>>> For example: >>>> >>>> In this document: >>>> static public BigInteger getFNV1aToByte(byte[] inp) { >>>> >>>> In draft-ietf-tls-cached-info-08: >>>> static public BigInteger getFNV1a64Digest (String inpString) { >>>> >>>> Should this be somehow clarified for readers? If yes, please provide >>>> the text. >>>> >> >> = = = = = >> >> Regarding this update: >> >> >>>> Extra space after "+" sign (5 instances): >>>> ctx->Hash[i] = ( temp<<8 ) + *basis++; >>>> ctx->Hash[i] = ( temp<<8 ) + (*basis++); >>>> as compared to >>>> ctx->Hash[i] = temp + *basis++; >>>> >>> One space so as, in these instances, to make the punctuation to the >>> left and right of the plus sign symetric, is better. >>> >> Apologies for not spotting this earlier: We now have 4 instances of >> "ctx->Hash[i] = ( temp<<8 ) + *basis++;" and 1 instance of "ctx->Hash[i] = ( >> temp<<8 ) + (*basis++);". Are the parentheses around "*basis++" needed in >> this 1 instance? >> >> = = = = = >> >> The latest files are posted here. Please refresh your browser: >> >> https://www.rfc-editor.org/authors/rfc9923.txt >> https://www.rfc-editor.org/authors/rfc9923.pdf >> https://www.rfc-editor.org/authors/rfc9923.html >> https://www.rfc-editor.org/authors/rfc9923.xml >> https://www.rfc-editor.org/authors/rfc9923-diff.html >> https://www.rfc-editor.org/authors/rfc9923-rfcdiff.html (side by side) >> https://www.rfc-editor.org/authors/rfc9923-auth48diff.html >> https://www.rfc-editor.org/authors/rfc9923-auth48rfcdiff.html (side by side) >> >> https://www.rfc-editor.org/authors/rfc9923-xmldiff1.html >> https://www.rfc-editor.org/authors/rfc9923-xmldiff2.html >> >> Thank you again for your help and patience with this document and our >> questions! >> >> Lynne Bartholomew >> RFC Production Center >> >> >> >>> On Dec 18, 2025, at 6:45 PM, Donald Eastlake <[email protected]> wrote: >>> >>> Hi, >>> >>> Thanks for your very thorough review. >>> >>> I think we did a pretty good job testing and reviewing the actual code >>> but I would like to personally apologize for our insufficient review >>> of the comments accompanying the code. >>> >>> See below. >>> >>> On Mon, Dec 15, 2025 at 4:03 PM <[email protected]> wrote: >>> >>>> Authors and *Eliot (ISE), >>>> >>>> While reviewing this document during AUTH48, please resolve (as necessary) >>>> the following questions, which are also in the source file. >>>> >>>> * Eliot, please review question #3 and let us know if you approve. >>>> >>>> 1) <!-- [rfced] Please insert any keywords (beyond those that appear in the >>>> title) for use on <https://www.rfc-editor.org/search>. --> >>>> >>> None occur to me. Perhaps other authors will come up with some. >>> >>> >>>> 2) <!-- [rfced] Abbreviations: >>>> >>>> a) Per Section 3.6 of RFC 7322 ("RFC Style Guide" >>>> (https://www.rfc-editor.org/info/rfc7322)), we expanded "MAC" where >>>> first used. Please let us know any concerns. >>>> >>>> Currently: >>>> Their good dispersion makes them particularly well >>>> suited for hashing nearly identical strings, including URLs, >>>> hostnames, filenames, text, and IP and Media Access Control (MAC) >>>> addresses. >>>> >>> Good. >>> >>> >>>> b) For ease of the reader, should the following abbreviations also be >>>> defined? If yes, please provide the correct definitions. >>>> >>>> MASS >>>> >>> Probably a good idea but I don't know what it stands for. >>> >>> >>>> IDE (We see "IDE" defined as "Integrated Development Environments" >>>> in [fasmlab].) >>>> >>>> BFD (perhaps "Bidirectional Forwarding Detection"?) --> >>>> >>> Yes, expanding IDE and BFD is good. >>> >>> >>>> 3) <!-- [rfced] [ISE] Questions for the ISE: >>>> >>>> a) Because the original Section 1.1 contains the key >>>> word "NOT RECOMMENDED", we (1) prepended the existing Section 1.1 >>>> with a new Section 1.1 with the title "Conventions Used in This >>>> Document", (2) added the typical boilerplate text, and (3) added >>>> entries for RFCs 2119 and 8174 to the Normative References >>>> section. Please let us know any concerns. >>>> >>>> b) May we list the years in the copyright notices within all of the >>>> code components (17 instances) as "2016-2025" per guidance from our >>>> legal counsel? >>>> >>>> One example >>>> >>>> Original: >>>> /* Copyright (c) 2016, 2024, 2025 IETF Trust and the persons >>>> * identified as authors of the code. All rights reserved. >>>> >>>> Perhaps: >>>> /* Copyright (c) 2016-2025 IETF Trust and the persons >>>> * identified as authors of the code. All rights reserved. >>>> --> >>>> >>> Up to the ISE Editor but I think your suggestions above are good. >>> >>> >>>> 4) <!-- [rfced] Sections 1.1 and subsequent: Do the instances of "2**" >>>> in running text (seven, by our count) indicate superscripted numbers? >>>> If yes, would you like us to apply the <sup> (superscript) element, >>>> even though the artwork and sourcecode will still use the "**"s? >>>> >>>> Original: >>>> ... >>>> collisions among the hashes of more than 2**N distinct inputs. And >>>> if the hash function can produce hashes covering all 2**N possible >>>> ... >>>> also a power of 2, in particular n = 2**s. For each such n-bit FNV >>>> ... >>>> bits in it: one relatively high order one bit, the 2**9 bit, and 4 or >>>> ... >>>> hash size S such that 2**S > max. Then, calculate the following: >>>> ... >>>> from a bias against large values with the bias being larger if 2**S >>>> ... >>>> arithmetic mod 2**HashSize. --> >>>> >>> They do indicate exponents, i.e., superscripts, but what will your >>> suggested change do to occurrences in text in the .txt version? >>> Superscripts are probably great in the PDF and HTML versions but what >>> does it look like in .txt? >>> >>> >>>> 5) <!-- [rfced] Section 1.1: We found this sentence difficult to >>>> follow. We updated it as noted below. If this is incorrect, please >>>> provide clarifying text. >>>> >>>> Original: >>>> FNV is >>>> NOT RECOMMENDED for any application that requires that it be >>>> computationally infeasible to succeed in one of the above attacks. >>>> >>>> Currently: >>>> FNV is >>>> NOT RECOMMENDED for any application that requires that it be >>>> computationally infeasible for one of the above types of attacks to >>>> succeed. --> >>>> >>> OK. >>> >>> >>>> 6) <!-- [rfced] Section 1.2: Will "libketama" be clear to readers? >>>> Would it be helpful to also cite <https://www.metabrew.com/article/ >>>> libketama-consistent-hashing-algo-memcached-clients> ("libketama: >>>> Consistent Hashing library for memcached clients") here and list it >>>> in the Informative References section? >>>> >>>> We ask because we don't see "libketama" mentioned on the [memcache] >>>> page. >>>> >>>> Original: >>>> * used in an implementation of libketama for use in items such as >>>> [memcache], --> >>>> >>> That change seems useful. >>> >>> >>>> 7) <!-- [rfced] Section 1.2 and Informative References: As the cited >>>> page does not mention "libstr" and shows "Standard Incident Reporter >>>> library" at the top of the page, we changed "libstr" to "libsir" >>>> accordingly. Please let us know any concerns. >>>> >>>> Also, for the reference entry, we could not identify "Lederman, R." at >>>> <https://github.com/aremmell/libsir>, and we were unsure if "RML aremmell" >>>> is the same person. Please let us know if any further updates are needed. >>>> >>>> Original: >>>> * the libstr logging library [libstr], >>>> ... >>>> [libstr] Lederman, R. and J. Johnson, "libstr logging library", >>>> <https://github.com/aremmell/libsir>. >>>> >>>> Currently: >>>> * the libsir logging library [libsir], >>>> ... >>>> [libsir] Lederman, R. and J. Johnson, "libsir logging library", >>>> commit 0ae0173, 3 December 2025, >>>> <https://github.com/aremmell/libsir>. --> >>>> >>> Your suggested change looks good to me. >>> >>> >>>> 8) <!-- [rfced] Section 1.2: We had trouble following these sentences. >>>> If the suggested text is not correct, please clarify. >>>> >>>> Please note that [BFDseq] underwent significant changes since >>>> March 2022 and no longer mentions FNV, so we took that into account >>>> in the suggested text. If the suggested text is incorrect, please >>>> let us know how this text should be updated. >>>> >>>> Original: >>>> A study has recommended FNV in connection with the IPv6 Flow Label >>>> field [IPv6flow]. Additionally, there was a proposal to use FNV for >>>> BFD sequence number generation [BFDseq] and a recent article and >>>> study on non-cryptographic hash functions [NCHF]. >>>> >>>> Suggested: >>>> [IPv6flow] researched and recommended using 32-bit FNV1a in >>>> connection with the IPv6 flow label value. Additionally, >>>> [ISAAC-Auth] proposes the use of Indirection, Shift, Accumulate, >>>> Add, and Count (ISAAC) as a means of BFD sequence number generation, >>>> and [NCHF] discusses criteria for evaluating non-cryptographic hash >>>> functions. --> >>>> >>> Later non-FNV recommendations are not important. This later change is >>> why our proposed text says "... there was a proposal ..." in the past >>> tense. I don't see any problem with your editorial changes re >>> [IPv6flow] and [NCHF] but I don't see what's wrong with the [BFDseq] >>> reference to a specific old, outdated, draft which used FNV. This >>> document is about FNV, not about ISAAC, and I see no reason for it to >>> mention/reference ISAAC. >>> >>> >>>> 9) <!-- [rfced] Section 1.2: Please confirm that >>>> <[email protected]> is still a valid, working email address. >>>> >>>> Original: >>>> If you use an FNV function in an application, you are kindly >>>> requested to send an EMail about it to <[email protected]> with >>>> "FNV hash function" forming part of the subject line. --> >>>> >>> I'll let other authors respond on that. >>> >>> >>>> 10) <!-- [rfced] <sourcecode> entries: Please review the sourcecode-type >>>> settings in this document, and please refer to >>>> <https://www.rfc-editor.org/rpc/wiki/doku.php?id=sourcecode-types> >>>> for the list of approved types. Please note that we changed >>>> 'type="C"' to 'type="c"' per the sourcecode-types page. >>>> Also, please note that "makefile" is not included on the >>>> sourcecode-types page. Does the page contain an acceptable >>>> substitute that you could use? If not, it's fine to leave the >>>> "type" attribute unset. >>>> >>> "C" -> "c" is OK. >>> >>> >>>> Another option: If the sourcecode-types page does not contain an >>>> applicable type, please let us know if you would like us to request >>>> that additional sourcecode types (e.g., "makefile") be approved and >>>> listed on the sourcecode-types page. (As noted above, it's also fine >>>> to leave the "type" attribute unset.) >>>> >>> Yes. "makefile" is a common and quite venerable "sourcecode" type >>> originating with early UNIXes and very widely in use every day today. >>> It has its own format and should be included in the allowed Sourcecode >>> Types. Please request its addition there. >>> >>> >>>> Also, please let us know whether any artwork elements should be >>>> marked as sourcecode; if yes, please provide the sourcecode type. --> >>>> >>> I have reviewed all the artwork elements and I don't think any of them >>> should be sourcecode elements. >>> >>> >>>> 11) <!-- [rfced] Section 2.1: Is "criteria" used in the singular here >>>> (as currently indicated by "is more complex"), or is it used to >>>> indicate more than one criterion (in which case "is more complex" >>>> should be "are more complex")? >>>> >>>> Original: >>>> The case where s > 10 is >>>> not considered because of the doubtful utility of such large FNV >>>> hashes and because the criteria for such large FNV_Primes is more >>>> complex, due to the sparsity of such large primes, and would >>>> needlessly clutter the criteria given above. --> >>>> >>> I think plural would be more appropriate. Could say "would be more >>> complex" instead of "is more complex". >>> >>> >>>> 12) <!-- [rfced] Section 2.2: Is the offset_basis sometimes the hash >>>> output, or always? If neither suggestion below is correct, please >>>> clarify. >>>> >>>> Original: >>>> Any entity that can observe the FNV hash >>>> output, and can cause the null string (the string of length zero) to >>>> be hashed, will thereby be able to directly observe the offset_basis >>>> which will be the hash output. >>>> >>>> Suggestion #1 (sometimes): >>>> Any entity that can observe the FNV hash >>>> output, and can cause the null string (the string of length zero) to >>>> be hashed, will thereby be able to directly observe the offset_basis >>>> that will be the hash output. >>>> >>>> Suggestion #2 (always): >>>> Any entity that can observe the FNV hash >>>> output, and can cause the null string (the string of length zero) to >>>> be hashed, will thereby be able to directly observe the >>>> offset_basis, which will be the hash output. --> >>>> >>> The FNV hash function always produces the same output for the same >>> input. The null string as input always outputs the offset_basis but >>> other inputs almost never produce that output. Your suggestion #1 looks >>> good except I do not think there should be a comma after "output". The >>> structure of the sentence is "Any entity that can observe A and can >>> cause B will thereby be able to C." Does this structure really need >>> any commas? I don't actually have a problem with the comma after >>> "hashed" but I don't like the comma after "output". >>> >>> >>>> 13) <!-- [rfced] Section 2.3: We do not see any code provided in >>>> Section 6 ("Security Considerations"). Please let us know which >>>> section should be cited here. >>>> >>>> Original: >>>> The code provided in Section 6 has FNV hash functions that return a >>>> little endian byte vector for all lengths. --> >>>> >>> Sorry, it should be Section 8. >>> >>> >>>> 14) <!-- [rfced] Section 4: We had trouble parsing this sentence - in >>>> particular, the "and ... or" relationships. Will this sentence be >>>> clear to readers as written? >>>> >>>> Original: >>>> For FNV, the same hash results if X, Y, and Z are actually >>>> concatenated and the FNV hash applied to the resulting string or if >>>> FNV is calculated on an initial substring and the result used as the >>>> offset_basis when calculating the FNV hash of the remainder of the >>>> string. >>>> >>>> Possibly: >>>> For FNV, the same hash results if 1) X, Y, and Z are actually >>>> concatenated and the FNV hash is applied to the resulting string or >>>> 2) FNV is calculated on an initial substring and the result is used >>>> as the offset_basis when calculating the FNV hash of the remainder >>>> of the string. --> >>>> >>> Your rewording makes what was intended clearer. >>> >>> >>>> 15) <!-- [rfced] Section 4: We only see one mention of the idea of >>>> "flow ID" in RFC 6437 ("a stateless method of flow identification and >>>> label assignment") but quite a few instances of "Flow Label" and >>>> "flow label" (and one instance of "Flow label"). Should "flow ID" >>>> and "Flow ID" be "flow label" or "Flow Label" here? >>>> >>>> Original: >>>> For example, assume some sort of computer network traffic flow ID, >>>> such as the IPv6 flow ID [RFC6437], is to be calculated for network >>>> packets based on the source and destination IPv6 address and the >>>> Traffic Class [RFC8200]. If the Flow ID is calculated in the >>>> originating host, the source IPv6 address would likely always be the >>>> same or perhaps assume one of a very small number of values. --> >>>> >>> Yes, flow label / Flow Label is what is intended. >>> >>> >>>> 16) <!-- [rfced] Section 6.1: Is a Routing Information Base the only >>>> source of routing information (in which case "i.e.," is correct), or >>>> is it an example of a source of routing information (in which case >>>> "e.g.," should be used here instead)? >>>> >>>> Original: >>>> Such an arrangement might be used for the symbol table in a >>>> compiler or for some of the routing information (i.e., RIB >>>> (Routing Information Base)) in a router. --> >>>> >>> Generally all the routing information at a node is referred to as the >>> RIB so I think i.e. is correct. >>> >>> >>>> 17) <!-- [rfced] Section 6.1: As it appears to us that "occur, or >>>> service is degraded" means "occur or when service is degraded" as >>>> opposed to "occur or if service is degraded", we updated this >>>> sentence accordingly. If this is incorrect, please provide >>>> clarifying text. >>>> >>>> Original: >>>> * If the adversary cannot detect when collisions occur, or service >>>> is degraded, then it is sufficient for the adversary to be unable >>>> to predict the hash outcomes. >>>> >>>> Currently: >>>> * If the adversary cannot detect when collisions occur or when >>>> service is degraded, then it is sufficient for the adversary to be >>>> unable to predict the hash outcomes. --> >>>> >>> Your edited version is correct. >>> >>> >>>> 18) <!-- [rfced] Section 7: We found the citation for [IEEE] confusing, >>>> as we could not readily locate information on the IEEE POSIX P1003.2 >>>> committee when searching [IEEE]. Also, in a general web search, we >>>> saw a reference to a September 1991 draft >>>> (https://mirror.math.princeton.edu/pub/oldlinux/Linux.old/ >>>> Ref-docs/POSIX/all.pdf) and a 1992 paper >>>> (https://standards.ieee.org/ieee/1003.2/1408/). Will this text and >>>> citation be clear to readers? >>>> >>>> Original: >>>> The FNV hash algorithm originated from an idea submitted as reviewer >>>> comments to the [IEEE] POSIX P1003.2 committee in 1991 by Glenn >>>> Fowler and Phong Vo. --> >>>> >>> I have to admit that "[IEEE]" is a very general reference but I don't >>> know if the IEEE P1003.2 committee still exists or what a good web >>> address for it would be. I think the current text and reference are >>> adequate. >>> >>> >>>> 19) <!-- [rfced] Section 8.1.1: Should "Base" be "Basis" for these >>>> entries? We don't see "Base" used anywhere else in comparable >>>> parameter names (e.g., "FNV64stringBasis", "FNV32blockBasis" as >>>> used later). >>>> >>>> Original: >>>> FNVxxxstringBase, FNVxxxblockBase, FNVxxxfileBase: >>>> ... >>>> FNVxxxINTstringBase, FNVxxxINTblockBase, FNVxxxINTfileBase: >>>> ... >>>> The functions whose name has the "Base" suffix take an additional >>>> parameter specifying the offset_basis. --> >>>> >>> Thanks for spotting that. It is an excellent catch. These should all >>> have "Base" -> "Basis" so they will be like FWVxxxinitBasis. >>> >>> >>>> 20) <!-- [rfced] Section 8.1.1: The following four entries don't seem to >>>> have any descriptive information below them. We also see that the >>>> first three entries are contained in an <artwork> element but the >>>> fourth entry is part of the description list. >>>> >>> That's not how it was in the XML we submitted. As submitted this is a >>> <dl> list with the first three lines having a <dd/> with null content and >>> the fourth having the descriptive text as the <dd> content. Perhaps >>> due to this change, the current .txt for the "paragraphs" in this >>> section has the descriptive text peculiarly flowed up. Please look at >>> this in the text produced from the original XML submitted. >>> >>> >>>> Will the use/purpose of these four entries be clear to readers, or >>>> should all of them have definitions and be part of the same >>>> definition list? >>>> >>> The descriptive text applies to all four lines. See comment above. >>> >>> >>>> Original: >>>> FNVxxxstring, FNVxxxblock, FNVxxxfile: >>>> >>>> FNVxxxstringBase, FNVxxxblockBase, FNVxxxfileBase: >>>> >>>> FNVxxxINTstring, FNVxxxINTblock, FNVxxxINTfile: >>>> ... >>>> FNVxxxinit, FNVxxxinitBasis: --> >>>> >>>> >>>> 21) <!-- [rfced] Section 8.1.2: Does "a command line invoking >>>> compilation" mean "a compilation that invokes a command line" or >>>> "a command line invoking a compilation"? >>>> >>>> Original: >>>> By default, this is set in FNVconfig.h based on >>>> the compilation target; however, this can be overridden by editing >>>> that file or by defining certain symbols in, for example, a command >>>> line invoking compilation. --> >>>> >>> The second, it means "a command line invoking a compilation" >>> >>> >>>> 22) <!-- [rfced] Section 8.1.2: We had trouble following these sentences. >>>> We updated them as follows. If these updates are incorrect, please >>>> clarify the text. >>>> >>>> Original: >>>> For support of a single FNV size, say "xxx", in an application, the >>>> application itself needs to include the FNVxxx.h (which will, in >>>> turn, include the FNVconfig.h and FNVErrorCodes.h) files. To build >>>> the particular FNVxxx code itself, compile the FNVxxx.c file with >>>> FNVconfig.h, fnv-private.h, FNVErrorCodes.h, and FNVxxx.h available. >>>> >>>> Currently: >>>> For support of a single FNV size, say "xxx" (e.g., FNV64), in an >>>> application, the application itself needs to include the appropriate >>>> FNVxxx.h file (which will, in turn, include the FNVconfig.h and >>>> FNVErrorCodes.h files). To build the particular FNVxxx code itself, >>>> compile the FNVxxx.c file with FNVconfig.h, fnv-private.h, >>>> FNVErrorCodes.h, and FNVxxx.h (available in Section 8.2). --> >>>> >>> "available" in this case means available to the compiler and has >>> nothing to do with appearance in a section of this document. I suppose >>> you could do something like "available." -> "available to the compiler >>> while compiling the FNVxxx.c file." >>> >>> >>>> 23) <!-- [rfced] Sections 8.2 and subsequent: We changed instances of >>>> "RFC NNNN" to "RFC 9923". Please let us know of any concerns. --> >>>> >>> Sounds good. That was the intent. >>> >>> >>>> 24) <!-- [rfced] Sections 8.2.1 and subsequent: Does "a specified length >>>> byte vector" mean "a specified 'length byte vector'", "a byte vector >>>> of specified length", or something else? We ask because we see text >>>> such as "4-byte vector" and "the same size byte vectors" used >>>> elsewhere. Please clarify. >>>> >>>> Examples from original: >>>> * FNV32block: hash a specified length byte vector >>>> ... >>>> * FNV32blockin: hash in a specified length byte vector >>>> ... >>>> * FNV32INTblock: hash a specified length byte vector >>>> ... >>>> * FNV64block: hash a specified length byte vector --> >>>> >>> It means a byte vector of a specified length. >>> >>> >>>> 25) <!-- [rfced] Sections 8.2.1 and subsequent: Do instances of >>>> "FNV32 hash a ...", "FNV64 hash a", etc. mean "FNV32-hash a ...", >>>> "FNV64-hash a", etc. (i.e., to indicate verbs), or do they mean >>>> "FNV32: Hash a ...", "FNV64: Hash a", etc. (to indicate instructions, >>>> e.g., per "Hash the contents of the file" in Section 8.1.3)? >>>> >>>> Examples from original: >>>> /* FNV32 hash a zero-terminated string not including the zero >>>> ... >>>> /* FNV64 hash a zero-terminated string not including the zero >>>> ... >>>> * FNV64string: hash a zero-terminated string not including >>>> ... >>>> * FNV32block: hash a specified length byte vector >>>> ... >>>> * FNV32blockin: hash in a specified length byte vector --> >>>> >>> Putting a colon after FNV32 etc. in these cases is good. I think they >>> are all inside comments so such an editorial change should not cause >>> any problem. >>> >>> NOTE: not exactly relevant to your question 25 but there is a >>> difference between "hash a ..." and "hash in a ...". In the first >>> instance, the function is calculating a hash solely dependent on the one >>> parameter. In there second, there is also a context parameter that was >>> previously initialized and may have had other data items hashed into >>> it and the function is hashing additional data into that context. >>> >>> >>>> 26) <!-- [rfced] Sections 8.2.2 and subsequent: Please note that we >>>> removed or added spaces in the following code items. >>>> >>>> Original (these are most of the items that we modified): >>>> int error; (2 instances) >>>> int rc; >>>> FNV128context ctx; >>>> ( memcmp ( was, should, N) != 0 ) >>>> (uint8_t *)0 , (we only found one instance of a space before a >>>> comma, so we removed the space here) >>>> TestR ( "result2", fnvNull, RSLT ( &CTX, (uint8_t *)0 ) ); >>>> FNV128result ( &e128Context, hash ) ); >>>> TestR ( "result3i", fnvStateError, RSLTINT ( &ctx, &INTV ) ); >>>> >>>> The spacing changes can be seen in the latest rfc9923-rfcdiff file. >>>> >>>> Please let us know if you do not agree with these changes, and we >>>> will revert them. >>>> >>> I reviewed all the changes in the code section of 8.2 in >>> https://www.rfc-editor.org/authors/rfc9923-rfcdiff.html and they all >>> look OK. >>> >>> >>>> Please also note that we did not make any changes to >>>> Stefan Santesson's code, as we consider it "Do Not Edit" (DNE) >>>> and have flagged it as such in the XML file. --> >>>> >>> OK. >>> >>> >>>> 27) <!-- [rfced] Section 8.2.2: Please review the items listed under >>>> "Function Prototypes:" and under the "Hash is returned as an 8-byte >>>> vector by the functions above. If 64-bit integers are supported" >>>> text in this section. Because it appears that the focus here is on >>>> "FNV64" parameters and there may have been some copy-paste issues in >>>> this section, please review the following, and advise: >>>> >>>> a) Because it appears that "FNV164stringBasis" should be >>>> "FNV64stringBasis", we updated accordingly. Please let us know >>>> if this is incorrect. >>>> >>>> Original: >>>> * FNV164stringBasis: also takes an offset_basis parameter >>>> >>>> Currently: >>>> * FNV64stringBasis: also takes an offset_basis parameter >>>> >>> Thanks for catching that. Your change is correct. >>> >>> >>>> b) It appears that "FNV128fileBasis" and "FNV128filein" should be >>>> "FNV64fileBasis" and "FNV64filein". May we update accordingly? >>>> >>>> Original: >>>> * FNV64file: hash the contents of a file >>>> * FNV128fileBasis: also takes an offset_basis parameter >>>> * >>>> * FNV64init: initializes an FNV64 context >>>> * FNV64initBasis: initializes an FNV64 context with a >>>> * provided 8-byte vector basis >>>> * FNV64blockin: hash in a specified length byte vector >>>> * FNV64stringin: hash in a zero-terminated string not >>>> * including the terminating zero >>>> * FNV128filein: hash in the contents of a file >>>> * FNV64result: returns the hash value >>>> >>> Yes, these errors in the source code comment should be fixed replacing >>> 128 with 64. >>> >>> >>>> c) It appears that "FNV32INTstringBasis", "FNV32INTblockBasis", and >>>> "FNV32INTfileBasis" should be "FNV64INTstringBasis", >>>> "FNV64INTblockBasis", and "FNV64INTfileBasis". Should we update >>>> accordingly? >>>> >>>> Original: >>>> * FNV64INTstring: hash a zero-terminated string not including >>>> * the terminating zero >>>> * FNV32INTstringBasis: also takes an offset_basis parameter >>>> * >>>> * FNV64INTblock: hash a specified length byte vector >>>> * FNV32INTblockBasis: also takes an offset_basis parameter >>>> * >>>> * FNV64INTfile: hash the contents of a file >>>> * FNV32INTfileBasis: also takes an offset_basis parameter >>>> * >>>> * FNV64INTinitBasis: initializes an FNV32 context with a >>>> * provided 64-bit integer basis >>>> >>> Yes, these errors in that source code comment should be fixed >>> replacing 32 with 64. >>> >>> >>>> d) Should "FNV64INTinitBasis: initializes an FNV32 context" be >>>> "FNV64INTinitBasis: initializes an FNV64 context"? >>>> >>>> Original: >>>> FNV64INTinitBasis: initializes an FNV32 context with a --> >>>> >>> Yes. >>> >>> >>>> 28) <!-- [rfced] Section 8.2.2: Does "Null input/out pointer" mean >>>> "Null input/output pointer", "Null input pointer /out pointer", or >>>> something else? >>>> >>>> Original: >>>> return fnvNull; /* Null input/out pointer */ --> >>>> >>> "fnvNull" is an error code returned if the function is called with a >>> "null input pointer or null output pointer". >>> >>> >>>> 29) <!-- [rfced] Sections 8.2.3, 8.2.4, 8.2.5, and 8.2.6: Please review >>>> the following, and let us know if any changes are needed: >>>> >>>> a) Please confirm that the same text - "Hash is returned as an array >>>> of 8-bit unsigned integers" - is correct for all four sections. >>>> We ask because of "Hash is returned as a 4-byte vector by the >>>> functions above, and the following return a 32-bit unsigned integer" >>>> in Section 8.2.1 ("FNV32 Code"). >>>> >>> So, it's a little complicated. The FNV32 functions have versions that >>> return a 32 bit integer and versions that return a vector of 4 bytes >>> each 8 bits. The FNV64 functions have versions that return a vector of >>> 8 bytes each 8 bits and, if the code is compiled with 64 bit integers >>> supported, versions that return such a 64 bit integer. >>> >>> Since we assume the there is no direct support for integers larger >>> than 64 bits, all of the FNV128, FNV256, FNV512, and FNV1024 functions >>> return a vector of 8 bit bytes, the length of that vector being 16, >>> 32, 64, and 128 bytes respectively. So I believe the line "Hash is >>> returned as an array of 8-bit unsigned integers" is correct for all of >>> FNV128 through FNV1024 although it could, perhaps, be clearer and >>> information about the length of the vector, which would be different >>> for each different size of FNV, could be added. >>> >>> >>>> b) Please search for instances of "This structure holds context >>>> information for an FNV", and let us know if the data that follows >>>> these lines is correct. The first and second instances appear to be >>>> OK, but we want to confirm that the data that follows the third, >>>> fourth, fifth, and sixth instances are also OK (i.e., should always >>>> indicate 64-bit integers; apologies if we are missing a statement >>>> that says support for 64-bit integers applies to all FNVs discussed >>>> in this document). >>>> >>> This context is an internal structure. If a the code is compiled for >>> a computer that supports 64 bit integers, it is more efficient for >>> this internal structure to be composed in one way whereas if the code >>> is compiled for a computer that does not support 64 bit integers, this >>> internal structure must be composed in a different way. The only case >>> where this does not apply is FNV32. In other words, the data following >>> all these lines is correct. >>> >>> >>>> c) Please search for instances of "version if", and confirm that >>>> the text should always be "version if 64-bit ...". --> >>>> >>> Yes, there is a version if 64-bit integers are supported and a version >>> if 64-bits are not supported for every length of FNV except FNV32. >>> >>> >>>> 30) <!-- [rfced] Sections 8.2.4, 8.2.5, and 8.2.6: As it appeared that >>>> "FNV246stgringBasis", "FMNV512filein", and "FMV1024fileBasis" should >>>> be "FNV256stringBasis", "FNV512filein", and "FNV1024fileBasis", >>>> respectively, we updated accordingly. Please let us know if anything >>>> is incorrect. >>>> >>>> Original: >>>> * FNV246stgringBasis: also takes an offset_basis parameter >>>> ... >>>> * FMNV512filein: hash in the contents of a file >>>> ... >>>> } /* end FMV1024fileBasis */ >>>> >>>> Currently: >>>> * FNV256stringBasis: also takes an offset_basis parameter >>>> ... >>>> * FNV512filein: hash in the contents of a file >>>> ... >>>> } /* end FNV1024fileBasis */ --> >>>> >>> Yes, thanks for those fixes. >>> >>> >>>> 31) <!-- [rfced] Sections 8.2.4 and 8.2.6: Are these two extra lowercase >>>> "version for when you only have 32-bit arithmetic" entries still >>>> needed in this document? We ask because a "START VERSION FOR WHEN >>>> YOU ONLY HAVE 32-BIT ARITHMETIC" entry immediately precedes both >>>> of these lowercased entries, and the other three "START VERSION FOR >>>> WHEN YOU ONLY HAVE 32-BIT ARITHMETIC" entries (Sections 8.2.2, >>>> 8.2.3, and 8.2.5) don't have this extra entry. >>>> >>>> Original: >>>> /* version for when you only have 32-bit arithmetic >>>> ... >>>> /* version for when you only have 32-bit arithmetic --> >>>> >>> I agree that these redundant "version for when you only have 32-bit >>> arithmetic" lines can be removed. >>> >>> >>>> 32) <!-- [rfced] Section 8.2.5: Should the two instances of >>>> "FNV1024 context" be "FNV512 context" in these lines, and should >>>> "128-byte" be "64-byte"? >>>> >>>> Original: >>>> * FNV512init: initializes an FNV1024 context >>>> * FNV512initBasis: initializes an FNV1024 context with a >>>> * provided 128-byte vector basis --> >>>> >>> Yes. >>> >>> >>>> 33) <!-- [rfced] Section 8.3: >>>> >>>> a) Should the two instances of "follow by" be "followed by"? If no, >>>> are they instructions and some words are missing (e.g., >>>> "follow the ______ by size of ...")? >>>> >>>> We ask because of "case 'f': // followed by name of file to hash" >>>> a few lines earlier. >>>> >>>> Original: >>>> case 't': // follow by size of FNV to test, 0->all >>>> ... >>>> case 'u': // follow by size of FNV to use >>>> >>> Yes, should be "followed by" >>> >>> >>>> b) Should the spacing be adjusted here as suggested? >>>> >>>> Original: >>>> FNV32INTfile ( >>>> WriteTemp(teststring[i], iLen), >>>> &eUint32 ) >>>> ); >>>> ... >>>> FNV64INTfile ( >>>> WriteTemp(teststring[i], iLen), >>>> &eUint64 ) >>>> ); >>>> >>>> Suggested: >>>> FNV32INTfile ( WriteTemp(teststring[i], iLen), >>>> &eUint32 ) ); >>>> ... >>>> FNV64INTfile ( WriteTemp(teststring[i], iLen), >>>> &eUint64 ) ); --> >>>> >>> Your suggested changes are fine (and will make the document 2 lines >>> shorter :-) ). >>> >>> >>>> 34) <!-- [rfced] Section 8.4: Would you like to order the list of .c >>>> files by FNV size (and by their placement in the body of the >>>> document), as was done for the "HDR=" line? >>>> >>>> We have the same question re. the list of .h files in the <TAB> line. >>>> >>>> Original: >>>> SRC=FNV1024.c FNV128.c FNV256.c FNV32.c FNV512.c FNV64.c >>>> ... >>>> <TAB>FNVErrorCodes.h FNVconfig.h fnv-private.h >>>> >>>> Possibly: >>>> SRC=FNV32.c FNV64.c FNV128.c FNV256.c FNV512.c FNV1024.c >>>> ... >>>> <TAB>FNVconfig.h FNVErrorCodes.h fnv-private.h --> >>>> >>> OK. >>> >>> >>>> 35) <!-- [rfced] References: We do not see David Bell mentioned on the >>>> page provided for [calc]. Please confirm that this listing is >>>> correct. >>>> >>>> Original: >>>> [calc] Bell, D. and L. Noll, "Calc - C-style arbitrary precision >>>> calculator", >>>> <http://www.isthe.com/chongo/tech/comp/calc/index.html>. --> >>>> >>> Although David Bell is not listed on that page, if you click on the >>> "Who wrote calc?" link, he is very prominent as the primary author so >>> I think the reference listing is correct. >>> >>> >>>> 36) <!-- [rfced] References: The provided link for [Cohesia] steers to >>>> <https://cohesia.com/>, which is a business financing site. We could >>>> not find a relationship to the bullet item in Section 1.2. Should a >>>> different website be listed here? >>>> >>>> Original: >>>> * [Cohesia] MASS project server collision avoidance, >>>> ... >>>> [Cohesia] Cohesia, "Cohesia website", <http://www.cohesia.com/>. --> >>>> >>> I don't know what this reference is supposed to be. Maybe another >>> author can come up with information as to why we added it. If not, it >>> should be deleted. >>> >>> >>>> 37) <!-- [rfced] References: We see "NOTICE (2022-10-16): ...", re. a >>>> new server, at the top of the provided page for [deliantra]. Should >>>> this listing be updated to reflect the notice or was this a temporary >>>> situation that no longer applies? >>>> >>>> Original: >>>> [deliantra] >>>> The Deliantra Team, "Deliantra MMORPG", 2016, >>>> <http://www.deliantra.net/>. >>>> >>>> Possibly (if the notice is still relevant): >>>> [deliantra] >>>> The Deliantra Team, "Deliantra MMORPG", 16 October >>>> 2022, <http://www.deliantra.net/>. --> >>>> >>> I'm fine with updating the date re the notice. >>> >>> >>>> 38) <!-- [rfced] References: Would you like us to change "Fowler-Noll-Vo" >>>> in the listing for [FNV] to "Fowler, G., Noll, L., and Vo, K." or >>>> perhaps "Noll, L."? Is "Fowler-Noll-Vo" considered an organization >>>> in this case? >>>> >>>> Original: >>>> [FNV] Fowler-Noll-Vo, "FNV website", >>>> <http://www.isthe.com/chongo/tech/comp/fnv/index.html>. --> >>>> >>> Listing all three people would probably be good. I do not think >>> "Fowler-Noll-Vo" is an organization but is the thing actually >>> referenced, Perhaps something like this: >>> >>> <reference anchor="FNV" >>> target="http://www.isthe.com/chongo/tech/comp/fnv/index.html"> >>> <front> >>> <title>FNV (Fowler/Noll/Vo)</title> >>> <author initials="G." surname="Fowler"/> >>> <author initials="L." surname="Noll"/> >>> <suthor initials="K." surname="Vo"/> >>> </front> >>> </reference> >>> >>> >>>> 39) <!-- [rfced] References: We see "Last modified on: February 21, 2021 >>>> by Danilo G. Baio" on the bottom of the provided page for [FreeBSD]. >>>> Should this listing be updated to reflect the "Last modified" date >>>> and possibly include "Baio, D. G."? >>>> >>>> Original: >>>> [FreeBSD] The Free BSD Project, "FreeBSD 4.3 Release Notes", 2025, >>>> <http://www.freebsd.org/releases/4.3R/notes.html>. --> >>>> >>> Yes, I think such an update and inclusion would be good. >>> >>> >>>> 40) <!-- [rfced] References: The provided URL for [GolfHash] steers to >>>> <https://rimstone-lang.com/>, and we see "Golf is now RimStone >>>> (2025-10-02)". May we change the citation string to "[RimStone]" >>>> and update the URL? >>>> >>>> Original: >>>> * Golf language hash tables [GolfHash], >>>> ... >>>> [GolfHash] Gliim LLC, "Golf Language Hash Tables", 2025, >>>> <https://golf-lang.com/new-hash.html>. >>>> >>>> Possibly: >>>> * Golf language hash tables [RimStone], >>>> ... >>>> [RimStone] Gliim LLC, "Golf Language Hash Tables", 2025, >>>> <https://rimstone-lang.com/>. --> >>>> >>> OK. >>> >>> >>>> 41) <!-- [rfced] References: Regarding [IEEE8021Qbp]: A Google search >>>> for "IEEE Std 802.1Qbp" yields several "hits", but >>>> <https://standards.ieee.org/ieee/802.1Qbp/5217/> and >>>> <https://ieeexplore.ieee.org/document/6783684> (1) show titles that >>>> include "Amendment 22:" and (2) list this standard as "Superseded". >>>> Please let us know how, or if, this listing should be updated. >>>> >>>> Original: >>>> [IEEE8021Qbp] >>>> "Media Access Control (MAC) Bridges and Virtual Bridged >>>> Local Area Networks - Equal Cost Multiple Path (ECMP)", >>>> IEEE Std 802.1Qbp-2014, 7 April 2014. --> >>>> >>> IEEE Std 802.1Qbp-2014 was an amendment to 802.1Q and has been merged >>> into IEEE Std 802.1Q-2022 where the reference to FNV occures in Clause >>> 44.1.2 entitled "ECMP ECT Algorithm". (IEEE refers to parts of their >>> Standards as "Clauses" rather than "Sections" but I don't think anyone >>> would be confused if the reference in this RFC was to "Section >>> 44.1.2".) In any case, the reference tag should now be [IEEE8021Q] and >>> an appropriate URL for IEEE Std 802.1Q-2022 should be used. >>> >>> >>>> 42) <!-- [rfced] References: The provided URL for [IPv6flow] yields >>>> either "Hmm. We're having trouble finding that site. We can't >>>> connect to the server at rsnode-app-prod" or "502 Bad Gateway". >>>> However, <https://www.cs.auckland.ac.nz/~brian/flowhashRep.pdf> >>>> provides what appears to be the same paper. Would this URL be >>>> considered stable? If yes, could we update this listing as follows? >>>> >>>> Original: >>>> [IPv6flow] Anderson, L., Brownlee, N., and B. Carpenter, "Comparing >>>> Hash Function Algorithms for the IPv6 Flow Label", >>>> University of Auckland Department of Computer Science >>>> Technical Report 2012-002, ISSN 1173-3500, March 2012, >>>> <https://researchspace.auckland.ac.nz/bitstream/ >>>> handle/2292/13240/flowhashRep.pdf>. >>>> >>>> Possibly: >>>> [IPv6flow] Anderson, L., Brownlee, N., and B. E. Carpenter, >>>> "Comparing Hash Function Algorithms for the IPv6 Flow >>>> Label", University of Auckland Department of Computer >>>> Science Technical Report 2012-002, ISSN 1173-3500, March >>>> 2012, >>>> <https://www.cs.auckland.ac.nz/~brian/flowhashRep.pdf>. --> >>>> >>> Yes, please update to the currently working URL you found. Thanks. >>> >>> >>>> 43) <!-- [rfced] References: On the provided page for [Vely], we see >>>> "Steve Emms" near the top of the page and "Website: No longer >>>> publicly developed" further down, past the bullet list and just >>>> above "Developer: Sergio Mijatovic". >>>> >>>> Also, on the provided page several commenters have noted that some >>>> relevant pages have been taken down. Will this citation still be >>>> helpful to readers, or should it be updated? >>>> >>>> Original: >>>> [Vely] Mijatovic, S., "Vely - general purpose framework", >>>> <https://www.linuxlinks.com/vely-general-purpose- >>>> framework/>. --> >>>> >>> It appears that the only current use of FNV at that site may be the >>> "smash" utility by Steven Emms... I suggest the reference be changed >>> to something like the following: >>> >>> [Smash] Emms, S., "Smash - find duplicate files super fast", >>> https://www.linuxlinks.com/smash-find-duplicate-files-super-fast/ >>> >>> Then the line in the body of the draft should change as follows >>> OLD >>> the [Vely] framework for C language, >>> NEW >>> the [Smash] utility for rapidly finding duplicate files, >>> >>> >>>> 44) <!-- [rfced] References: We could not see how [Vortetty] is related >>>> to pseudorandom number generation. Please confirm that the citation >>>> and reference listing will be clear to readers. >>>> >>>> Original: >>>> * to help seeding a pseudo random number generator [Vortetty], >>>> ... >>>> [Vortetty] "Raytracing for the gba", >>>> <https://github.com/Vortetty/gba-rtx>. --> >>>> >>> I am also unable to find FNV there. Maybe it was in a previous version >>> and has been delected. Suggest removing this reference and the line >>> from which it is referenced. >>> >>> >>>> 45) <!-- [rfced] Appendix A: We had trouble at first following the >>>> "and" relationships in this sentence. We updated per the >>>> "Ignoring SHA-1's ..." and "Ignoring SHA-256's" sentences that >>>> appear two and three paragraphs below this sentence. >>>> >>>> Also, as it appears that two items are listed here (the XOR and >>>> multiply operations, per 'the "xor" and multiply operations' in >>>> Section 2) rather than three items, we updated this sentence >>>> accordingly. If anything is incorrect, please clarify. >>>> >>>> Original: >>>> Ignoring transfer of control and conditional tests and equating all >>>> logical and arithmetic operations, FNV requires 2 operations per >>>> byte, an XOR and a multiply. >>>> >>>> Currently: >>>> Ignoring transfer of control and conditional tests, and equating all >>>> logical and arithmetic operations, FNV requires two operations per >>>> byte: an XOR operation and a multiply operation. --> >>>> >>> Your revised wording is OK. >>> >>> >>>> 46) <!-- [rfced] Appendix A: We see from Google searches (e.g., a search >>>> for "Is SHA-1 broken?") that SHA-1 has apparently been fully broken. >>>> Would you like to update this text accordingly? >>>> >>>> Original (the previous sentence is included for context): >>>> SHA-1 is a relatively weak cryptographic hash function producing a >>>> 160-bit hash. It has been partially broken [RFC6194]. >>>> >>>> Possibly: >>>> SHA-1 [RFC6194] is a relatively weak cryptographic hash function >>>> producing a 160-bit hash. In recent years, it has been broken. --> >>>> >>> Well, attacks have been found that reduce its strength so that it is >>> inapporpirate for many uses but I would not say it is completely >>> broken. I have no objection to making this stronger by saying >>> "substantially broken" instead of "partically broken". >>> >>> >>>> 47) <!-- [rfced] Appendix B: Because (1) draft-ietf-tls-cached-info-08 >>>> did not expire (version -09 had been uploaded to the Datatracker about >>>> 3 months after version -08, per >>>> <https://datatracker.ietf.org/doc/rfc7924/history/>) and (2) this >>>> draft was ultimately published as RFC 7924 >>>> (https://www.rfc-editor.org/info/rfc7924) (which we see no longer >>>> contains the code in question), we updated this text accordingly. >>>> Please review, and let us know if further clarifications are needed. >>>> >>>> Also, we see that the code in this document is somewhat different >>>> than the code provided in draft-ietf-tls-cached-info-08. >>>> For example: >>>> >>>> In this document: >>>> static public BigInteger getFNV1aToByte(byte[] inp) { >>>> >>>> In draft-ietf-tls-cached-info-08: >>>> static public BigInteger getFNV1a64Digest (String inpString) { >>>> >>>> Should this be somehow clarified for readers? If yes, please provide >>>> the text. >>>> >>>> Original: >>>> FNV-1a was referenced in draft-ietf-tls-cached-info-08.txt that has >>>> since expired. Below is the Java code for FNV64 from that TLS draft >>>> included with the kind permission of the author: >>>> >>>> Currently: >>>> FNV-1a was referenced in draft-ietf-tls-cached-info-08 >>>> (which was ultimately published as RFC 7924, but RFC 7924 no longer >>>> contains the code below). Herein, we provide the Java code for FNV64 >>>> from that earlier draft, included with the kind permission of the >>>> author: --> >>>> >>> Your wording is OK. >>> >>> >>>> 48) <!-- [rfced] Acknowledgements section: As the names were mostly >>>> listed in alphabetical order, we moved Paul Hoffman's name so that it >>>> is listed between Tony Finch and Charlie Kaufman. Please let us know >>>> any concerns. >>>> >>>> Original: >>>> Roman Donchenko, Frank Ellermann, Stephen Farrell, Tony Finch, >>>> Charlie Kaufman, Eliot Lear, Bob Moskowitz, Gayle Noble, Stefan >>>> Santesson, Mukund Sivaraman, Paul Hoffman, and Paul Wouters. >>>> >>>> Currently: >>>> Roman Donchenko, Frank Ellermann, Stephen Farrell, Tony Finch, Paul >>>> Hoffman, Charlie Kaufman, Eliot Lear, Bob Moskowitz, Gayle Noble, >>>> Stefan Santesson, Mukund Sivaraman, and Paul Wouters. --> >>>> >>> OK, thanks. >>> >>> >>>> 49) <!-- [rfced] Please review the "Inclusive Language" portion of the >>>> online Style Guide at >>>> <https://www.rfc-editor.org/styleguide/part2/#inclusive_language>, >>>> and let us know if any changes are needed. Updates of this nature >>>> typically result in more precise language, which is helpful for >>>> readers. >>>> >>>> Note that our script did not flag any words in particular, but this >>>> should still be reviewed as a best practice. --> >>>> >>> I do not think there is any problem with inclusive language in this >>> document. >>> >>> >>>> 50) <!-- [rfced] Please let us know if any changes are needed for the >>>> following: >>>> >>>> a) The following terms were used inconsistently in this document. >>>> We chose to use the latter forms. Please let us know any objections. >>>> >>>> power of two / power of 2 (We also changed "power-of-two" to >>>> "power-of-2".) >>>> >>> OK. >>> >>> >>>> b) The following terms appear to be used inconsistently in this >>>> document. Please let us know which form is preferred. >>>> >>>> " 256, 512, and 1024\n"); / "256, 512, and 1024\n" ); >>>> (spacing in back-to-back printf statements) >>>> >>> I suppose the version with the space before the parenthesis is a bit >>> more readable. >>> >>> >>>> 64-bit Integers / 64-bit integers (back-to-back printf statements >>>> in Section 8.3) >>>> (We suggest lowercase "integers", per usage in the rest of >>>> this document.) >>>> >>> OK. >>> >>> >>>> flow ID / Flow ID (text in Section 4) (We asked about this >>>> inconsistency earlier, so this might have been resolved already.) >>>> >>> I agreed above it should by flow "lable", not "ID". This is a distinct >>> named field so I am inclined to say it should be Flow Label. >>> >>> >>>> FNV Prime(s) / FNV_Prime(s) / FNV_prime >>>> (e.g., "Size FNV Prime" and "32-bit FNV_Prime = ..." (Table 1), >>>> "32-bit FNV_prime = ..." (Section 8.2.1), and similar ones >>>> throughout Section 8.2) >>>> >>> The underscore is included in the pseudocode and in the text >>> explanations so I think it should be included in all cases. >>> >>> >>>> little endian (adj.) (e.g., "little endian format", >>>> "little endian byte vector") / >>>> little-endian (e.g., "big endian or other non-little-endian >>>> machines") >>>> >>>> Suggested: little-endian format, little-endian byte vector, >>>> big-endian machines or other non-little-endian machines >>>> >>> OK. >>> >>> >>>> one bits (noun) / one-bits (noun) (If you wish to use the >>>> hyphen, should "one bit" used as a noun in Section 2.1 also be >>>> hyphenated?) >>>> >>> In "one bits" one is an adjective. It means "bits whose value is 1" as >>> opposed to bits whose value is 0. Probably should not be hyphenated. >>> >>> >>>> Extra space after "+" sign (5 instances): >>>> ctx->Hash[i] = ( temp<<8 ) + *basis++; >>>> ctx->Hash[i] = ( temp<<8 ) + (*basis++); >>>> as compared to >>>> ctx->Hash[i] = temp + *basis++; >>>> >>> One space so as, in these instances, to make the punctuation to the >>> left and right of the plus sign symetric, is better. >>> >>> >>>> printf( (2 instances) / printf ( (33 instances) >>>> >>> Go with the space as per the more common occurence. >>> >>> >>>> TestNValue (" (2 instances) / TestNValue ( " (16 instances) >>>> >>>> TestR ( " (84 instances) / TestR (" (7 instances) >>>> >>>> Verbose flag (3 instances) / verbose flag (1 instance) >>>> >>> In the three cases above, go with the more common usage. >>> >>> >>>> XOR folding / xor folding (in running text) >>>> (We also see "xor data folding".) >>>> >>>> "xor" (operations) ("the "xor" and multiply operations") / >>>> XOR (operations) ("operations per byte, an XOR and a multiply") --> >>>> >>> I am inclined to make all instances all caps except for the one >>> occurrence in Appendix B which must be lower case. >>> >>> Thanks again for your thorough review. >>> >>> Donald >>> ============================= >>> Donald E. Eastlake 3rd +1-508-333-2270 (cell) >>> 2386 Panoramic Circle, Apopka, FL 32703 USA >>> [email protected] >>> >>> >>>> Thank you. >>>> >>>> Lynne Bartholomew and Karen Moore >>>> RFC Production Center >>>> >>>> >>>> On Dec 15, 2025, at 12:59 PM, RFC Editor via auth48archive >>>> <[email protected]> wrote: >>>> >>>> *****IMPORTANT***** >>>> >>>> Updated 2025/12/15 >>>> >>>> RFC Author(s): >>>> -------------- >>>> >>>> Instructions for Completing AUTH48 >>>> >>>> Your document has now entered AUTH48. Once it has been reviewed and >>>> approved by you and all coauthors, it will be published as an RFC. >>>> If an author is no longer available, there are several remedies >>>> available as listed in the FAQ (https://www.rfc-editor.org/faq/). >>>> >>>> You and you coauthors are responsible for engaging other parties >>>> (e.g., Contributors or Working Group) as necessary before providing >>>> your approval. >>>> >>>> Planning your review >>>> --------------------- >>>> >>>> Please review the following aspects of your document: >>>> >>>> * RFC Editor questions >>>> >>>> Please review and resolve any questions raised by the RFC Editor >>>> that have been included in the XML file as comments marked as >>>> follows: >>>> >>>> <!-- [rfced] ... --> >>>> >>>> These questions will also be sent in a subsequent email. >>>> >>>> * Changes submitted by coauthors >>>> >>>> Please ensure that you review any changes submitted by your >>>> coauthors. We assume that if you do not speak up that you >>>> agree to changes submitted by your coauthors. >>>> >>>> * Content >>>> >>>> Please review the full content of the document, as this cannot >>>> change once the RFC is published. Please pay particular attention to: >>>> - IANA considerations updates (if applicable) >>>> - contact information >>>> - references >>>> >>>> * Copyright notices and legends >>>> >>>> Please review the copyright notice and legends as defined in >>>> RFC 5378 and the Trust Legal Provisions >>>> (TLP – https://trustee.ietf.org/license-info). >>>> >>>> * Semantic markup >>>> >>>> Please review the markup in the XML file to ensure that elements of >>>> content are correctly tagged. For example, ensure that <sourcecode> >>>> and <artwork> are set correctly. See details at >>>> <https://authors.ietf.org/rfcxml-vocabulary>. >>>> >>>> * Formatted output >>>> >>>> Please review the PDF, HTML, and TXT files to ensure that the >>>> formatted output, as generated from the markup in the XML file, is >>>> reasonable. Please note that the TXT will have formatting >>>> limitations compared to the PDF and HTML. >>>> >>>> >>>> Submitting changes >>>> ------------------ >>>> >>>> To submit changes, please reply to this email using ‘REPLY ALL’ as all >>>> the parties CCed on this message need to see your changes. The parties >>>> include: >>>> >>>> * your coauthors >>>> >>>> * [email protected] (the RPC team) >>>> >>>> * other document participants, depending on the stream (e.g., >>>> IETF Stream participants are your working group chairs, the >>>> responsible ADs, and the document shepherd). >>>> >>>> * [email protected], which is a new archival mailing list >>>> to preserve AUTH48 conversations; it is not an active discussion >>>> list: >>>> >>>> * More info: >>>> https://mailarchive.ietf.org/arch/msg/ietf-announce/yb6lpIGh-4Q9l2USxIAe6P8O4Zc >>>> >>>> * The archive itself: >>>> https://mailarchive.ietf.org/arch/browse/auth48archive/ >>>> >>>> * Note: If only absolutely necessary, you may temporarily opt out >>>> of the archiving of messages (e.g., to discuss a sensitive matter). >>>> If needed, please add a note at the top of the message that you >>>> have dropped the address. When the discussion is concluded, >>>> [email protected] will be re-added to the CC list and >>>> its addition will be noted at the top of the message. >>>> >>>> You may submit your changes in one of two ways: >>>> >>>> An update to the provided XML file >>>> — OR — >>>> An explicit list of changes in this format >>>> >>>> Section # (or indicate Global) >>>> >>>> OLD: >>>> old text >>>> >>>> NEW: >>>> new text >>>> >>>> You do not need to reply with both an updated XML file and an explicit >>>> list of changes, as either form is sufficient. >>>> >>>> We will ask a stream manager to review and approve any changes that seem >>>> beyond editorial in nature, e.g., addition of new text, deletion of text, >>>> and technical changes. Information about stream managers can be found in >>>> the FAQ. Editorial changes do not require approval from a stream manager. >>>> >>>> >>>> Approving for publication >>>> -------------------------- >>>> >>>> To approve your RFC for publication, please reply to this email stating >>>> that you approve this RFC for publication. Please use ‘REPLY ALL’, >>>> as all the parties CCed on this message need to see your approval. >>>> >>>> >>>> Files >>>> ----- >>>> >>>> The files are available here: >>>> https://www.rfc-editor.org/authors/rfc9923.xml >>>> https://www.rfc-editor.org/authors/rfc9923.html >>>> https://www.rfc-editor.org/authors/rfc9923.pdf >>>> https://www.rfc-editor.org/authors/rfc9923.txt >>>> >>>> Diff file of the text: >>>> https://www.rfc-editor.org/authors/rfc9923-diff.html >>>> https://www.rfc-editor.org/authors/rfc9923-rfcdiff.html (side by side) >>>> >>>> Diff of the XML: >>>> https://www.rfc-editor.org/authors/rfc9923-xmldiff1.html >>>> >>>> >>>> Tracking progress >>>> ----------------- >>>> >>>> The details of the AUTH48 status of your document are here: >>>> https://www.rfc-editor.org/auth48/rfc9923 >>>> >>>> Please let us know if you have any questions. >>>> >>>> Thank you for your cooperation, >>>> >>>> RFC Editor >>>> >>>> -------------------------------------- >>>> RFC9923 (draft-eastlake-fnv-35) >>>> >>>> Title : The FNV Non-Cryptographic Hash Algorithm >>>> Author(s) : G. Fowler, L. Noll, K. Vo, D. Eastlake 3rd, T. Hansen >>>> WG Chair(s) : >>>> Area Director(s) : >>>> >>> >> -- auth48archive mailing list -- [email protected] To unsubscribe send an email to [email protected]
