History log of /freebsd-10-stable/sys/contrib/rdma/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
325602 09-Nov-2017 hselasky

MFC r324490:
Add support for parsing and using IPv6 addresses in krping.

Sponsored by: Mellanox Technologies

297655 07-Apr-2016 hselasky

MFC r296934:
Fix crash in krping when run as a client due to NULL pointer access.
Initialize pointer in question which is used only when fast registers
mode is selected.

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


krping/krping.c
/freebsd-10-stable/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h
/freebsd-10-stable/sys/ofed/drivers/infiniband/core/addr.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/core/agent.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/core/ucm.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/core/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


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
/freebsd-10-stable/sys/ofed/drivers/infiniband/core/addr.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/core/cm.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/core/device.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/core/iwcm.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/core/sa_query.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/core/sysfs.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/core/ucm.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/core/user_mad.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/core/uverbs_cmd.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/core/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
256829 21-Oct-2013 np

MFC r256470:

Update krping to the latest upstream code. Move all the FreeBSD
specific parts to krping_dev.c, which leaves the other files as
close to their upstream versions as possible.

Approved by: re (glebius)

256820 21-Oct-2013 np

MFC r256467:

Delete all of the old RDMA code (except krping, which was switched to
use sys/ofed some time back). This has been sitting around as dead code
in the tree for a very long time.

Approved by: re (hrs)

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


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


254735 23-Aug-2013 np

Assorted fixes to krping. Disconnect the rest of sys/contrib/rdma from
the build while here. sys/ofed has more recent RDMA code and should be
used instead. We should probably move krping out of sys/contrib/rdma
and get rid of the rest of it.

Obtained from: Chelsio


241394 10-Oct-2012 kevlo

Revert previous commit...

Pointyhat to: kevlo (myself)


241370 09-Oct-2012 kevlo

Prefer NULL over 0 for pointers


240830 22-Sep-2012 pjd

Fix an obvious typo.


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)


234507 20-Apr-2012 dim

Fix the following compilation warnings in sys/contrib/rdma/rdma_cma.c:

sys/contrib/rdma/rdma_cma.c:1259:8: error: case value not in enumerated type 'enum iw_cm_event_status' [-Werror,-Wswitch]
case ECONNRESET:
^
@/sys/errno.h:118:20: note: expanded from macro 'ECONNRESET'
#define ECONNRESET 54 /* Connection reset by peer */
^
sys/contrib/rdma/rdma_cma.c:1263:8: error: case value not in enumerated type 'enum iw_cm_event_status' [-Werror,-Wswitch]
case ETIMEDOUT:
^
@/sys/errno.h:124:19: note: expanded from macro 'ETIMEDOUT'
#define ETIMEDOUT 60 /* Operation timed out */
^
sys/contrib/rdma/rdma_cma.c:1260:8: error: case value not in enumerated type 'enum iw_cm_event_status' [-Werror,-Wswitch]
case ECONNREFUSED:
^
@/sys/errno.h:125:22: note: expanded from macro 'ECONNREFUSED'
#define ECONNREFUSED 61 /* Connection refused */
^

This is because the switch uses iw_cm_event::status, which is an enum
iw_cm_event_status, while ECONNRESET, ETIMEDOUT and ECONNREFUSED are
just plain defines from errno.h.

It looks like there is only one use of any of the enumeration values of
iw_cm_event_status, in:

