History log of /freebsd-10-stable/sys/ofed/drivers/infiniband/core/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
338615 12-Sep-2018 hselasky

Fix incorrect display of the sys.class.infiniband.xxx.ports.1.rate sysctl
entry in ibcore by adding support for new rate types.

This is a direct commit.

Sponsored by: Mellanox Technologies

329835 22-Feb-2018 hselasky

Fix for LINT-NOINET kernel build.

This is a direct commit.

Reported by: rpokala@
Sponsored by: Mellanox Technologies

326704 08-Dec-2017 hselasky

Add support for IPv6 based addresses as part of the TCP unify portspace feature
in ibcore. This resolves an interopability issue when using both iWarp(T6) and
RDMA(CX-4 and CX-5) devices at the same time.

The problem is IPv4 based sockets cannot be bound to an IPv6 based address
causing sobind() to fail preventing all use of IPv6 based addresses with RDMA
when an iWarp device is present.

This is a direct commit.

Tested by: KrishnamRaju ErapaRaju <Krishna2@chelsio.com>
Sponsored by: Mellanox Technologies

325945 17-Nov-2017 hselasky

MFC r325616:
Make sure sin_zero is zero in ibcore. Else socket address maching using
bcmp() might fail.

Sponsored by: Mellanox Technologies

325943 17-Nov-2017 hselasky

MFC r325615:
Make sure the IPv6 scope ID gets zeroed when exchanging CMA messages in ibcore.
Else the IPv6 address matching might fail. This change adds support for both
embedded and non-embedded IPv6 scope IDs when passing a IPv6 link-local socket
address to RDMA. Prior to this change only global IPv6 addresses would work
with RDMA.

Sponsored by: Mellanox Technologies

325940 17-Nov-2017 hselasky

MFC r325614:
Multiple fixes for using IPv6 link-local addresses with RDMA.

1) Fail to resolve RDMA address if rtalloc1() returns the loopback
device, lo0, as the gateway interface.

2) Use ip_dev_find() and ip6_dev_find() to lookup network interfaces
with matching IPv4 and IPv6 addresses, respectivly.

3) In addr_resolve() make sure the "ifa" pointer is always set, also when
the "ifp" is NULL. Else a NULL pointer access might happen trying to
read from the "ifa" pointer later on.

Sponsored by: Mellanox Technologies

325617 09-Nov-2017 hselasky

Remove the now obsolete "unify_tcp_port_space" ibcore module parameter.
Missed as part of the MFC of r324792 in r325611.

This is a direct commit.

Sponsored by: Mellanox Technologies

325611 09-Nov-2017 hselasky

MFC r324792:
The remote DMA TCP portspace selector, RDMA_PS_TCP, is used for both
iWarp and RoCE in ibcore. The selection of RDMA_PS_TCP can not be used
to indicate iWarp protocol use. Backport the proper IB device
capabilities from Linux upstream to distinguish between iWarp and
RoCE. Only allocate the additional socket required for iWarp for RDMA
IDs when at least one iWarp device present. This resolves
interopability issues between iWarp and RoCE in ibcore

Reviewed by: np @
Differential Revision: https://reviews.freebsd.org/D12563
Sponsored by: Mellanox Technologies

324685 17-Oct-2017 hselasky

MFC r289568, r300676, r300677, r300719, r300720 and r300721:
Implement LinuxKPI module parameters as SYSCTLs.

The bool module parameter is no longer supported, because there is no
equivalent in FreeBSD 10-stable. These are converted into "int" type.

There are two macros available which control the behaviour of the
LinuxKPI module parameters:

- LINUXKPI_PARAM_PARENT allows the consumer to set the SYSCTL parent
where the modules parameters will be created.

- LINUXKPI_PARAM_PREFIX defines a parameter name prefix, which is
added to all created module parameters.

The LinuxKPI module parameters also have a permissions value.
If any write bits are set we are allowed to modify the module
parameter runtime. Reflect this when creating the static SYSCTL
nodes.

The module_param_call() function is no longer supported.

Sponsored by: Mellanox Technologies

324527 11-Oct-2017 hselasky

MFC r315404:
Add basic support for VIMAGE to the LinuxKPI and ibcore.

