Cloudstack seems to let you create guest traffic types on multiple
physical networks. However, when I try this with KVM I end up always
bridging to whatever device is used for guest.network.device.

It looks like the issue is in
plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java,
in the plug function.

if (nic.getType() == Networks.TrafficType.Guest) {
            if (nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan
                    && !vlanId.equalsIgnoreCase("untagged")) {
                String brName = createVlanBr(vlanId, _pifs.get("private"));

that is, if nic is a guest traffic type, create its bridge on
"private", which is found by searching for guest.network.device. We
are passed the physicalnetwork bridge that we should be using (or at
least the KVM traffic label that should be used for the nic, which is
the same thing, no?) in StartCommand, so I'm not getting why it's
hardcoded to use the guest.network.device.

I'll look at fixing this, but as usual I'd like any background on this
that I can get, so I don't break it for others.

Also, should we not change the cloudVirBr prefix to include a physical
network identifier? It sort of seems like there's support for adding
vlans as well to each guest traffic on each physical network (e.g.
vlan 100-200 on physical network 1, vlan 100-200 on physical network
2, etc), but with the existing naming convention the bridge names will
collide. Perhaps there's more to it than that, but it seems like
changing the naming would be a first step.

Feedback?

Reply via email to