Basic Enumeration

The Basic Enumeration (%C1.E.be) command requests the first-level names under a specified prefix, much like a single-level directory listing command. It is constructed as an Interest with a name that is, when expressed as a URI, of the form

ccnx:/<prefix>/%C1.E.be

<prefix>

<prefix> is required, is the prefix under which lower-level names are requested, and may have multiple components. See CCNx Name Specification.

Response

If the object is present, the Repository responds with the first segment of names immediately below the specified prefix. If the result does not fit in a single segment, the remaining segments may be fetched using the standard segmentation markers (%00%01, %00%02, …) in place of the %00. If every component of the prefix exists in the Repository but there are no components below the last component of the prefix, then an empty collection is returned (i.e., "<collection/>").

If the object is not present, the Repository does not respond.

For example, if you express the following interest:

ccnx:/xxx/yyy/%C1.E.be

then the first segment of the response will be named:

ccnx:/xxx/yyy/%C1.E.be/%C1.M.K%00<public_key_of_responding_repository>/%FD<version>/%00

and the content will be a Collection of Links (see ccnx.xsd) of the following form:

<Collection>
  <Link>
    <Name>
      <Component ccnbencoding="base64Binary">/QTuZqRyKQ==</Component>
      <!--       %FD%04%EEf%A4r%29 -->
    </Name>
  </Link>
</Collection>

where the query in this case was for a part of the namespace that happened to have exactly one component under it that looked like a version.

The protocol is illustrated below.

NameEnumerationProtocol.png