Support is implemented by mapping Linux's "struct net" into FreeBSD's
"struct vnet". Currently only vnet0 is supported by ibcore.

Sponsored by: Mellanox Technologies

322156 07-Aug-2017 hselasky

MFC r321986:
Change reject message type when destroying cm_id in ibore.

This patch fixes an interopability issue between FreeBSD and non-FreeBSD
systems when the connection establishment is aborted. Refer to the
initial commit in Linux, drivers/infiniband/core/cm.c,
for a more detailed description.

Obtained from: Linux
Sponsored by: Mellanox Technologies

322153 07-Aug-2017 hselasky

MFC r321985:
Ticks are 32-bit in FreeBSD.

Sponsored by: Mellanox Technologies

318802 24-May-2017 np

MFC r314131:

Avoid NULL dereference in a couple of sysctl handlers in ibcore.
iw_cxgbe sets ib_device->dma_device to NULL (since r311880).

Sponsored by: Chelsio Communications

314606 03-Mar-2017 np

MFC r314400:

cxgbe/iw_cxgbe: fix various double-close panics with iWARP sockets.

Sockets representing the TCP endpoints for iWARP connections are
allocated by the ibcore module. Before this revision they were closed
either by the ibcore module or the iw_cxgbe hardware driver depending on
the state transitions during connection teardown. This is error prone
and there were cases where both iw_cxgbe and ibcore closed the socket
leading to double-free panics. The fix is to let ibcore close the
sockets it creates and never do it in the driver.

- Use sodisconnect instead of soclose (preceded by solinger = 0) in the
driver to tear down an RDMA connection abruptly. This does what's
intended without releasing the socket's fd reference.

- Close the socket in ibcore when the iWARP iw_cm_id is destroyed. This
works for all kinds of sockets: clients that initiate connections,
listeners, and sockets accepted off of listeners.

Sponsored by: Chelsio Communications

309378 01-Dec-2016 jhb

MFC 273806,289103,289201,289338,289578,293185,294474,294610,297124,297368,
297406,300875,300888,301158,301896,301897,304838:

Pull in most of the Chelsio and iWARP related changes from stable/11 into
stable/10. A few changes from 278886 (OFED 1.2) were also included though
the full merge is not:
- The find_gid_port() function in infiband/core/cma.c.
- Addition of the 'ord' and 'ird' fields to 'struct iw_cm_event'.

273806:
Userspace library for Chelsio's Terminator 5 based iWARP RNICs (pretty
much every T5 card that does _not_ have "-SO" in its name is RDMA
capable).

This plugs into the OFED verbs framework and allows userspace RDMA
applications to work over T5 RNICs. Tested with rping.

289103:
iw_cxgbe: fix for page fault in cm_close_handler().

This is roughly the iw_cxgbe equivalent of
https://github.com/torvalds/linux/commit/be13b2dff8c4e41846477b22cc5c164ea5a6ac2e
-----------------
RDMA/cxgb4: Connect_request_upcall fixes

When processing an MPA Start Request, if the listening endpoint is
DEAD, then abort the connection.

If the IWCM returns an error, then we must abort the connection and
release resources. Also abort_connection() should not post a CLOSE
event, so clean that up too.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
-----------------

289201:
iw_cxgbe: MPA v2 is always available.

289338:
iw_cxgbe: use correct RFC number.

289578:
Merge LinuxKPI changes from DragonflyBSD:
- Define the kref structure identical to the one found in Linux.
- Update clients referring inside the kref structure.
- Implement kref_sub() for FreeBSD.

293185:
iw_cxgbe: Shut down the socket but do not close the fd in case of error.
The fd is closed later in this case. This fixes a "SS_NOFDREF on enter"
panic.

294474:
iw_cxgbe: fix a couple of problems int the RDMA_TERMINATE handler.

a) Look for the CPL in the payload buffer instead of the descriptor.
b) Retrieve the socket associated with the tid with the inpcb lock held.

294610:
Fix for iWARP servers that listen on INADDR_ANY.

