<p class="p1">i just found a bug from xapi code <a href="http://network_utils.ml/"><span class="s1">network_utils.ml</span></a>:</p>
<p class="p2"><br></p>
<p class="p3"><span class="Apple-tab-span">     </span>let is_physical name =</p>
<p class="p3"><span class="Apple-tab-span">     </span><span class="Apple-tab-span">      </span>try</p>
<p class="p3"><span class="Apple-tab-span">     </span><span class="Apple-tab-span">      </span><span class="Apple-tab-span">      </span>let link = Unix.readlink (getpath name "device") in</p>
<p class="p3"><span class="Apple-tab-span">     </span><span class="Apple-tab-span">      </span><span class="Apple-tab-span">      </span>(* filter out device symlinks which look like /../../../devices/xen-backend/vif- *)</p>
<p class="p3"><span class="Apple-tab-span">     </span><span class="Apple-tab-span">      </span><span class="Apple-tab-span">      </span>not(List.mem "xen-backend" (String.split '/' link))</p>
<p class="p3"><span class="Apple-tab-span">     </span><span class="Apple-tab-span">      </span>with _ -> false</p>
<p class="p4"><br></p>
<p class="p3">i use xcp + ubuntu 12.04, in my /sys/class/net/  dir it looks like:</p>
<p class="p4"><br></p>
<p class="p4"><br></p>
<p class="p4"><br></p>
<p class="p3">drwxr-xr-x  2 root root 0 Oct  4 17:02 ./</p>
<p class="p3">drwxr-xr-x 46 root root 0 Oct  4 17:02 ../</p>
<p class="p3">lrwxrwxrwx  1 root root 0 Oct  4 17:02 eth0 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/net/eth0/</p>
<p class="p3">lrwxrwxrwx  1 root root 0 Oct  4 17:02 eth1 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.1/net/eth1/</p>
<p class="p3">lrwxrwxrwx  1 root root 0 Oct  4 17:02 lo -> ../../devices/virtual/net/lo/</p>
<p class="p3">lrwxrwxrwx  1 root root 0 Oct  4 19:05 tap9.0 -> ../../devices/virtual/net/tap9.0/</p>
<p class="p3">lrwxrwxrwx  1 root root 0 Oct  5 11:11 vif10.0 -> ../../devices/vif-10-0/net/vif10.0/</p>
<p class="p3">lrwxrwxrwx  1 root root 0 Oct  5 11:54 vif11.0 -> ../../devices/vif-11-0/net/vif11.0/</p>
<p class="p3">lrwxrwxrwx  1 root root 0 Oct  5 11:54 vif12.0 -> ../../devices/vif-12-0/net/vif12.0/</p>
<p class="p3">lrwxrwxrwx  1 root root 0 Oct  4 17:28 vif5.0 -> ../../devices/vif-5-0/net/vif5.0/</p>
<p class="p3">lrwxrwxrwx  1 root root 0 Oct  4 19:05 vif9.0 -> ../../devices/vif-9-0/net/vif9.0/</p>
<p class="p3">lrwxrwxrwx  1 root root 0 Oct  4 17:02 xenbr0 -> ../../devices/virtual/net/xenbr0/</p>
<p class="p3">lrwxrwxrwx  1 root root 0 Oct  4 17:02 xenbr1 -> ../../devices/virtual/net/xenbr1/</p>
<p class="p4"><br></p>
<p class="p4"><br></p>
<p class="p3">so , there is no subdir or symlink like "xen-backend", each device will be think as real physical device and always return true from that function.</p>
<p class="p4"><br></p>
<p class="p3">this bug will happen when ur dom0 reboot from a crash (some instance does not released when crash happen), there will have a lots of bridge like "brvif..."</p>
<p class="p4"><br></p>
<p class="p3">thanks.</p>