Nuage 插件的 Extraroute 扩展支持

https://blueprints.launchpad.net/neutron/+spec/extraroute-ext-support-for-nuage-plugin

为现有的 Nuage 网络插件添加 extraroute 扩展支持

问题描述

当前的 Nuage 插件不支持 Neutron 的 extra-route 扩展。Nuage 的 VSP 支持此功能,需要在插件代码中添加对扩展的支持。

提议的变更

在 Nuage 插件中添加扩展支持代码。

备选方案

数据模型影响

为了支持此功能,需要几个额外的表。一个是 neutron 中已存在的 routerroutes 表。该表不需要任何模式更改。第二个表是 Nuage 插件特定的。这将在新代码中添加。

它可能如下所示

class RouterRoutesMapping(model_base.BASEV2, models_v2.Route):
    __tablename__ = 'routerroutes_mapping'
    router_id = Column(String(36), ForeignKey('routers.id', ondelete="CASCADE"),
                primary_key=True)
    nuage_route_id = Column(String(36))

需要生成迁移脚本。

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

实现

Nuage 的 VSP 支持将静态路由添加到 L3 域,这与 openstack 的 neutron 支持的 extraroute 扩展非常吻合。

以下是 nuage 插件中 neutron 的工作流程映射

假设 router1 存在。步骤 1:neutron router-update router1 –routes type=dict list=true destination=15.0.0.0/24,nexthop=10.10.0.5 这将在 VSP 的 l3-domain router1 中创建一个静态路由条目

步骤 2:neutron router-update router1 –routes type=dict list=true destination=15.0.0.0/24,nexthop=10.10.0.5 destination=25.0.0.0/24,nexthop=10.10.0.6 这将向同一路由器添加另一个静态路由。

步骤 3:neutron router-update router1 –routes type=dict list=true destination=15.0.0.0/24,nexthop=10.10.0.5 这将删除步骤 2 的静态路由。

基本上,每次指定 routes 选项时,它都会将其视为一组新的值。因此,坚持这种相同的行为。

步骤 4:neutron router-update router1 –routes action=clear 清除所有静态路由。

负责人

Ronak Shah

主要负责人

ronak-malav-shah

其他贡献者

工作项

Nuage 插件中的扩展代码 Nuage 单元测试的添加 Nuage CI 覆盖率的添加

依赖项

测试

Nuage 单元测试中 extra-route 扩展的单元测试覆盖率 Nuage CI 将被修改以开始支持此扩展测试

文档影响

参考资料