<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
    <!-- try to enforce the ID-nits conventions and DTD validity -->
<?rfc strict="yes" ?>    <!-- items used when reviewing the document -->
<?rfc comments="no" ?>  <!-- controls display of <cref> elements -->
<?rfc inline="no" ?>    <!-- when no, put comments at end in comments section,
                                otherwise, put inline -->
<?rfc editing="no" ?>   <!-- when yes, insert editing marks -->

    <!-- create table of contents (set it options).
           Note the table of contents may be omitted
         for very short documents -->

<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="4"?>

    <!-- choose the options for the references. Some like
         symbolic tags in the references (and citations)
         and others prefer numbers. --> 
<?rfc symrefs="yes"?><?rfc sortrefs="yes" ?>
    <!-- these two save paper: start new paragraphs from the same page etc. -->
<?rfc compact="yes" ?><?rfc subcompact="no" ?>
<!-- end of list of processing instructions -->
    <!-- Information about the document.
         categories values: std, bcp, info, exp, and historic
         For Internet-Drafts, specify attribute "ipr".
         (ipr values are: full3667, noModification3667, noDerivatives3667),
         Also for Internet-Drafts, can specify values for
         attributes "iprExtract", and "docName".  Note
         that the value for iprExtract is the anchor attribute
         value of a section that can be extracted, and is only
         useful when the value of "ipr" is not "full3667". -->
    <!-- TODO: verify which attributes are specified only
            by the RFC editor.  It appears that attributes
            "number", "obsoletes", "updates", and "seriesNo"
            are specified by the RFC editor (and not by
            the document author). -->

