<?xml version="1.0"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->
<configuration>
  <layoutversion>1</layoutversion>
  <layers>
    <layer id="datacenter">
      <prefix></prefix>
      <cost>1</cost>
      <type>ROOT</type>
    </layer>
    <layer id="rack">
      <prefix>rack</prefix>
      <cost>1</cost>
      <type>InnerNode</type>
      <default>default-rack</default>
    </layer>
    <layer id="node">
      <prefix></prefix>
      <cost>0</cost>
      <type>Leaf</type>
    </layer>
  </layers>
  <topology>
    <path>/datacenter/room/node</path>
    <enforceprefix>false</enforceprefix>
  </topology>
</configuration>