[ovs-discuss] Sending Kernel-space to userspace upcalls

david jhon djhon9813 at gmail.com
Tue Mar 31 07:50:04 UTC 2015


Hi everyone,

I want to send kernel->userspace messages just as OVS_PACKET_CMD_MISS
upcall is sent from datapath to userspace to notify userspace about a
packet MISS.

I am just not understanding how to specify PID for this upcall. In case of
OVS_PACKET_CMD_MISS, this PID is specified by
ovs_vport_find_upcall_portid(p, skb) which implements the process as
described in Unicast Sunbcriptions(Open vSwitch specific) in
netlink-socket.h.

The documentation here describes that nl_sock_recv() is used to handle
these upcalls at userspace side but I am not getting exactly how userspace
assigns Netlink PIDs to a vport as "upcall PIDs". What piece of code
exactly deals with it? How can a new socket be subscribed to unicast
subscription.

One more query, can I use this ovs_vport_set_upcall_portids() method to
reset upcall.portid in any way? I tried a couple of solutions according to
my understanding of code but they caused kernel panic and the reason behind
this kernel panic is failling to find an appropriate PID for this new
upcall to be sent on.

I'll be really grateful for your guidance and help in this regard. Thanks a
lot!

Kind Regards,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20150331/7d282b35/attachment-0002.html>


More information about the discuss mailing list