opentack neutron学习 -- create_network实现

声明:

本博客欢迎转发,但请保留原作者信息!

博客地址:http://blog.csdn.net/llg8212

内容系本人学习、研究和总结,如有雷同,不胜荣幸!

该接口的代码流程以openvswitch的实现为例。

1.请求响应消息

1.1创建nativenetwork

请求:

{

"network":

{

"name":"sample_network",

"admin_state_up":false

}

}

应答:

{

"network":{

"admin_state_up":true,

"id":"850d3f2c-f0a5-4f8b-b1cf-5836fc0be940",

"name":"sample_network",

"shared":false,#是否可以在多个tenant共享

"status":"ACTIVE",

"subnets":[],

"tenant_id":"f667b69e4d6749749ef3bcba7251d9ce"

}

}

1.2使用provider

请求:

{

"network":

{

"name":"net-name",

"admin_state_up":true,

"provider:network_type":"vlan",

"provider:physical_network":"physnet_1",

"provider:segmentation_id":201

}

}

应答:

{

"network":

{

"status":"ACTIVE",

"subnets":[],

"name":"network-1",

"admin_state_up":true,

"tenant_id":"c1210485b2424d48804aad5d39c61b8f",

"id":"3a06dfc7-d239-4aad-9a57-21cd171c72e5",

"shared":false,

"provider:network_type":"vlan",

"provider:physical_network":"physnet_1",

"provider:segmentation_id":101

}

}

1.3 Bulk create networks

请求:

{

"networks":[

{

"name":"sample_network_1",

"admin_state_up":false

},

{

"name":"sample_network_2",

"admin_state_up":false

}

]

}

注:批量创建网络的处理和创建单个的处理流程是完全一样的,仅在neutron-server中将多个网络信息解析并放到一个list中,然后通过循环去创建。最后返回的消息也是批量的消息。

2.代码流程

create_network的过程就是neutron-server接收到restapi请求后,调用plugincreate_network方法,根据请求的参数将相应信息写入数据库并返回创建的记录的过程。其时序图如下:


疑问:发出网络创建开始和结束以及dhcp的消息有什么作用?

如果创建网络时指定了provider,在plugin创建网络的过程中会先处理provider,其处理流程如下图所示:


从以上的流程处理获得如下一张provider中网络模式和physical_networksegmentation_id的取值对应关系表这也就是传入provider需要遵守的约束):

provider:

network_type

provider:physical_network

provider:

segmentation_id

备注

local


flat

如果设置,需跟plugin配置中network_vlan_ranges= XXX[:start:end]中的XXX

如果没设置并且XXX'default'physical_network设置为'default'

代码中设置为-1


vlan

1~4094之间

已有

bpprovider_network_partial_specs,允许不指定segmentation_id

grevxlan

代码中设置为None

tunneling需为true



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值