Hi Rao, I noticed a few issues which in part seem to be a confusion or contamination from PSARC 2009/308 <http://sac.eng.sun.com/PSARC/2009/308> See in-line comments for details..
I'm looking forward to seeing this work completed. Regards, Stacey On 25/06/2009 23:01, Rao Shoaib wrote: > I am submitting this one pager on behalf of Ed Posnak > (ed.posnak at gmail.com) as Ed does not have SWAN access and could not > submit it. > > Rao. > ------------------------------------------------------------------------ > > Template Version: @(#)onepager.txt 1.31 07/08/08 SMI > > This information is Copyright 2009 Sun Microsystems > > 1. Introduction > 1.1. Project/Component Working Name: > BIND Update to ISC libbind-6.0 > Should be "Update libresolv to ISC libbind-6.0" > 1.2. Name of Document Author/Supplier: > Ed Posnak > > 1.3. Date of This Document: > 6/25/2009 > > 1.4. Name of Major Document Customer(s)/Consumer(s): > 1.4.1. The Community you expect to review your project: > Solaris PAC > > 1.4.2. The ARC(s) you expect to review your project: > PSARC > > 1.4.3. The Director/VP who is "Sponsoring" this project: > greg.lavender at sun.com > > 1.4.4. The name of your business unit: > Solaris Networking > > 1.5. Email Aliases: > 1.5.1. Responsible Manager: Victor.Nelson at sun.com > 1.5.2. Responsible Engineer: ed.posnak at gmail.com > 1.5.3. Marketing Manager: Jeff.McMeekin at Sun.COM > 1.5.4. Interest List: bind-iteam-ext at sun.com > > 2. Project Summary > 2.1. Project Description: > > Provide latest and most up-to-date version of Internet Systems > Consortium (ISC) BIND in Solaris Operating Environment. > > Customer requirements and bug reports have driven the need for an > updated > version of BIND. The above two paragraphs are not accurate, what this project does is: > The resolver library, libresolv2, is currently based on > a mixture of ISC versions from around 2001 and it is desired to upgrade > them to version 6.0, which was released in 2009. > > Sun has made several changes to the ISC code, many of which are not > incorporated into the latest ISC release, and thus must be applied to > the > new code. In the previous port, source code changes were liberally > applied and documentation was not kept up to date, making the task of > upgrading to a new ISC release unnecessarily complicated. > I don't believe the above paragraph is quite right. As I recall much of the Sun changes were incorporated by ISC while some have not. For example see 6485024 "Solaris res_ninit() undocumented short-circuit trips up other applications" > A goal of this project is to minimize the amount of effort required in > future upgrades by (1) getting the Solaris code as close to the ISC > code > as possible and (2) fully and accurately documenting the set of changes > that will need to be carried forward into future upgrades. This > involves > eliminating source code changes that are unncessary and finding ways to > accomplish the original goal without modifying the source code. > Documenting Sun's changes involves first enumerating all changes that > were made to ISC source code, then determining which changes have > already > been incorporated into ISC's code base, and of those that haven't, > identifying the ones that need to be applied and carried forward. We > will > continue to submit our changes to ISC so that they may be incorporated > into a future ISC release; others will need to be applied in future > ports. We are striving to make this set of changes as small as possible > and to document it well. > > Whereas it is a goal of this project to make the libresolv2 source tree > more closely resemble the ISC source tree, it is a requirement for the > new libresolv.so.2 to be binary compatible with the previous version. > Thus we will do as much as possible within the limits of binary > compatibility to minimize changes to the ISC code. > > The primary deliverables are: > 1. Source code that matches ISC code more closely and > 2. A complete, up-to-date list of changes that Sun must retain going > forward > > Other deliverables include: > 1. Strategy and assumptions documents > 2. Suite of unit tests targeting Sun's changes and general > functionality > 3. Test plan and test results documents > > 2.2. Risks and Assumptions: > > The risk of introducing defect is high because the changes that we are > applying were originally made to code that has evolved significantly > over > the course of several years. This risk is further increased by > workarounds that are necessary to meet the requirement for binary > compatibility. Moreover, we do not have any unit tests for libresolv2. > > To mitigate the risk of introducing defects we are developing a suite > of > unit tests consisting of two types: tests for each of the > Solaris-specific changes and general tests of the public interface. The > Solaris-specific tests will give us confidence that our changes work as > advertised, and the general tests will give us confidence that our > changes did not break anything in the ISC code. > > (For details see our Strategy and assumptions documents: > http://opensolaris.org/os/project/bind/BINDPortingStrategy-v0.5.doc > > http://opensolaris.org/os/project/bind/BINDPortingAssumptions-v0.3.doc ) > > > 2.3. Release Binding > > The Required release binding is Patch. Revenue Product Engineering > will > back-port to Solaris 10 and possibly older sustained gates if security > issues necessitate. > *"will"* might be a bit strong for libresolv, a *"may"* would be more accurate. > 3. Business Summary > 3.1. Problem Area: > Solaris includes libresolv2 for DNS services, and it's broadly used > across many customer types. > > The current libresolv2 is based on source code that is 8-9 years old. > > > Advancements in the DNSSEC protocol have provided new Resource Record > NSEC3 [RFC 5155] and associated protocol which unlike its predecessor > NSEC can not be used to effectivly discover the whole domain. > The above paragraph is not suited for this one-pager as libbind does not provide DNSSEC functionality. > 3.2. Market/Requester: > > Solaris customers broadly > > 3.3. Business Justification: > > The current version of libresolv2 in Solaris is woefully outdated and > is in-fact now deemed EOL by ISC. > > By being up-to-date with the ISC version Sun is better able to provide > ISC security fixes swiftly. Newer versions also contain other bug fixes > and enhancements that many customers value. > > 3.4. Competitive Analysis: > Most OS's are shipping latest ISC code. > > > 3.5. Opportunity Window/Exposure: > N/A. > > 3.6. How will you know when you are done?: > > The updated libresolv2 library has been code reviewed, any comments > have > been incorporated, and the updated version passes all unit tests. > > 4. Technical Description: > 4.1. Details: > > The first phase of this project will involve identifying the set of > existing changes to ISC code that were made by Sun. By comparing > libresolv to the ISC source code on which it was based, a list of > existing changes will be created and documented. Changes will be > categorized as to whether they are already implemented in ISC libbind, > not implemented, obsolete, or not wanted and whether they are inherent > to > Solaris or could be submitted to ISC for inclusion in a future release. > > (See http://opensolaris.org/os/project/bind/ > BINDExistingChangesLists-libresolv2-v0.4.doc) > > In the second phase, all changes in the "not implemented" category will > be applied to the new ISC libbind source code. If the change is not > inherent to Solaris it will be submitted to ISC for inclusion in a > future > release. Other changes may be necessary to accommodate the evolution in > the ISC code over several years. An up-to-date list of changes > implemented will be maintained. > > (See: > > http://opensolaris.org/os/project/bind/BINDInterfaceChangesImplemented.doc > http://cr.opensolaris.org/~posnake/libresolv2-v0.5/ > http://cr.opensolaris.org/~posnake/public-headers-v0.4/ ) > > The third phase involves development and running of unit tests. A > specific unit test will be developed for each change that Sun makes to > the ISC source code. Moreover, unit tests will be developed to test the > public interface of libresolv2. > > (See http://opensolaris.org/os/project/bind/ > stcnv-libresolv2-src-2009-06-25.tar.bz2 ) > > > 4.2. Bug/RFE Number(s): > > - 6811100 Provide BIND 9.6.0 > CR 6811100 is being used to update BIND in the SFW gate. The CR that this ARC request is for is: 6289479 libresolv2 should be cleaned up Some other open CR's may also be addressed. > 4.3. In Scope: > > Updating the libresolv2 library to the latest version of ISC > libbind. > > 4.4. Out of Scope: > > - 6626959 DNS resolver specifies EDNS0 UDP payload size of zero > 6626959 is a BIND issue, not libresolv. > - 6541618 nscd coredumps in libresolv.so.2`__ns_samename > - 6289479 libresolv2 should be cleaned up > - 6485024 Solaris res_ninit() undocumented short-circuit > trips up other applications > 6541618 and 6485024 would most likely be addressed by this project. > - 6790669 BIND should ship example configuration and zone > files. > ok. > - 6686630 nslookup dumps core under certain conditions: > mem.c:877: INSIST(ctx->stats[i].gets == 0U) failed. > - 6680248 nslookup causes DNS request flood with certain > /etc/resolv.conf > - 6635218 S10 nslookup set debug does not show the search > list in resolv.conf > - 4636386 nslookup return same code if site is found/not found > - 6218253 SUNWbindr's upgrade attempt fails > - 6822736 Provide BIND 9 Sun Cryptographic Accelerator support > - 6710052 Bind should be delivering also sun4v optimized > version by default > - 4761436 Customer requests in.named to be installed to > run as non-root user. > Some of the above *may* be addressed by PSARC 2009/308 <http://sac.eng.sun.com/PSARC/2009/308> > Integrate BIND 9 test suite into STC2. > Presume that should read "Integrate *libresolv* test suite into STC2". > 4.5. Interfaces: > > The API/ABI of libresolv2 will not be changed in an incompatible way. > > Additions will be made to the following public header files: > /usr/include/netdb.h > /usr/include/resolv.h > /usr/include/arpa/inet.h > /usr/include/arpa/nameser.h > > See http://cr.opensolaris.org/~posnake/public-headers-v0.4/ > > 4.6. Doc Impact: > > RESOLVER(3RESOLV) and its aliases: > res_ninit > res_ourserver_p > fp_resstat > res_hostalias > res_pquery > res_nquery > res_nsearch > res_nquerydomain > res_nmkquery > res_nsend > res_nupdate > res_nmkupdate > res_nclose > res_nsendsigned > res_findzonecut > res_getservers > res_setservers > res_ndestroy > dn_comp > dn_expand > hstrerror > res_init > res_isourserver > fp_nquery > p_query > fp_query > hostalias > res_query > res_search > res_querydomain > res_mkquery > res_send > res_update > res_close > herror > > TSIG(3RESOLV) and its aliases: > ns_sign > ns_sign_tcp > ns_sign_tcp_init > ns_verify > ns_verify_tcp > ns_verify_tcp_init > ns_find_tsig > > INET_CIDR(3RESOLV) and its aliases: > inet_cidr_ntop > inet_cidr_pton > > 4.7. Admin/Config Impact: None. > > 4.8. HA Impact: > None. > 4.9. I18N/L10N Impact: > None. > > 4.10. Packaging & Delivery: > The updated SUNWcslr package will be delivered to ON > > 4.11. Security Impact: > > NSEC3 supported. > None. > 4.12. Dependencies: > None. > > 5. Reference Documents: > http://opensolaris.org/os/project/bind/BINDPortingStrategy-v0.5.doc > http://opensolaris.org/os/project/bind/BINDPortingAssumptions-v0.3.doc > > http://opensolaris.org/os/project/bind/BINDExistingChangesLists-libresolv2-v0.4.doc > http://opensolaris.org/os/project/bind/BINDInterfaceChangesImplemented.doc > http://cr.opensolaris.org/~posnake/libresolv2-v0.5/ > http://cr.opensolaris.org/~posnake/public-headers-v0.4/ > > http://opensolaris.org/os/project/bind/stcnv-libresolv2-src-2009-06-25.tar.bz2 > > 6. Resources and Schedule: > 6.1. Projected Availability: > > July 2009 > > 6.2. Cost of Effort: > 6 weeks, one person engineering, including unit test development, > QA process and documentation. > > 6.4. Product Approval Committee requested information: > 6.4.1. Consolidation or Component Name: > ON > 6.4.7. Target RTI Date/Release: > July 2009 > 6.4.8. Target Code Design Review Date: > July 2009 > 6.5. ARC review type: FastTrack > > 6.6. ARC Exposure: open > 6.6.1. Rationale: Part of OpenSolaris > > 7. Prototype Availability: > 7.1. Prototype Availability: > N/A > 7.2. Prototype Cost: > N/A > >