[ovs-dev] parse first packet in the user space

Po-Ching Lin pachinko.tw at gmail.com
Sat Sep 13 07:18:32 UTC 2014


Hi! Sorry for posting the same topic again.

As the first packet of a new flow goes to ovs-vswitchd, we are tracing where
the packet is parsed in the source code of ovs-vswitchd. We found the packet is
copied to user_skb in datapath.c:queue_userspace_packet, and then passed
to the user space by calling genlmsg_unicast. In the user space, we guess
dpif-linux.c:parse_odp_packet is likely to be the function which parses the information
from the kernel. It locates header information such as nlmsghdr, but we do not find
where the piece of code is to parse the packet (i.e., the original skb variable in
datapath.c:queue_userspace_packet) from the kernel. Please suggest where
we can find the packet in the buffer variable (or other variables) passed to
dpif-linux.c:parse_odp_packet. Please also let us know if we misunderstand
the source code. Thanks a lot.

Best regards,
Po-Ching



More information about the dev mailing list