summaryrefslogtreecommitdiff
path: root/lib/netdev-bsd.c
Commit message (Collapse)AuthorAgeFilesLines
* netdev-bsd: Fix compiling error in netbsd.Hui Kang2016-12-061-0/+4
| | | | | | | In some netbsd version, RTF_LLINFO is undefined. Signed-off-by: Hui Kang <hkang.sunysb@gmail.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* netdev: Pass 'netdev_class' to ->run() and ->wait().Daniele Di Proietto2016-08-151-3/+3
| | | | | | | | This will allow run() and wait() methods to be shared between different classes and still perform class-specific work. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Acked-by: Ben Pfaff <blp@ovn.org>
* netdev-*: Do not use dp_packet_pad() in recv() functions.Daniele Di Proietto2016-07-291-1/+0
| | | | | | | | | | | | | | | | | | | All the netdevs used by dpif-netdev (except for netdev-dpdk) have a dp_packet_pad() call in the receive function, probably because the userspace datapath couldn't handle properly short packets. This doesn't appear to be the case anymore. This commit removes the call to have a more consistent behavior with the kernel datapath. All the testsuite changes in this commit adjust the expectations for packet lengths in flow dumps and other stats. There's only one fix in ovn.at: one of the test_ip() functions generated an incomplete udp packet, which was not a problem until now, because of the padding. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Acked-by: Ben Pfaff <blp@ovn.org>
* dpif-netdev: XPS (Transmit Packet Steering) implementation.Ilya Maximets2016-07-271-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If CPU number in pmd-cpu-mask is not divisible by the number of queues and in a few more complex situations there may be unfair distribution of TX queue-ids between PMD threads. For example, if we have 2 ports with 4 queues and 6 CPUs in pmd-cpu-mask such distribution is possible: <------------------------------------------------------------------------> pmd thread numa_id 0 core_id 13: port: vhost-user1 queue-id: 1 port: dpdk0 queue-id: 3 pmd thread numa_id 0 core_id 14: port: vhost-user1 queue-id: 2 pmd thread numa_id 0 core_id 16: port: dpdk0 queue-id: 0 pmd thread numa_id 0 core_id 17: port: dpdk0 queue-id: 1 pmd thread numa_id 0 core_id 12: port: vhost-user1 queue-id: 0 port: dpdk0 queue-id: 2 pmd thread numa_id 0 core_id 15: port: vhost-user1 queue-id: 3 <------------------------------------------------------------------------> As we can see above dpdk0 port polled by threads on cores: 12, 13, 16 and 17. By design of dpif-netdev, there is only one TX queue-id assigned to each pmd thread. This queue-id's are sequential similar to core-id's. And thread will send packets to queue with exact this queue-id regardless of port. In previous example: pmd thread on core 12 will send packets to tx queue 0 pmd thread on core 13 will send packets to tx queue 1 ... pmd thread on core 17 will send packets to tx queue 5 So, for dpdk0 port after truncating in netdev-dpdk: core 12 --> TX queue-id 0 % 4 == 0 core 13 --> TX queue-id 1 % 4 == 1 core 16 --> TX queue-id 4 % 4 == 0 core 17 --> TX queue-id 5 % 4 == 1 As a result only 2 of 4 queues used. To fix this issue some kind of XPS implemented in following way: * TX queue-ids are allocated dynamically. * When PMD thread first time tries to send packets to new port it allocates less used TX queue for this port. * PMD threads periodically performes revalidation of allocated TX queue-ids. If queue wasn't used in last XPS_TIMEOUT_MS milliseconds it will be freed while revalidation. * XPS is not working if we have enough TX queues. Reported-by: Zhihong Wang <zhihong.wang@intel.com> Signed-off-by: Ilya Maximets <i.maximets@samsung.com> Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com>
* json: Move from lib to include/openvswitch.Terry Wilson2016-07-221-1/+1
| | | | | | | | | | | | | | | To easily allow both in- and out-of-tree building of the Python wrapper for the OVS JSON parser (e.g. w/ pip), move json.h to include/openvswitch. This also requires moving lib/{hmap,shash}.h. Both hmap.h and shash.h were #include-ing "util.h" even though the headers themselves did not use anything from there, but rather from include/openvswitch/util.h. Fixing that required including util.h in several C files mostly due to OVS_NOT_REACHED and things like xmalloc. Signed-off-by: Terry Wilson <twilson@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* netdev-provider: Apply batch object to netdev provider.William Tu2016-07-211-14/+9
| | | | | | | | | | | | | | Commit 1895cc8dbb64 ("dpif-netdev: create batch object") introduces batch process functions and 'struct dp_packet_batch' to associate with batch-level metadata. This patch applies the packet batch object to the netdev provider interface (dummy, Linux, BSD, and DPDK) so that batch APIs can be used in providers. With batch metadata visible in providers, optimizations can be introduced at per-batch level instead of per-packet. Tested-at: https://travis-ci.org/williamtu/ovs-travis/builds/145694197 Signed-off-by: William Tu <u9012063@gmail.com> Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com>
* ofp-actions: Add truncate action.William Tu2016-06-241-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | The patch adds a new action to support packet truncation. The new action is formatted as 'output(port=n,max_len=m)', as output to port n, with packet size being MIN(original_size, m). One use case is to enable port mirroring to send smaller packets to the destination port so that only useful packet information is mirrored/copied, saving some performance overhead of copying entire packet payload. Example use case is below as well as shown in the testcases: - Output to port 1 with max_len 100 bytes. - The output packet size on port 1 will be MIN(original_packet_size, 100). # ovs-ofctl add-flow br0 'actions=output(port=1,max_len=100)' - The scope of max_len is limited to output action itself. The following packet size of output:1 and output:2 will be intact. # ovs-ofctl add-flow br0 \ 'actions=output(port=1,max_len=100),output:1,output:2' - The Datapath actions shows: # Datapath actions: trunc(100),1,1,2 Tested-at: https://travis-ci.org/williamtu/ovs-travis/builds/140037134 Signed-off-by: William Tu <u9012063@gmail.com> Acked-by: Pravin B Shelar <pshelar@ovn.org>
* netdev-dpdk: Use ->reconfigure() call to change rx/tx queues.Daniele Di Proietto2016-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | This introduces in dpif-netdev and netdev-dpdk the first use for the newly introduce reconfigure netdev call. When a request to change the number of queues comes, netdev-dpdk will remember this and notify the upper layer via netdev_request_reconfigure(). The datapath, instead of periodically calling netdev_set_multiq(), can detect this and call reconfigure(). This mechanism can also be used to: * Automatically match the number of rxq with the one provided by qemu via the new_device callback. * Provide a way to change the MTU of dpdk devices at runtime. * Move a DPDK vhost device to the proper NUMA socket. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Tested-by: Ilya Maximets <i.maximets@samsung.com> Acked-by: Ilya Maximets <i.maximets@samsung.com>
* netdev: Add reconfigure request mechanism.Daniele Di Proietto2016-05-231-0/+1
| | | | | | | | | | | | | | | | | | | | | A netdev provider, especially a PMD provider (like netdev DPDK) might not be able to change some of its parameters (such as MTU, or number of queues) without stopping everything and restarting. This commit introduces a mechanism that allows a netdev provider to request a restart (netdev_request_reconfigure()). The upper layer can be notified via netdev_wait_reconf_required() and netdev_is_reconf_required(). After closing all the rxqs the upper layer can finally call netdev_reconfigure(), to make sure that the new configuration is in place. This will be used by next commit to reconfigure rx and tx queues in netdev-dpdk. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Tested-by: Ilya Maximets <i.maximets@samsung.com> Acked-by: Ilya Maximets <i.maximets@samsung.com> Acked-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
* dp-packet: Fix use of uninitialised value at emc_lookup.William Tu2016-04-061-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | Valgrind reports "Conditional jump or move depends on uninitialised value" and "Use of uninitialised value" at case 2016 ovn -- 3 HVs, 1 LS, 3 lports/HV. It is caused by 1) assigning an uninitialized value to 'key->hash' at emc_processing(). Due to uninit rss_hash_valid, dp_packet_rss_valid() might return true and undefined hash value is returned, and 2) at emc_lookup, the 'current_entry->key.hash' could be uninitialized due to dp_packet_clone(). The patch fixes the two and as a result, a couple of calls to dp_packet_rss_invalidate() become redundant and thus are removed. Call stacks: - Connditional jump or move depends on uninitialised value(s) dpif_netdev_packet_get_rss_hash (dpif-netdev.c:3334) emc_processing (dpif-netdev.c:3455) dp_netdev_input__ (dpif-netdev.c:3639) and, - Use of uninitialised value of size 8 emc_lookup (dpif-netdev.c:1785) emc_processing (dpif-netdev.c:3457) dp_netdev_input__ (dpif-netdev.c:3639) Signed-off-by: William Tu <u9012063@gmail.com> Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com>
* netdev: remove netdev_get_in4()Pravin B Shelar2016-03-241-55/+6
| | | | | | | | | | Since netdev can have multiple IP address use generic api netdev_get_addr_list(). This also make it easier to handle IPv4 and IPv6 address across vswitchd layers. Signed-off-by: Pravin B Shelar <pshelar@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* tunneling: Handle multiple ip address for given device.Pravin B Shelar2016-03-241-29/+11
| | | | | | | | | | | | Device can have multiple IP address but netdev_get_in4/6() returns only one configured IPv6 address. Following patch fixes it. OVS router is also updated to return source ip address for given destination, This is required when interface has multiple IP address configured. Signed-off-by: Pravin B Shelar <pshelar@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* osx: handle differences between OS X and other BSDsLance Richardson2016-03-221-0/+2
| | | | | | | | | | Conditional compilation to account for: - OS X does not implement RTM_IFANNOUNCE. - OS X does not implement tap netdeivces. - OS X does not implement RT_ROUNDUP(). Signed-off-by: Lance Richardson <lrichard@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* Move lib/dynamic-string.h to include/openvswitch directoryBen Warren2016-03-191-1/+1
| | | | | Signed-off-by: Ben Warren <ben@skyportsystems.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* netdev: New field 'is_pmd' in netdev_class.Ilya Maximets2016-03-161-0/+1
| | | | | | | Made to simplify creation of derived classes. Signed-off-by: Ilya Maximets <i.maximets@samsung.com> Acked-by: Daniele Di Proietto <diproiettod@vmware.com>
* netdev-bsd: Destroy mutex on netdev_bsd_construct_system() error path.xushengping2016-01-041-0/+1
| | | | | Signed-off-by: xushengping <shengping.xu@huawei.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* netdev-bsd: Update after eth_addr changesYAMAMOTO Takashi2015-11-261-2/+2
| | | | | Signed-off-by: YAMAMOTO Takashi <yamamoto@midokura.com> Acked-by: Ben Pfaff <blp@ovn.org>
* dpif-netdev: Check for PKT_RX_RSS_HASH flag.Daniele Di Proietto2015-09-111-1/+1
| | | | | | | | | | | | | | | DPDK mbufs contain a valid RSS hash only if PKT_RX_RSS_HASH is set in 'ol_flags'. Otherwise the hash is garbage and doesn't relate to the packet. This fixes an issue with vhost, which, being a virtual NIC, doesn't compute the hash. Reported-by: Dongjun <dongj@dtdream.com> Suggested-by: Flavio Leitner <fbl@sysclose.org> Acked-by: Kevin Traynor <kevin.traynor@intel.com> Acked-by: Pravin B Shelar <pshelar@nicira.com> Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com>
* userspace: Define and use struct eth_addr.Jarno Rajahalme2015-08-281-13/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Define struct eth_addr and use it instead of a uint8_t array for all ethernet addresses in OVS userspace. The struct is always the right size, and it can be assigned without an explicit memcpy, which makes code more readable. "struct eth_addr" is a good type name for this as many utility functions are already named accordingly. struct eth_addr can be accessed as bytes as well as ovs_be16's, which makes the struct 16-bit aligned. All use seems to be 16-bit aligned, so some algorithms on the ethernet addresses can be made a bit more efficient making use of this fact. As the struct fits into a register (in 64-bit systems) we pass it by value when possible. This patch also changes the few uses of Linux specific ETH_ALEN to OVS's own ETH_ADDR_LEN, and removes the OFP_ETH_ALEN, as it is no longer needed. This work stemmed from a desire to make all struct flow members assignable for unrelated exploration purposes. However, I think this might be a nice code readability improvement by itself. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
* netdev-bsd: Include net/bpf.h.Dan McGregor2015-05-201-0/+1
| | | | | | | | The documentation says it is required to use bpf ioctls on both NetBSD and FreeBSD. It causes a compile time failure on FreeBSD 10. Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> Signed-off-by: Ben Pfaff <blp@nicira.com>
* dp-packet: Rename 'dp_hash' in 'rss_hash'.Daniele Di Proietto2015-04-201-1/+1
| | | | | | | | | | | We already have the 'dp_hash' embedded in the metadata. This caused confusion in the code. With this commit it should be clear that 'rss_hash' is the packet hash used for internal purposes, while 'md.dp_hash' is part of the flow, computed during the execution of certain actions. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Acked-by: Ethan Jackson <ethan@nicira.com>
* netdev-bsd: Fix netdev_bsd_get_mtu() return value.Ben Pfaff2015-04-171-1/+1
| | | | | | | | | | | | | | When netdev_bsd_get_mtu() failed, it didn't report the error to the caller, so the caller couldn't work around not knowing the MTU, and ended up using an uninitialized 'mtu' value. Found by LLVM scan-build. Reported-by: Kevin Lo <kevlo@FreeBSD.org> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Kevin Lo <kevlo@FreeBSD.org> Acked-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
* netdev-bsd: Remove duplicate header inclusion of <netinet/in.h>Kevin Lo2015-04-151-1/+0
| | | | | | Signed-off-by: Kevin Lo <kevlo@FreeBSD.org> Acked-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: Ben Pfaff <blp@nicira.com>
* netdev-bsd: Fix sign extension bug in ifr_flags on FreeBSD.Kevin Lo2015-04-051-2/+4
| | | | | | | | | | | FreeBSD fills the int return value with ifr_flagshigh in the high 16 bits and ifr_flags in the low 16 bits rather than blindly promoting ifr_flags to an int, which will preserve the sign. This commit makes sure the flags returned isn't negative and apply mask 0xffff to flags. Signed-off-by: Kevin Lo <kevlo@FreeBSD.org> Signed-off-by: Ben Pfaff <blp@nicira.com>
* netdev-bsd: Fix a compilation errorYAMAMOTO Takashi2015-03-041-1/+0
| | | | | | | | | Fix a compilation problem introduced by commit cf62fa4c7074121184a1f1d07980990113657612 ("dp-packet: Remove ofpbuf dependency.") Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Acked-by: Ben Pfaff <blp@nicira.com>
* dp-packet: Remove ofpbuf dependency.Pravin B Shelar2015-03-031-17/+14
| | | | | | | | | | | | | Currently dp-packet make use of ofpbuf for managing packet buffers. That complicates ofpbuf, by making dp-packet independent of ofpbuf both libraries can be optimized for their own use case. This avoids mapping operation between ofpbuf and dp_packet in datapath upcalls. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* dpif_packet: Rename to dp_packetPravin B Shelar2015-03-031-8/+8
| | | | | | | | dp_packet is short and better name for datapath packet structure. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
* userspace: Replace all uses of strncpy() by ovs_strlcpy().Ben Pfaff2015-02-201-10/+10
| | | | | | | | | | strncpy() has a lot of pitfalls. A while back we replaced all its uses by calls to ovs_strlcpy() or ovs_strzcpy(), but some more have crept in. This commit fixes them. Reported-by: Russell Bryant <rbryant@redhat.com> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Thomas Graf <tgraf@noironetworks.com>
* lib: Move vlog.h to <openvswitch/vlog.h>Thomas Graf2014-12-151-1/+1
| | | | | | | | A new function vlog_insert_module() is introduced to avoid using list_insert() from the vlog.h header. Signed-off-by: Thomas Graf <tgraf@noironetworks.com> Acked-by: Ben Pfaff <blp@nicira.com>
* openvswitch: Userspace tunneling.Pravin B Shelar2014-11-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Following patch adds support for userspace tunneling. Tunneling needs three more component first is routing table which is configured by caching kernel routes and second is ARP cache which build automatically by snooping arp. And third is tunnel protocol table which list all listening protocols which is populated by vswitchd as tunnel ports are added. GRE and VXLAN protocol support is added in this patch. Tunneling works as follows: On packet receive vswitchd check if this packet is targeted to tunnel port. If it is then vswitchd inserts tunnel pop action which pops header and sends packet to tunnel port. On packet xmit rather than generating Set tunnel action it generate tunnel push action which has tunnel header data. datapath can use tunnel-push action data to generate header for each packet and forward this packet to output port. Since tunnel-push action contains most of packet header vswitchd needs to lookup routing table and arp table to build this action. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Thomas Graf <tgraf@noironetworks.com> Acked-by: Ben Pfaff <blp@nicira.com>
* netdev: Add function for configuring tx and rx queues.Alex Wang2014-09-151-0/+1
| | | | | | | | | | | | | This commit adds a new API to the 'struct netdev_class' which allows user to configure the number of tx queues and rx queues of 'netdev'. Upcoming patches will use this function to set multiple tx/rx queues when adding the netdev to dpif-netdev. Currently, only netdev-dpdk module implements this function. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
* ofproto: Do not update stats on fake bond interface.Pravin B Shelar2014-09-151-1/+0
| | | | | | | | | | | There are couple of reasons to remove this support: * This is used in very old OVS use-case. It is much better to read stats directly from OVS. * Forthcoming commit will remove support for setting stats for vport. The stats update depends on stats-set. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* netdev: Add n_txq to 'struct netdev'.Alex Wang2014-09-121-3/+3
| | | | | | | | | | | | | | This commit adds new variable n_txq to 'struct netdev' for recording the number of tx queues. Correspondingly, the send_*() functions are extended to accept queue id as input argument. All 'netdev-*' implementation will ignore the queue id since having multiple tx queues is not supported. Upcomping patches will start using it and create multiple tx queues for dpdk netdev. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
* netdev: Add function for getting the numa node id of netdev.Alex Wang2014-09-121-0/+1
| | | | | | | | | | | This commit adds a new API to the 'struct netdev_class' which allows user to query the numa node id the 'netdev' is on. Currently, only netdev-dpdk module implements this function. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
* packet-dpif: Add dpif_packet_{get, set}_hash()Daniele Di Proietto2014-08-291-0/+1
| | | | | | | | | | | | | | | | These function are used to stored the packet hash. 'netdev-dpdk' automatically set this value to the RSS hash returned by the NIC. Other 'netdev's set it to 0 (which is an invalid hash value), so that callers can compute the hash on their own. If DPDK support is enabled, struct dpif_packet's member 'dp_hash' is removed and 'pkt.hash.rss' from DPDK mbuf is used This commit also configure DPDK devices to compute RSS hash for UDP and IPv6 packets Signed-off-by: Daniele Di Proietto <ddiproietto@vmware.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
* lib: Fix FreeBSD build.Joe Stringer2014-06-271-1/+3
| | | | | | | | Various recent commits have introduced build failures on FreeBSD. This patch fixes them. Signed-off-by: Joe Stringer <joestringer@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* netdev: netdev_send accepts multiple packetsDaniele Di Proietto2014-06-231-24/+31
| | | | | | | | | | | The netdev_send function has been modified to accept multiple packets, to allow netdev providers to amortize locking and queuing costs. This is especially true for netdev-dpdk. Later commits exploit the new API. Signed-off-by: Daniele Di Proietto <ddiproietto@vmware.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
* dpif-netdev: use dpif_packet structure for packetsDaniele Di Proietto2014-06-231-8/+14
| | | | | | | | | | This commit introduces a new data structure used for receiving packets from netdevs and passing them to dpifs. The purpose of this change is to allow storing some private data for each packet. The subsequent commits make use of it. Signed-off-by: Daniele Di Proietto <ddiproietto@vmware.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
* Fix log message weird suffixes.Ben Pfaff2014-06-111-2/+2
| | | | | | | | | I think these were leftovers from the removal of %z for MSVC that happened some time ago. VMware-BZ: 1265762 Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Pritesh Kothari <pritesh.kothari@cisco.com>
* netdev-bsd: Fix a whitespaceYAMAMOTO Takashi2014-05-211-1/+1
| | | | | Acked-by: Ben Pfaff <blp@nicira.com> Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
* netdev-bsd: Sprinkle ALIGNED_CAST where appropriateYAMAMOTO Takashi2014-05-051-6/+6
| | | | | Acked-by: Ben Pfaff <blp@nicira.com> Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
* netdev: Add 'change_seq' back to netdev.Alex Wang2014-04-101-7/+5
| | | | | | | | | | This commit can be seen as a partial revert of commit da4a619179d (netdev: Globally track port status changes) by adding the 'change_seq' to 'struct netdev'. Signed-off-by: Alex Wang <alexw@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* netdev-bsd: Update for recent ofpbuf api changesYAMAMOTO Takashi2014-04-101-6/+6
| | | | | | | | | | | Leftovers from commit commit 1f317cb5. ("ofpbuf: Introduce access api for base, data and size.") This fixes regressons introduced by commit 3f976e12. ("lib/ofpbuf: Rename private fields to discourage direct use.") Acked-by: Ben Pfaff <blp@nicira.com> Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
* netdev-bsd: compilation fixesYAMAMOTO Takashi2014-03-251-56/+56
| | | | | | | | | | This fixes regressions from commit f7791740 ("netdev: Rename netdev_rx to netdev_rxq") and commit df1e5a3b. ("netdev: Extend rx_recv to pass multiple packets.") Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: Ben Pfaff <blp@nicira.com>
* netdev: Send ofpbuf directly to netdev.Pravin2014-03-211-1/+7
| | | | | | | | DPDK netdev need to access ofpbuf while sending buffer. Following patch changes netdev_send accordingly. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Thomas Graf <tgraf@redhat.com>
* netdev: Extend rx_recv to pass multiple packets.Pravin2014-03-211-2/+23
| | | | | | | | | DPDK can receive multiple packets but current netdev API does not allow that. Following patch allows dpif-netdev receive batch of packet in a rx_recv() call for any netdev port. This will be used by dpdk-netdev. Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
* netdev-bsd: Fix tx/rx stats for type=tap netdevYAMAMOTO Takashi2014-02-061-3/+48
| | | | | Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: Ben Pfaff <blp@nicira.com>
* lib/netdev-bsd: simplify multiple struct definitionsDaniele Di Proietto2014-01-231-125/+78
| | | | | | | | | Use a macro helper to initialize different netdev_*_class for bsd, like in lib/netdev-linux.c This helps adding other netdev types for bsd Signed-off-by: Daniele Di Proietto <daniele.di.proietto@gmail.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* netdev_class: Pass a struct ofpbuf * to rx_recv()Simon Horman2014-01-161-12/+16
| | | | | | | | | | | | | | | | | | | | Update the netdev_class so that struct ofpbuf * is passed to rx_recv() to provide both the data and size of the data to read a packet into. On success, update struct ofpbuf size inside netdev_class rx_recv implementation and return 0. This moves logic from the caller. On error a positive error code is returned, whereas previously a negative error code was returned. This is a more common convention. This patch should not have any behavioural changes. This patch is in preparation for the netdev-linux variant of rx_recv() making use of headroom in the struct ofpbuf * parameter to push a VLAN tag obtained from auxdata. 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>
* netdev-bsd: remove an unused variableYAMAMOTO Takashi2013-12-181-1/+0
| | | | | | | | this is a leftover of commit da4a6191. ("netdev: Globally track port status changes") Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: Ben Pfaff <blp@nicira.com>