<rfc category="std" docName="draft-salgueiro-vcarddav-kind-device-05" ipr="trust200902">

  <front>
    <title abbrev="vCard KIND:device">vCard KIND:device</title>
    
    <author fullname="Gonzalo Salgueiro" initials="G." surname="Salgueiro">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>7200-12 Kit Creek Road</street>
          <city>Research Triangle Park</city>
          <region>NC</region>
          <code>27709</code>
          <country>US</country>
        </postal>
        <phone>+1-919-392-3266</phone>
        <email>gsalguei@cisco.com</email>
      </address>
    </author>
    
    <author fullname="Joe Clarke" initials="J" surname="Clarke">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>7200-12 Kit Creek Road</street>
          <city>Research Triangle Park</city>
          <region>NC</region>
          <code>27709</code>
          <country>US</country>
        </postal>
        <phone>+1-919-392-2867</phone>
        <email>jclarke@cisco.com</email>
      </address>
    </author>
    
    <author fullname="Peter Saint-Andre" initials="P" surname="Saint-Andre">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>1899 Wynkoop Street, Suite 600</street>
          <city>Denver</city>
          <region>CO</region>
          <code>80202</code>
          <country>USA</country>
        </postal>
        <phone>+1-303-308-3282</phone>
        <email>psaintan@cisco.com</email>
      </address>
    </author>
    
    <date year="2012" />
    <!-- month="May" is no longer necessary note also, day="30" is optional -->
    
    <area>Applications</area>    
    
    <!-- WG name at the upperleft corner of the doc, IETF fine for individual submissions -->
    
    <workgroup>VCARDDAV</workgroup>
    
    <keyword>vCard</keyword>

    <abstract>
      <t>This document defines a value of "device" for the vCard KIND property so that the vCard format can be used to represent computing devices such as appliances, computers, or network elements (e.g., a server, router, switch, printer, sensor, or phone).</t>
    </abstract>
    
  </front>

  <middle>

    <section title="Introduction" anchor="intro">
      <t>Version 4 of the vCard specification <xref target="RFC6350"/> defines a new "KIND" property to specify the type of entity that a vCard represents.  During its work on the base vCard4 specification, the VCARDDAV Working Group defined values of "individual", "org", "group", and "location" for the KIND property.  Additionally, <xref target="RFC6473"/> has defined a value of "application" for the KIND property to represent software applications.</t>
      <t>During working group discussion of the document that became <xref target="RFC6473"/>, consideration was given to defining a more general value of "thing", but it was decided to split "thing" into software applications and hardware devices and to define only the "application" value at that time.  Since then, use cases for device vCards have emerged.  These use cases involve using vCards as a primer for inventory and asset tracking data specific to network elements.  Therefore, this document complements <xref target="RFC6473"/> by defining a value of "device" for the KIND property to represent computing devices such as appliances, computers, or network elements.  In this context, the concept of a device is constrained to computing devices and thus is distinct from purely mechanical devices such as elevators, electric  generators, etc. that cannot communicate in any way over a network.  This does not preclude, however, network-attached sensors that are connected to such mechanical devices.</t>
    </section>
    
    <section anchor="Conventions" title="Conventions Used in This Document">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 <xref target="RFC2119"></xref>.</t>
      <t>"SHOULD", "SHOULD NOT", "RECOMMENDED", and "NOT RECOMMENDED" are appropriate when valid exceptions to a general requirement are known to exist or appear to exist, and it is infeasible or impractical to enumerate all of them.  However, they should not be interpreted as permitting implementors to fail to implement the general requirement when such failure would result in interoperability failure.</t>
    </section>

    <section title="Scope" anchor="scope">
      <t>When the KIND property has a value of "device", the vCard represents a computing device such as an appliance, a computer, or a network element (e.g., a server, router, switch, printer, sensor, or phone).  More formally, a "device" is functionally equivalent to the "device" object class used in the Lightweight Directory Access Protocol <xref target="RFC4519"/> as derived from the Open Systems Interconnection model <xref target="X.521"/> <xref target="X.200"/>.  However, whereas <xref target="X.521"/> specifies that devices are "physical" elements, a device in this context can also be virtual such as a virtual machine running within another physical element.  As one example of the "device" KIND, vCards can be embedded into devices at manufacturing time such that basic information such as serial number, support email, and documentation URL can be retrieved upon initial deployment.  This vCard can be modified after the device is deployed to contain user-specified data about the device's characteristics.  The vCard data can therefore be used for both asset tracking and operational purposes.</t>
      <t>A device might have a number of embedded vCards for varying purposes.  The process for discovering and accessing these vCards is purposefully left unspecified in this document as this process could rely on any mechanism that makes sense for the device in question.  For example, a device could have one or more of the following vCard instances:</t>
      <t>
        <list style="symbols">
          <t>The device itself (e.g., the FN property might represent the hostname of a computing device, the URL property might represent a website that contains details on where to find documentation or get further information about the device, the KEY property might represent a digital certificate that was provisioned into the device at the time of manufacture <xref target="IEEE.802.1AR"/>, or a public key certificate previously provisioned into the device, and the ADR, GEO, and TZ properties might represent the physical address, geographical location, and timezone where the device is deployed). <vspace blankLines="1"/></t>
          <t>An organization or person that produces or manufactures the device.<vspace blankLines="1"/></t>
          <t>A person or role that maintains or administers the device.</t>
          <t>Application-level vCards as described in <xref target="RFC6473"/> for each application installed on the device.<vspace blankLines="1"/></t>
        </list>
      </t>
      
      <t>When a device has vCards other than its KIND:device vCard, those vCards can be linked together with RELATED (see the definition of the RELATED organizational property in Section 6.6.6 of <xref target="RFC6350"/>).  In multi-vCard instances the KIND:device vCard would use the RELATED property to express the relationship with the ancillary vCard(s).  Those supplementary vCards need not use RELATED to point back to the KIND:device vCard.  In this manner, the vCard for the device itself can be easily distinguished from vCards referring to the vendor organization, device administrator, and installed applications.</t>

      <t>The following base properties make sense for vCards that represent devices (this list is not exhaustive, and other properties might be applicable as well):</t>
      <?rfc subcompact="yes" ?>
      <t>
        <list style="empty">
          <t>
            <list style="symbols">
              <t>ADR</t>
              <t>EMAIL</t>
              <t>FN</t>
              <t>GEO</t>
              <t>IMPP</t>
              <t>KEY</t>
              <t>KIND</t>
              <t>LANG</t>
              <t>LOGO</t>
              <t>NOTE</t>
              <t>ORG</t>
              <t>PHOTO</t>
              <t>RELATED</t>
              <t>REV</t>
              <t>SOURCE</t>
              <t>TEL</t>
              <t>TZ</t>
              <t>UID</t>
              <t>URL</t>
            </list>
          </t>
        </list>
      </t>
      <?rfc subcompact="no" ?>
      <t>Although it might be desirable to define a more fine-grained taxonomy of devices (e.g., a KIND of "device" with a subtype of "router" or "computer"), such a taxonomy is out of scope for this document.</t>
    </section>

    <section title="Example" anchor="example">
      <t>The following is an example of a router device that contains both manufacturing details as well as post-deployment attributes and uses the XML representation of vCard (xCard) described in <xref target="RFC6351"/>.  This vCard points to another, related vCard that contains the details of an administrative contact for the device.  This vCard also leverages the extensibility of the xCard format to reference additional namespaces in order to provide richer details about the given device (e.g., the serial number and software version are specified as xCard extensions).</t>
      <figure>
        <artwork><![CDATA[
<vcard xmlns="urn:ietf:params:xml:ns:vcard-4.0">
  <kind><text>device</text></kind>
  <fn>
    <parameters>
      <type><text>x-model-name</text></type>
    </parameters>
    <text>RTR1001</text>
  </fn>
  <fn><text>core-rtr-1.example.net</text></fn>
  <url><uri>http://www.example.com/support/index.html</uri></url>
  <email><text>support@example.com</text></email>
  <email>
    <parameters>
      <type><text>x-local-support</text></type>
    </parameters>
    <text>network-support@example.net</text>
  </email>
  <impp><uri>xmpp:core-rtr-1@example.net</uri></impp>
  <related>
    <parameters>
      <type><text>contact</text></type>
    </parameters>
    <uri>urn:uuid:5CEF1870-0326-11E2-A21F-0800200C9A66</uri>
  </related>    
  <logo><uri>http://www.example.com/images/logo.png</uri></logo>
  <geo><uri>geo:35.82,-78.64</uri></geo>
  <tz><text>America/New_York</text></tz>
  <rev><timestamp>20120104T213000Z</timestamp></rev>
  <uid><uri>urn:uuid:00CCFB88-155F-40F6-B9D9-B04D134860C0</uri></uid>
  <serial-number xmlns='http://example.org/profiles/serial-number'>
    FTX1234ABCD
  </serial-number>
  <note>
    <parameters>
      <type><text>x-contract-number</text></type>
    </parameters>
    <text>1234567</text>
  </note>
  <mac xmlns='http://example.org/profiles/mac'>
    00-00-5E-00-00-01
  </mac>
  <sw-version xmlns='http://example.org/profiles/sw-version'>
    2.1.5
  </sw-version>
</vcard>
]]></artwork>
      </figure>
    </section>

    <section title="IANA Considerations" anchor="iana">
      <t>The IANA is requested to add "device" to the registry of property values for vCard4. In conformance with Section 10.2.6 of <xref target="RFC6350"/>, the registration is as follows, where the reference is to RFC&rfc.number;.</t>
      <t>
        <list style="hanging">
          <t hangText="Value:">device</t>
          <t hangText="Purpose:">The entity represented by the vCard is a computing device such as an appliance, computer, or network element.</t>
          <t hangText="Conformance:">This value can be used with the "KIND" property.</t>
          <t hangText="Example:">See Section 3 of RFC&rfc.number;.</t>
        </list>
      </t>
      <t>[[NOTE TO RFC EDITOR: Please change &rfc.number; to the number assigned to this specification, and remove this paragraph on publication.]]</t>
    </section>

    <section title="Security Considerations" anchor="security">
      <t>Use of vCards to represent devices is not envisioned to introduce security considerations beyond those specified for vCards in general as described in <xref target="RFC6350"/>.</t>
    </section>

  </middle>

  <back>

    <references title="Normative References">

