Port Binding操作源码解读

一 类ML2Plugin中的处理
Plugin主要把握进行Port Binding的时机主要有下面3个:
1 port创建时,即create_port()执行时,如果已经提供了足够的信息,则需要第一时间进行bind。
2 由于update_port()导致端口信息变化时也需要重新bind端口。
3 Agent通过RPC从Plugin获取port信息时,也会尝试bind端口,这样会避免在获取信息的过程中,由于其他进程更新了port但是并没有bind而导致Agent不能获取最新的bind信息。
下面源码是第1种情况。
#neutron/plugins/ml2/plugin.py
    def create_port(self, context, port):
        attrs = port['port']
        attrs['status'] = const.PORT_STATUS_DOWN
        session = context.session
        with session.begin(subtransactions=True):
            #在数据库创建binding信息,设置port_id,设置vif_type为"unbound"
            binding = db.add_port_binding(session, result['id'])
            mech_context = driver_context.PortContext(self, context
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值