The iWARP Connection Manager (CM) on FreeBSD creates a TCP socket to
represent an iWARP endpoint when the connection is over TCP. For
servers the current approach is to invoke create_listen callback for
each iWARP RNIC registered with the CM. This doesn't work too well for
INADDR_ANY because a listen on any TCP socket already notifies all
hardware TOEs/RNICs of the new listener. This patch fixes the server
side of things for FreeBSD. We've tried to keep all these modifications
in the iWARP/TCP specific parts of the OFED infrastructure as much as
possible.

297124:
iw_cxgbe/libcxgb4: Pull in many applicable fixes from the upstream Linux
iWARP driver and userspace library to the FreeBSD iw_cxgbe and libcxgb4.

This commit includes internal changesets 6785 8111 8149 8478 8617 8648
8650 9110 9143 9440 9511 9894 10164 10261 10450 10980 10981 10982 11730
11792 12218 12220 12222 12223 12225 12226 12227 12228 12229 12654.

297368:
cxgbe/iw_cxgbe: Fix for stray "start_ep_timer timer already started!"
messages.

297406:
Remove unnecessary dequeue_mutex (added in r294610) from the iWARP
connection manager. Examining so_comp without synchronization with
iw_so_event_handler is a harmless race.

300875:
iw_cxgbe: Use vmem(9) to manage PBL and RQT allocations.

300888:
iw_cxgbe: Plug a lock leak in process_mpa_request().

If the parent is DEAD or connect_request_upcall() fails, the parent
mutex is left locked. This leads to a hang when process_mpa_request()
is called again for another child of the listening endpoint.

301158:
iw_cxgbe: Fix panic that occurs when c4iw_ev_handler tries to acquire
comp_handler_lock but c4iw_destroy_cq has already freed the CQ memory
(which is where the lock resides).

301896:
Fix bug in iwcm that caused a panic in iw_cm_wq when krping is run
repeatedly in a tight loop.

301897:
iw_cxgbe: Make sure that send_abort results in a TCP RST and not a FIN.
Release the hold on ep->com immediately after sending the RST. This
fixes a bug that sometimes leaves userspace iWARP tools hung when the
user presses ^C.

304838:
Do not free an uninitialized pointer on soaccept failure in the iWARP
connection manager.

Submitted by: Krishnamraju Eraparaju @ Chelsio (original patch)
Sponsored by: Chelsio Communications

304846 26-Aug-2016 hselasky

MFC r304342:
Add support for setting blocking and non-blocking mode on /dev/rdma_cm
by returning success on FIONBIO and FIOASYNC IOCTLs. The actual flags
handling is done by the kern_ioctl() function.

Reported by: Alex Bowden <alex.bowden@outlook.com>
Sponsored by: Mellanox Technologies

273246 18-Oct-2014 hselasky

MFC r273135:
Update the OFED Linux compatibility layer and
Mellanox hardware driver(s):

- Properly name an inclusion guard
- Fix compile warnings regarding unsigned enums
- Add two new sysctl nodes
- Remove all empty linux header files
- Make an error printout more verbose
- Use "mod_delayed_work()" instead of
cancelling and starting a timeout.
- Implement more Linux scatterlist
functions.

Sponsored by: Mellanox Technologies


/freebsd-10-stable/sys/contrib/rdma/krping/krping.c
/freebsd-10-stable/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h
addr.c
agent.c
ucm.c
uverbs_main.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mlx4/ah.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mthca/mthca_config_reg.h
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mthca/mthca_memfree.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mthca/mthca_uar.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/Makefile
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/en_ethtool.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/en_frag.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/en_netdev.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/en_params.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/en_selftest.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/en_tx.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/pd.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/xrcd.c
/freebsd-10-stable/sys/ofed/include/asm/page.h
/freebsd-10-stable/sys/ofed/include/linux/completion.h
/freebsd-10-stable/sys/ofed/include/linux/etherdevice.h
/freebsd-10-stable/sys/ofed/include/linux/ethtool.h
/freebsd-10-stable/sys/ofed/include/linux/inet.h
/freebsd-10-stable/sys/ofed/include/linux/mlx4/device.h
/freebsd-10-stable/sys/ofed/include/linux/mlx4/driver.h
/freebsd-10-stable/sys/ofed/include/linux/mount.h
/freebsd-10-stable/sys/ofed/include/linux/netdevice.h
/freebsd-10-stable/sys/ofed/include/linux/scatterlist.h
/freebsd-10-stable/sys/ofed/include/linux/vmalloc.h
/freebsd-10-stable/sys/ofed/include/rdma/ib_addr.h
/freebsd-10-stable/sys/ofed/include/rdma/ib_smi.h
/freebsd-10-stable/sys/ofed/include/rdma/ib_user_cm.h
271127 04-Sep-2014 hselasky

