<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.8 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc compact="yes"?>
<?rfc iprnotified="no"?>
<?rfc strict="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-anima-brski-discovery-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="BRSKI-discovery">Discovery for BRSKI variations</title>

    <author initials="T." surname="Eckert" fullname="Toerless Eckert" role="editor">
      <organization abbrev="Futurewei">Futurewei USA</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>tte@cs.fau.de</email>
      </address>
    </author>
    <author initials="E." surname="Dijk" fullname="Esko Dijk">
      <organization>IoTconsultancy.nl</organization>
      <address>
        <email>esko.dijk@iotconsultancy.nl</email>
      </address>
    </author>

    <date year="2024"/>

    <area>Operations and Management</area>
    <workgroup>ANIMA</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 95?>

<t>This document specifies how BRSKI entities, such as registrars, proxies, pledges or others
that are acting as responders, can be discovered and selected by BRSKI entities acting as initiators.</t>



    </abstract>



  </front>

  <middle>


<?line 100?>

<section anchor="terminology"><name>Terminology</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<t>This document relies on the terminology defined in <xref target="BRSKI"/>.  The following terms are described partly in addition.</t>

<dl>
  <dt>Context:</dt>
  <dd>
    <t>See Variation Context.</t>
  </dd>
  <dt>Initiator:</dt>
  <dd>
    <t>A host that is using an IP transport protocol to initiate a connection or transaction to another host called the responder.</t>
  </dd>
  <dt>Initiator socket:</dt>
  <dd>
    <t>A socket consisting of an initiators IP or IPv6 address, protocol and protocol port number from which it
initiates connections or transactions to a responder (typically UDP or TCP).</t>
  </dd>
  <dt>Objective Name:</dt>
  <dd>
    <t>See Service Name.</t>
  </dd>
  <dt>Resource Type:</dt>
  <dd>
    <t>See Service Name.</t>
  </dd>
  <dt>Responder:</dt>
  <dd>
    <t>A host that is using an IP transport protocol to respond to transaction or connection requests from an Initiator.</t>
  </dd>
  <dt>Responder socket:</dt>
  <dd>
    <t>A socket consisting of a responders IP or IPv6 address, protocol and protocol port
number on which it responds to requests of the protocol (typically UDP or TCP).</t>
  </dd>
  <dt>Role:</dt>
  <dd>
    <t>In the context of this document, a type of entity in a variation of BRSKI that can act as a responder and whose supported variations can be discovered. BRSKI roles relevant in this document include Join Registrar, Join Proxy and Pledge. The IANA registry defined by this document allows to specify variations for any roles. See also Variation Context.</t>
  </dd>
  <dt>Socket:</dt>
  <dd>
    <t>The combination of am  IP or IPv6 address, an IP protocol that utilizes a port number (such as TCP or UDP) and a port number of that protocol.</t>
  </dd>
  <dt>Service Name:</dt>
  <dd>
    <t>The name for (a subset of) the functionality/API provided by a discoverable responder socket. This term is inherited from <xref target="DNS-SD"/> but unless otherwise specified also used in this document to apply to any other discovery functionality/API. The terminology used by other mechanisms typically differs. For example, when <xref target="GRASP"/> is used to discover a responder socket for BRSKI, the Objective Name carries the equivalent to the service name. In <xref target="CORE-LF"/>, the Resource Type (rt=) carries the equivalent of the service name.</t>
  </dd>
  <dt>Type:</dt>
  <dd>
    <t>See Variation Type.</t>
  </dd>
  <dt>Variation:</dt>
  <dd>
    <t>A combination one one variation choice each for every variation type applicable to the variation context of one discoverable BRSKI communications.
For example, in the context of BRSKI, a variation is one choice for "mode", one choice for "enroll" and once choice for "vformat".</t>
  </dd>
  <dt>Variation Context:</dt>
  <dd>
    <t>A set of Services for whom the same set of variations applies</t>
  </dd>
  <dt>Variation Type:</dt>
  <dd>
    <t>The name for one aspect of a protocol for which two or more choices exist (or may exist in the future), and where the choice
can technically be combined orthogonal to other variation types. This document defined the BRSKI variation types "mode", "enroll" and "vformat".</t>
  </dd>
  <dt>Variation Type Choice:</dt>
  <dd>
    <t>The name for different values that a particular variation type may have.
For example, this document does defines the choices "rrm" and "prm" for the BRSKI variation "mode".</t>
  </dd>
  <dt anchor="ACP">ACP:</dt>
  <dd>
    <t>"An Autonomic Control Plane", <xref target="RFC8994"/>.</t>
  </dd>
  <dt anchor="BRSKI">BRSKI:</dt>
  <dd>
    <t>"Bootstrapping Remote Secure Key Infrastructure", <xref target="RFC8995"/>.</t>
  </dd>
  <dt anchor="BRSKI-AE">BRSKI-AE:</dt>
  <dd>
    <t>"Alternative Enrollment Protocols in <xref target="BRSKI"/>", <xref target="I-D.ietf-anima-brski-ae"/>.</t>
  </dd>
  <dt anchor="BRSKI-PRM">BRSKI-PRM:</dt>
  <dd>
    <t>"<xref target="BRSKI"/> with Pledge in Responder Mode", <xref target="I-D.ietf-anima-brski-prm"/>.</t>
  </dd>
  <dt anchor="cBRSKI">cBRSKI:</dt>
  <dd>
    <t>"Constrained Bootstrapping Remote Secure Key Infrastructure (<xref target="BRSKI"/>)", <xref target="I-D.ietf-anima-constrained-voucher"/>.</t>
  </dd>
  <dt anchor="COAP">COAP:</dt>
  <dd>
    <t>"The Constrained Application Protocol (CoAP)", <xref target="RFC7252"/>.</t>
  </dd>
  <dt anchor="CORE-LF">CORE-LF:</dt>
  <dd>
    <t>"Constrained RESTful Environments (CoRE) Link Format", <xref target="RFC6690"/>.</t>
  </dd>
  <dt anchor="cPROXY">cPROXY:</dt>
  <dd>
    <t>"Constrained Join Proxy for Bootstrapping Protocols", <xref target="I-D.ietf-anima-constrained-join-proxy"/>.</t>
  </dd>
  <dt anchor="DNS-SD">DNS-SD:</dt>
  <dd>
    <t>"DNS-Based Service Discovery", <xref target="RFC6763"/>.</t>
  </dd>
  <dt anchor="EST">EST:</dt>
  <dd>
    <t>"Enrollment over Secure Transport", <xref target="RFC7030"/>.</t>
  </dd>
  <dt anchor="GRASP">GRASP:</dt>
  <dd>
    <t>"GeneRic Autonomic Signaling Protocol", <xref target="RFC8990"/>.</t>
  </dd>
  <dt anchor="GRASP-DNSSD">GRASP-DNSSD:</dt>
  <dd>
    <t>"DNS-SD Compatible Service Discovery in GeneRic Autonomic Signaling Protocol (GRASP)", <xref target="I-D.eckert-anima-grasp-dnssd"/>.</t>
  </dd>
  <dt anchor="JWS-VOUCHER">JWS-VOUCHER:</dt>
  <dd>
    <t>"JWS signed Voucher Artifacts for Bootstrapping Protocols", <xref target="I-D.ietf-anima-jws-voucher"/>.</t>
  </dd>
  <dt anchor="lwCMP">lwCMP:</dt>
  <dd>
    <t>"Lightweight Certificate Management Protocol (CMP) Profile", <xref target="I-D.ietf-lamps-lightweight-cmp-profile"/>.</t>
  </dd>
  <dt anchor="mDNS">mDNS:</dt>
  <dd>
    <t>"multicast DNS", <xref target="RFC6762"/>.</t>
  </dd>
  <dt anchor="SCEP">SCEP:</dt>
  <dd>
    <t>"Simple Certificate Enrolment Protocol", <xref target="RFC8894"/>.</t>
  </dd>
</dl>

</section>
<section anchor="overview"><name>Overview</name>

<t>The mechanisms described in this document are intended to help solve the following challenges.</t>

<t>Signaling BRSKI variation for responder selection.</t>

<t>When an initiator such as a proxy or pledge uses a mechanism such as
<xref target="DNS-SD"/> to discover an instance of a role it intends to connect to, such
as a registrar, it may discover more than one such instance. In the presence
of variations of the BRSKI mechanisms that impact interoperability, performance
or security, not all discovered instances may support exactly what the initiator needs to achieve
interoperability and/or best performance, security or other metrics. In this case, the service
announcement mechanism needs to carry the necessary additional information beside the name that
indicates the service to aid the initiator in
selecting an instance that it can inter operate and achieve best performance with.</t>

<t>Easier use of additional discovery mechanisms.</t>

<t>In the presence of different discovery mechanisms, such as <xref target="DNS-SD"/>, <xref target="GRASP"/>,
<xref target="CORE-LF"/> or others, the details of how to apply each of these mechanisms are usually
specified individually for each mechanism, easily resulting in inconsistencies. Deriving
as much as possible the details of discovery from a common specification and registries
can reduce such inconsistencies and easy introduction of additional discovery mechanisms.</t>

<t>Generalization of principles related to discovery and operation of proxies.</t>

<t>Because of the unified approach to discovery of BRSKI Variations described in this document,
it also allows to use <xref target="DNS-SD"/> for document for <xref target="cBRSKI"/> and <xref target="cPROXY"/>, which may be
of interest in networks such as Thread, which use <xref target="DNS-SD"/>.</t>

</section>
<section anchor="specification"><name>Specification</name>

<section anchor="abstracted-brski-discovery-and-selection"><name>Abstracted BRSKI discovery and selection</name>

<t>In the abstract model of discovery used by this document and intended to apply to all described discovery mechanisms, an entity operating as an initiator of a transport
connection for a particular BRSKI protocol role, such as a pledge, discovers one or more responder sockets
(IP/IPv6-address, responder-port, IP-protocol) of entities acting as responders for the peer BRSKI role, such
as registrar. The initiator uses some discovery mechanism such as <xref target="DNS-SD"/>, <xref target="GRASP"/> or <xref target="CORE-LF"/>. In the
the initiator looks for a particular combination of a Service Name and an IP-protocol, and in return learns
about responder sockets from one or more responders that use this IP-protocol and serve the requested Service Name
type service across it. It also learns the BRSKI variation(s) supported on the socket.</t>

<t>Service Name is the name of the protocol element used in <xref target="DNS-SD"/>, unless explicitly specified, it is used
as a placeholder for the equivalent protocol elements in other discovery mechanisms. In <xref target="GRASP"/>, it is called
objective-name, in <xref target="CORE-LF"/> it is called Resource Type.</t>

<t>Upon discovery of the available sockets, the initiator selects one, whose supported variation(s) best match
the expectations of the initiator, including performance, security or other preferences. Selection may also
include attempting to establish a connection to the responder socket, and upon connection failure
to attempt connecting to the next best responder socket. This is for example necessary when discovery
information may not be updated in real-time, and the best responder has gone offline.</t>

</section>
<section anchor="variation-contexts"><name>Variation Contexts</name>

<t>A Variation Context is a set of (Discover Mechanism, Service Names, IP-protocols) across which this document
and the registry of variations defines a common set of variations. The initial registry defined in this
document defines two variation contexts.</t>

<dl>
  <dt>BRSKI context:</dt>
  <dd>
    <t>context for discovery of BRSKI registrar and proxy variations by proxies, pledges or agents
(as defined in <xref target="BRSKI-PRM"/>) via the Service Names defined for <xref target="DNS-SD"/> and <xref target="GRASP"/> via
TCP and hence (by default) TLS (version 1.2 or higher according to <xref target="BRSKI"/>).</t>
  </dd>
  <dt>cBRSKI context (constrained BRSKI):</dt>
  <dd>
    <t>context for discovery of BRSKI registrar and proxy variations by proxies, pledges
via the Service Names defined for <xref target="DNS-SD"/>, <xref target="GRASP"/> and <xref target="CORE-LF"/> via UDP, and hence (by default) secure COAP.</t>
  </dd>
</dl>

<t>Note that the Service Names for cBRSKI include the same <xref target="DNS-SD"/> Service Names as for the BRSKI context,
hence enabling the use of <xref target="DNS-SD"/> with cBRSKI.</t>

<t>This document does not define variations for different end-to-end encryption mechanisms, so
only the "(by default)" options exist at the time of writing this document. However, the mechanisms described here
can also be used to introduce backward incompatible new secure transport options. For example when responders start
to support only TLS 1.3 or higher in the presence of TLS 1.2 only initiators, then new variations can be added,
such that those initiators will not select those responders.</t>

<t>This document does not introduce variation contexts for discovery of other BRSKI roles, such as discovery
of pledges by agents (as defined in <xref target="BRSKI-PRM"/>), or discovery of MASA by registrars. However, the registry
introduced by this document is defined such that it can be extended by such additional contexts through future
documents.</t>

</section>
<section anchor="variation-types-and-choices"><name>Variation Types and Choices</name>

<t>A Variation Type is a variation in one aspect of the BRSKI connection between initiator and responder that ideally
orthogonal from variations in other aspects of the BRSKI connection.</t>

<t>A Variation Type Choice is one alternative (aka: value) for its Variation Type.</t>

<t>This document, and the initial registry documenting the variation types introduces three variation types as follows:</t>

<dl>
  <dt>mode:</dt>
  <dd>
    <t>A variation in the basic sequence of URI endpoints communicated. This document introduces the choices of
"rrm" to indicate the endpoints and sequence as defined in <xref target="BRSKI"/> and "prm" to indicate the endpoints and sequence
as defined in <xref target="BRSKI-PRM"/>. Note that registrars also act as responders in "prm". "rrm" was chosen because the
more logical "pim" (pledge initiator mode) term was feared to cause confusion with other technologies that use that term.</t>
  </dd>
  <dt>vformat (voucher format):</dt>
  <dd>
    <t>A variation in the encoding format of the voucher communicated between registrar and pledge. This document introduces
