neutron学习小结

概述

基于yoga版本学习neutron,通过源码、官方文档、部署环境进行学习

neutron-dhcp-agent

neutron.agent.dhcp_agent.main

创建server,调oslo_service launch server,最后实际调了server的start方法

neutron.service.Service.start

Service创建时会传入一个manager路径,Service.start实际会调manager的一些方法启动业务,主要调了manager的init_host和after_start方法,after_start方法默认为空,主要是init_host

neutron没有prepare_service,而是把配置项注册汇聚到一个函数,可手动尝试

start方法周期运行service的report_state方法,这个方法默认为空,应该没啥用

neutron.agent.dhcp.agent.DhcpAgentWithStateReport.__init__

neutron.agent.dhcp.agent.DhcpAgent._populate_networks_cache

DhcpAgent初始化时从neutron 拿数据放入cache

然后调Dnsmasq的existing_dhcp_networks,实际获取/var/lib/neutron/dhcp底下的形如uuid的文件名作为已存在网络id,然后用id创dhcp对象,塞到cache

neutron.agent.dhcp.agent.DhcpAgentWithStateReport.init_host

实际调用了sync_state方法

neutron.agent.dhcp.agent.DhcpAgentWithStateReport.sync_state

从cache获取已存在的网络id,cache的东西初始从/var/lib/neutron/dhcp读取目录下所有形如uuid的文件名

DhcpAgent.plugin_rpc.get_active_networks_info

plugin_rpc传入target和transport,封装了一个oslo_messaging的RPCClient,topic从neutron_lib的topics常量文件读取,是q-plugin,transport用默认的rabbit,最后通过transport发消息到target

看了下rpc可能是core_plugins启的,不知道谁调core_plugins,后面再看

neutron-l3-agent

概述

主要在after_start,init_host没啥东西

流程

neutron.cmd.eventlet.agents.l3:main ->

neutron.agent.l3_agent.main ->

neutron.agent.l3.agent.L3NATAgentWithStateReport.after_start

neutron.agent.l3.agent.L3NATAgentWithStateReport._process_routers_loop

neutron.agent.l3.agent.L3NATAgentWithStateReport._report_state

neutron.agent.l3.agent.L3NATAgentWithStateReport.pd.after_start

neutron-linuxbridge-agent

流程

neutron.cmd.eventlet.plugins.linuxbridge_neutron_agent:main ->

neutron.plugins.ml2.drivers.linuxbridge.agent.linuxbridge_neutron_agent.main ->

neutron.plugins.ml2.drivers.agent._common_agent.CommonAgentLoop.start ->

neutron.plugins.ml2.drivers.linuxbridge.agent.linuxbridge_neutron_agent.main

physical_interface_mappings和bridge_mappings从配置文件读取,冒号分隔,可能是配的,返回一个mapping

neutron.plugins.ml2.drivers.agent._common_agent.CommonAgentLoop.start

self.ext_manager.names

太难了

self.mgr.get_agent_configurations

self.mgr.__init__

self.mgr.check_vxlan_support

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/673663.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【UML用户指南】-03-UML的14种图

1、结构图 1、类图(class diagram) 展现了一组类、接口、协作和它们之间的关系。 在面向对象系统的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。 包含主动类的类图给出系统的静态进程视图。构件图是类图的变体。 2、对象图&a…

转让北京电力施工总承包二级资质变更条件和流程

在电力工程领域,资质等级是企业能否参与竞标、承接工程的重要标志之一。北京电力工程总包二级资质的转让,是指已经取得该资质的企业将其资质转让给需要的企业。这种转让是基于合作与共赢的原则,旨在推动电力工程行业健康、稳定发展&#xff0…

Gin入门

Gin入门 声明:本博客为看李文周大佬gin入门视频笔记gin入门 我的代码仓库6月 沉着冷静/2023 - 码云 - 开源中国 (gitee.com) 安装 go get -u github.com/gin-gonic/gin第一个Gin实例: package mainimport ("github.com/gin-gonic/gin" )…

llvm 3.5 源码分析 clang for x86 001 之搭环境

0,目标 编译 针对x86 的,debug 的 c语言的编译器 1,下载代码 git clone --recursive 。。。llvm-project.git $ cd llvm-project 2,预备代码 llvm 3.5 版本的源代码,早期版本,可能比较小比较容易debug $…

发送Http请求的两种方式

说明:在项目中,我们有时会需要调用第三方接口,获取调用结果,来实现自己的业务逻辑。调用第三方接口,通常是双方确定好,由对方开放一个接口,需要我们根据他们提供的接口文档,组装Http…

STM32(九):USART串口通信 (标准库函数)

前言 上一篇文章已经介绍了如何用STM32单片机中独立看门狗来实现检测按键点灯的程序。这篇文章我们来介绍一下如何用STM32单片机中USART通信协议来串口通信,并向XCOM发送信息。 一、实验原理 1.通信的介绍 首先,我们先介绍一下通信,何为通…

C语言 | Leetcode C语言题解之第128题最长连续序列

题目&#xff1a; 题解&#xff1a; typedef struct {int key;UT_hash_handle hh; }Hash; int longestConsecutive(int* nums, int numsSize) {Hash* headNULL;Hash* tempNULL;for(int i0;i<numsSize;i){int numnums[i];HASH_FIND_INT(head,&num,temp);if(!temp){temp…

数据结构与算法04-栈和队列

