一 Neutron源码目录结构
--bin -包括下面两个工具,基于oslo.rootwrap提供利用root权限执行命令的接口|--neutron-rootwrap|--neutron-rootwrap-xen-dom0
--doc -用于文档生成
--etc -各种配置文件,基本上都会在安装时被复制到/etc/目录下|--api-paste.ini -Paste Deploy配置文件|--dhcp_agent.ini -DHCP agent配置信息|--fwaas_driver.ini|--init.d -Neutron唯一一个服务neutron-server的入口|--neutron-server|--l3_agent.ini|--lbaas_agent.ini|--metadata_agent.ini|--metering_agent.ini|--neutron|--plugins -各种Core Plugin的配置信息|--rootwrap.d -包含了oslo.rootwrap相关的一系列filter文件。|--neutron.conf -neutron-server启动后会读取这个配置文件|--policy.json -oslo.policy配置文件,API调用时会依据这里的配置进行检查|--rootwrap.conf -neutron-rootwrap配置文件,定义了filter文件保存位置等信息|--services.conf|--vpn_agent.ini
--neutron -Neutron核心实现代码|--agent -DHCP、Firewall等各种Agent的实现代码|--api -Neutron API实现|--cmd -几个辅助工具|--common -用于配置、异常、常量、日志、通信等操作的通用库|--db -数据库数据模型以及API|--debug -辅助的调试工具|--extensions -各种Extension API实现|--hacking -编码规范检查|--locale -多语言支持|--manager.py -解析配置文件并加载Core Plugin|--neutron_plugin_base_v2.py -Neutron Plugin的抽象基类|--notifiers -通知Nova网络有关的变化|--openstack|--plugins -各种Core Plugin实现|--scheduler|--dhcp_agent_scheduler.py -基于一定的策略为虚拟网络分配DHCP Agent|--l3_agent_scheduler.py -调度选择L3 Agent来运行|--server -neutron-server服务进程的实现入口|--service.py -定义各种服务的基类,比如WsgiService是WSGI服务的基类|--services -各种Service Plugin的实现|--tests -单元测试
--setup.cfg
--setup.py
--tools -包括一些安装、格式检查等相关工具
二 setup.cfg文件
[entry_points]
console_scripts =neutron-cisco-cfg-agent = neutron.plugins.cisco.cfg_agent.cfg_agent:mainneutron-check-nsx-config = neutron.plugins.vmware.check_nsx_config:mainneutron-db-manage = neutron.db.migration.cli:mainneutron-debug = neutron.debug.shell:mainneutron-dhcp-agent = neutron.agent.dhcp_agent:mainneutron-hyperv-agent = neutron.plugins.hyperv.agent.hyperv_neutron_agent:mainneutron-ibm-agent = neutron.plugins.ibm.agent.sdnve_neutron_agent:mainneutron-l3-agent = neutron.agent.l3_agent:mainneutron-lbaas-agent = neutron.services.loadbalancer.agent.agent:mainneutron-linuxbridge-agent = neutron.plugins.linuxbridge.agent.linuxbridge_neutron_agent:mainneutron-metadata-agent = neutron.agent.metadata.agent:mainneutron-mlnx-agent = neutron.plugins.mlnx.agent.eswitch_neutron_agent:mainneutron-nec-agent = neutron.plugins.nec.agent.nec_neutron_agent:mainneutron-netns-cleanup = neutron.agent.netns_cleanup_util:mainneutron-ns-metadata-proxy = neutron.agent.metadata.namespace_proxy:mainneutron-nsx-manage = neutron.plugins.vmware.shell:mainneutron-nvsd-agent = neutron.plugins.oneconvergence.agent.nvsd_neutron_agent:mainneutron-openvswitch-agent = neutron.plugins.openvswitch.agent.ovs_neutron_agent:mainneutron-ovs-cleanup = neutron.agent.ovs_cleanup_util:mainneutron-restproxy-agent = neutron.plugins.bigswitch.agent.restproxy_agent:mainneutron-ryu-agent = neutron.plugins.ryu.agent.ryu_neutron_agent:mainneutron-server = neutron.server:mainneutron-rootwrap = oslo.rootwrap.cmd:mainneutron-usage-audit = neutron.cmd.usage_audit:mainneutron-vpn-agent = neutron.services.vpn.agent:mainneutron-metering-agent = neutron.services.metering.agents.metering_agent:mainneutron-ofagent-agent = neutron.plugins.ofagent.agent.main:mainneutron-sriov-nic-agent = neutron.plugins.sriovnicagent.sriov_nic_agent:mainneutron-sanity-check = neutron.cmd.sanity_check:mainneutron-cisco-apic-service-agent = neutron.plugins.ml2.drivers.cisco.apic.apic_topology:service_mainneutron-cisco-apic-host-agent = neutron.plugins.ml2.drivers.cisco.apic.apic_topology:agent_main
neutron.core_plugins =bigswitch = neutron.plugins.bigswitch.plugin:NeutronRestProxyV2brocade = neutron.plugins.brocade.NeutronPlugin:BrocadePluginV2cisco = neutron.plugins.cisco.network_plugin:PluginV2embrane = neutron.plugins.embrane.plugins.embrane_ml2_plugin:EmbraneMl2Pluginhyperv = neutron.plugins.hyperv.hyperv_neutron_plugin:HyperVNeutronPluginibm = neutron.plugins.ibm.sdnve_neutron_plugin:SdnvePluginV2midonet = neutron.plugins.midonet.plugin:MidonetPluginV2ml2 = neutron.plugins.ml2.plugin:Ml2Pluginmlnx = neutron.plugins.mlnx.mlnx_plugin:MellanoxEswitchPluginnec = neutron.plugins.nec.nec_plugin:NECPluginV2nuage = neutron.plugins.nuage.plugin:NuagePluginmetaplugin = neutron.plugins.metaplugin.meta_neutron_plugin:MetaPluginV2oneconvergence = neutron.plugins.oneconvergence.plugin:OneConvergencePluginV2plumgrid = neutron.plugins.plumgrid.plumgrid_plugin.plumgrid_plugin:NeutronPluginPLUMgridV2ryu = neutron.plugins.ryu.ryu_neutron_plugin:RyuNeutronPluginV2vmware = neutron.plugins.vmware.plugin:NsxPlugin
neutron.service_plugins =dummy = neutron.tests.unit.dummy_plugin:DummyServicePluginrouter = neutron.services.l3_router.l3_router_plugin:L3RouterPluginbigswitch_l3 = neutron.plugins.bigswitch.l3_router_plugin:L3RestProxyfirewall = neutron.services.firewall.fwaas_plugin:FirewallPluginlbaas = neutron.services.loadbalancer.plugin:LoadBalancerPluginvpnaas = neutron.services.vpn.plugin:VPNDriverPluginmetering = neutron.services.metering.metering_plugin:MeteringPlugin
命名空间neutron.core_plugins和neutron.service_plugins分别指明了各种Core Plugin与Servce Plugin实现的入口。
命名空间console_scripts指定了neutron-server服务以及各种Agent实现入口,此外还包括了一些辅助命令或工具,这些工具脚本在部署时被安装。
neutron-db-manage:负责从旧Neutron版本数据库迁移与升级到新的版本,比如将原先的Open vSwitch或Linux Bridge的数据库迁移到ML2支持的数据库格式。具体可参考neutron/db/magration/README文件。
neutron-debug:Neutron辅助Debug脚本,提供了一个Shell环境来进行Debug,具体可以参考neutron/debug/README文件。
neutron-netns-cleanup:清理无用的Network Namespace,用于当Neutron Agent异常退出时进行环境的清理工作。Network Namespce的引入是为了支持网络协议栈的多个运行实例从而实现网络隔离,类似于进程的线性地址空间。
neutron-ovs-cleanup:清理无用的Open vSwitch网桥(或者说vSwitch)和端口。
neutron-sanity-check:执行一些简单的检查,比如是否支持VxLAN等。

