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.

Interest ::=    Prefix
                Command

Prefix

Prefix is required and is the prefix under which lower-level names are requested. See CCNx Name Specification.

Command

Command is required, and is %C1.E.be for Basic Enumeration.

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