MFC r270710 and r270821:
- Update the OFED Linux Emulation layer as a preparation for a
hardware driver update from Mellanox Technologies.
- Remove empty files from the OFED Linux Emulation layer.
- Fix compile warnings related to printf() and the "%lld" and "%llx"
format specifiers.
- Add some missing 2-clause BSD copyrights.
- Add "Mellanox Technologies, Ltd." to list of copyright holders.
- Add some new compatibility files.
- Fix order of uninit in the mlx4ib module to avoid crash at unload
using the new module_exit_order() function.

Sponsored by: Mellanox Technologies


/freebsd-10-stable/sys/contrib/rdma/krping/krping.c
/freebsd-10-stable/sys/dev/cxgb/cxgb_osdep.h
/freebsd-10-stable/sys/dev/cxgbe/iw_cxgbe/cm.c
/freebsd-10-stable/sys/dev/cxgbe/iw_cxgbe/qp.c
/freebsd-10-stable/sys/modules/mlx4/Makefile
/freebsd-10-stable/sys/modules/mlx4ib/Makefile
/freebsd-10-stable/sys/modules/mlxen/Makefile
addr.c
cm.c
device.c
iwcm.c
sa_query.c
sysfs.c
ucm.c
user_mad.c
uverbs_cmd.c
uverbs_main.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mlx4/alias_GUID.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mlx4/cm.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mlx4/mad.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mlx4/main.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mlx4/mlx4_ib.h
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mlx4/mr.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mlx4/qp.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mlx4/sysfs.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mthca/mthca_allocator.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mthca/mthca_main.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mthca/mthca_provider.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mthca/mthca_reset.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/ulp/sdp/sdp.h
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/alloc.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/cmd.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/cq.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/en_netdev.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/en_rx.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/eq.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/fw.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/main.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/mcg.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/mr.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/pd.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/qp.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/reset.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/resource_tracker.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/sense.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/srq.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/xrcd.c
/freebsd-10-stable/sys/ofed/include/asm/atomic-long.h
/freebsd-10-stable/sys/ofed/include/asm/atomic.h
/freebsd-10-stable/sys/ofed/include/asm/byteorder.h
/freebsd-10-stable/sys/ofed/include/asm/current.h
/freebsd-10-stable/sys/ofed/include/asm/fcntl.h
/freebsd-10-stable/sys/ofed/include/asm/io.h
/freebsd-10-stable/sys/ofed/include/asm/page.h
/freebsd-10-stable/sys/ofed/include/asm/pgtable.h
/freebsd-10-stable/sys/ofed/include/asm/semaphore.h
/freebsd-10-stable/sys/ofed/include/asm/system.h
/freebsd-10-stable/sys/ofed/include/asm/types.h
/freebsd-10-stable/sys/ofed/include/asm/uaccess.h
/freebsd-10-stable/sys/ofed/include/linux/atomic.h
/freebsd-10-stable/sys/ofed/include/linux/bitmap.h
/freebsd-10-stable/sys/ofed/include/linux/bitops.h
/freebsd-10-stable/sys/ofed/include/linux/cache.h
/freebsd-10-stable/sys/ofed/include/linux/cdev.h
/freebsd-10-stable/sys/ofed/include/linux/clocksource.h
/freebsd-10-stable/sys/ofed/include/linux/compat.h
/freebsd-10-stable/sys/ofed/include/linux/compiler.h
/freebsd-10-stable/sys/ofed/include/linux/completion.h
/freebsd-10-stable/sys/ofed/include/linux/ctype.h
/freebsd-10-stable/sys/ofed/include/linux/delay.h
/freebsd-10-stable/sys/ofed/include/linux/device.h
/freebsd-10-stable/sys/ofed/include/linux/dma-attrs.h
/freebsd-10-stable/sys/ofed/include/linux/dma-mapping.h
/freebsd-10-stable/sys/ofed/include/linux/dmapool.h
/freebsd-10-stable/sys/ofed/include/linux/err.h
/freebsd-10-stable/sys/ofed/include/linux/errno.h
/freebsd-10-stable/sys/ofed/include/linux/etherdevice.h
/freebsd-10-stable/sys/ofed/include/linux/ethtool.h
/freebsd-10-stable/sys/ofed/include/linux/file.h
/freebsd-10-stable/sys/ofed/include/linux/fs.h
/freebsd-10-stable/sys/ofed/include/linux/gfp.h
/freebsd-10-stable/sys/ofed/include/linux/hardirq.h
/freebsd-10-stable/sys/ofed/include/linux/idr.h
/freebsd-10-stable/sys/ofed/include/linux/if_arp.h
/freebsd-10-stable/sys/ofed/include/linux/if_ether.h
/freebsd-10-stable/sys/ofed/include/linux/if_vlan.h
/freebsd-10-stable/sys/ofed/include/linux/in.h
/freebsd-10-stable/sys/ofed/include/linux/in6.h
/freebsd-10-stable/sys/ofed/include/linux/inet.h
/freebsd-10-stable/sys/ofed/include/linux/inetdevice.h
/freebsd-10-stable/sys/ofed/include/linux/init.h
/freebsd-10-stable/sys/ofed/include/linux/interrupt.h
/freebsd-10-stable/sys/ofed/include/linux/io-mapping.h
/freebsd-10-stable/sys/ofed/include/linux/io.h
/freebsd-10-stable/sys/ofed/include/linux/ioctl.h
/freebsd-10-stable/sys/ofed/include/linux/jiffies.h
/freebsd-10-stable/sys/ofed/include/linux/kdev_t.h
/freebsd-10-stable/sys/ofed/include/linux/kernel.h
/freebsd-10-stable/sys/ofed/include/linux/kmod.h
/freebsd-10-stable/sys/ofed/include/linux/kobject.h
/freebsd-10-stable/sys/ofed/include/linux/kref.h
/freebsd-10-stable/sys/ofed/include/linux/kthread.h
/freebsd-10-stable/sys/ofed/include/linux/ktime.h
/freebsd-10-stable/sys/ofed/include/linux/linux_compat.c
/freebsd-10-stable/sys/ofed/include/linux/linux_idr.c
/freebsd-10-stable/sys/ofed/include/linux/linux_radix.c
/freebsd-10-stable/sys/ofed/include/linux/list.h
/freebsd-10-stable/sys/ofed/include/linux/lockdep.h
/freebsd-10-stable/sys/ofed/include/linux/log2.h
/freebsd-10-stable/sys/ofed/include/linux/math64.h
/freebsd-10-stable/sys/ofed/include/linux/miscdevice.h
/freebsd-10-stable/sys/ofed/include/linux/mm.h
/freebsd-10-stable/sys/ofed/include/linux/module.h
/freebsd-10-stable/sys/ofed/include/linux/moduleparam.h
/freebsd-10-stable/sys/ofed/include/linux/mount.h
/freebsd-10-stable/sys/ofed/include/linux/mutex.h
/freebsd-10-stable/sys/ofed/include/linux/net.h
/freebsd-10-stable/sys/ofed/include/linux/netdevice.h
/freebsd-10-stable/sys/ofed/include/linux/notifier.h
/freebsd-10-stable/sys/ofed/include/linux/page.h
/freebsd-10-stable/sys/ofed/include/linux/pci.h
/freebsd-10-stable/sys/ofed/include/linux/poll.h
/freebsd-10-stable/sys/ofed/include/linux/radix-tree.h
/freebsd-10-stable/sys/ofed/include/linux/random.h
/freebsd-10-stable/sys/ofed/include/linux/rbtree.h
/freebsd-10-stable/sys/ofed/include/linux/rtnetlink.h
/freebsd-10-stable/sys/ofed/include/linux/rwlock.h
/freebsd-10-stable/sys/ofed/include/linux/rwsem.h
/freebsd-10-stable/sys/ofed/include/linux/scatterlist.h
/freebsd-10-stable/sys/ofed/include/linux/sched.h
/freebsd-10-stable/sys/ofed/include/linux/semaphore.h
/freebsd-10-stable/sys/ofed/include/linux/slab.h
/freebsd-10-stable/sys/ofed/include/linux/socket.h
/freebsd-10-stable/sys/ofed/include/linux/spinlock.h
/freebsd-10-stable/sys/ofed/include/linux/stddef.h
/freebsd-10-stable/sys/ofed/include/linux/string.h
/freebsd-10-stable/sys/ofed/include/linux/sysfs.h
/freebsd-10-stable/sys/ofed/include/linux/timer.h
/freebsd-10-stable/sys/ofed/include/linux/types.h
/freebsd-10-stable/sys/ofed/include/linux/uaccess.h
/freebsd-10-stable/sys/ofed/include/linux/vmalloc.h
/freebsd-10-stable/sys/ofed/include/linux/wait.h
/freebsd-10-stable/sys/ofed/include/linux/workqueue.h
/freebsd-10-stable/sys/ofed/include/net/addrconf.h
/freebsd-10-stable/sys/ofed/include/net/arp.h
/freebsd-10-stable/sys/ofed/include/net/if_inet6.h
/freebsd-10-stable/sys/ofed/include/net/ip.h
/freebsd-10-stable/sys/ofed/include/net/ip6_route.h
/freebsd-10-stable/sys/ofed/include/net/ipv6.h
/freebsd-10-stable/sys/ofed/include/net/neighbour.h
/freebsd-10-stable/sys/ofed/include/net/netevent.h
/freebsd-10-stable/sys/ofed/include/net/tcp.h
/freebsd-10-stable/sys/ofed/include/rdma/ib_umem.h
/freebsd-10-stable/sys/ofed/include/rdma/ib_verbs.h
256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