the choices "cms" as defined in <xref target="BRSKI"/>, "cose" as defined in <xref target="cBRSKI"/> and "jose" as defined in <xref target="JWS-VOUCHER"/>.</t>
  </dd>
  <dt>enroll:</dt>
  <dd>
    <t>A variation in the URI endpoints used for enrollment of the pledge with keying material (trust anchors and certificate (chain)). This document introduces the following :choices
</t>

    <t><list style="symbols">
      <t>"est" as introduced by <xref target="BRSKI"/> to indicate the <xref target="EST"/> protocol, which is default</t>
      <t>"cmp" to indicate the CMP protocol according to the Lightweight CMP profile (<xref target="lwCMP"/>). The respective adaptations to BRSKI have been introduced by <xref target="BRSKI-AE"/>.</t>
      <t>"scep" to indicate <xref target="SCEP"/>. This is only a reservation, because no specification for the use of <xref target="SCEP"/> with BRSKI exists.</t>
    </list></t>
  </dd>
</dl>

</section>
<section anchor="variations"><name>Variations</name>

<t>A Variation is the combination of one Choice each for every Variation Type applicable to the Variation Context.
In other words, a variation is a possible instance of BRSKI if supported by initiator and responder. In <xref target="BRSKI"/>,
the default variation is "registrar responder mode" (rrm) and use of the "cms voucher format" (cms).</t>

</section>
<section anchor="brski-variations-discovery-registry"><name>BRSKI Variations Discovery Registry</name>

<t>The IANA "BRSKI Variations Registry" as specified by this document, see <xref target="registry"/> specifies the
defined parameters for discovery of BRSKI variations.</t>

<section anchor="brski-variation-contexts-table"><name>BRSKI Variation Contexts table</name>

<t>This table, <xref target="fig-contexts"/>, defines the BRSKI Variations Contexts.</t>

<t>The "Applicable Variation Types" lists the Variation Types from whose choices a Variation for this
context is formed. The "Service Name(s)" column lists the discovery mechanisms and their Service Name(s)
that constitute the context.</t>

</section>
<section anchor="brski-variation-type-choices-table"><name>BRSKI Variation Type Choices table</name>

<t>This table, <xref target="fig-choices"/>, defines the Variations Type Choices.</t>

<t>The "Context" column lists the BRSKI Variation Context(s) to which this line applies. If it is empty, then the same
Context(s) apply as that of the last prior line with a non-empty Context column.</t>

<t>The "Variation Type" column lists the BRSKI Variation Type to which this line applies. If it is empty, then the
same Variation Type applies as that of the last prior line with a non-empty Variation Type column.
Variation Types <bcp14>MUST</bcp14> the listed in the order in which the Variation Types are listed in the Applicable Variation Types
column of the BRSKI Variation Contexts table.</t>

<t>The "Variation Type Choice" column defines a Variation Type Choice term within the Context(s) of the line.
To allow the most flexible encodings of variations, all Variation Types and Variation Type Choices <bcp14>MUST</bcp14> be unique strings (across all Variation Types).
This allows to encode Variation Type Choices in a discovery mechanism without indicating their Variation Type. Variation Types
and Variation Type Choices and <bcp14>MUST</bcp14> be strings from lowercase letters a-z and digits 0-9 and <bcp14>MUST</bcp14> start with a letter. The
maximum length of a Variation Type Choice is 12 characters.</t>

<t>The "Reference" column specifies the documents which describe the Variation Type Choice. Relevant specification
includes those that only specify the semantics without referring to the aspects of discovery and/or those
that specify only the Discovery aspects. Current RFCs for BRSKI variations preceding this RFC typically
only specify the semantics, and this document adds the discovery aspects.</t>

<t>The "Dflt" Flag specifies a Variation Type Choice that is assumed to be the default Choice for the Context,
such as "rrm" for the BRSKI context. Such a Variation Type Choice is to be assumed to be supported in discovery
if discovery is performed without indication of any or an empty signaling element to carry the Variation or
Variation Choices. For example, <xref target="BRSKI"/> specifies the empty string "" as the objective-value in <xref target="GRASP"/>
discovery. Because "rrm", "est" and "cms" are default in the BRSKI context, this Discovery signaling
indicates the support for those Variation Type Choices.</t>

<t>The "Dflt<em>" Flag specifies a Variation Type Choice that is only default in a subset of Discovery options in a
context. The Note(s) column has then to explain which subset this is. Like for "Dflt", the signaling in
this subset of Discovery options can then forego indication of the "Dflt</em>" Variation Type Choice.</t>

<t>The "Rsvd" Flag specifies a Variation Type Choice for which no complete specification exist on how to use it
within BRSKI (or more specifically the context), but which is known to be of potential interest. "Rsvd"
Variation Type Choices <bcp14>MUST NOT</bcp14> be considered for the  Discoverable Variations table. They are documented
primarily to reserve the Variation Type Choice term.</t>

<t>The Note(s) section expands the Variation Type Choice terms and provides additional beneficial specification
references beyond the "Reference" column.</t>

</section>
<section anchor="variation"><name>BRSKI Discoverable Variations table</name>

<t>This table <xref target="fig-variations"/> enumerates the Discoverable Variations and categorizes them.</t>

<t>The "Context" column lists the BRSKI Variation Context(s) to which this line applies. If it is empty, then the same
Context(s) apply as that of the last prior line with a non-empty Context column.</t>

<t>The "Spec / Applicability" lists the document(s) that specify the variation, if the variation is
explicitly described. If the variation is not described explicitly, but rather a combination of
Variation Type Choices from more than one BRSKI related specification, then this column will
indicate "-" if by expert opinion it is assumed that this variation should work, or "NA", if
by expert opinion, this variation could not work. The "Explanations" column includes references
to the relevant documents and as necessary additional explanation.</t>

<t>The "Variation" column lists the Variation Type Choices that form the Variation. The Variation Type Choices
<bcp14>MUST</bcp14> be listed in the order in which the Variation Types are listed in the Applicable Variation Types
column of the BRSKI Variation Contexts table.</t>

<t>The "Variation String" column has the string term used to indicate the variation when using the
simple encoding of BRSKI Variation Discovery for GRASP as described in <xref target="GRASP"/>. It is formed by
concatenating the Choices term from the Variation column with the "-" character, excluding those
Choices terms (and "-" concatenator) which are Default for the Context. If this procedure ends
up with the empty string, then this is indicated as "" in the column.</t>

<t>The "Explanations" column explains the "Spec / Applicability" status of the Variation.</t>

</section>
<section anchor="extending-or-modifying-the-registry"><name>Extending or modifying the registry</name>

<t>Unless otherwise specified below, extension or changes to the registry require standards action.</t>

<t>Additional Variation Type Choices and Variation Context discovery mechanism Service Names including
additional discovery mechanisms require (only) specification and expert review if they refer to non standard action
protocols and/or protocol variation aspects. For example, a specification how to use <xref target="SCEP"/> with BRSKI would
fall under this clause as it is an informational RFC.</t>

<t>Non standards action Variation Type Choices can not be Default(Dflt). They can only be Dflt* for non standards action
(sub)Contexts.</t>

<t>Reservation of additional Variation Type Choices requires (only) expert review.</t>

<t>Additional Contexts <bcp14>MUST</bcp14> be added at the end of the BRSKI Variation Contexts table.</t>

<t>Additional Variation Types <bcp14>MUST</bcp14> be added at the end of the Applicable Variation Types column of the
BRSKI Variation Contexts table and at the end of existing lines for the Context in the
BRSKI Variation Type Choices. Additional Variation Types <bcp14>MUST</bcp14> be introduced with a Default (Dflt)
Variation Type Choice. These rules ensures that the rule to create the Variation String for GRASP
(and as desired by other discovery mechanism), and it also enables to add new Variation Type and Choices
without changing pre-existing Variation Strings: Any Variations String implicitly include the Default Choice for
any future Variation Types.</t>

<t>When a new Variation Type is added, their Default Choice <bcp14>SHOULD</bcp14> be added to the Variation Column of existing
applicable lines in the BRSKI Discoverable Variations table. Variations that include new non-Default
Variation Type Choices <bcp14>SHOULD</bcp14> be added at the end of the existing lines for the Context.</t>

</section>
</section>
<section anchor="brski-join-proxies-support-for-variations"><name>BRSKI Join Proxies support for Variations</name>

<section anchor="permissible-variations"><name>Permissible Variations</name>

<t>Variations according to the terminology of this document are those that do not require changes to BRSKI join proxy operations,
but that can transparently pass across existing join proxies without changes to them - as long as they support the rules
outlined in this document.</t>

<t>Different choices for e.g.: pledge to registrar encryption mechanisms, voucher format (vformat), use of different URI endpoints or enrollment
protocol endpoints (mode) are all transparent to join proxies, and hence join proxies can not only support existing, well-defined
Choices of these Variation Types, but without changes to the proxies also future ones - and only those are permitted to become
Variation Type Choices.</t>

<t>Changes to the BRSKI mechanism that do require additional changes to join proxies are not considered Variations
according to this document and <bcp14>MUST NOT</bcp14> use the same discovery protocol signaling elements as those defined for variations
by this document. Instead, they <bcp14>SHOULD</bcp14> use different combinations of Service Name and Protocol (e.g.: TCP vs. UDP).</t>

<t>For example, the stateless join proxy mode defined by <xref target="cPROXY"/> is such a mechanism that requires explicit
join proxy support. Therefore, registrars sockets that support circuit proxy mode use the GRASP objective "AN_join_registrar",
and registrar sockets that support stateless join proxy mode use the GRASP objective "AN_join_registrar_rjp". This
enables join proxies to select the registrar and socket according to what the join proxy supports and prefers. By
not using the same signaling element(s) for variations, join proxies can support discovery of all variations
independent of their support for stateless join proxy operations.</t>

</section>
<section anchor="proxy"><name>Join Proxy support for Variations</name>

<t>Join proxies supporting the mechanisms of this document <bcp14>MUST</bcp14> signal for each socket they announce to initiators via a discovery
mechanism the Variation(s) supported on the socket. These Variation(s) <bcp14>MUST</bcp14> all be supported by the registrar that the join
proxy then uses for the connection from the initiator (e.g.: pledge). Pledges <bcp14>SHOULD</bcp14> announce sockets to initiators so that
all Variations that are supported by registrars that the join proxy can interoperate with are also available to the initiators
connecting to the join proxy.</t>

<t>To meet these requirements, join proxies can employ different implementation option. In the most simple one, a join proxy
allocates a separate responder socket for every Variation for which it discovers one or more registrars supporting
this Variation. It then announces that socket with only that one Variation in the discovery mechanism, even if the Registrar(s) are all
announcing their socket with multiple Variations. When the join proxy operates in circuit mode, it can then
select one of the registrars supporting the variation for every new initiator connection based on policies
as specified by BRSKI specifications and/or discovery parameters, such as priority and weight when <xref target="DNS-SD"/> is used,
and redundant registrars include those parameters.</t>

<t>TBD: insert example of received Registrar announcement and created proxy announcement ??</t>

<t>Join proxies <bcp14>MAY</bcp14> reduce the number of sockets announced to initiators by using a single socket for all Variations for
which they have the same set of registrar sockets supporting those Variations. This primarily helps to reduce the size
of the discovery messages to initiators and can save socket resources on the join proxy.</t>

<t>Join proxies <bcp14>MAY</bcp14> create multiple sockets in support of other discovery options, even for the same Variation(s).
For example, if <xref target="DNS-SD"/> is used by two registrars, both announcing the same priority but different weights, then
the join proxy may create a separate socket for each of these registrars - and their variations, so that the join proxy can equally announce the same
priority and weight for both sockets to initiators. This allows to maintain the desired weights of use of registrars,
even when the join proxy operates in stateless mode, in which it can not select a separate registrar for every
client initiating a connection.</t>

</section>
<section anchor="colo"><name>Co-location of Proxy and Registrar</name>

<t>In networks using <xref target="BRSKI"/> and <xref target="ACP"/>, registrars must have a co-located
proxy, because pledges can only use single-hop discovery (DULL-GRASP) and will only discover
proxies, but not registrar. Such a co-located proxy does not constitute additional processing/code
on a registrar supporting circuit mode, it simply implies that the registrars BRSKI services(s) are
announced with a proxy Service Name, to support pledges, and the  registrar service name, to
support join proxies.</t>

<t>To ease consistency of deployment models in the face of different discovery mechanisms, Variations and
non-Variation enhancements to BRSKI, it is <bcp14>RECOMMENDED</bcp14> that all future options to BRSKI do always have
a Service Name for proxies and a separate Service Name in support of pledge or other initiators. Pledges
and other initiators <bcp14>SHOULD</bcp14> always only look for the proxy Service Name, and only Proxies should look
for a registrar Service Name. Registrars therefore <bcp14>SHOULD</bcp14> always include the proxy functionality according
to the prior paragraph. This only involves additional code on the registrar beyond the service announcement
in case the Registrar would otherwise not implement circuit mode.</t>

</section>
</section>
<section anchor="brski-pledges-support-for-variations"><name>BRSKI Pledges support for Variations</name>

<section anchor="brski-pledge-context"><name>BRSKI-PLEDGE context</name>

<t>BRSKI-PLEDGE is the context for discovery of pledges by nodes such as registrar-agents.
Pledges supporting <xref target="BRSKI-PRM"/> <bcp14>MUST</bcp14> support it. It may also be used by other variations of BRSKI
when supported by pledges.</t>

<t>Pledges supporting BRSKI-PLEDGE <bcp14>MUST</bcp14> support DNS-SD for discovery via mDNS, using link-local scope.
For DNS-SD discovery beyond link-local scope, pledges <bcp14>SHOULD</bcp14> support DNS-SD via <xref target="I-D.ietf-dnssd-srp"/>.</t>

<t>TBD: Is there sufficient auto-configuration support in <xref target="I-D.ietf-dnssd-srp"/>, that pledges without any
configuration can use it, and if so, do we need to raise specific additional requirements to enable this
in pledges ?</t>

<t>These DNS-SD requirements are defaults. Specifications for specific deployment contexts such as specific
type of radio network solutions may need to specify their own requirements overriding or amending these
requirements.</t>

<t>Pledges <bcp14>MUST</bcp14> support to be discoverable via their service instance name. They <bcp14>MAY</bcp14> be discoverable
via DNS-SD browsing, so that registrar-agents can find even unexpected pledges through DNS-SD browsing.</t>

