This assumes that every port returned by `list-ports` is a valid nic, but once neutron is up and running with openvswitch that's not the case, e.g.

```
d52-54-00-b5-4c-c6:/sys/class/net # for intf in *; do echo $intf; ovs-vsctl br-exists $intf && ovs-vsctl list-ports $intf | sed 's/^/    /'; done                                       
br-int
    int-br-tunnel
    patch-tun
    qr-5b8336c2-e1
    tap72237529-04
br-public
    eth0.300
    qg-11de4954-e5
br-tunnel
    gre-2
    gre-3
    patch-int
eth0
eth0.300
eth0.400
eth1
int-br-tunnel
lo
ovs-system
phy-br-tunnel
```