256179 09-Oct-2013 dim

Remove redundant declaration of cmclass in
sys/ofed/drivers/infiniband/core/ucm.c, to silence a gcc warning.

Approved by: re (kib)
X-MFC-With: r255932


255973 01-Oct-2013 alfred

Fixed kernel crash when running devinfo

When calling to ib_uverbs_cleanup_ucontext, there is a call to
mutex_lock of xrcd_table_mutex, which was not initialized.
Added missing initialization for xrcd_table_mutex.

Submitted by: Orit Moskovich (oritm mellanox.com)

Approved by: re


255972 01-Oct-2013 alfred

Enable ib_dev.mmap function

Removed the ifdef linux from this function.
Added stub function for contiguous pages to avoid compilation
errors.

Submitted by: Orit Moskovich (oritm mellanox.com)
Approved by: re


255932 29-Sep-2013 alfred

Update OFED to Linux 3.7 and update Mellanox drivers.

Update the OFED Infiniband core to the version supplied in Linux
version 3.7.

The update to OFED is nearly all additional defines and functions
with the exception of the addition of additional parameters to
ib_register_device() and the reg_user_mr callback.

In addition the ibcore (Infiniband core) and ipoib (IP over Infiniband)
have both been made into completely loadable modules to facilitate
testing of the OFED stack in FreeBSD.

