IpToCountry.dat - Version 32768 (draft-linda-extensible-spec-00) ================================================================ Introduction ------------ This document specifies updates for the the IpToCountry.dat version 3 specification. This document aims to improve the extensibility of the specification for interoperability of IpToCountry.dat versions and provide a standardized method of allocation of various fields for interoperability and some governance. This document also suggests relaxing experienced restrictions on IpToCountry.dat version for interoperability. Updates to main file structure ------------------------------ The main file structure's Version field is updated as follows: Field | Size | Description ----------------------------------- Version | USHORT | Integer value 1-65534. In addition, for the Version value: - The values 0 and 65535 are marked as reserved. - The values 32768 to 49151 inclusive are to be assigned to draft specification implementations. - The values 49152 to 65534 inclusive are for private use and cannot be registered. The Version field value MUST be defined with a valid range value by implementations conforming to this specification. Implementations non-conforming to this specification SHOULD omit the Version field or set its integer value as 0 to indicate non-compliance. Registry -------- A standards body SHOULD maintain a registry of known Version field data with references to appropriate specifications at a known URI. [Author's note: The URI is unspecified by this draft version and should be discussed and added.] Standards body considerations ----------------------------- In the main file structure, Version values 1 to 3 inclusive are to be assigned to maintainers and distributors of Doomseeker via DRDTeam ("Zalewa" and "Blzut3", hereforth also "The Doomseeker Team") as a grandfather policy for existing implementations (Doomseeker 1.3.3-24-ga1c716cf and prior). The version value 32768 is to be assigned to this draft specification update, and MAY be used to optionally indicate conformance up to this draft version of the specification. Subsequent published updates to this draft should use an unique non-overlapping version number. If multiple standards bodies exist for IpToCountry.dat specifications, those standards bodies conforming to this specification MUST cooperate together when possible to avoid creating interoperability issues with overlapping assigned field values. (In lieu of an agreed standards body and rules for governance of said standards body, the author suggests this document's standardization MAY be governed by Zalewa and Blzut3 for their previous maintainership and origins of Doomseeker and version 3 of the IpToCountry.dat specification, until such standards body, its members and governance are initially formed and agreed upon by an election vote process and discussion.) Code considerations ------------------- As of Doomseeker 1.3.3-24-ga1c716cf, only version 2 and 3 IpToCountry.dat files can be read. Due to version 3 missing specification for IPv6 GeoIP data, a new specification version will be needed to add support for a new IPv6 geodata section, which in turn would be unnecessarily incompatible with existing Doomseeker code or require spoofing the IpToCountry.dat version as 3 for backwards compatibility while such spoofing would otherwise not be needed. (Support for IPv6 geodata is not specified by this document.) Therefore for compatibility with this specification, Doomseeker and derivative works conforming to this specification SHOULD NOT reject IpToCountry.dat files with unrecognized version values in the range of 1-65534, and SHOULD attempt to process files with valid data to the best of its technical ability for backwards compatibility. Programs dealing with unsupported and unrecognized fields MUST ignore unrecognized/unsupported IpToCountry.dat sections and fields. The behavior for errors is otherwise undefined by this document, particularly for recognized versions with severe known implementation or interoperability issues, which SHOULD be deprecated by separate document updates. Security considerations ----------------------- This specification does not change the security properties of the IpToCountry.dat file format. Relaxing the version values for acceptance other than 2 or 3 in Doomseeker code is not seen to change or avoid the possibility non-valid and incompatible IP2C data disguised as version 2 or 3 data for any malicious data parsing attacks. The code considerations section further aims to standardize version and error handling. The version value size remains unchanged by this specification for memory safety. Authors ======= This document was authored and edited by Linda Lapinlampi. Copyright ========= Copyright (C) 2022 Linda Lapinlampi Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.