介绍 栈和队列。事实上它们并不是全新的东西&#xff0c;只不过是多加了一些约束条件的数组而已。但正是这些约束条件为它们赋予了巧妙的用法。 栈和队列都是处理临时数据的灵活工具。在操作系统、打印任务、数据遍历等各种需要临时容器才能构造出美妙算法的场景&#xff0c;…

SQL实验 带函数查询和综合查询

一、实验目的 1&#xff0e;掌握Management Studio的使用。 2&#xff0e;掌握带函数查询和综合查询的使用。 二、实验内容及要求 1&#xff0e;统计年龄大于30岁的学生的人数。 --统计年龄大于30岁的学生的人数。SELECT COUNT(*) AS 人数FROM StudentWHERE (datepart(yea…

Medieval Lowpoly City with Toon Shader

介绍中世纪低地城市,这是一个创造历史场景、城市和环境的杰作,带有中世纪时期的魔力。 该包拥有70多个精心制作的模型,包括模块化选项,并通过着色器进行了增强,捕捉到了乡村建筑和细节道具的精髓。 用精心挑选的色彩和材料,让自己沉浸在历史的魅力中,仿佛漫步在中世纪的…

YOLOv3深入解析与实战:实时目标检测的高效多尺度架构网络

参考&#xff1a; https://arxiv.org/pdf/1804.02767.pdf https://blog.csdn.net/weixin_43334693/article/details/129143961 网上有很多关于yolo的文章&#xff0c;有些东西没讲清楚&#xff0c;基于自己对论文的理解&#xff0c;也做一个按照自己的想法做的理解。 1. 预测…

Rustdesk 自建服务器教程

一、环境 阿里云轻量服务器、debian11 系统 二、服务端搭建 2.1、开放防火墙指定端口 TCP(21115, 21116, 21117, 21118, 21119)UDP(21116) 2.2、安装 rustdesk 服务器文件 在 github 下载页https://github.com/rustdesk/rustdesk-server/releases/&#xff0c;下载 rustde…

大饼在一个比较关键的转折点,等某个东风来。。。。

1、历史数据对比&#xff0c;看多 图上方指标为BTC价格&#xff1b; 下方链上指标为BTC长期持有者成本均价跟BTC短期持有者成本均价之比。 从历史来看&#xff0c;我们正在启动往顶部的路上&#xff0c;不要畏惧。 2、结构为下降趋势&#xff0c;看空 3、长期持有者MVRV&…

几种更新 npm 项目依赖的实用方法

引言 在软件开发的过程中&#xff0c;我们知道依赖管理是其中一个至关重要的环节。npm&#xff08;Node Package Manager&#xff09; 是 Node.js 的包管理器&#xff0c;它主要用于 Node.js 项目的依赖管理和包发布。随着项目的不断发展&#xff0c;依赖库的版本更新和升级成…

Windows 2000 Server:安全配置终极指南

"远古技术&#xff0c;仅供娱乐" &#x1f4ad; 前言&#xff1a;Windows 2000 服务器在当时的市场中占据了很大的比例&#xff0c;主要原因包括操作简单和易于管理&#xff0c;但也经常因为安全性问题受到谴责&#xff0c;Windows 2000 的安全性真的那么差吗&#x…

YOLOv9改进策略 | Conv篇 | 利用YOLOv10提出的SCDown魔改YOLOv9进行下采样(附代码 + 结构图 + 添加教程)

一、本文介绍 本文给大家带来的改进机制是利用YOLOv10提出的SCDown魔改YOLOv9进行下采样&#xff0c;其是更高效的下采样。具体而言&#xff0c;其首先利用点卷积调整通道维度&#xff0c;然后利用深度卷积进行空间下采样。这将计算成本减少到和参数数量减少到。同时&#xff…

【人工智能003】图像识别算法模型常见术语简单总结(已更新)

1.熟悉、梳理、总结数据分析实战中的AI图像识别等实战研发知识体系&#xff0c;这块领域很大&#xff0c;需要耗费很多精力&#xff0c;逐步总结、更新到位&#xff0c;&#xff0c;&#xff0c; 2.欢迎点赞、关注、批评、指正&#xff0c;互三走起来&#xff0c;小手动起来&am…

3、flex弹性盒布局(flex:1?、水平垂直居中、三栏布局)

一、flex布局 任何一个容器都可以指定为 Flex 布局。块元素&#xff0c;行内元素即可。 div{ display: flex; } span{ display: inline-flex; } 注意&#xff0c;设为 Flex 布局以后&#xff0c;子元素的float、clear和vertical-align属性将失效。 二、flex属性 父容器…

WordPress子比内容同步插件

1.支持分类替换 将主站同步过来的文章分类进行替换 2.支持本地化文章图片 &#xff08;使用储存桶可能会导致无法保存图片&#xff09; 3.支持自定义文章作者&#xff08;选择多个作者则同步到的文章作者将会随机分配&#xff09; 4.支持将同步过来的文章自定义文章状态&…

ThinkBook 14 G6+ IMH(21LD)原厂Win11系统oem镜像下载

lenovo联想笔记本电脑原装出厂Windows11系统安装包&#xff0c; 恢复开箱状态自带预装系统&#xff0c;含恢复重置还原功能 链接&#xff1a;https://pan.baidu.com/s/1WIPNagHrC0wqYC3HIcua9A?pwdhzqg 提取码&#xff1a;hzqg 联想原装出厂系统自带所有驱动、出厂主题壁…