Finally the Mellanox Infiniband drivers are now updated to the
latest version shipping with Linux 3.7.

Submitted by: Mellanox FreeBSD driver team:
Oded Shanoon (odeds mellanox.com),
Meny Yossefi (menyy mellanox.com),
Orit Moskovich (oritm mellanox.com)

Approved by: re


248084 09-Mar-2013 attilio

Switch the vm_object mutex to be a rwlock. This will enable in the
future further optimizations where the vm_object lock will be held
in read mode most of the time the page cache resident pool of pages
are accessed for reading purposes.

The change is mostly mechanical but few notes are reported:
* The KPI changes as follow:
- VM_OBJECT_LOCK() -> VM_OBJECT_WLOCK()
- VM_OBJECT_TRYLOCK() -> VM_OBJECT_TRYWLOCK()
- VM_OBJECT_UNLOCK() -> VM_OBJECT_WUNLOCK()
- VM_OBJECT_LOCK_ASSERT(MA_OWNED) -> VM_OBJECT_ASSERT_WLOCKED()
(in order to avoid visibility of implementation details)
- The read-mode operations are added:
VM_OBJECT_RLOCK(), VM_OBJECT_TRYRLOCK(), VM_OBJECT_RUNLOCK(),
VM_OBJECT_ASSERT_RLOCKED(), VM_OBJECT_ASSERT_LOCKED()
* The vm/vm_pager.h namespace pollution avoidance (forcing requiring
sys/mutex.h in consumers directly to cater its inlining functions
using VM_OBJECT_LOCK()) imposes that all the vm/vm_pager.h
consumers now must include also sys/rwlock.h.
* zfs requires a quite convoluted fix to include FreeBSD rwlocks into
the compat layer because the name clash between FreeBSD and solaris
versions must be avoided.
At this purpose zfs redefines the vm_object locking functions
directly, isolating the FreeBSD components in specific compat stubs.

