[ovs-discuss] What is the role of ovsdb-server and vswitchd?
Ben Pfaff
blp at nicira.com
Wed Sep 21 04:31:49 UTC 2011
On Tue, Sep 20, 2011 at 09:18:46PM -0700, Aishwarya wrote:
> The instructions to start openvswitch say we need to run ovsdbserver
> (listening on a unix socket in my case), and vswitchd subsequently. Now,
> openvswitch is said to route packets in the kernel itself and not use
> userspace.
The Open vSwitch kernel module does almost nothing on its own
initiative. Userspace and in particular ovs-vswitchd is a vital part of
setting up flows.
> However, ovsdb-server and vswitchd are user processes. What is the
> role of these actually when 2 vms are trying to send traffic via the
> openvswitch?
When a new flow arrives, ovs-vswitchd decides where its packets should
go.
> Lets say I configure the flow rules and then kill the vswitchd
> process, the vms cannot communicate anymore. Why should this happen
> although the kernel module is still loaded? How is the routing of the
> packet being affected by these user level processes?
When new flow arrives, ovs-vswitchd isn't running so it can't decide
where the packets should go. They get dropped.
> I would assume that the database server would be needed only to query
> something like port or flow information. But it seems to be necessary
> while sending traffic too. Is this because the switch on receiving
> traffic is querying the database to check for the flows, before
> sending the traffic out?
No.
> In that case, what does it mean that openvswitch has High-performance
> forwarding using a Linux kernel module (since it is using the user
> space program as well?)
Once ovs-vswitchd decides where packets in a flow should go, they get
forwarded quickly by the kernel.
More information about the discuss
mailing list