<reference anchor='RFC6350'>
<front>
<title>vCard Format Specification</title>
<author initials='S.' surname='Perreault' fullname='S. Perreault'>
<organization /></author>
<date year='2011' month='August' />
<abstract>
<t>This document defines the vCard data format for representing and exchanging a variety of information about individuals and other entities (e.g., formatted and structured name and delivery addresses, email address, multiple telephone numbers, photograph, logo, audio clips, etc.).  This document obsoletes RFCs 2425, 2426, and 4770, and updates RFC 2739. [STANDARDS-TRACK]</t></abstract></front>
<seriesInfo name='RFC' value='6350' />
<format type='TXT' octets='139895' target='http://www.rfc-editor.org/rfc/rfc6350.txt' />
</reference>

<reference anchor='RFC2119'>
  <front>
    <title abbrev='RFC Key Words'>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author initials='S.' surname='Bradner' fullname='Scott Bradner'>
      <organization>Harvard University</organization>
      <address>
        <postal>
          <street>1350 Mass. Ave.</street>
          <street>Cambridge</street>
          <street>MA 02138</street>
        </postal>
        <phone>- +1 617 495 3864</phone>
        <email>-</email>
      </address>
    </author>
    <date month='March' year='1997'></date>
    <area>General</area>
    <keyword>keyword</keyword>
    <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.  Authors who follow these guidelines should incorporate this phrase near the beginning of their document:
        <list>
          <t>The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;,  &quot;MAY&quot;, and &quot;OPTIONAL&quot; in this document are to be interpreted as described in RFC 2119.</t>
        </list>
      </t>
      <t>Note that the force of these words is modified by the requirement level of the document in which they are used.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='14' />
  <seriesInfo name='RFC' value='2119' />