sys/contrib/rdma/rdma_iwcm.c: if (iw_event->status == IW_CM_EVENT_STATUS_ACCEPTED) {

So messing around with the enum definitions to fix the warning seems too
disruptive; the simplest fix is to cast the argument of the switch to
int.

Reviewed by: kmacy
MFC after: 1 week


229753 07-Jan-2012 dim

In sys/contrib/rdma/ib_addr.h, bump MAX_ADDR_LEN to 20 bytes (the same
value used in sys/ofed/include/linux/netdevice.h), so there will be no
buffer overruns in the rest of the inline functions in this file.

Reviewed by: kmacy
MFC after: 1 week


199223 12-Nov-2009 attilio

Remove the explicit definition of inet_aton() as it was introduced as a
general function in r199208.

Reported by: np
Sponsored by: Sandvine Incorporated
MFC: 1 week


196019 01-Aug-2009 rwatson

Merge the remainder of kern_vimage.c and vimage.h into vnet.c and
vnet.h, we now use jails (rather than vimages) as the abstraction
for virtualization management, and what remained was specific to
virtual network stacks. Minor cleanups are done in the process,
and comments updated to reflect these changes.

Reviewed by: bz
Approved by: re (vimage blanket)


195699 14-Jul-2009 rwatson

Build on Jeff Roberson's linker-set based dynamic per-CPU allocator
(DPCPU), as suggested by Peter Wemm, and implement a new per-virtual
network stack memory allocator. Modify vnet to use the allocator
instead of monolithic global container structures (vinet, ...). This
change solves many binary compatibility problems associated with
VIMAGE, and restores ELF symbols for virtualized global variables.

Each virtualized global variable exists as a "reference copy", and also
once per virtual network stack. Virtualized global variables are
tagged at compile-time, placing the in a special linker set, which is
loaded into a contiguous region of kernel memory. Virtualized global
variables in the base kernel are linked as normal, but those in modules
are copied and relocated to a reserved portion of the kernel's vnet
region with the help of a the kernel linker.

Virtualized global variables exist in per-vnet memory set up when the
network stack instance is created, and are initialized statically from
the reference copy. Run-time access occurs via an accessor macro, which
converts from the current vnet and requested symbol to a per-vnet
address. When "options VIMAGE" is not compiled into the kernel, normal
global ELF symbols will be used instead and indirection is avoided.

This change restores static initialization for network stack global
variables, restores support for non-global symbols and types, eliminates
the need for many subsystem constructors, eliminates large per-subsystem
structures that caused many binary compatibility issues both for
monitoring applications (netstat) and kernel modules, removes the
per-function INIT_VNET_*() macros throughout the stack, eliminates the
need for vnet_symmap ksym(2) munging, and eliminates duplicate
definitions of virtualized globals under VIMAGE_GLOBALS.

Bump __FreeBSD_version and update UPDATING.

Portions submitted by: bz
Reviewed by: bz, zec
Discussed with: gnn, jamie, jeff, jhb, julian, sam
Suggested by: peter
Approved by: re (kensmith)


194760 23-Jun-2009 rwatson

Modify most routines returning 'struct ifaddr *' to return references
rather than pointers, requiring callers to properly dispose of those
references. The following routines now return references:

ifaddr_byindex
ifa_ifwithaddr
ifa_ifwithbroadaddr
ifa_ifwithdstaddr
ifa_ifwithnet
ifaof_ifpforaddr
ifa_ifwithroute
ifa_ifwithroute_fib
rt_getifa
rt_getifa_fib
IFP_TO_IA
ip_rtaddr
in6_ifawithifp
in6ifa_ifpforlinklocal
in6ifa_ifpwithaddr
in6_ifadd
carp_iamatch6
ip6_getdstifaddr

Remove unused macro which didn't have required referencing:

IFP_TO_IA6

This closes many small races in which changes to interface
or address lists while an ifaddr was in use could lead to use of freed
memory (etc). In a few cases, add missing if_addr_list locking
required to safely acquire references.

Because of a lack of deep copying support, we accept a race in which
an in6_ifaddr pointed to by mbuf tags and extracted with
ip6_getdstifaddr() doesn't hold a reference while in transmit. Once
we have mbuf tag deep copy support, this can be fixed.

Reviewed by: bz
Obtained from: Apple, Inc. (portions)
MFC after: 6 weeks (portions)


186119 15-Dec-2008 qingli

This main goals of this project are:
1. separating L2 tables (ARP, NDP) from the L3 routing tables
2. removing as much locking dependencies among these layers as
possible to allow for some parallelism in the search operations
3. simplify the logic in the routing code,

The most notable end result is the obsolescent of the route
cloning (RTF_CLONING) concept, which translated into code reduction
in both IPv4 ARP and IPv6 NDP related modules, and size reduction in
struct rtentry{}. The change in design obsoletes the semantics of
RTF_CLONING, RTF_WASCLONE and RTF_LLINFO routing flags. The userland
applications such as "arp" and "ndp" have been modified to reflect
those changes. The output from "netstat -r" shows only the routing
entries.

Quite a few developers have contributed to this project in the
past: Glebius Smirnoff, Luigi Rizzo, Alessandro Cerri, and
Andre Oppermann. And most recently:

- Kip Macy revised the locking code completely, thus completing
the last piece of the puzzle, Kip has also been conducting
active functional testing
- Sam Leffler has helped me improving/refactoring the code, and
provided valuable reviews
- Julian Elischer setup the perforce tree for me and has helped
me maintaining that branch before the svn conversion


185571 02-Dec-2008 bz

Rather than using hidden includes (with cicular dependencies),
directly include only the header files needed. This reduces the
unneeded spamming of various headers into lots of files.

For now, this leaves us with very few modules including vnet.h
and thus needing to depend on opt_route.h.

Reviewed by: brooks, gnn, des, zec, imp
Sponsored by: The FreeBSD Foundation


183550 02-Oct-2008 zec

Step 1.5 of importing the network stack virtualization infrastructure
from the vimage project, as per plan established at devsummit 08/08:
http://wiki.freebsd.org/Image/Notes200808DevSummit

Introduce INIT_VNET_*() initializer macros, VNET_FOREACH() iterator
macros, and CURVNET_SET() context setting macros, all currently
resolving to NOPs.

Prepare for virtualization of selected SYSCTL objects by introducing a
family of SYSCTL_V_*() macros, currently resolving to their global
counterparts, i.e. SYSCTL_V_INT() == SYSCTL_INT().

Move selected #defines from sys/sys/vimage.h to newly introduced header
files specific to virtualized subsystems (sys/net/vnet.h,
sys/netinet/vinet.h etc.).

All the changes are verified to have zero functional impact at this
point in time by doing MD5 comparision between pre- and post-change
object files(*).

(*) netipsec/keysock.c did not validate depending on compile time options.

Implemented by: julian, bz, brooks, zec
Reviewed by: julian, bz, brooks, kris, rwatson, ...
Approved by: julian (mentor)
Obtained from: //depot/projects/vimage-commit2/...
X-MFC after: never
Sponsored by: NLnet Foundation, The FreeBSD Foundation


181803 17-Aug-2008 bz

Commit step 1 of the vimage project, (network stack)
virtualization work done by Marko Zec (zec@).

This is the first in a series of commits over the course
of the next few weeks.

Mark all uses of global variables to be virtualized
with a V_ prefix.
Use macros to map them back to their global names for
now, so this is a NOP change only.

We hope to have caught at least 85-90% of what is needed
so we do not invalidate a lot of outstanding patches again.

Obtained from: //depot/projects/vimage-commit2/...
Reviewed by: brooks, des, ed, mav, julian,
jamie, kris, rwatson, zec, ...
(various people I forgot, different versions)
md5 (with a bit of help)
Sponsored by: NLnet Foundation, The FreeBSD Foundation
X-MFC after: never
V_Commit_Message_Reviewed_By: more people than the patch


178812 06-May-2008 kmacy

fix build


178791 05-May-2008 kmacy

conditionally define PANIC_IF


178784 05-May-2008 kmacy

Import basic common and iwarp kernel RDMA infrastructure.

Supported by: Chelsio Inc.