<t>Support for browsing is required to discover over the network pledges supporting only <xref target="BRSKI-PRM"/>,
but not <xref target="BRSKI"/> if they have no known serial-number information from which their service instance
name can be constructed, so it is a crucial feature for robust enrollment.  See <xref target="security-considerations"/>
for more details about discovery and BRSKI-PLEDGE.</t>

<t>When pledges are discoverable vis DNS-SD browsing, they <bcp14>MUST</bcp14> expect that a large number of pledges
exist in the network at the same time, such as in the order of 100 or more, and schedule their responses
according to the procedures in <xref target="mDNS"/> and <xref target="DNS-SD"/> to avoid simultaneous reply from all pledges.</t>

<t>TBD: What is the best section in mDNS/DNS-SD to point to for this timed reply to scale ?</t>

<t>Browsing via DNS-SD for a pledge is circumvented by the pledge not announcing its PTR RR for
"brski-registrar". Technically, the remaining RR may not constitute full DNS-SD service, but
they do provide the required discovery for the known service instance name of the pledge.</t>

<t>counter measures such as limiting the number and rate of PRM connects that they accept, ideally
on a per-initiator basis (assuming that DDoS attacks are more harder to mount than single
attacker DoS attacks).</t>

<section anchor="service-instance-name"><name>Service Instance Name</name>

<t>The service instance name chosen by a BRSKI pledge <bcp14>MUST</bcp14> be composed from information which is</t>

<t><list style="symbols">
  <t>Easily known by BRSKI operations, such as the operational personnel or software automation,
specifically sales integration,</t>
  <t>Available to the pledges BRSKI software itself, for example by being encoded in some attribute of the IDevID.</t>
</list></t>

<t>Typically, a customer will know the serial number of a product from sales information, or even
from bar-code/QR-codes on the product itself. If this serial number is used as the service instance
name to discover a pledge from a registrar-agent, then this may lead to possible duplicate replies
from two or more pledges having the same serial number, such as in the following cases:</t>

<t><list style="numbers">
  <t>A manufacturer has different product lines and re-uses serial-numbers across them.</t>
  <t>Two different manufacturer re-use the same serial-numbers.</t>
</list></t>

<t>If pledges enable browsing of their service instance name, they <bcp14>MAY</bcp14> support <xref target="DNS-SD"/> specified
procedures to create unique service instance names when they discover such clashes, by appending
a space and serial number, starting with 2 to the service instance name: "&lt;service-instance-name&gt; (2)",
as described in <xref target="DNS-SD"/> Appendix D.</t>

<t>Nevertheless, this approach to resolving conflicts is not desirable:</t>

<t><list style="symbols">
  <t>If browsing of DNS-SD service instance name is not supported, registrar-agents would have to
always (and mostly wrongly) guess that there is a clash and (mostly unnecessarily) search
for "&lt;service-instance-name&gt; (2)".</t>
  <t>If a clash exists between pledges from the same manufacturer, and even if the registrar-agent
then attempts to start enrolling all pledges with the same clashing service instance name,
it may not have enough information to determine which the correct pledge is. This would happen
especially if the IDevID from both devices (of different product type), had the same serial
number, and the CA of both was the same (because they come from the same manufacturer).
Even if some other IDevID field was used to distinguish their device model, the registrar-agent
would not be able to determine that difference without additional vendor specific programming.</t>
</list></t>

<t>In result:</t>

<t><list style="symbols">
  <t>Vendors <bcp14>MUST</bcp14> document a scheme how their pledges form a service instance name from
information available to the customer of the pledge.</t>
  <t>These service instance names <bcp14>MUST</bcp14> be unique across all IDevID of the manufacturer that
share the same CA.</t>
</list></t>

<t>The following mechanisms are recommended:</t>

<t><list style="symbols">
  <t>Pledges <bcp14>SHOULD</bcp14> encode manufacturer unique product instance information in their
subject name serialNumber. <xref target="RFC5280"/> calls this the X520SerialNumber.</t>
  <t>Pledges <bcp14>SHOULD</bcp14> make this serialNumber information consistent with easily accessible
product instance information when in physical possession of the pledge, such as
product type code and serial number on bar-code/QR-code to enable <xref target="BRSKI-PRM"/> discovery
without additional backend sales integration. Note that discovery alone does not
allow for enrollment!</t>
  <t>Pledges <bcp14>SHOULD</bcp14> construct their service instance name by concatenating
their X520SerialNumber with a domain name prefix that is used by the manufacturer
and thus allows to disambiguate devices from different manufacturer using the
same serialNumber scheme, and hence the likelihood of service instance name clashes.</t>
</list></t>

<figure title="Example service instance name data" anchor="service-name-example"><artwork><![CDATA[
Service Instance Name:
  "PID:Model-0815 SN:WLDPC2117A99.example.com"

Manufacturer published Service Instance Name schema:
 PID:\<PID>\\ SN:\<SN>.example.com

Pledge IDevID certificate information:
  ; Format as shown by e.g.: openssh
  Subject: serialNumber = "PID:Model-0815 SN:WLDPC2117A99",
    O = Example, CN = Model-0815

DNS-SD RR for the pledge:
  ; PTR RR to support browsing / discovery of service instance name
  _brski-pledge._tcp.local  IN PTR
    PID:Model-0815\\ SN:WLDPC2117A99\\.example\\.com._brski-pledge._tcp.local

  ; SRC and TXT RR for the service instance name
  PID:Model-0815\\ SN:WLDPC2117A99\\.example\\.com._brski-pledge._tcp.local
    IN SRV 1 1
    PID:Model-0815\\ SN:WLDPC2117A99\\.example\\.com.local
  PID:Model-0815\\ SN:WLDPC2117A99\\.example\\.com._brski-pledge._tcp.local
    IN TXT ""

  ; AAAA address resolution for the target host name
  PID:Model-0815\\ SN:WLDPC2117A99\\.example\\.com.local
    IN AAAA fda3:79a6:f6ee:0000::0200:0000:6400:00a1
]]></artwork></figure>

<t>In <xref target="service-name-example"/>, the manufacturer "example" identifies device instances
through a product identifier &lt;PID&gt; and a serial number &lt;SN&gt;. Both are printed on labels
on the product/packaging and/or communicated during purchase of the product.</t>

<t>The service instance name of pledges from this manufacturer are using the
string "PID:&lt;PID&gt; SN:&lt;SN&gt;.example.com". "example.com" is assumed to be a
domain owned by this manufacturer. &lt;PID&gt; and &lt;SN&gt; are replaced by the actual
strings.</t>

<t>The IDevID encodes the service instance name without the domain ending (".example.com")
in the X520SerialNumber field. Other fields of the IDevID are not used.</t>

<t>The resulting DNS-SD RRs that the pledge announces are shown in the example.
" " and "." characters are escaped as recommended by <xref target="DNS-SD"/>.</t>

<t>In this example, the same string as constructed for the service instance name
is also used as the target host name. This is of course not necessary, but
unless the pledge already obtains a host name through other DNS means,
re-using the same name allows to avoid coming up with a second method to
construct a unique name.</t>

</section>
</section>
</section>
<section anchor="variation-signaling-and-encoding-rules-for-different-discovery-mechanisms"><name>Variation signaling and encoding rules for different discovery mechanisms</name>

<section anchor="dns-sd"><name>DNS-SD</name>

<section anchor="signaling"><name>Signaling</name>

<t>The following definitions apply to any instantiation of DNS-SD including DNS-SD via mDNS as defined in
<xref target="DNS-SD"/>, but also via unicast DNS, for example by registering the necessary DNS-SD Resource Records (RR) via <xref target="I-D.ietf-dnssd-srp"/> (SRP).</t>

<t>The requirements in this document do not guarantee interoperability when using DNS-SD, instead, they need to be amended
with deployment specific specifications / requirements as to which signaling variation, such as mDNS
or unicast DNS with SRP is to be supported between initiator and responder. When using unicast DNS
(with SRP), additional mechanisms are required to learn the IP / IPv6 address(es) of feasible DNS and
SRP servers, and deployment may also need agreements for the (default) domain they want to use in
unicast DNS. Hence, a mandatory to implement (MTI) profile is not feasible because of the wide range
of variations to deploy DNS-SD.</t>

<t>TBD: We could say that mDNS <bcp14>MUST</bcp14> be supported, unless the network context defines an interoperable
mode to support DNS-SD without mDNS ???</t>

</section>
<section anchor="encoding"><name>Encoding</name>

<t>Variation Type Choices defined in the IANA registry <xref target="fig-variations"/> are encoded as <xref target="DNS-SD"/> Keys with
a value of 1 in the DNS-SD service instances TXT RR.
This is possible because all Variation Type Choices are required to be unique across all Variation Types. It also allows to shorten
the encoding from "key=1" to just "key" for every Variation Type Choice, so that the TXT-DATA encoding can be more compact.</t>

<t>If the TXT Record does not contain a Variation Type Choice for a particular applicable Variation Type, then this indicates
support for the Default Choice of this Variation Type in the context of the DNS-SD Service Name. For example, if the TXT
Record is "jose", then this indicates support for "rrm" and "est", if the Service Name is brski-registrar or brski-proxy and the
protocol is TCP (BRSKI Context), but also when the protocol is UDP (cBRSKI context), because "rrm" and "est" are defaults
in both contexts.</t>

<t>If multiple Variation Type Choices for the same Variation Type are indicated, then this implies
that either of these Variation Type Choices is supported in conjunction with any of the other
Variation Type Choices in the same TXT Record. For example, if the TXT Record is "prm" "rrm" "cms" "jose", then
this implies support for rrm-cms-est, rrm-jose-est, prm-cms-est and prm-jose-est. This example also shows
that if the default Variation Type Choice, such as "rrm" and another Choice of the same Variation Type ("prm") are to
be indicated as supported, then both need to be included in the TXT Record.</t>

<t>In <xref target="DNS-SD"/>, a responder does not only indicate a Service Name, but also its Service Instance Name, which needs
to be unique across the domain to support initiators selecting a responder. This specification makes no recommendation
for choosing the Instance portion of that name. Usually it is the same, or derived from some form of pre-existing system name.</t>

<t>Registrars <bcp14>SHOULD</bcp14> support support their configuration without specifying a name to use in the Service Instance Name to minimize the
amount of configuration required. Registrars <bcp14>SHOULD</bcp14> support the configuration of such a name.</t>

<t>If the responder needs to indicate different sockets for different (set of) Variations, for example,
when operating as a proxy, according to <xref target="proxy"/>, then it needs to signal for each socket a separate Service Instance Name
with the appropriate port information in its SRV Record and the supported Variations for that socket in the TXT Record of that
Service Instance Name. In this case, it is <bcp14>RECOMMENDED</bcp14> that the Instance Name includes the Variation it supports,
such as in the format specified in <xref target="variation"/> and used in the Variation String column of the <xref target="fig-variations"/> table.</t>

<figure title="DNS-SD for a simple BRSKI and cBRSKI registrar" anchor="dnssd-example-1"><artwork><![CDATA[
               _brski-registrar._tcp.local
               IN PTR  0200:0000:7400._brski-registrar._tcp.local
0200:0000:7400._brski-registrar._tcp.local
                IN SRV  1 2 4555 0200:0000:7400.local
0200:0000:7400._brski-registrar._tcp.local IN TXT  "EST-TLS" "prm-jose" "cmp"
0200:0000:7400.local
                IN AAAA  fda3:79a6:f6ee:0000::0200:0000:6400:0001

               _brski-registrar._udp.local
                IN PTR  0200:0000:7400._brski-registrar._udp.local
0200:0000:7400._brski-registrar._udp.local
                IN SRV  1 2 5684 0200:0000:7400.local
0200:0000:7400._brski-registrar._udp.local IN TXT  "rrm-cose"
]]></artwork></figure>

<t>In the above example <xref target="dnssd-example-2"/>, a registrar supports BRSKI with "rrm" and "prm" modes across the same TCP socket, port 4555.
It uses "cms" voucher format and "est" enrollment, which are not included in the TXT strings because both are default for
_brski-registrar._tcp. The registrar also offers cBRSKI with "rrm" mode,  "cose" voucher and "est" enrollment on UDP port 5684,
the COAP over DTLS default port. The TXT RR for this has only an empty string because "rrm", "cose" and
"est" are default for cBRSKI.</t>

<t>As the instance name, the registrar uses in this example the MAC address "0200:0000:7400", which is
MAC address of the interface on which the registrar has the IPv6 address "fda3:79a6:f6ee:0000::0200:0000:6400:0001".
The registrar should know that this MAC address is globally unique (assigned by IEEE). Else it should instead
use its IPv6 address as the Instance Name. For example, if the registrar is just a software application not
knowing the specifics of the hardware it is running on, the MAC address <bcp14>MUST NOT</bcp14> be used. If only mDNS is used
(as in this example), then the IPv6 link-local address would also suffice as the Instance Name.</t>

<t>In this example, a single Instance Name suffices, because BRSKI and cBRSKI are two separate service
contexts: they are distinguished by different protocols: TCP vs. UDP.</t>

<figure title="DNS-SD for a BRSKI registrar supporting RRM and PRM" anchor="dnssd-example-2"><artwork><![CDATA[
0123456789012345678901234567890123456789012345678901234567890123456789
                   _brski-registrar._tcp.local
               IN PTR  0200:0000:7400-rrm._brski-registrar._tcp.local
0200:0000:7400-rrm._brski-registrar._tcp.local
               IN SRV  1 2 4555 0200:0000:7400-rrm.local
0200:0000:7400-rrm._brski-registrar._tcp.local IN TXT ""
0200:0000:7400-rrm.local
               IN AAAA fda3:79a6:f6ee:0000::0200:0000:6400:0001

                   _brski-registrar._tcp.local
               IN PTR 0200:0000:7400-prm._brski-registrar._tcp.local
0200:0000:7400-prm._brski-registrar._tcp.local
               IN SRV 1 2 4555 0200:0000:7400-prm.local
0200:0000:7400-prm._brski-registrar._tcp.local
               IN TXT "prm" "cmp"
0200:0000:7400-prm.local
               IN AAAA fda3:79a6:f6ee:0000::0200:0000:6400:0001
]]></artwork></figure>

