alistair23-linux/drivers/infiniband/core
Matan Barak 2eb9beaee5 IB/uverbs: Add flow_action create and destroy verbs
A verbs application may receive and transmits packets using a data
path pipeline. Sometimes, the first stage in the receive pipeline or
the last stage in the transmit pipeline involves transforming a
packet, either in order to make it easier for later stages to process
it or to prepare it for transmission over the wire. Such transformation
could be stripping/encapsulating the packet (i.e. vxlan),
decrypting/encrypting it (i.e. ipsec), altering headers, doing some
complex FPGA changes, etc.

Some hardware could do such transformations without software data path
intervention at all. The flow steering API supports steering a
packet (either to a QP or dropping it) and some simple packet
immutable actions (i.e. tagging a packet). Complex actions, that may
change the packet, could bloat the flow steering API extensively.
Sometimes the same action should be applied to several flows.
In this case, it's easier to bind several flows to the same action and
modify it than change all matching flows.

Introducing a new flow_action object that abstracts any packet
transformation (out of a standard and well defined set of actions).
This flow_action object could be tied to a flow steering rule via a
new specification.

Currently, we support esp flow_action, which encrypts or decrypts a
packet according to the given parameters. However, we present a
flexible schema that could be used to other transformation actions tied
to flow rules.

Reviewed-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Matan Barak <matanb@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2018-04-04 12:06:25 -06:00
..
addr.c IB/addr: Constify dst_entry pointer 2018-03-29 13:54:20 -06:00
agent.c
agent.h
cache.c RDMA: Use ib_gid_attr during GID modification 2018-04-03 21:34:16 -06:00
cgroup.c
cm.c IB/cm: Block processing alternate path handling RoCE Rx cm messages 2018-03-27 16:22:12 -06:00
cm_msgs.h
cma.c RDMA/CMA: Add rdma_port_space to UAPI 2018-03-28 20:50:45 -06:00
cma_configfs.c IB/cma: use strlcpy() instead of strncpy() 2018-01-15 15:33:21 -07:00
cma_priv.h RDMA/cma: Move rdma_cm_state to cma_priv.h 2018-03-29 13:54:21 -06:00
core_priv.h IB/core: Move rdma_addr_find_l2_eth_by_grh to core_priv.h 2018-03-15 15:33:39 -06:00
cq.c RDMA/core: Reduce poll batch for direct cq polling 2018-03-06 20:08:39 -07:00
device.c IB/core: Simplify ib_query_gid to always refer to cache 2018-04-03 21:33:50 -06:00
fmr_pool.c infiniband: fix core/fmr_pool.c kernel-doc notation 2018-01-10 22:00:34 -07:00
iwcm.c RDMA/netlink: Fix general protection fault 2017-12-07 15:28:07 -05:00
iwcm.h
iwpm_msg.c RDMA/iwpm: Properly mark end of NL messages 2017-09-29 11:32:42 -04:00
iwpm_util.c RDMA/iwpm: Delete an error message for a failed memory allocation in iwpm_create_nlmsg() 2018-02-28 13:57:39 -07:00
iwpm_util.h
mad.c drivers: infiniband: remove duplicate includes 2017-12-22 09:39:35 -07:00
mad_priv.h
mad_rmpp.c IB/mad: Change slid in RMPP recv from 16 to 32 bits 2017-08-08 14:47:18 -04:00
mad_rmpp.h
Makefile IB/uverbs: Add flow_action create and destroy verbs 2018-04-04 12:06:25 -06:00
mr_pool.c
multicast.c IB/core: Honor port_num while resolving GID for IB link layer 2018-03-15 14:40:37 -06:00
netlink.c RDMA/netlink: Simplify code of autoload modules 2018-01-02 13:36:57 -07:00
nldev.c RDMA/nldev: Provide netdevice name and index 2018-03-29 13:32:40 -06:00
opa_smi.h
packer.c
rdma_core.c IB/uverbs: Tidy uverbs_uobject_add 2018-02-28 12:55:03 -07:00
rdma_core.h IB/core: Add new ioctl interface 2017-08-31 08:35:09 -04:00
restrack.c RDMA/restrack: Remove ambiguity in resource track clean logic 2018-03-22 12:42:48 -06:00
roce_gid_mgmt.c {net, IB}/mlx5: Manage port association for multiport RoCE 2018-01-08 11:42:22 -07:00
rw.c IB/core: remove redundant check on prot_sg_cnt 2017-10-10 10:49:45 -04:00
sa.h
sa_query.c IB/cma: Resolve route only while receiving CM requests 2018-03-23 10:58:05 -06:00
security.c Merge branch 'from-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git 2017-12-27 21:50:46 -07:00
smi.c
smi.h
sysfs.c IB/core: Refactor GID modify code for RoCE 2018-04-03 21:33:50 -06:00
ucm.c RDMA: Use u64_to_user_ptr everywhere 2018-03-29 13:42:29 -06:00
ucma.c RDMA/ucma: Don't allow setting RDMA_OPTION_IB_PATH without an RDMA device 2018-04-03 21:06:14 -06:00
ud_header.c
umem.c IB/umem: Fix use of npages/nmap fields 2017-12-18 15:37:06 -07:00
umem_odp.c RDMA/umem: Avoid partial declaration of non-static function 2017-11-10 13:02:12 -05:00
user_mad.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
uverbs.h IB/uverbs: Add flow_action create and destroy verbs 2018-04-04 12:06:25 -06:00
uverbs_cmd.c IB/uverbs: Refactor kern_spec_to_ib_spec_filter 2018-04-04 12:06:24 -06:00
uverbs_ioctl.c IB/uverbs: Add enum attribute type to ioctl() interface 2018-04-04 12:06:24 -06:00
uverbs_ioctl_merge.c IB/uverbs: Safely extend existing attributes 2018-03-19 14:45:17 -06:00
uverbs_main.c IB/uverbs: Enable ioctl() uAPI by default for new verbs 2018-03-19 14:45:17 -06:00
uverbs_marshall.c IB/core: Convert OPA AH to IB for Extended LIDs only 2017-11-13 15:53:57 -05:00
uverbs_std_types.c IB/uverbs: Add flow_action create and destroy verbs 2018-04-04 12:06:25 -06:00
uverbs_std_types_cq.c IB/uverbs: Enable ioctl() uAPI by default for new verbs 2018-03-19 14:45:17 -06:00
uverbs_std_types_flow_action.c IB/uverbs: Add flow_action create and destroy verbs 2018-04-04 12:06:25 -06:00
verbs.c drivers/infiniband/core/verbs.c: fix build with gcc-4.4.4 2018-03-14 18:14:08 -04:00