Type Driver最主要的功能是管理网络Segment,提供Provider Segment和Tenant Segment的验证、分配、释放等操作。
命令行中没有指定任何Provider信息时,所创建的就是Tenant Segment,简单的说,Provider Segment之外的Segment都可以称为Tenant Segment。
一 Flat Type Driver
#neutron/plugins/ml2/drivers/type_flat.py
class FlatTypeDriver(api.TypeDriver):
def validate_provider_segment(self, segment):
physical_network = segment.get(api.PHYSICAL_NETWORK)
if not physical_network:
msg = _("physical_network required for flat provider network")
raise exc.InvalidInput(error_message=msg)
if self.flat_networks and physical_network not in self.flat_networks:
msg = (_("physical_network '%s' unknown for flat provider network")
% physical_network)
raise exc.InvalidInput(error_