代码改变世界

文章分类 -  OVS

八 ofproto--upcall处理线程

2017-03-24 17:39 by yrpapa, 996 阅读, 收藏,
摘要: 一 ofproto层通过ofproto_class类(实现是ofproto_dpif_class)实现了openflow的接口,它主要包括如下几个接口类对象: ofproto 代表了一个openflow switch的具体实现,是ofproto层的整体结构体; ofport代表了一个openflow 阅读全文

七 vxlan发包流程

2017-03-23 15:01 by yrpapa, 751 阅读, 收藏,
摘要: vxlan发包流程 发包处理函数最终会调用到ovs_vport_send函数,该函数最终会调用vport_ops的send函数。 阅读全文

六 vxlan端口创建

2017-03-23 12:18 by yrpapa, 795 阅读, 收藏,
摘要: 一 vxlan端口创建 设置encap_rcv方法(vxlan在四层收到数据包的处理方法) 创建vxlan端口,在内核中主要做了以下几件事情: 1、创建net_device设备对象,通过该对象可以获得vxlan_dev以及vxlan配置信息; 2、创建vxlan socket,并设置encap_rc 阅读全文

四 OVS--流表匹配

2017-03-21 19:59 by yrpapa, 941 阅读, 收藏,
摘要: 一 datapath的数据结构 流表项--flex_array中的每一个bucket记录了一个sw_flow结构的node的头指针 二 虚拟端口收到数据包后,进行流表的匹配,分析一下过程 参考 http://www.sdnlab.com/18668.html 阅读全文

三 简单浏览一下linux网桥的源码

2017-03-21 14:29 by yrpapa, 1075 阅读, 收藏,
摘要: 一 linux网桥是个内核进程,加载模块首先执行模块初始化 二 CMA表 当网桥收到一个数据包时,它会获取该数据的源MAC地址,然后对数据库进行更新。如果该MAC地址不在数库中,则创新一个数据项。如果存在,更新它的年龄。数据库使用hash表的结构方式,便于高效查询。 说明: 1. 其中最左边的net 阅读全文

二 DATAPATH--网桥的创建

2017-03-20 15:15 by yrpapa, 539 阅读, 收藏,
摘要: 一 datapath内核态进程加载后,调用ovs_internal_dev_rtnl_link_register初始化网桥操作 对于上行的用户态和执行datapath Action,留在后面章节!!! 阅读全文

五 OVS--流表创建

2017-03-20 14:55 by yrpapa, 857 阅读, 收藏,
摘要: dp_register_genl初始化了流表的操作,流表创建的入口函数是ovs_flow_cmd_new 阅读全文

一 DATAPATH--datapath如何接受数据包

2017-03-20 14:52 by yrpapa, 510 阅读, 收藏,
摘要: 一 datapath是ovs的内核模块,模块初始化会执行以下代码,初始化网络设备、虚拟端口等 二 ovs_netdev_init(),初始化虚拟port的操作,例如添加端口到网桥的操作netdev_create 注册钩子netdev_frame_hook到协议栈的handler,netdev_fra 阅读全文