[ovs-discuss] Phy port- vport

Rajasekaran, Monica Monica.Rajasekaran at us.fujitsu.com
Mon Mar 14 20:53:18 UTC 2016


Hi William,

Thanks a lot for that explanation. I understand the code flow now. I have a couple of questions related to the concept:

-        Are “vports” like pathways on the data path side for packets from a device to reach the bridge in user space ?

-        So every time we create a new port on the bridge for a device, a new “vport” gets created on the data path side ?

Thanks again for your time.

Regards,
Monica

From: William Tu [mailto:u9012063 at gmail.com]
Sent: Monday, March 14, 2016 3:34 PM
To: Rajasekaran, Monica
Cc: dsainz at CS.technion.ac.il; discuss at openvswitch.org
Subject: Re: [ovs-discuss] Phy port- vport

Hi Monica,
Take a look at vport-netdev.c. When issuing add-port command, ovs_vport_add calls netdev_create:
[root at vm-dev datapath]# ovs-vsctl add-port br5 eth0
    ovs-vswitchd-1804  [000] .... 10761.168537: netdev_create <-ovs_vport_add

At initialization we register these callbacks
static struct vport_ops ovs_netdev_vport_ops = {
    .type       = OVS_VPORT_TYPE_NETDEV,
    .create     = netdev_create,
    .destroy    = netdev_destroy,
    .send       = dev_queue_xmit,
};

So when netdev_create is invoked, it does the following
    ovs_vport_alloc()
    ovs_netdev_link()
        // Register a receive handler for a device. This handler will then be
        // called from __netif_receive_skb.
        // ovs_netdev_link has a parameter 'name' specifying device name, then it register a receive handler by calling
           netdev_rx_handler_register(vport->dev, netdev_frame_hook, vport)
So our call back "netdev_frame_hook" will receive a packet from the device 'name'. If you keep tracing the code, it will call into


    ovs_vport_receive - pass up received packet to the datapath for processing



And ovs_vport_send calls
    vport->opvs->send
        .send       = dev_queue_xmit,

              dev_queue_xmit_sk(skb->sk, skb);

Regards,
William


On Thu, Mar 10, 2016 at 12:54 PM, Rajasekaran, Monica <Monica.Rajasekaran at us.fujitsu.com<mailto:Monica.Rajasekaran at us.fujitsu.com>> wrote:
Thanks for pointing that out David.

One more question: When we add-port using vsctl, that gets added to the bridge and lets us map to a physical port right. So, where does vport come in here ? I mean, how does it map with the physical port? I see from the code that vports are used to receive packets coming to the switch (ovs_vport_receive) and to send (ovs_vport_send).

Thanks,
Monica


-----Original Message-----
From: discuss [mailto:discuss-bounces at openvswitch.org<mailto:discuss-bounces at openvswitch.org>] On Behalf Of dsainz at CS.technion.ac.il<mailto:dsainz at CS.technion.ac.il>
Sent: Wednesday, March 09, 2016 8:05 PM
To: discuss at openvswitch.org<mailto:discuss at openvswitch.org>
Subject: Re: [ovs-discuss] Queuing a packet to user space

Hi Monica,

The messaging mechanism that OVS is using is provided by the operating system, OVS doesn't implement it, it just uses and invokes it.

cheers,

David.

> Hi all,
>
> Once call in the data path hits queue_userspace_packet(), how is the
> packet received by user space ?
>
> I understand that recv_upcalls-->dpif_recv() and handle_upcalls() will
> take care of upcall processing.
>
> But how are queue_userspace_packet() in the data path and
> recv_upcalls() in the user space connected? I can't seem to find the link.
>
> Thanks,
> Monica
>
> _______________________________________________
> discuss mailing list
> discuss at openvswitch.org<mailto:discuss at openvswitch.org>
> http://openvswitch.org/mailman/listinfo/discuss
>


_______________________________________________
discuss mailing list
discuss at openvswitch.org<mailto:discuss at openvswitch.org>
http://openvswitch.org/mailman/listinfo/discuss
_______________________________________________
discuss mailing list
discuss at openvswitch.org<mailto:discuss at openvswitch.org>
http://openvswitch.org/mailman/listinfo/discuss

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20160314/e79074a6/attachment-0002.html>


More information about the discuss mailing list