Neutron源码结构相关推荐

  1. Linux内核移植之一:内核源码结构与Makefile分析

    内容来自 韦东山<嵌入式Linux应用开发完全手册> 一.内核介绍 1.版本及其特点 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如下面几行它们构成了Linu ...

  2. 【Android 系统开发】Android框架 与 源码结构

    一. Android 框架 Android框架层级 : Android 自下 而 上 分为 4层; -- Linux内核层; -- 各种库 和 Android运行环境层; -- 应用框架层; -- 应 ...

  3. 【华为云技术分享】Linux内核源码结构(1)

    在上一期中,我们介绍了Linux内核发展的历史,也介绍了与其相关的UNIX和GNU的相关知识.从这一期开始,我们将介绍Linux内核的源码结构.我们将先根据Linux源码的目录结构进行分析,到本文章发 ...

  4. MyBatis源码解读之源码结构

    2019独角兽企业重金招聘Python工程师标准>>> 目的 文章主要了解MyBatis源码结构,每个包的具体功能.如何去学习MyBatis源码. MyBatis源码结构导图 查看大 ...

  5. Webrtc之源码结构

    当把代码下载完,可以通过vs2017编译之后,特别兴奋,但是,当打开工程的时候,懵了.....看下图 再看工程项目 此刻的心情,,,,,低落到无语. 这位大神介绍了一下源码结构 https://blo ...

  6. v18.02 鸿蒙内核源码分析(源码结构) | 内核文件各自含义 | 百篇博客分析HarmonyOS源码

    子曰:"富而可求也,虽执鞭之士,吾亦为之.如不可求,从吾所好." <论语>:述而篇 百篇博客系列篇.本篇为: v18.xx 鸿蒙内核源码分析(源码结构篇) | 内核文件 ...

  7. OpenSSL之EVP(一)——数据结构及源码结构介绍

    EVP简介 Openssl EVP提供了丰富的密码学中的各种函数. Openssl 中实现了各种对称算法.摘要算法以及签名/验签算法. EVP 函数将这些具体的算法进行了封装. EVP 主要封装了如下 ...

  8. pnpm 源码结构及调试指南

    前言 随着前段时间尤大在 vue3 以及 vite 仓库中切换包管理为 pnpm 的 pr 成功 merge,以及 vue 生态中的一些项目例如 VueUse 也切换使用 pnpm,宣告着 vue 生 ...

  9. 【easyTrader源码分析1】源码结构梳理

    开篇 简单说一下为什么想写这个系列: 我个人对自动化交易比较感兴趣,他山之石,可以攻玉,搞清楚easyTrader,就搞清楚了市面上大部分自动交易方法. 实践是检验真理的唯一标准,一个无法实盘的量化交 ...