</reference>

    </references>
    <references title="Informative References">

<reference anchor='RFC4519'>
<front>
<title>Lightweight Directory Access Protocol (LDAP): Schema for User Applications</title>
<author initials='A.' surname='Sciberras' fullname='A. Sciberras'>
<organization /></author>
<date year='2006' month='June' />
<abstract>
<t>This document is an integral part of the Lightweight Directory Access Protocol (LDAP) technical specification.  It provides a technical specification of attribute types and object classes intended for use by LDAP directory clients for many directory services, such as White Pages.  These objects are widely used as a basis for the schema in many LDAP directories.  This document does not cover attributes used for the administration of directory servers, nor does it include directory objects defined for specific uses in other documents. [STANDARDS-TRACK]</t></abstract></front>
<seriesInfo name='RFC' value='4519' />
<format type='TXT' octets='64996' target='http://www.rfc-editor.org/rfc/rfc4519.txt' />
</reference>

<reference anchor='RFC6351'>
<front>
<title>xCard: vCard XML Representation</title>
<author initials='S.' surname='Perreault' fullname='S. Perreault'>
<organization /></author>
<date year='2011' month='August' />
<abstract>
<t>This document defines the XML schema of the vCard data format. [STANDARDS-TRACK]</t></abstract></front>
<seriesInfo name='RFC' value='6351' />
<format type='TXT' octets='34086' target='http://www.rfc-editor.org/rfc/rfc6351.txt' />
</reference>

<reference anchor='RFC6473'>
<front>
<title>vCard KIND:application</title>
<author initials='P.' surname='Saint-Andre' fullname='P. Saint-Andre'>
<organization /></author>
<date year='2011' month='December' />
<abstract>
<t>This document defines a value of "application" for the vCard KIND property so that vCards can be used to represent software applications. [STANDARDS-TRACK]</t></abstract></front>
<seriesInfo name='RFC' value='6473' />
<format type='TXT' octets='9776' target='http://www.rfc-editor.org/rfc/rfc6473.txt' />
</reference>

<reference anchor="X.200">
<front>
<title>Information Technology - Open Systems Interconnection - Basic Reference Model: The Basic Model</title>
<author>
<organization>International Telecommunications Union</organization>
</author>
<date month="February" year="2001" />
</front>
<seriesInfo name="ITU-T" value="Recommendation X.521" />
<seriesInfo name="ISO" value="Standard 9594-7" />
</reference>

<reference anchor="X.521">
<front>
<title>Information Technology - Open Systems Interconnection - The Directory: Selected Object Classes</title>
<author>
<organization>International Telecommunications Union</organization>
</author>
<date month="July" year="1994" />
</front>
<seriesInfo name="ITU-T" value="Recommendation X.200" />
<seriesInfo name="ISO" value="Standard 7498-1" />
</reference>

<reference anchor="IEEE.802.1AR">
<front>
<title>Secure Device Identity</title>
<author>
<organization>Institute of Electrical and Electronics Engineers</organization>
</author>
<date month="" year="2009"/>
</front>
<seriesInfo name="IEEE" value="802.1AR"/>
</reference>

    </references>

  </back>

</rfc>
