[ovs-discuss] Issue in added bridge in OVS-DPDK build

Radhakrishnan, Sharmila sharmila.radhakrishnan at intel.com
Tue Mar 17 15:27:04 UTC 2015

Hi Daniele,
Thanks! That was really informative.


-----Original Message-----
From: Daniele Di Proietto [mailto:diproiettod at vmware.com] 
Sent: Tuesday, March 17, 2015 8:39 PM
To: Radhakrishnan, Sharmila
Cc: discuss at openvswitch.org
Subject: Re: [ovs-discuss] Issue in added bridge in OVS-DPDK build

> On 17 Mar 2015, at 13:49, Radhakrishnan, Sharmila <sharmila.radhakrishnan at intel.com> wrote:
> Hi Daniele,
> I went through e OVS installation in userspace. In the Userspace install it is given, we install everything except the kernel modules and the add the bridges using the below commands:
> ovs-vsctl add-br br0
> ovs-vsctl set bridge br0 datapath_type=netdev ovs-vsctl add-port br0 
> eth0 ovs-vsctl add-port br0 eth1 ovs-vsctl add-port br0 eth2
> In the above commands, the first command fails for me again(you have pointed out about the kernel module not being there). Does that mean we need to install the kernel module too in the Userspace mode?
> Also, in the installation of the plain OVS document, it is mentioned that installing kernel modules is optional. Shouldn’t this be mandatory?

Short answer:
    No, the kernel module is not needed in this case.  To make OVS work with
    DPDK (in particular to add bridges and ports), please follow
    INSTALL.DPDK.md (in particular section “Using the DPDK with ovs-vswitchd”
    point “6. Add bridge & ports”).

Long answer:
    ``ovs-vsctl add-br br0’’ adds to the _database_ a bridge backed by a
    “system” datapath.  As soon as the ovs-vswitchd daemon notices the
    change, it tries to create the bridge and the datapath.  It fails
    because the kernel module it’s not loaded but it doesn’t delete
    anything from the database.
    ``ovs-vsctl set bridge br0 datapath_type=netdev'’ sets the
    appropriate datapath_type in the _database_.  As soon as the ovs-vswitchd
    daemon notices the change, it destroys the old datapath (which wasn’t
    fully created anyway) and it creates the new one.

    A simpler way of accomplishing the same goal is to use
    ``ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev’'
    which updates the database in a single transaction.    

> Also, I would like to understand the architecture of OVS in kernel space vs the one in userspace. Is there any links/document to understand what goes behind the hood.

The PORTING.md document in the source tree should provide a good
introduction to the OVS architecture

Hope this helps,


More information about the discuss mailing list