最新文章

  1. 中国大学的现实:层次越低,上课越多,学生读书越少
  2. 来自MIT的论文答辩、PPT教程,教你轻松应对毕业季和学术会议
  3. windows环境下安装scrapy框架报错问题--最快捷有效的解决方案
  4. 如何手动卸载 SQL Server 2005 实例(官方)
  5. 编辑docker容器中的文件
  6. Graph Neural Networks: A Review of Methods and Applications(Semantic Segmentation应用解读)
  7. android 通讯录字母排序,Android仿微信联系人字母排序效果
  8. 完全复制 mysql,MySQL完全复制表结构
  9. Java Character.UnicodeBlock of()方法与示例
  10. 消除数据孤岛,华为云DRS让一汽红旗ERP系统数据活起来
  11. 2012年总结2013展望 向岁月致敬 对未来憧憬
  12. 数据分析面试记录1-5
  13. python网络爬虫实战之下载笔趣看小说网小说
  14. 将“闲置资源”重新利用,这家公司重组闲置市场
  15. 服务器硬件配置应如何选择?
  16. 串口通信Serial
  17. 金融 App 审核被拒原因及解决方案汇总
  18. 计算机四级怎么算通过,计算机四级是如何规定的,怎样算合格?
  19. ASEMI整流桥GBU808参数,GBU808介绍,GBU808详解
  20. mysql服务怎么启动和关闭?

热门文章

  1. java 学习笔记(二) 字符串分割
  2. java矩阵addall_为什么Collections.addAll()比arrays.addAll()性能好?
  3. java char字节数_Java中char到底是多少字节?
  4. 66----曲面的方程:柱坐标、球坐标的参数方程
  5. 微信小程序云开发--云数据库导入数据集JSON格式
  6. 手机移动APP安全测试方法、工具和一些容易产生安全问题
  7. DLP数据丢失防护/数据防泄漏 隐私保护概念解析
  8. 信息安全-DLP(数据防泄漏)
  9. 程序员电脑最少得16G才够用啊!
  10. 微信小程序伪装页面(定时改变页面内容)