在文件openvswitch-2.11.4/vswitchd/bridge.c中! bridge_run --调用--> void bridge_run(void) { bridge_run__(); if (ovsdb_idl_get_seqno(idl) != idl_seqno || if_notifier_changed(ifnotifier)) { ... bridge_reconfigure(cfg ? cfg : &null_cfg); ... } } 分支(一):主要会用到 brid...
ovs-vswitchd.c的main函数最终会进入一个while循环,在这个无限循环中,里面最重要的两个函数是bridge_run()和netdev_run()。 Openvswitch主要管理两种类型的设备,一个是创建的虚拟网桥,一个是连接到虚拟网桥上的设备。 其中bridge_run就是初始化数据库中已经创建的虚拟网桥。 一、虚拟网桥的初始化bridge_run bridge...
ovs-vswitchd.c的main函数最终会进入一个while循环,在这个无限循环中,里面最重要的两个函数是bridge_run()和netdev_run()。 Openvswitch主要管理两种类型的设备,一个是创建的虚拟网桥,一个是连接到虚拟网桥上的设备。 其中bridge_run就是初始化数据库中已经创建的虚拟网桥。 一、虚拟网桥的初始化bridge_run bridge...
bridge_run__ --调用--> ofproto_run让每一个网桥去执行他对应的功能 static voidbridge_run__(void) { ... 其他操作 ... /* Let each bridge do the work that it needs to do. */HMAP_FOR_EACH (br, node, &all_bridges) {ofproto_run(br->ofproto);} } 在文件openvswitch-2.11.4/ofproto/...
main-->bridge_run-->netdev_set_flow_api_enabled-->netdev_tc_init_flow_api 2.ovs offload流表下发 OVS相关部分:当报文不匹配的时候,会将报文上报,会调用udpif_upcall_handler: udpif_upcall_handler-->recv_upcalls-->handle_upcalls-->dpif_operate-->dpif_netlink_operate-->try_send_to_netde...
ovs-vsctl add-br br-ply1 -- set bridge br-ply1 datapath_type=netdev ovs-vsctl add-port br-ply1 tap1 -- set Interface tap1 type=dpdkvhostuserclient options:vhost-server-path=/var/run/openvswitch/tap1 ovs-vsctl add-port br-ply1 p-tap1-int -- set Interface p-tap1-in...
bridge_run主要对网包进行完整处理过程。包括完成必要的配置更新【在配置更新中会从数据库中读取配置信息,生成必要的bridge和dp等数据结构】ovsdb_idl_run(idl);处理了一批从'IDL'数据库服务器的消息。这可能会导致IDL的内容发生变化。客户端可以检查与ovsdb_idl_get_seqno()。
1) bridge层 1.1 struct bridge对应每个ovs网桥最上层的结构。它通过成员指针变量ofproto,联系到struct ofproto交换机结构内容。 1. 2) ofproto层 2.1 由于联系到的struct ofproto内容是struct ofproto_dpif结构的一个up成员变量。所以通过struct ofproto地址可以cast到struct ofproto_dpif结构内容,通过该内容和dpif层交互...
bridge_run网桥运行获取in_port和device判断是不是mpls,记录相关信息到flower->key和flower->mask中注册netdev_offload_tc flow api1将flower信息转换成netlink信息发送给端口netdev_run设备运行给offload info结构体赋值初始化flow api3调用卸载流表接口netdev_tc_flow_put...
ovs-vswitchd's main thread on the next run of bridge_run(). There should be no race condition here. Maybe the port failed to ge reconfigured and was left in some partially-initialzed state. Could you please enable netdev-dpdk and ofproto debug logs and attach ...