<t>In the second example <xref target="dnssd-example-2"/>, a registrar needs to use two different Instance Names, because both
share the same service context: BRSKI - TCP with service name brski-registrar. In this example, the registrar
offers "rrm" mode with "cms" voucher and "est" enrollment. It also offers "prm" mode with "cms" voucher,
but (only) with "cmp" enrollment protocol. Because the registrar does not offer "rrm" with "cmp", or
"prm" with "est", it is not possible to coalesce all variations under one Instance Name, so instead, two
Instance Names have to be created, and with them the necessary (duplicate) RR.</t>

<t>Note that the "-rrm" and "-prm" in the Instance Names are only explanatory and could be any mutually unique
strings - as is true for the whole Instance Name.</t>

<t>Note too, that because both Instances share the same port number 4555 (and hence TCP socket), they both have
to be provided by the same BRSKI application. If two separate applications where to be started on the
dame host, one for "rrm", the other for "prm", then they would have separate sockets and hence port numbers.</t>

</section>
</section>
<section anchor="grasp"><name>GRASP</name>

<section anchor="signaling-1"><name>Signaling</name>

<t>This document does not specify a mandatory to implement set of signaling options to guarantee
interoperability of discovery between initiator and responders when using GRASP. Like for the
other discovery mechanisms, these requirements will have to come from other specifications
that outline what in <xref target="GRASP"/> is called the "security and transport substrate" to be used for
GRASP.</t>

<t><xref target="RFC8994"/> specifies one such "security and transport substrate", which is zero-touch deployable.
It is mandatory to support for initiators and responders implementing the so-called
"Autonomic Network Infrastructure" (ANI). DULL GRASP is used for link-local discovery of
proxies, and the ACP is used to automatically and securely build the connectivity for multi-hop discovery
of registrars by proxies.</t>

</section>
<section anchor="encoding-1"><name>Encoding</name>

<t>To announce protocol variations with <xref target="GRASP"/>, the supported Variation is indicated in the
objective-value field of the GRASP objective, using the method of forming the Variation string term
in <xref target="variation"/>, and listed in the Variation String column of the <xref target="fig-variations"/> table.</t>

<t>If more than one Variation is supported, then multiple objectives have to be announced, each with
a different objective-value, but the same location information if the different Variations are
supported across the same socket. Different sockets require different objective structures in GRASP anyhow.</t>

<t>Compared to DNS-SD, the choice of encoding for GRASP optimizes for minimum parsing effort, whereas
the DNS-SD encoding is optimized for most compact encoding given the limit for DNS-SD TXT records.</t>

