上一节我们讲了ovs-vswitchd,其中虚拟网桥初始化的时候,对调用内核模块来添加虚拟网卡。 我们从openvswitch内核模块的加载过程,来看这个过程。 在datapath/datapath.c中会调用module_init(dp_init);来初始化内核模块。 ...
ovs vswitchd.c的main函数最终会进入一个while循环,在这个无限循环中,里面最重要的两个函数是bridge run 和netdev run 。 Openvswitch主要管理两种类型的设备,一个是创建的虚拟网桥,一个是连接到虚拟网桥上的设备。 其中bridge run就是初始化数据库中已经创建的虚拟网桥。 一 虚拟网桥的初始化bridge run bridge run会调用bri ...
2016-09-08 00:26 0 4041 推荐指数:
上一节我们讲了ovs-vswitchd,其中虚拟网桥初始化的时候,对调用内核模块来添加虚拟网卡。 我们从openvswitch内核模块的加载过程,来看这个过程。 在datapath/datapath.c中会调用module_init(dp_init);来初始化内核模块。 ...
一、Opevswitch总体架构 Openvswitch的架构网上有如下的图表示: 每个模块都有不同的功能 ovs-vswitchd 为主要模块,实现交换机的守护进程daemon 在Openvswitch所在的服务器进行ps aux可以看到 ...
有时候我们需要自定义一些自己的action,根据包头里面的信息,做一些自己的操作。 例如添加一个action名为handle_example 第一、修改ofp-actions.c文件 ...
添加一个flow,调用的命令为 ovs-ofctl add-flow hello "hard_timeout=0 idle_timeout=0 priority=1 table=21 pkt_mark=0x55 tun_id=0x55 actions=mod_nw_dst ...
在上一节提到,Openvswitch的内核模块openvswitch.ko会在网卡上注册一个函数netdev_frame_hook,每当有网络包到达网卡的时候,这个函数就会被调用 ...
简介 搭建SDN环境少不了SDN交换机,SDN交换机跟普通交换机最大的区别就是将普通交换机的数据平面和控制平面相分离,SDN交换机只负责数据的转发,而控制指令则由更上一级的控制器下发。 Open vSwitch(下面简称OVS)是一个高质量的、多层虚拟交换机。OVS遵循开源Apache2.0 ...
当内核无法查找到流表项的时候,则会通过upcall来调用用户态ovs-vswtichd中的flow table。 会调用ofproto-dpif-upcall.c中的udpif_upcall_handler函数 ...
当一个数据包到达网卡的时候,首先要经过内核Openvswitch.ko,流表Flow Table在内核中有一份,通过key查找内核中的flow table,即可以得到action,然后执行action之后,直接发送这个包,只有在内核无法查找到流表项的时候,才会到用户态查找用户态的流表 ...