I ran into an issue today that I'm still trying to wrap my head around, and I wanted to bounce this off of you guys. I have a physical network whose isolation method is set to 'VXLAN' (v4.3+). I add my Public traffic type to it. I'd assume that nics generated for public traffic would have the standard vxlan:// URI for isolation URI and broadcast URI, but they just have a vlan://. Digging into it, it seems that public traffic is hard-coded to BroadcastDomainType.Vlan. I fixed this fairly easily for my testing, there were only a few places to fix, by pulling the BroadcastDomainType from the network object rather than hardcoding it, but that found another problem. This only works if I change the broadcast type in the 'networks' mysql table by hand, as during zone deployment the public network creation is also hard-coded to vlan.
I'm not sure how to go about fixing this, since the Public, Control, Management networks are created upon zone deployment, (see createDefaultSystemNetworks). The immediate thing that jumped out was a config variable for public isolation method, set prior to zone deployment, or perhaps even one that overrides what's in the table. While I've got your attention, what's the deal with isolation method vs broadcast method? These are always set to the same thing as far as I've seen.