<figure title="GRASP example for a BRSKI registrar supporting RRM and PRM" anchor="grasp-example-1"><artwork><![CDATA[
[M_FLOOD, 12340815, h'fe800000000000000000000000000001', 180000,
    [["AN_Proxy", 4, 1, "",
     [O_IPv6_LOCATOR,
     h'fe800000000000000000000000000001', IPPROTO_TCP, 4443],
     ["AN_Proxy", 4, 1, "prm",
     [O_IPv6_LOCATOR,
     h'fe800000000000000000000000000001', IPPROTO_TCP, 4443],
     ["AN_Proxy", 4, 1, "",
     [O_IPv6_LOCATOR,
     h'fe800000000000000000000000000001', IPPROTO_UDP, 4684]]
]
]]></artwork></figure>

<t><xref target="grasp-example-1"/> is an example for a GRASP service announcement for "AN_Proxy" in support of BRSKI
with both "rrm" and "prm" supported on the same socket (TCP port number) and for cBRSKI with
COAP over DTLS.</t>

<t>Note that one or more complete service instances (in the example 3) can be contained within a single GRASP message
without the need for any equivalent to the Service Instance Name of the DNS-SD PTR RR or the
Target name of the DNS-SD SRV RR. DNS-SD requires them because its encoding is
decomposed into different RR, but it also intentionally introduces the Service Instance Name
as an element for human interaction with selection (browsing and/or diagnostics of selection),
something that the current GRASP objective-value encoding does not support.</t>

<figure title="GRASP example with two different processes" anchor="grasp-example-2"><artwork><![CDATA[
[M_FLOOD, 12340815, h'fe800000000000000000000000000001', 180000,
    [["AN_Proxy", 4, 1, "",
     [O_IPv6_LOCATOR,
     h'fe800000000000000000000000000001', IPPROTO_TCP, 4443],
     ["AN_Proxy", 4, 1, "",
     [O_IPv6_LOCATOR,
     h'fe800000000000000000000000000001', IPPROTO_UDP, 4684]]
]

[M_FLOOD, 42310815, h'fe800000000000000000000000000001', 180000,
    [["AN_Proxy", 4, 1, "prm",
     [O_IPv6_LOCATOR,
     h'fe800000000000000000000000000001', IPPROTO_TCP, 44000]]
]
]]></artwork></figure>

<t>In <xref target="grasp-example-2"/>, A separate application process supports "prm" and hence
uses a separate socket, with example TCP port 44000. In this case, there is
no need nor significant benefit to merge all service instance announcements into
a single GRASP message. Instead, the BRSKI-"rrm"/cBRSKI process would be
able to generate and send its own, first, message shown in the example, and the
second process would send its own, second message in the example.</t>

<t>For a more extensive, DNS-SD compatible encoding of the objective-value that also
support Service Instance Names, see <xref target="I-D.eckert-anima-grasp-dnssd"/>.</t>

</section>
</section>
<section anchor="core-lf"><name>CORE-LF</name>

<t>"Web Linking", <xref target="RFC5988"/> defines a format, originally for use with
HTTP headers, to link an HTTP document against other URIs. Web linking is not a standalone
method for discovery of services for use with HTTP.</t>

<t>Based on Web Linking, "Constrained RESTful Environments (CoRE) Link Format", <xref target="CORE-LF"/> introduces a
stand alone method to discover services instances, which are called resources in CORE-LF;
primarily for use with <xref target="COAP"/> but equally for use with, for use with HTTP or any other suitable web transfer protocols.</t>

<t>In CORE-LF, an initiator may use (link-local) IPv6 multicast UDP packet to the COAP port (5683)
to discover a a possible responder for a specifically requested resource. The responder will reply with unicast UDP.
If the IPv6 address of a responder has been configured or is otherwise known to the initiator, it
may equally query the parameters of the desired resource via unicast to the default COAP UDP or
TCP port (5683).</t>

<t>A service such as BRSKI registrar, join proxy or pledge can be considered to be a resource, but it
can equally be broken down into a set of component resources resources, in which case the group
can be requested. As mentioned above, CORE-LF can equally be used to request and discover resources
not using COAP, but any other suitable protocol.</t>

<t><xref target="RFC9176"/> defines a "Resource Directory" mechanism for CORE-LF which is abbreviated CORE-RD. Initiators
can learn the IPv6 address protocol (TCP or UDP) and port numberaof a CORE-RD server by some other
mechanism (such as DNS-SD) and then use a unicast UDP or TCP COAP connection to the CORE-RD server
to discover CORE-LF resources available on other systems. Resource providers can likewise register
their resources with the resource directory server using CORE-RD registration procedures.</t>

<t>In summaery, CORE-LF including CORE-RD is a mechanism for registration and discovery of resources and
hence services which may be preferred in deployments over other options and can equally be applicable
to register/discover any variation of BRSKI for any type of BRSKI service.</t>

<section anchor="signaling-2"><name>Signaling</name>

<section anchor="existing-definitions"><name>Existing definitions</name>

<t><xref target="cBRSKI"/> specifies the use of CORE-LF as a reference methods
for pledges to discover registrars - in the absence of any proxies, to allow deployments
of scenarios where no proxies are needed - and hence also where <xref target="cBRSKI"/>.
is not needed. Because BRSKI is designed so that pledges can be agnostic of whether they connect
to a registrar directly or via a proxy, the resource/service that the pledge needs to discover
is nevertheless called "(brski) join proxy (for pleges)", and encoded in CORE-LF as the value
"brski.jp" for the resource type attribute ("rt=resource-type") according to <xref target="CORE-LF"/>.</t>

<t>The following picture, <xref target="corelf-example-1"/> shows the encoding and an example of this discovery.
"ff02::fd" is the link-local scope address for "All Coap Nodes" in IPv6, as introduced in <xref target="RFC7390"/>,
which also defines IPv6 and site-scoped address options.</t>

<figure title="CORE-LF discovery of registrar/proxy by pledges" anchor="corelf-example-1"><artwork><![CDATA[
Template:

REQ: GET coap://[All_Coap_Nodes_IP_multicast_addr]/.well-known/core?rt=brski.jp

RES: 2.05 Content
   <coaps://[Responder_IP_unicast_address]:join-port>; rt="brski.jp"

Example:

REQ: GET coap://[ff02::fd]/.well-known/core?rt=brski.jp

RES: 2.05 Content
   <coaps://[fe80::c78:e3c4:58a0:a4ad]:8485>;rt=brski.jp
]]></artwork></figure>

<t><xref target="cPROXY"/> introduces the operations of a CoAP based join proxy
both as a connection based proxy as in <xref target="BRSKI"/> (only using UDP connections for COAPs instead
of TCP for TLS as in <xref target="BRSKI"/>), but also as a new, stateless join proxy - to eliminate the
need for potentially highly constrained join proxy nodes to keep connection state and avoid
the complexity of protecting that state against attacks. The new resource type "brski.rjp" is
defined to support stateless join proxies to discover registrars and their UDP port number
that support the stateless, so-called JPY protocol.</t>

<t>The following picture, <xref target="corelf-example-2"/> shows the encoding and an example of this discovery.
<xref target="cPROXY"/> introduces the new scheme "coaps+jpy" for the packet
header used by the stateless JPY" protocol. The request in the template is assumed to be
based on unicast, relying on another method to discover the IP address of the registrar first.
It could equally use COAP site-scoped IP multicast, but in general, the assumeption is that
registrar will not necessarily be link-local connected to proxies (this may be different in
specific deployments). Even though the registrar IP address is hence known, the reply still
needs to include this address again because in the <xref target="RFC6690"/> link format, and <xref target="RFC3986"/>, Section 3.2, the
authority attribute can not include a port number unless it also includes the IP address.</t>

<figure title="CORE-LF discovery of registrars that support stateless JPY protocll by proxies" anchor="corelf-example-2"><artwork><![CDATA[
Template:

REQ: GET /.well-known/core?rt=brski.jpy

RES: 2.05 Content
     <coaps+jpy://[Responder_IP_unicast_address]:join-port>;rt=brski.jpy

Example:

REQ: GET /.well-known/core?rt=brski.jpy

RES: 2.05 Content
     <coaps+jpy://[2001:db8:0:abcd::52]:7633>;rt=brski.jpy
]]></artwork></figure>

</section>
<section anchor="new-variation-discovery"><name>New variation discovery</name>

<t>This document expands the above summarized existing CORE-LF definitions from
<xref target="cBRSKI"/> and <xref target="cPROXY"/> as follows.</t>

<t>Discovery of stateful sockets on a registrar uses the resource type "brski.rs" (for
"registrar (for) join proxies stateful)" - instead of "brski.rjpy" for the previosly
defined stateless connection mode.</t>

<t>The following picture <xref target="corelf-example-3"/> show template and example of this discovery option.
In Example 1, the registrar is running on a separate port 7634 from the COREs UDP port, so
this response needs to also include the IP address of the responding registrar (as explained
above). In Example 2, the registar functions are provided via the default (potentially shared)
COAPS port, so this is not necessary. In both cases, the response include a shorter URL part
"/b/s" which allows that the service can be used via that shorter prefix than the default
"/.well-known/brksi", hence shortening the required COAPS packet sizes.</t>

<figure title="CORE-LF discovery of registrars that support stateless JPY protocll by proxies" anchor="corelf-example-3"><artwork><![CDATA[
Template:

REQ: GET /.well-known/core?rt=brski.r(*|s|spy)

RES: 2.05 Content
     <scheme://[Responder_IP_unicast_address]:join-port>;rt=brski.(rjpy|rs)

Example 1:

REQ: GET /.well-known/core?rt=brski.rs

RES: 2.05 Content
     <coaps://[2001:db8:0:abcd::52]:7634/b/s>;rt=brski.rs

Example 2:

REQ: GET /.well-known/core?rt=brski.rjpy

RES: 2.05 Content
     </b/s>;rt=brski.rjpy
]]></artwork></figure>

<t>TBD: Question: can we really reply without coaps given how we always want coaps - aka: the query itself
may not have been coaps ?? This is  question for constrained proxy/voucher - can we rightfully (according to
IETF specs) make the expection that even though the resource discovery is done insecure, that it is understood
that the actual resource consumption has to use coaps ????  - question for COAP experts.</t>

<t>Explanations:</t>

<t>The discovery and distinction between a stateless and stateful registrar socket is orthogonal
to the concept of a variation of BRSKI as defined in this document. Therefore, the distinction
between a stateless and stateless socket on a registrar is provided solely via the CORE-LF
resource-type, "brski.rjpy" (stateless) and "brski.rs" (stateful). In other words, the "rt"
attribute in CORE-LF serves as the abstract "Service Name" in this document. If discover
of stateless join proxies was required with other discovery mechanisms such as GRASP or
DNS-SD, then new "Service Name" equivalents in those discovery mechanisms would need to be
defined. For the purpose of this document, it is assumed that stateless proxy operations
is well enough supported with CORE-LF.</t>

<t>To indicate variations other than the default combination implied by <xref target="cBRSKI"/>
and <xref target="cPROXY"/>, this document specifies the new "bv" (brski variation)
attribute for CORE-LF records, which is specified relative only to "rt=brski.r*" resource targets.</t>

<t>The value to the "bv=" attribute is a flattened string of the non-default Variation Type Choices
as specified for GRASP, so that CORE-LF does not introduce another registry table to maintain.
The only difference is that the absence of the "bv=" attribute is equivalent to the
actual defaults established by <xref target="cBRSKI"/> and <xref target="cPROXY"/>,
namely "rrm" (registrar response-mode) with "cose" (CBOR with COSE signed voucher) and "est" - enrollment
via the 'fitting' variation of EST, in the case of using COAPS it is <xref target="RFC9148"/>, e.g.: EST over COAPS.
Including or excluding "bv=" (empty value) is hence equivalent to "bs=cose", aka: the default variation
over COAPS.</t>

<t>When a variation implies use of HTTPS (or in the future any other transport other than COAPS), then
the schema, and hence IP-address needs to be included in the CORE-LF response. Likewise, even if the
protocol schema is coaps, then the IP address needs to be included if the resource is not served on
the standard COAPS UDP port.</t>

<t>[ Q: How does the schema indicate UDP versus TCP for COAPS ??? ]</t>

<t>The following <xref target="corelf-example-4"/> shows the schema and an example for various BRSKI registar
variations, discovered via CORE-LF.</t>

<t>"rt=brski.rs" with schema "coaps" and without any "bv" attribute indicate the default combination
of "rrm", "cose" and "est" (EST via COAPS), as introduced by <xref target="I-D.ietf-anima-constrained-voucher"/>,
aka: stateful cBRSKI.</t>

<t>"rt=brski.rjpy" with schema "coaps+jpy" and without any "bv" attribute indicate the default combination
of "rrm", "cose" and "est" (EST via COAPS), as introduced by <xref target="I-D.ietf-anima-constrained-join-proxy"/>,
aka: stateless proxy cBRSKI, using the JPY header.</t>

<t>In both cases, there is no "bv=" attribute, so that the absence of the "bv" attribute indicates
backward compatibility with existing definitions from <xref target="I-D.ietf-anima-constrained-voucher"/> and
<xref target="I-D.ietf-anima-constrained-join-proxy"/>.</t>

<t>"rt=brski.rs" with schema "https" and with "bv=" indicates <xref target="BRSKI"/> with its default variation
of "rrm", "cms" and "est". As there is no mechanism to support the JPY header via TCP (for https),
there is no schema "https+jpy" option.</t>

<t>"rt=brski.rs" with schema "https" and with "bv=cmp" indicates the variation "rrm", "cms" and "cmp"
as introduced by <xref target="BRSKI-AE"/>, and "rt=brski.rs" with schema "https" and with "bv=prm-jose" indicates
 the variation "prm", "jose" and "cmp" as introduced by <xref target="BRSKI-PRM"/>.</t>

<t>Note that the variation type value of "est" does mean different protocol specifications depending
on the transport. Over "https" it means <xref target="EST"/>, whereas over COAPS it means <xref target="RFC9148"/>.</t>

<figure title="CORE-LF discovery of registrars by a proxy for different BRSKI variations" anchor="corelf-example-4"><artwork><![CDATA[
Template:

REQ: GET /.well-known/core?rt=brski.r*

RES: 2.05 Content
     <scheme://[Responder_IP_unicast_address]:join-port>;\
       rt=brski.r*(;brv=brski-variation-string)

Example:

REQ: GET /.well-known/core?rt=brski.r*

RES: 2.05 Content
     <coaps://[2001:db8:0:abcd::52]:7634/b>;rt=brski.rs,
     <coaps+jpy://[2001:db8:0:abcd::52]:7633/b>;rt=brski.rjpy,
     <https://[2001:db8:0:abcd::52]:7634/b>;rt=brski.rs;bv=,
     <https://[2001:db8:0:abcd::52]:7634/b>;rt=brski.rs;bv=cmp,
     <https://[2001:db8:0:abcd::52]:7634/b>;rt=brski.rs;bv=prm-jose,
]]></artwork></figure>

<t>The following <xref target="corelf-example-5"/> shows variations that have not explicitly been defined
in existing specifications, so it is more or less unless whether they will work withough
additional specification of details to allow interoperability. Specifically, it is unclear
whether "endpoint" protocols defined for "http" transport will equall work over "coaps"
transport without additional specification.</t>

<t>For this reason, such variations are not explicitly assumed to be supportable, but included
as candidarte, subject to additional specification, and/or expert review.</t>

<figure title="Potential ? future registrar variations" anchor="corelf-example-5"><artwork><![CDATA[
RES: 2.05 Content
     <coapsy://[2001:db8:0:abcd::52]:7633/b>;rt=brski.rsy;bv=cose-cmp,
     <coaps+jpy://[2001:db8:0:abcd::52]:7633/b>;rt=brski.rjpy;bv=cose-cmp,
     <https://[2001:db8:0:abcd::52]:7634/b2>;rt=brski.rjps;bv=jose-cmp,
     <https://[2001:db8:0:abcd::52]:7634/b3>;rt=brski.rjps;bv=cose-cmp
]]></artwork></figure>

<t>[ Q: Can we actually use the * discovery to only discover the two variations of
registrar transport variations "rj*" - when we are a registrar ??? we do not want to
discover the resource that proxies or registrars provide to pledges!!! ]</t>

<t>When pledges need to discover (and select)  proxies (or registrars) supporting a specific
combination of variations, the encoding of attributes is the same as shown in
<xref target="corelf-example-3"/> except that now, "rt=brski.jp" needs to be discovered.</t>

<t>It is a responsibility of the proxy to discover registrars and map their discovered "bv=" variations
for rt=brski.rjp" and/or "brski.rjps" to the same "bv=" variations to their announced "rt=brski.jp"
resources: For provies, there is simply a 1:1 mapping of the "bv" attribute and the connection scheme
for the resources discovered from registrars, except for the subset of variations that can rely
on COAPS transport, for those both the "rt=brski.rjp" and "rt=brski.rjps" are options how to
proxy the resource for the pleges.</t>

<t>Note that the port numbers announced by the proxy resources will of course likely be different than
those announced by the registarars.</t>

<figure title="CORE-LF discovery of registrars or proxies by pledges for various BRSKI variations" anchor="corelf-example-6"><artwork><![CDATA[
Template:

REQ: GET /.well-known/core?rt=brski.jp

RES: 2.05 Content
     <scheme://[Responder_IP_unicast_address]:join-port>;\
         rt=brski.jp(;brv=brski-variation-string)

Example:

REQ: GET /.well-known/core?rt=brski.rj*

RES: 2.05 Content
     <coaps://[2001:db8:0:abcd::52]:7734/b>;rt=brski.jp,
     <https://[2001:db8:0:abcd::52]:7734/b>;rt=brski.jp;bv=,
     <https://[2001:db8:0:abcd::52]:7734/b2>;rt=brski.jp;bv=jose-cmp,
     <https://[2001:db8:0:abcd::52]:7734/b3>;rt=brski.jp;bv=cose-cmp
]]></artwork></figure>

</section>
</section>
</section>
</section>
</section>
<section anchor="updates-to-existing-rfcs"><name>Updates to existing RFCs</name>

<section anchor="rfc8995"><name>RFC8995</name>

<t>TBD.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA considerations</name>

<section anchor="registry"><name>BRSKI Variations Discovery Registry (section)</name>

<t>This document requests a new section named "BRSKI Variations Discovery Parameters"
in the "Bootstrapping Remote Secure Key Infrastructures (BRSKI) Parameters"
registry (https://www.iana.org/assignments/brski-parameters/brski-parameters.xhtml).
Its initial content is as follows.</t>

<t>[ RFC editor. Please remove the following sentence.
Note to IANA: This section contains three tables according to the specifications of this document.
Each of these tables should include the table title so that they can be more easily
distinguished.  If it is not possible to introduce more than one table per section, then we will modify the request
accordingly for three sections, but given how the three tables are tightly linked, that would be unfortunate. ]</t>

<t>Registration Procedure(s):
  Standards action or expert review based on registration.  See ThisRFC.</t>

<t>Experts:
  TBD.</t>

<t>Reference:
  ThisRFC.</t>

<t>Notes:</t>

<dl>
  <dt>Dflt flag:</dt>
  <dd>
    <t>Indicates a Variation Type Choice that is assumed to be used if the service discover/selection mechanism does not indicate any variation.</t>
  </dd>
  <dt>Rsvd Flag:</dt>
  <dd>
    <t>Indicates a Variation Type Choice that is reserved for use with the mechanism described in the Note(s) column, but for which no specification yet exists.</t>
  </dd>
  <dt>Spec / Applicability:</dt>
  <dd>
    <t>A "-" indicates that the variation is considered to be feasible through existing specifications, but not explicitly mentioned in them.
An "NA" indicates that the combination is assumed to be not working with the currently available specifications.</t>
  </dd>
</dl>

<texttable title="BRSKI Variation Contexts" anchor="fig-contexts">
      <ttcol align='left'>Context</ttcol>
      <ttcol align='left'>Applicable Variation Types</ttcol>
      <ttcol align='left'>Discovery Mechanism</ttcol>
      <ttcol align='left'>Service Name(s) / Transport</ttcol>
      <ttcol align='left'>Reference(s)</ttcol>
      <c>BRSKI</c>
      <c>mode<br />vformat<br />enroll</c>
      <c>GRASP</c>
      <c>"AN_join_registrar" /<br /> "AN_Proxy"<br />with IPPROTO_TCP</c>
      <c><xref target="RFC8995"/></c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>DNS-SD</c>
      <c>"brski-registrar" /<br /> "brski-proxy"<br /> with TCP</c>
      <c><xref target="RFC8995"/></c>
      <c>cBRSKI</c>
      <c>mode<br />vformat<br />enroll</c>
      <c>CORE-LF</c>
      <c>rt=brski.jp with coaps</c>
      <c><xref target="I-D.ietf-anima-constrained-voucher"/></c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>rt=brski.rs /<br /> rt=brski.rjpy with coaps</c>
      <c><xref target="I-D.ietf-anima-constrained-join-proxy"/></c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>DNS-SD</c>
      <c>"brski-proxy"<br /> /<br /> "brski-registrar" /<br /> "brski-registrar-rpy" with UDP</c>
      <c>[THIS-RFC]</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>GRASP</c>
      <c>"AN_join_registrar" /<br /> "AN_join_registrar_rjp" /<br /> "AN_Proxy"<br /> with IPPROTO_UDP</c>
      <c>[THIS-RFC]</c>
      <c>BRSKI-PLEDGE</c>
      <c>mode<br />vformat<br />enroll</c>
      <c>DNS-SD</c>
      <c>"brski-pledge" with TCP</c>
      <c>[THIS-RFC]</c>
</texttable>

<texttable title="BRSKI Variation Type and Choices" anchor="fig-choices">
      <ttcol align='left'>Context</ttcol>
      <ttcol align='left'>Variation Type</ttcol>
      <ttcol align='left'>Variation Type Choice</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <ttcol align='left'>Flags</ttcol>
      <ttcol align='left'>Note(s)</ttcol>
      <c>BRSKI, cBRSKI</c>
      <c>mode</c>
      <c>rrm</c>
      <c><xref target="RFC8995"/><br />ThisRFC</c>
      <c>Dflt</c>
      <c>Registrar Responder Mode <br /> the mode specified in <xref target="RFC8995"/></c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>prm</c>
      <c>ThisRFC  <br /></c>
      <c>&#160;</c>
      <c>Pledge Responder Mode    <br /> <xref target="I-D.ietf-anima-brski-prm"/></c>
      <c>BRSKI</c>
      <c>vformat</c>
      <c>cms</c>
      <c><xref target="RFC8368"/><br />ThisRFC</c>
      <c>Dflt</c>
      <c>CMS-signed JSON Voucher  <br /></c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>cose</c>
      <c>ThisRFC<br /></c>
      <c>&#160;</c>
      <c>CBOR with COSE signature<br /></c>
      <c>cBRSKI</c>
      <c>&#160;</c>
      <c>cose</c>
      <c>ThisRFC<br /></c>
      <c>Dflt</c>
      <c>CBOR with COSE signature <br /> <xref target="I-D.ietf-anima-constrained-voucher"/></c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>cms</c>
      <c><xref target="RFC8368"/><br />ThisRFC</c>
      <c>&#160;</c>
      <c>CMS-signed JSON Voucher  <br /></c>
      <c>BRSKI, cBRSKI</c>
      <c>&#160;</c>
      <c>jose</c>
      <c>ThisRFC<br /></c>
      <c>Dflt*</c>
      <c>JOSE-signed JSON, Default when prm is used<br /> <xref target="I-D.ietf-anima-jws-voucher"/>, <xref target="I-D.ietf-anima-brski-ae"/></c>
      <c>BRSKI-PLEDGE</c>
      <c>mode</c>
      <c>prm</c>
      <c>ThisRFC</c>
      <c>Dflt</c>
      <c>Pledge responder Mode<br /><xref target="I-D.ietf-anima-brski-prm"/></c>
      <c>&#160;</c>
      <c>vformat</c>
      <c>jose</c>
      <c>ThisRFC</c>
      <c>Dflt</c>
      <c>JOSE-signed JSON, Default when prm is used<br /> <xref target="I-D.ietf-anima-jws-voucher"/>, <xref target="I-D.ietf-anima-brski-ae"/></c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>cms</c>
      <c>ThisRFC</c>
      <c>Rsvd</c>
      <c>CMS-signed JSON Voucher, not specified.</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>cose</c>
      <c>ThisRFC</c>
      <c>Rsvd</c>
      <c>CBOR with COSE signature, not specified.</c>
      <c>BRSKI, cBRSKI, BRSKI-PLEDGE</c>
      <c>enroll</c>
      <c>est</c>
      <c><xref target="RFC8995"/><br /><xref target="RFC7030"/></c>
      <c>Dflt</c>
      <c>Enroll via EST           <br /> as specified in <xref target="RFC8995"/>, extension for <xref target="BRSKI-PRM"/> when used in context BRSKI-PLEDGE&lt;br}<xref target="RFC9148"/> when used over COAP</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>cmp</c>
      <c>ThisRFC</c>
      <c>&#160;</c>
      <c>Lightweight CMP Profile  <br /> {I-D.ietf-anima-brski-ae}}, <xref target="I-D.ietf-lamps-lightweight-cmp-profile"/></c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>scep</c>
      <c>ThisRFC</c>
      <c>Rsvd</c>
      <c><xref target="RFC8894"/></c>
</texttable>

<texttable>
      <ttcol align='left'>Context</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <ttcol align='left'>Variation String</ttcol>
      <ttcol align='left'>Variations</ttcol>
      <ttcol align='left'>Explanations / Notes</ttcol>
      <c>BRSKI</c>
      <c><xref target="RFC8995"/></c>
      <c>"" / "EST-TLS"</c>
      <c>rrm cms  est</c>
      <c>Note 1</c>
      <c>&#160;</c>
      <c><xref target="I-D.ietf-anima-brski-ae"/></c>
      <c>cmp</c>
      <c>rrm cms  cmp</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c><xref target="I-D.ietf-anima-brski-prm"/></c>
      <c>prm-jose</c>
      <c>prm jose est</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>cBRSKI</c>
      <c><xref target="I-D.ietf-anima-constrained-voucher"/></c>
      <c>"" / "rrm-cose"</c>
      <c>rrm cose est</c>
      <c>&#160;</c>
</texttable>

<dl anchor="fig-variations">
  <dt>Note 1:</dt>
  <dd>
    <t>The Variation String "EST-TLS" is equivalent to the Variation String "" and is required and only permitted for the AN_join_registrar objective value in GRASP for backward compatibility with RFC8995, where it is used for this variation. Note that AN_proxy uses "".</t>
  </dd>
</dl>

</section>
<section anchor="service-names-registry"><name>Service Names Registry</name>

<t>IANA is asked to modify and amend the "Service Name and Transport Protocol Port Number Registry" registry (https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt) as follows:</t>

<t>brski-proxy and brski-registrar are to be added as Service Names for the "udp" protocol using ThisRFC as the reference.</t>

<t>The registrations for brski-proxy and brski-registrar for the "tcp" protocol are to be updated to also include ThisRFC as their reference.</t>

<t>The Defined TXT keys column for brski-proxy and brski-registrar for both "tcp" and "udp" protocols are to state the following text:</t>

<t>See ThisRFC and the "BRSKI Variation Type Choices" table in the "Bootstrapping Remote Secure Key Infrastructures (BRSKI) Parameters" registry.</t>

<t>TBD: This request likely does not include all the necessary formatting.</t>

</section>
<section anchor="brski-well-known-uris-fixes-opportunistic"><name>BRSKI Well-Known URIs fixes (opportunistic)</name>

<t>The following change requests to "https://www.iana.org/assignments/brski-parameters/brski-parameters.xhtml#brski-well-known-uris" are cosmetic in nature and are included in this document solely because support for Endpoint URIs is implied by the mechanisms specified in this document and the existing registry has these cosmetic issues.</t>

<t><list style="numbers">
  <t>IANA is asked to change the name of the first column of the table from "URI" to "URI Suffix". This is in alignment with other table columns with the same syntax/semantic, such as "https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml".</t>
  <t>IANA is asked to change the Reference from <xref target="RFC8995"/> to <xref section="8.3.1" sectionFormat="comma" target="RFC8995"/>.</t>
  <t>IANA is asked to include the following "Note" text: The following table contains the assigned BRSKI protocol Endpoint URI suffixes under "/.well-known/brski"." - This note is added to introduce the term "Endpoint" into the registry table as that is the term commonly used (instead of URI) in several of the memos for which this discovery document was written. It is meant to help readers map the registry to the terminology used in those documents.</t>
</list></t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>In <xref target="BRSKI-PRM"/>, pledges are easier subject to DoS attacks than in <xref target="BRSKI"/>, because attackers
can be initiators and delay or prohibit enrollment of a pledge by opening so many connections to
the pledge that a valid registrar-agents connection to the pledge may not be possible. Discovery
of the pledge via DNS-SD increases the ability of attackers to discover pledges against which such
DoS attacks can be attempted.</t>

<t>Especially when supporting DNS-SD browsing across unicast DNS,
Pledges <bcp14>MUST</bcp14> implement DoS prevention measures, such as limiting the number and rate of accepted TCP
connections on a per-initiator basis. If feasible for the implementation, simultaneous connections
<bcp14>SHOULD</bcp14> be possible, so that an ongoing attacker connection will not delay a valid registrar-agent
connection. When accepting connections, a strategy such as LRU <bcp14>MAY</bcp14> be used to ensure that an attacker
will not be able to monopolize connections.</t>

<t>Browsing via DNS-SD, especially via unicast DNS which makes information available network-wide does
also introduce a perpass attack, gathering intelligence against what type and serial number of
devices are installed in the network. Whether or not this is seen as a relevant risk is highly
installation dependent. Networks <bcp14>SHOULD</bcp14> implement filtering measures at mDNS and/or DNS RR/services
level to prohibit such data collection if there is a risk, and this is seen as an undesirable attack
vector.</t>

</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>TBD.</t>

</section>
<section anchor="draft-considerations"><name>Draft considerations</name>

<section anchor="open-issues"><name>Open Issues</name>

<t>Questions to the DNS-SD community.</t>

<t>TBD</t>

</section>
<section anchor="change-log"><name>Change log</name>

<t>[RFC Editor: please remove this section.]</t>

<t>WG draft 02/03:</t>

<t>Fix up tables to be correctly rendered by html output.</t>

<t>WG draft 01:</t>

<t>Core-LF improvements  / interim work.</t>

<t>WG draft 00:</t>

<t>Added section for CORE-LF. Still missing to update existing text with the CORE-LF definitions.</t>

<t>Individual version 01:</t>

<t>Various enhancements</t>

<t>Individual version 00:</t>

<t>Initial version.</t>

</section>
</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC3986">
  <front>
    <title>Uniform Resource Identifier (URI): Generic Syntax</title>
    <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
    <author fullname="R. Fielding" initials="R." surname="Fielding"/>
    <author fullname="L. Masinter" initials="L." surname="Masinter"/>
    <date month="January" year="2005"/>
    <abstract>
      <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="66"/>
  <seriesInfo name="RFC" value="3986"/>
  <seriesInfo name="DOI" value="10.17487/RFC3986"/>
</reference>

<reference anchor="RFC5280">
  <front>
    <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
    <author fullname="D. Cooper" initials="D." surname="Cooper"/>
    <author fullname="S. Santesson" initials="S." surname="Santesson"/>
    <author fullname="S. Farrell" initials="S." surname="Farrell"/>
    <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="W. Polk" initials="W." surname="Polk"/>
    <date month="May" year="2008"/>
    <abstract>
      <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5280"/>
  <seriesInfo name="DOI" value="10.17487/RFC5280"/>
</reference>

<reference anchor="RFC6690">
  <front>
    <title>Constrained RESTful Environments (CoRE) Link Format</title>
    <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
    <date month="August" year="2012"/>
    <abstract>
      <t>This specification defines Web Linking using a link format for use by constrained web servers to describe hosted resources, their attributes, and other relationships between links. Based on the HTTP Link Header field defined in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carried as a payload and is assigned an Internet media type. "RESTful" refers to the Representational State Transfer (REST) architecture. A well-known URI is defined as a default entry point for requesting the links hosted by a server. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6690"/>
  <seriesInfo name="DOI" value="10.17487/RFC6690"/>
</reference>

<reference anchor="RFC6762">
  <front>
    <title>Multicast DNS</title>
    <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
    <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
    <date month="February" year="2013"/>
    <abstract>
      <t>As networked devices become smaller, more portable, and more ubiquitous, the ability to operate with less configured infrastructure is increasingly important. In particular, the ability to look up DNS resource record data types (including, but not limited to, host names) in the absence of a conventional managed DNS server is useful.</t>
      <t>Multicast DNS (mDNS) provides the ability to perform DNS-like operations on the local link in the absence of any conventional Unicast DNS server. In addition, Multicast DNS designates a portion of the DNS namespace to be free for local use, without the need to pay any annual fee, and without the need to set up delegations or otherwise configure a conventional DNS server to answer for those names.</t>
      <t>The primary benefits of Multicast DNS names are that (i) they require little or no administration or configuration to set them up, (ii) they work when no infrastructure is present, and (iii) they work during infrastructure failures.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6762"/>
  <seriesInfo name="DOI" value="10.17487/RFC6762"/>
</reference>

<reference anchor="RFC6763">
  <front>
    <title>DNS-Based Service Discovery</title>
    <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
    <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
    <date month="February" year="2013"/>
    <abstract>
      <t>This document specifies how DNS resource records are named and structured to facilitate service discovery. Given a type of service that a client is looking for, and a domain in which the client is looking for that service, this mechanism allows clients to discover a list of named instances of that desired service, using standard DNS queries. This mechanism is referred to as DNS-based Service Discovery, or DNS-SD.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6763"/>
  <seriesInfo name="DOI" value="10.17487/RFC6763"/>
</reference>

<reference anchor="RFC7390">
  <front>
    <title>Group Communication for the Constrained Application Protocol (CoAP)</title>
    <author fullname="A. Rahman" initials="A." role="editor" surname="Rahman"/>
    <author fullname="E. Dijk" initials="E." role="editor" surname="Dijk"/>
    <date month="October" year="2014"/>
    <abstract>
      <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for constrained devices and constrained networks. It is anticipated that constrained devices will often naturally operate in groups (e.g., in a building automation scenario, all lights in a given room may need to be switched on/off as a group). This specification defines how CoAP should be used in a group communication context. An approach for using CoAP on top of IP multicast is detailed based on existing CoAP functionality as well as new features introduced in this specification. Also, various use cases and corresponding protocol flows are provided to illustrate important concepts. Finally, guidance is provided for deployment in various network topologies.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7390"/>
  <seriesInfo name="DOI" value="10.17487/RFC7390"/>
</reference>

<reference anchor="RFC8990">
  <front>
    <title>GeneRic Autonomic Signaling Protocol (GRASP)</title>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <author fullname="B. Carpenter" initials="B." role="editor" surname="Carpenter"/>
    <author fullname="B. Liu" initials="B." role="editor" surname="Liu"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document specifies the GeneRic Autonomic Signaling Protocol (GRASP), which enables autonomic nodes and Autonomic Service Agents to dynamically discover peers, to synchronize state with each other, and to negotiate parameter settings with each other. GRASP depends on an external security environment that is described elsewhere. The technical objectives and parameters for specific application scenarios are to be described in separate documents. Appendices briefly discuss requirements for the protocol and existing protocols with comparable features.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8990"/>
  <seriesInfo name="DOI" value="10.17487/RFC8990"/>
</reference>

<reference anchor="RFC8994">
  <front>
    <title>An Autonomic Control Plane (ACP)</title>
    <author fullname="T. Eckert" initials="T." role="editor" surname="Eckert"/>
    <author fullname="M. Behringer" initials="M." role="editor" surname="Behringer"/>
    <author fullname="S. Bjarnason" initials="S." surname="Bjarnason"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>Autonomic functions need a control plane to communicate, which depends on some addressing and routing. This Autonomic Control Plane should ideally be self-managing and be as independent as possible of configuration. This document defines such a plane and calls it the "Autonomic Control Plane", with the primary use as a control plane for autonomic functions. It also serves as a "virtual out-of-band channel" for Operations, Administration, and Management (OAM) communications over a network that provides automatically configured, hop-by-hop authenticated and encrypted communications via automatically configured IPv6 even when the network is not configured or is misconfigured.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8994"/>
  <seriesInfo name="DOI" value="10.17487/RFC8994"/>
</reference>

<reference anchor="RFC8995">
  <front>
    <title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
    <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="T. Eckert" initials="T." surname="Eckert"/>
    <author fullname="M. Behringer" initials="M." surname="Behringer"/>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document specifies automated bootstrapping of an Autonomic Control Plane. To do this, a Secure Key Infrastructure is bootstrapped. This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline. We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur when using a routable address and a cloud service, only link-local connectivity, or limited/disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device. The established secure connection can be used to deploy a locally issued certificate to the device as well.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8995"/>
  <seriesInfo name="DOI" value="10.17487/RFC8995"/>
</reference>


<reference anchor="I-D.ietf-anima-brski-ae">
   <front>
      <title>BRSKI-AE: Alternative Enrollment Protocols in BRSKI</title>
      <author fullname="David von Oheimb" initials="D." surname="von Oheimb">
         <organization>Siemens AG</organization>
      </author>
      <author fullname="Steffen Fries" initials="S." surname="Fries">
         <organization>Siemens AG</organization>
      </author>
      <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
         <organization>Siemens AG</organization>
      </author>
      <date day="5" month="July" year="2024"/>
      <abstract>
	 <t>   This document defines an enhancement of Bootstrapping Remote Secure
   Key Infrastructure (BRSKI, RFC 8995).  It supports alternative
   certificate enrollment protocols, such as CMP, that use authenticated
   self-contained signed objects for certification messages.

About This Document

   This note is to be removed before publishing as an RFC.

   Status information for this document may be found at
   https://datatracker.ietf.org/doc/draft-ietf-anima-brski-ae/.

   Source for this draft and an issue tracker can be found at
   https://github.com/anima-wg/anima-brski-ae.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-anima-brski-ae-12"/>
   
</reference>


<reference anchor="I-D.ietf-anima-brski-prm">
   <front>
      <title>BRSKI with Pledge in Responder Mode (BRSKI-PRM)</title>
      <author fullname="Steffen Fries" initials="S." surname="Fries">
         <organization>Siemens AG</organization>
      </author>
      <author fullname="Thomas Werner" initials="T." surname="Werner">
         <organization>Siemens AG</organization>
      </author>
      <author fullname="Eliot Lear" initials="E." surname="Lear">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Michael Richardson" initials="M." surname="Richardson">
         <organization>Sandelman Software Works</organization>
      </author>
      <date day="21" month="July" year="2024"/>
      <abstract>
	 <t>   This document defines enhancements to Bootstrapping a Remote Secure
   Key Infrastructure (BRSKI, RFC8995) to enable bootstrapping in
   domains featuring no or only limited connectivity between a pledge
   and the domain registrar.  It specifically changes the interaction
   model from a pledge-initiated mode, as used in BRSKI, to a pledge-
   responding mode, where the pledge is in server role.  For this, BRSKI
   with Pledge in Responder Mode (BRSKI-PRM) introduces new endpoints
   for the Domain Registrar and pledge, and a new component, the
   Registrar-Agent, which facilitates the communication between pledge
   and registrar during the bootstrapping phase.  To establish the trust
   relation between pledge and registrar, BRSKI-PRM relies on object
   security rather than transport security.  The approach defined here
   is agnostic to the enrollment protocol that connects the domain
   registrar to the Key Infrastructure (e.g., domain CA).

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-anima-brski-prm-14"/>
   
</reference>


<reference anchor="I-D.ietf-anima-constrained-voucher">
   <front>
      <title>Constrained Bootstrapping Remote Secure Key Infrastructure (cBRSKI)</title>
      <author fullname="Michael Richardson" initials="M." surname="Richardson">
         <organization>Sandelman Software Works</organization>
      </author>
      <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
         <organization>vanderstok consultancy</organization>
      </author>
      <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
         <organization>Cisco Systems</organization>
      </author>
      <author fullname="Esko Dijk" initials="E." surname="Dijk">
         <organization>IoTconsultancy.nl</organization>
      </author>
      <date day="8" month="July" year="2024"/>
      <abstract>
	 <t>   This document defines the Constrained Bootstrapping Remote Secure Key
   Infrastructure (cBRSKI) protocol, which provides a solution for
   secure zero-touch onboarding of resource-constrained (IoT) devices
   into the network of a domain owner.  This protocol is designed for
   constrained networks, which may have limited data throughput or may
   experience frequent packet loss. cBRSKI is a variant of the BRSKI
   protocol, which uses an artifact signed by the device manufacturer
   called the &quot;voucher&quot; which enables a new device and the owner&#x27;s
   network to mutually authenticate.  While the BRSKI voucher data is
   encoded in JSON, cBRSKI uses a compact CBOR-encoded voucher.  The
   BRSKI voucher data definition is extended with new data types that
   allow for smaller voucher sizes.  The Enrollment over Secure
   Transport (EST) protocol, used in BRSKI, is replaced with EST-over-
   CoAPS; and HTTPS used in BRSKI is replaced with DTLS-secured CoAP
   (CoAPS).  This document Updates RFC 8995 and RFC 9148.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-anima-constrained-voucher-25"/>
   
</reference>


<reference anchor="I-D.ietf-anima-constrained-join-proxy">
   <front>
      <title>Join Proxy for Bootstrapping of Constrained Network Elements</title>
      <author fullname="Michael Richardson" initials="M." surname="Richardson">
         <organization>Sandelman Software Works</organization>
      </author>
      <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
         <organization>vanderstok consultancy</organization>
      </author>
      <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
         <organization>Cisco Systems</organization>
      </author>
      <date day="6" month="November" year="2023"/>
      <abstract>
	 <t>   This document extends the work of Bootstrapping Remote Secure Key
   Infrastructures (BRSKI) by replacing the Circuit-proxy between Pledge
   and Registrar by a stateless/stateful constrained Join Proxy.  The
   constrained Join Proxy is a mesh neighbor of the Pledge and can relay
   a DTLS session originating from a Pledge with only link-local
   addresses to a Registrar which is not a mesh neighbor of the Pledge.

   This document defines a protocol to securely assign a Pledge to a
   domain, represented by a Registrar, using an intermediary node
   between Pledge and Registrar.  This intermediary node is known as a
   &quot;constrained Join Proxy&quot;.  An enrolled Pledge can act as a
   constrained Join Proxy.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-anima-constrained-join-proxy-15"/>
   
</reference>


<reference anchor="I-D.ietf-anima-jws-voucher">
   <front>
      <title>JWS signed Voucher Artifacts for Bootstrapping Protocols</title>
      <author fullname="Thomas Werner" initials="T." surname="Werner">
         <organization>Siemens AG</organization>
      </author>
      <author fullname="Michael Richardson" initials="M." surname="Richardson">
         <organization>Sandelman Software Works</organization>
      </author>
      <date day="18" month="June" year="2024"/>
      <abstract>
	 <t>   [I-D.draft-ietf-anima-rfc8366bis] defines a digital artifact called
   voucher as a YANG-defined JSON document that is signed using a
   Cryptographic Message Syntax (CMS) structure.  This document
   introduces a variant of the voucher artifact in which CMS is replaced
   by the JSON Object Signing and Encryption (JOSE) mechanism described
   in RFC7515 to support deployments in which JOSE is preferred over
   CMS.

   In addition to explaining how the format is created, the
   &quot;application/voucher-jws+json&quot; media type is registered and examples
   are provided.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-anima-jws-voucher-10"/>
   
</reference>

<reference anchor="RFC7030">
  <front>
    <title>Enrollment over Secure Transport</title>
    <author fullname="M. Pritikin" initials="M." role="editor" surname="Pritikin"/>
    <author fullname="P. Yee" initials="P." role="editor" surname="Yee"/>
    <author fullname="D. Harkins" initials="D." role="editor" surname="Harkins"/>
    <date month="October" year="2013"/>
    <abstract>
      <t>This document profiles certificate enrollment for clients using Certificate Management over CMS (CMC) messages over a secure transport. This profile, called Enrollment over Secure Transport (EST), describes a simple, yet functional, certificate management protocol targeting Public Key Infrastructure (PKI) clients that need to acquire client certificates and associated Certification Authority (CA) certificates. It also supports client-generated public/private key pairs as well as key pairs generated by the CA.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7030"/>
  <seriesInfo name="DOI" value="10.17487/RFC7030"/>
</reference>

<reference anchor="RFC8368">
  <front>
    <title>Using an Autonomic Control Plane for Stable Connectivity of Network Operations, Administration, and Maintenance (OAM)</title>
    <author fullname="T. Eckert" initials="T." role="editor" surname="Eckert"/>
    <author fullname="M. Behringer" initials="M." surname="Behringer"/>
    <date month="May" year="2018"/>
    <abstract>
      <t>Operations, Administration, and Maintenance (OAM), as per BCP 161, for data networks is often subject to the problem of circular dependencies when relying on connectivity provided by the network to be managed for the OAM purposes.</t>
      <t>Provisioning while bringing up devices and networks tends to be more difficult to automate than service provisioning later on. Changes in core network functions impacting reachability cannot be automated because of ongoing connectivity requirements for the OAM equipment itself, and widely used OAM protocols are not secure enough to be carried across the network without security concerns.</t>
      <t>This document describes how to integrate OAM processes with an autonomic control plane in order to provide stable and secure connectivity for those OAM processes. This connectivity is not subject to the aforementioned circular dependencies.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8368"/>
  <seriesInfo name="DOI" value="10.17487/RFC8368"/>
</reference>


<reference anchor="I-D.ietf-lamps-lightweight-cmp-profile">
   <front>
      <title>Lightweight Certificate Management Protocol (CMP) Profile</title>
      <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
         <organization>Siemens</organization>
      </author>
      <author fullname="David von Oheimb" initials="D." surname="von Oheimb">
         <organization>Siemens</organization>
      </author>
      <author fullname="Steffen Fries" initials="S." surname="Fries">
         <organization>Siemens AG</organization>
      </author>
      <date day="17" month="February" year="2023"/>
      <abstract>
	 <t>This document aims at simple, interoperable, and automated PKI management operations covering typical use cases of industrial and Internet of Things (IoT) scenarios.  This is achieved by profiling the Certificate Management Protocol (CMP), the related Certificate Request Message Format (CRMF), and transfer based on HTTP or Constrained Application Protocol (CoAP) in a succinct but sufficiently detailed and self-contained way.  To make secure certificate management for simple scenarios and constrained devices as lightweight as possible, only the most crucial types of operations and options are specified as mandatory.  More specialized or complex use cases are supported with optional features.
	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-lightweight-cmp-profile-21"/>
   
</reference>


<reference anchor="I-D.ietf-dnssd-srp">
   <front>
      <title>Service Registration Protocol for DNS-Based Service Discovery</title>
      <author fullname="Ted Lemon" initials="T." surname="Lemon">
         <organization>Apple Inc.</organization>
      </author>
      <author fullname="Stuart Cheshire" initials="S." surname="Cheshire">
         <organization>Apple Inc.</organization>
      </author>
      <date day="4" month="March" year="2024"/>
      <abstract>
	 <t>   The Service Registration Protocol for DNS-Based Service Discovery
   uses the standard DNS Update mechanism to enable DNS-Based Service
   Discovery using only unicast packets.  This makes it possible to
   deploy DNS Service Discovery without multicast, which greatly
   improves scalability and improves performance on networks where
   multicast service is not an optimal choice, particularly IEEE 802.11
   (Wi-Fi) and IEEE 802.15.4 networks.  DNS-SD Service registration uses
   public keys and SIG(0) to allow services to defend their
   registrations.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-dnssd-srp-25"/>
   
</reference>

<reference anchor="RFC9148">
  <front>
    <title>EST-coaps: Enrollment over Secure Transport with the Secure Constrained Application Protocol</title>
    <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
    <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="S. Raza" initials="S." surname="Raza"/>
    <date month="April" year="2022"/>
    <abstract>
      <t>Enrollment over Secure Transport (EST) is used as a certificate provisioning protocol over HTTPS. Low-resource devices often use the lightweight Constrained Application Protocol (CoAP) for message exchanges. This document defines how to transport EST payloads over secure CoAP (EST-coaps), which allows constrained devices to use existing EST functionality for provisioning certificates.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9148"/>
  <seriesInfo name="DOI" value="10.17487/RFC9148"/>
</reference>

<reference anchor="RFC9176">
  <front>
    <title>Constrained RESTful Environments (CoRE) Resource Directory</title>
    <author fullname="C. Amsüss" initials="C." role="editor" surname="Amsüss"/>
    <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
    <author fullname="M. Koster" initials="M." surname="Koster"/>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
    <date month="April" year="2022"/>
    <abstract>
      <t>In many Internet of Things (IoT) applications, direct discovery of resources is not practical due to sleeping nodes or networks where multicast traffic is inefficient. These problems can be solved by employing an entity called a Resource Directory (RD), which contains information about resources held on other servers, allowing lookups to be performed for those resources. The input to an RD is composed of links, and the output is composed of links constructed from the information stored in the RD. This document specifies the web interfaces that an RD supports for web servers to discover the RD and to register, maintain, look up, and remove information on resources. Furthermore, new target attributes useful in conjunction with an RD are defined.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9176"/>
  <seriesInfo name="DOI" value="10.17487/RFC9176"/>
</reference>

<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>

<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>




    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC5988">
  <front>
    <title>Web Linking</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <date month="October" year="2010"/>
    <abstract>
      <t>This document specifies relation types for Web links, and defines a registry for them. It also defines the use of such links in HTTP headers with the Link header field. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5988"/>
  <seriesInfo name="DOI" value="10.17487/RFC5988"/>
</reference>

<reference anchor="RFC7252">
  <front>
    <title>The Constrained Application Protocol (CoAP)</title>
    <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
    <author fullname="K. Hartke" initials="K." surname="Hartke"/>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <date month="June" year="2014"/>
    <abstract>
      <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
      <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7252"/>
  <seriesInfo name="DOI" value="10.17487/RFC7252"/>
</reference>

<reference anchor="RFC8894">
  <front>
    <title>Simple Certificate Enrolment Protocol</title>
    <author fullname="P. Gutmann" initials="P." surname="Gutmann"/>
    <date month="September" year="2020"/>
    <abstract>
      <t>This document specifies the Simple Certificate Enrolment Protocol (SCEP), a PKI protocol that leverages existing technology by using Cryptographic Message Syntax (CMS, formerly known as PKCS #7) and PKCS #10 over HTTP. SCEP is the evolution of the enrolment protocol sponsored by Cisco Systems, which enjoys wide support in both client and server implementations, as well as being relied upon by numerous other industry standards that work with certificates.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8894"/>
  <seriesInfo name="DOI" value="10.17487/RFC8894"/>
</reference>


<reference anchor="I-D.eckert-anima-grasp-dnssd">
   <front>
      <title>DNS-SD Compatible Service Discovery in GeneRic Autonomic Signaling Protocol (GRASP)</title>
      <author fullname="Toerless Eckert" initials="T. T." surname="Eckert">
         <organization>Futurewei Technologies USA
      Inc.</organization>
      </author>
      <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
         <organization>Orange</organization>
      </author>
      <author fullname="Christian Jacquenet" initials="C." surname="Jacquenet">
         <organization>Orange</organization>
      </author>
      <author fullname="Michael H. Behringer" initials="M. H." surname="Behringer">
         </author>
      <date day="7" month="July" year="2024"/>
      <abstract>
	 <t>   DNS Service Discovery (DNS-SD) defines a framework for applications
   to announce and discover services.  This includes service names,
   service instance names, common parameters for selecting a service
   instance (weight or priority) as well as other service-specific
   parameters.  For the specific case of autonomic networks, GeneRic
   Autonomic Signaling Protocol (GRASP) intends to be used for service
   discovery in addition to the setup of basic connectivity.
   Reinventing advanced service discovery for GRASP with a similar set
   of features as DNS-SD would result in duplicated work.  To avoid
   that, this document defines how to use GRASP to announce and discover
   services relying upon DNS-SD features while maintaining the intended
   simplicity of GRASP.  To that aim, the document defines name
   discovery and schemes for reusable elements in GRASP objectives.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-eckert-anima-grasp-dnssd-07"/>
   
</reference>




    </references>


<?line 1319?>

<section anchor="discovery-for-constrained-brski"><name>Discovery for constrained BRSKI</name>

<t>This appendix section is intended to describe the current issues with <xref target="cBRSKI"/> and <xref target="cPROXY"/> as of 08/2023, which
make both drafts incompatible with this document. It will be removed if/when those issues will be fixed.</t>

<section anchor="current-constrained-text-for-grasp"><name>Current constrained text for GRASP</name>

<t>The following is the current encodings from <xref target="cBRSKI"/>.</t>

<t><list style="symbols">
  <t>The transport-proto is IPPROTO_UDP</t>
  <t>the objective is AN_join_registrar, identical to <xref target="BRSKI"/>.</t>
  <t>the objective name is "BRSKI_RJP".</t>
</list></t>

<t>Here is an example M_FLOOD announcing the Registrar on example port 5685, which is a port number chosen by the Registrar.</t>

<figure title="cBRSKI Fig 5: Example of Registrar announcement message" anchor="cbrski-fig5"><artwork align="left"><![CDATA[
[M_FLOOD, 51804231, h'fda379a6f6ee00000200000064000001', 180000,
[["AN_join_registrar", 4, 255, "BRSKI_RJP"],
[O_IPv6_LOCATOR,
h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5685]]]
]]></artwork></figure>

<t>Most Registrars will announce both a JPY-stateless and stateful ports, and may also announce an HTTPS/TLS service:</t>

<figure anchor="cbrski-fig6"><artwork align="left"><![CDATA[
[M_FLOOD, 51840231, h'fda379a6f6ee00000200000064000001', 180000,
[["AN_join_registrar", 4, 255, ""],
 [O_IPv6_LOCATOR,
  h'fda379a6f6ee00000200000064000001', IPPROTO_TCP, 8443],
 ["AN_join_registrar", 4, 255, "BRSKI_JP"],
 [O_IPv6_LOCATOR,
  h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5684],
 ["AN_join_registrar", 4, 255, "BRSKI_RJP"],
 [O_IPv6_LOCATOR,
  h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5685]]]
]]></artwork></figure>

<t>The following is the current text from <xref target="cPROXY"/>.</t>

<t><list style="symbols">
  <t>The transport-proto is IPPROTO_UDP</t>
  <t>the objective is AN_join_registrar, identical to <xref target="BRSKI"/>.</t>
  <t>the objective name is "BRSKI_RJP".</t>
</list></t>

<t>Here is an example M_FLOOD announcing the Registrar on example port 5685, which is a port number chosen by the Registrar.</t>

<figure title="Example of Registrar announcement message" align="left" anchor="cproxy-rjp"><artwork><![CDATA[
   [M_FLOOD, 51804231, h'fda379a6f6ee00000200000064000001', 180000,
   [["AN_join_registrar", 4, 255, "BRSKI_RJP"],
    [O_IPv6_LOCATOR,
     h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5685]]]
]]></artwork></figure>

<t>Most Registrars will announce both a JPY-stateless and stateful ports, and may also announce an HTTPS/TLS service:</t>

<figure title="Example of Registrar announcing two services" align="left" anchor="cproxy-rjp-example"><artwork><![CDATA[
   [M_FLOOD, 51840231, h'fda379a6f6ee00000200000064000001', 180000,
   [["AN_join_registrar", 4, 255, ""],
    [O_IPv6_LOCATOR,
     h'fda379a6f6ee00000200000064000001', IPPROTO_TCP, 8443],
    ["AN_join_registrar", 4, 255, "BRSKI_JP"],
    [O_IPv6_LOCATOR,
     h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5684],
    ["AN_join_registrar", 4, 255, "BRSKI_RJP"],
    [O_IPv6_LOCATOR,
     h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5685]]]
]]></artwork></figure>

<section anchor="issues-and-proposed-change"><name>Issues and proposed change</name>

<t>One goal of this document is to define variations such that proxies can deal with existing
and future variations. This only works for variations for which proxies would need to perform
specific processing other than passing on data between pledge and registrar.</t>

<t>Changes in protocol that require specific new behavior of proxies must therefore not be
variations signaled via the objective-value field of GRASP objectives.</t>

<t>In result, this document recommends the following changes to the encoding for <xref target="cBRSKI"/> and <xref target="cPROXY"/>.</t>

<figure title="Proposed Encoding of registrar announcements" align="left" anchor="new-example"><artwork><![CDATA[
[M_FLOOD, 51840231, h'fda379a6f6ee00000200000064000001', 180000,
[["AN_join_registrar", 4, 255, ""],
 [O_IPv6_LOCATOR,
  h'fda379a6f6ee00000200000064000001', IPPROTO_TCP, 8443],
 ["AN_join_registrar", 4, 255, ""],
 [O_IPv6_LOCATOR,
  h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5684],
 ["AN_join_registrar_rjp", 4, 255, ""],
 [O_IPv6_LOCATOR,
  h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5685]]]
]]></artwork></figure>

<t>In summary:</t>

<t><list style="symbols">
  <t>Circuit proxy operation is indicted with objective-name "AN_join_registrar" and IPPROTO_UDP.
The default for AN_join_registrar/UDP is the use of COAPs and CBOR encoded voucher. For this
default, the objective-value is "".</t>
  <t>Stateless JPY proxy operations is indicated with objective-name "AN_join_registrar_rjp" and IPPROTO_UDP.
The default for AN_join_registrar/UDP is the use of COAPs and CBOR encoded voucher. For this
default, the objective-value is "".</t>
</list></t>

</section>
</section>
</section>
<section anchor="future"><name>Possible future variations</name>

<t>The following table <xref target="fig-future-variations"/> shows possible future entries for "Variation String" if
there is an interest for such a variation. Thesew would be subject to expert review and could
hence require appropriate additional specification so that interoperability based on that variation string
can be guaranteed.</t>

<texttable anchor="fig-future-variations">
      <ttcol align='left'>Context</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <ttcol align='left'>Variation String</ttcol>
      <ttcol align='left'>Variations</ttcol>
      <ttcol align='left'>Explanations / Notes</ttcol>
      <c>BRSKI</c>
      <c>-</c>
      <c>jose</c>
      <c>rrm jose est</c>
      <c>possible variation of <xref target="RFC8995"/> with voucher according to <xref target="I-D.ietf-anima-jws-voucher"/></c>
      <c>&#160;</c>
      <c>-</c>
      <c>jose-cmp</c>
      <c>rrm jose cmp</c>
      <c>possible variation of <xref target="RFC8995"/> with voucher according to <xref target="I-D.ietf-anima-jws-voucher"/> and enrollment according to <xref target="I-D.ietf-lamps-lightweight-cmp-profile"/></c>
      <c>&#160;</c>
      <c>-</c>
      <c>cose</c>
      <c>rrm cose est</c>
      <c>possible variation of <xref target="RFC8995"/> with voucher according to <xref target="I-D.ietf-anima-constrained-voucher"/></c>
      <c>&#160;</c>
      <c>-</c>
      <c>cose-cmp</c>
      <c>rrm cose cmp</c>
      <c>possible variation of <xref target="RFC8995"/> with voucher according to <xref target="I-D.ietf-anima-constrained-voucher"/> and enrollment according to <xref target="I-D.ietf-lamps-lightweight-cmp-profile"/></c>
      <c>&#160;</c>
      <c>-</c>
      <c>prm-cmp</c>
      <c>prm jose cmp</c>
      <c>possible variation of <xref target="I-D.ietf-anima-brski-prm"/> and <xref target="I-D.ietf-anima-brski-ae"/></c>
      <c>&#160;</c>
      <c>-</c>
      <c>prm-cose</c>
      <c>prm cose est</c>
      <c>possible variation of <xref target="I-D.ietf-anima-brski-prm"/> and <xref target="I-D.ietf-anima-constrained-voucher"/></c>
      <c>&#160;</c>
      <c>-</c>
      <c>prm-cose-cmp</c>
      <c>prm cose cmp</c>
      <c>possible variation of <xref target="I-D.ietf-anima-brski-prm"/>, <xref target="I-D.ietf-anima-constrained-voucher"/> and <xref target="I-D.ietf-anima-brski-ae"/></c>
</texttable>

</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>
    <contact initials="T." surname="Werner" fullname="Thomas Werner">
      <organization>Siemens AG</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>thomas-werner@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </contact>
    <contact initials="S." surname="Fries" fullname="Steffen Fries">
      <organization>Siemens AG</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>steffen.fries@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </contact>
    <contact initials="H." surname="Brockhaus" fullname="Hendrik Brockhaus">
      <organization>Siemens AG</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>hendrik.brockhaus@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </contact>
    <contact initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization></organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <phone>+41 44 878 9200</phone>
        <email>mcr+ietf@sandelman.org</email>
      </address>
    </contact>
    <contact initials="D." surname="von&nbsp;Oheimb" fullname="David von&nbsp;Oheimb">
      <organization abbrev="Siemens">Siemens AG</organization>
      <address>
        <postal>
          <street>Otto-Hahn-Ring 6</street>
          <city>Munich</city>
          <code>81739</code>
          <country>Germany</country>
        </postal>
        <email>david.von.oheimb@siemens.com</email>
        <uri>https://www.siemens.com/</uri>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
H4sIAO7tomYAA919a3PbVpbgd/wKNFO1ITMkJcsvWd3pjCIpHfX4oZGU9HR1
Ui6QBCXYJMAFQMlq2/tb9rfsL9vzvPdcAJQlx+mamlQloUjgPs4997wfo9Eo
mhazLL/Yi9f1fLQbRXVWL9K9+OvDrJoWV2l5E8+LMv7+9Ow/juOrpMySOivy
6usomUzK9GqPfxnN9OloVkzzZAkjzMpkXo+yFIZN8myZjCZl9TbzT462H0VV
neSz18miyOGFulynUbYq6VNV72xvP9veiar1ZJlVFUx6frOCp46Pzn+IkjJN
9uJXq7Tk5cQwTPwiyZOLdJnmdXQN+9l/efxiP3p7Da/kdVrmaT06xCVF06Te
i6t6BjvPqzSv1pXMPUtqmGBne+dRtMr2ojiuiylA4iaF7cbxtFiukmntv6hu
lmU6r8wXRVmH38Bu8qLO5lk6gy/zgp6qy8wPk6zry6Lci0ZxlsOL5+P4aPo2
LWt4kMF4XqTlIq0q/31Z4AGls6wuSvizKGGzP6zrdZlep1n809k+fKmn476n
DazzurzZk0fSZZItYOd1+u/TajxP1uNZqss4GseH2Zu3bhFH1dtCv6H5jotz
hN56AQc4vRnnCz9gCs+OZ/Dsv2dF3XgIQQ7bn6xr3rNs8bJYJlX8Nzyk0i70
L2m5TPIbnfQsw9Ot4v2/mOXTu6NrevffK35iDGcFj6zLbC++rOtVtbe1dX19
PTY/b7nZz+p0Pk/z+IcyS6t7zl7xu+M5vvtZs/+Y5rMyext/XxbTt5fJ+r4r
uOT3xxN9/7NW8SKbXibpIj7F/5ezqsjtMg7gYs0S+GZ1SRe192+PHsSPHsW7
T3fjZ3BNe345y2n5b3jl/72CG5kuYPVjWLqi1eE4viry/5VPqtUfX12m2XLi
MOwwucpmHb+2N66oLV/yjUpTuFGv6roY/Zhc5qNToGjxE9xDVsMGXqxz2Bht
aYa0bffB04fPvu6GtGxkhusZw3rGBS3lXmCN8gKGq7OrFKnI6Q8HD5/tPpGP
j3d2t+XjkyfP3MenT3b8x4fyEVapD+w+sx8f+Y+P8ePx6HDcorRJuvGnVbns
+A0va10mWZ7ORlfFenqZlp946k2R5TBY8e6m48E315UdBvez/dBt4uGT3eCd
RbJcVaNFdnFZA7mC/46myxWOPc8W4UZmeVXNRlW5kqGePXi06z4+BThHWT5v
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
d2gzh4fCHDy1TUz4Z4spaL891H+19NKDZrJDEDRvfQiEHYB+j3yFTDyzyvFD
5Hac9atl2r1KYu/1RkpOt48KrniwJ9zVlMSKiLBnQJ4KXf+OXT9yAUmCrqQ8
k0ToSRsEZ2brWwGGggJnA3L2nrmtMPCcCihxkTQ5J4Zj3eOhWXqVGvLGJQvQ
4P2cEv+j3tZkC/BKNQIubaAanIugZb2RmC4vOandUL4MYG73AiNbajMp31YZ
aHBifeDKCRrz44oxyFbZbIut2T6Xupb9bz5UH6rVzWAzVWNh4/MobB+v0Yey
Gjg6Gz+469KqTxDa24jsIzwusw4czOHcXRdwK61vTnAbKX/4+5FyKonynyi6
YT1DwsBrRBQxwattnXpRI9Ak7gepznWqVZap2Av/PIqTtwmlmYhNnCuiR0E1
YTG64/PffedKSsX/W5bBYRhGnyBVYktjvUduldghDhsV3AChMNaE6Pjo/Acy
S1UDrYeaSgcLsmlSoYWWZOXMigpb4mI5eTMpcFBiizlgmwKxq7ooZpG7x1zR
zA+Fe1gvWYi8TFyove4c9g6bCXZNkiqutKSSE0cSNY0UbY/5Qtjig7N4RIeU
CNnEnDxZGpQbNrs6kqejBBhcYBiGNqrCQqUg+LIK22FFTBpVaYJG2ue+yzQH
0rnlRbcuj/6SVTWYNbWWFDpeFQsM31Ryrh7NwLQ0DDlw343P5m/L5B0LJ7LO
qsc1hq3x6ntl3Yu8EGsMYWRwdhluCQXYTuu4Z2sy9DrAc+wjmiOVU9oq6HVi
ut9wW9mNwcvOEyQxKmVkQgVzUvYaq/JhQ5LYRp3Su4aWStSuhoXKLpzER2LN
usRon1YXaM1qcKqf098X4ukI2lOjpRLJqJYZ95FbtHuBOvfUc0UMbPsuMa2G
nNG2bJdKJNpTXSTKKJQoh+EmGoZtAuXkqhez+dTPPzA4Yn1CEgJpoq59yj6Q
94QiQLlhcIG4ppzgm56RSyk+S4sjSnAA31NYy7c9o2ORu2K+wIrwLF+WJsAA
uwTeWhul0Y7XBZT6YkmO92i0k7MrOLXdVaaqNTZDW3tyQqr0lnS1yzMjAxkr
/4bdteLdIqG3WrQnBkKaaAng4KAbqsOQOm3AWjhksO+JjYpyI5TEXR4QZRP3
D75/daoIeXYUi+1fuNLApCCNTNJQpLTq63lWo6bzdUhTj87Oh65Uk9QA9b7L
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
AA==

-->

</rfc>