The KPI results heavilly broken by this commit. Thirdy part ports must
be updated accordingly (I can think off-hand of VirtualBox, for example).

Sponsored by: EMC / Isilon storage division
Reviewed by: jeff
Reviewed by: pjd (ZFS specific review)
Discussed with: alc
Tested by: pho


242933 12-Nov-2012 dim

Redo r242842, now actually fixing the warnings, as follows:
- In sys/ofed/drivers/infiniband/core/cma.c, an enum struct member is
interpreted as an int, so cast it to an int.
- In sys/ofed/drivers/infiniband/core/ud_header.c, initialize the
packet_length variable in ib_ud_header_init(), to prevent undefined
behaviour.
- In sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c, call rdma_notify()
with the correct enum type and value.
- In sys/ofed/include/linux/pci.h, change the PCI_DEVICE and PCI_VDEVICE
macros to use C99 struct initializers, so additional members can be
overridden.

Reviewed by: delphij, Garrett Cooper <yanegomi@gmail.com>
MFC after: 1 week


237263 19-Jun-2012 np

- Updated TOE support in the kernel.

- Stateful TCP offload drivers for Terminator 3 and 4 (T3 and T4) ASICs.
These are available as t3_tom and t4_tom modules that augment cxgb(4)
and cxgbe(4) respectively. The cxgb/cxgbe drivers continue to work as
usual with or without these extra features.

- iWARP driver for Terminator 3 ASIC (kernel verbs). T4 iWARP in the
works and will follow soon.

Build-tested with make universe.

30s overview
============
What interfaces support TCP offload? Look for TOE4 and/or TOE6 in the
capabilities of an interface:
# ifconfig -m | grep TOE

Enable/disable TCP offload on an interface (just like any other ifnet
capability):
# ifconfig cxgbe0 toe
# ifconfig cxgbe0 -toe

Which connections are offloaded? Look for toe4 and/or toe6 in the
output of netstat and sockstat:
# netstat -np tcp | grep toe
# sockstat -46c | grep toe

Reviewed by: bz, gnn
Sponsored by: Chelsio communications.
MFC after: ~3 months (after 9.1, and after ensuring MFC is feasible)


234183 12-Apr-2012 jhb

Add OFED and the associated options and drivers to x86 LINT builds:
- Mark 'sdp' as requiring 'inet'.
- Always include "opt_inet.h" and "opt_inet6.h" and modify the IB
driver Makefiles to honor WITH/WITHOUT_INET/INET6/_SUPPORT options
to determine what should be enabled during a module build.
- Fix the mlxen(4) driver and the core IB code to compile without
if INET is disabled (including when both INET and INET6 are disabled).

Reviewed by: bz
MFC after: 2 weeks


233198 19-Mar-2012 jhb

Fix build of OFED bits with debugging options enabled.


233040 16-Mar-2012 jhb

Fix build with INET6 disabled.


230135 15-Jan-2012 uqs

Remove spurious 8bit chars, turning files into plain ASCII.


219820 21-Mar-2011 jeff

- Merge in OFED 1.5.3 from projects/ofed/head