summaryrefslogtreecommitdiff
path: root/include/sparse/sys/socket.h
Commit message (Collapse)AuthorAgeFilesLines
* socket-util: Introduce emulation and wrapper for recvmmsg().Ben Pfaff2020-01-091-1/+4
| | | | | | | | | | | Not every system will have recvmmsg(), so introduce compatibility code that will allow it to be used blindly from the rest of the tree. This assumes that recvmmsg() and sendmmsg() are either both present or both absent in system libraries and headers. CC: Yi Yang <yangyi01@inspur.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* sparse: Add missing protoype for sendmmsg.Ben Pfaff2017-07-141-0/+1
| | | | | | | | Reported-by: Joe Stringer <joe@ovn.org> Signed-off-by: Ben Pfaff <blp@ovn.org> Fixes: 00f5565c7eed ("socket-util: Fix recursion issue in sendmmsg") Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Joe Stringer <joe@ovn.org>
* socket-util: Support sendmmsg() regardless of platform.Ben Pfaff2017-07-121-0/+5
| | | | | | This will have its first user in an upcoming commit. Signed-off-by: Ben Pfaff <blp@ovn.org>
* netdev-linux: Read packet auxdata to obtain vlan_tidSimon Horman2014-01-161-0/+1
| | | | | | | | | | | | | | | | | If VLAN acceleration is used when the kernel receives a packet then the outer-most VLAN tag will not be present in the packet when it is received by netdev-linux. Rather, it will be present in auxdata. This patch uses recvmsg() instead of recv() to read auxdata for each packet and if the vlan_tid is set then it is added to the packet. Adding the vlan_tid makes use of headroom available in the buffer parameter of rx_recv. Signed-off-by: Simon Horman <horms@verge.net.au> Co-authored-by: Ben Pfaff <blp@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* sparse: Include stddef.h to ensure NULL is defined.Simon Horman2013-11-251-0/+1
| | | | | | | | | | Include stddef.h in include/sparse/sys/socket.h to ensure that NULL is defined and thus avoid the following sparse warning. ./include/sparse/sys/socket.h:74:15: error: undefined identifier 'NULL' Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: Ben Pfaff <blp@nicira.com>
* lib/netdev-linux.c: Prevent receiving of sent packetsMurphy McCauley2013-06-131-2/+3
| | | | | | | | | | | | | | | | | | | | Commit 796223f5 (netdev: Add new "struct netdev_rx" for capturing packets from a netdev) refactored send and receive into separate netdevs. As a result, send and receive now use different socket descriptors (except for tap interfaces which are treated specially). An unintended side effect was that all sent packets are looped back and received, which had previously been avoided as the kernel specifically prevents this from happening on a single socket descriptor. To resolve the situation, a socket filter is added to the receive socket so that it only accepts inbound packets. Simon Horman co-discovered and initially reported this issue. Signed-off-by: Murphy McCauley <murphy.mccauley@gmail.com> Signed-off-by: Ben Pfaff <blp@nicira.com> Tested-by: Simon Horman <horms@verge.net.au> Reviewed-by: Simon Horman <horms@verge.net.au>
* socket-util: Add functions for sending fds over Unix domain sockets.Ben Pfaff2012-07-181-0/+31
| | | | | | | | | These will be used in upcoming commits. This commit also adds corresponding definitions to the "sparse" header, so that sparse still works. Signed-off-by: Ben Pfaff <blp@nicira.com>
* Global replace of Nicira Networks.Raju Subramanian2012-05-021-1/+1
| | | | | | | | Replaced all instances of Nicira Networks(, Inc) to Nicira, Inc. Feature #10593 Signed-off-by: Raju Subramanian <rsubramanian@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* netlink-socket: Increase Netlink socket receive buffer size.Ben Pfaff2012-03-151-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Open vSwitch userspace can set up flows at a high rate, but it is somewhat "bursty" in opportunities to set up flows, by which I mean that OVS sets up a batch of flows, then goes off and does some other work for a while, then sets up another batch of flows, and so on. The result is that, if a large number of packets that need flow setups come in all at once, then some of them can overflow the relatively small kernel-to-user buffers. This commit increases the kernel-to-user buffers from the default of approximately 120 kB each to 1 MB each. In one somewhat synthetic test case that I ran based on an "hping3" that generated a load of about 20,000 new flows per second (including both requests and replies), this reduced the packets dropped at the kernel-to-user interface from about 30% to none. I expect that it will similarly improve packet loss in workloads where flow arrival is not easily predictable. (This has little effect on workloads generated by "ovs-benchmark rate" because that benchmark is effectively "self-clocking", that is, a new flow is triggered only by a reply to a request made earlier, which means that the number of buffered packets at any given has a known, constant upper limit.) Bug #10210. Signed-off-by: Ben Pfaff <blp@nicira.com>
* Make the source tree sparse clean.Ben Pfaff2011-05-161-0/+133
With this commit, the tree compiles clean with sparse commit 87f4a7fda3d "Teach 'already_tokenized()' to use the stream name hash table" with patch "evaluate: Allow sizeof(_Bool) to succeed" available at http://permalink.gmane.org/gmane.comp.parsers.sparse/2461 applied, as long as the "include/sparse" directory is included for use by sparse (only), e.g.: make CC="CHECK='sparse -I../include/sparse' cgcc"