attachment

<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Chris,<br class=""><br class=""><blockquote type="cite" class="">On Mar 2, 2020, at 1:49 PM, Rizzo, Christopher via ipp <<a href="mailto:ipp@pwg.org" class="">ipp@pwg.org</a>> wrote:<br class=""><br class=""> <br class="">I'm trying to get thru the IPP Everywhere self-cert tests and fix any issues with our software.  The device under test (DUT) fails the very first test:<br class=""> <br class="">B-1 IPP Browse test: Printers appear in a search for "_ipp._tcp,_print" services.<br class=""> <br class="">The reason the device I'm testing fails, is because our device does not include ",_print" on the "_ipp._tcp" print service type.<br class=""> <br class="">I do not have strong knowledge of Bonjour requirements and MDNS itself, and I cannot find unambiguous requirements that say what "_print" is for and what it means to a client.  In addition, the Bonjour Printing spec version 1.2.1 section 7.5 Advertising Services seems ambiguous, because it has an example (Apple LaserWriter) of advertising services without ",_print" in the first paragraph, and then shows "_http._tcp,_printer" service type example in last paragraph.<br class=""></blockquote><div class=""><br class=""></div>So the _print sub-type (that's what the ",_print" part selects with ippfind) is defined in the IPP Everywhere specification.  Basically almost all IPP printers that support Bonjour also advertise the _ipp._tcp service type (as defined in the Bonjour Printing Specification) but we use the _print sub-type to differentiate an IPP printer from an IPP Everywhere printer.<div class=""><br class=""></div><div class="">(AirPrint does something similar, but with the _universal sub-type...)</div><div class=""> </div><div class=""><blockquote type="cite" class="">What specification can I refer to that explicitly explains what the purpose of ",_printer" is and why it is required?  (Actually - after writing this question and then reading RFC 6763 section 7.1 Selective Instance Enumeration - "_printer" subtype helps Safari Web Browser distinguish between a printer web page vs. a generic web server apparently, but that should only apply to the "_http" service - correct?) And on top of that, to my knowledge the ability to use Bonjour in Safari has been removed a few years back).  Where in the IPP Everywhere specification is the requirement the ",_print" be appended to printing service advertisements, and which service advertisements should it be appended to?<br class=""></blockquote><div class=""><br class=""></div>From the IPP Everywhere specification:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class="">4.2.1 Service (SRV) Instance Name</div></div><div class=""><div class=""><br class=""></div></div><div class=""><div class="">Printers MUST NOT use a service instance name containing a unique identifier by default. A unique identifier MAY be added to the instance if there is a name collision.</div></div><div class=""><div class=""><br class=""></div></div><div class=""><div class="">Printers that support DNS-SD MUST advertise the "_ipp._tcp" (generic IPP) and "_print._sub._ipp._tcp" (IPP EverywhereTM) services over mDNS.</div></div><div class=""><div class=""><br class=""></div></div><div class=""><div class="">Printers that support DNS-SD and the "ipps" URI scheme [RFC7472] MUST advertise the "_ipps._tcp" (generic IPPS) and "_print._sub._ipps._tcp" (IPP EverywhereTM Secure) services over mDNS.</div></div></blockquote><div class=""><div class=""><br class=""></div><blockquote type="cite" class="">Also, why does the test look for ",_print" when the Bonjour 1.2.1 spec and the RFC refers to ",_printer" as a sub-type on http advertisement?<br class=""></blockquote><div class=""><br class=""></div>The DNS-SD tests are only looking for the IPP and IPPS services, which use the "_print" sub-type.</div><div class=""><br class=""><div class="">________________________<br class="">Michael Sweet<br class=""><br class=""><br class=""></div><br class=""></div></body></html>