<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include/rdma, branch v3.12.19</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/include/rdma?h=v3.12.19</id>
<link rel='self' href='https://git.amat.us/linux/atom/include/rdma?h=v3.12.19'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-09-03T16:01:08Z</updated>
<entry>
<title>Merge branches 'cxgb4', 'flowsteer', 'ipoib', 'iser', 'mlx4', 'ocrdma' and 'qib' into for-next</title>
<updated>2013-09-03T16:01:08Z</updated>
<author>
<name>Roland Dreier</name>
<email>roland@purestorage.com</email>
</author>
<published>2013-09-03T16:01:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=82af24ac6fc3f4910218419a0ca4f05d42b45c67'/>
<id>urn:sha1:82af24ac6fc3f4910218419a0ca4f05d42b45c67</id>
<content type='text'>
</content>
</entry>
<entry>
<title>IB/core: Better checking of userspace values for receive flow steering</title>
<updated>2013-09-02T18:12:48Z</updated>
<author>
<name>Matan Barak</name>
<email>matanb@mellanox.com</email>
</author>
<published>2013-09-01T15:39:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=22878dbc9173a7f0322dd697b1b5b49a83a1d4d5'/>
<id>urn:sha1:22878dbc9173a7f0322dd697b1b5b49a83a1d4d5</id>
<content type='text'>
  - Don't allow unsupported comp_mask values, user should check
    ibv_query_device to know which features are supported.
  - Add a check in ib_uverbs_create_flow() to verify the size passed
    from the user space.

Signed-off-by: Matan Barak &lt;matanb@mellanox.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
</entry>
<entry>
<title>IB/core: Export ib_create/destroy_flow through uverbs</title>
<updated>2013-08-28T16:53:14Z</updated>
<author>
<name>Hadar Hen Zion</name>
<email>hadarh@mellanox.com</email>
</author>
<published>2013-08-14T10:58:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=436f2ad05a0b65b1467ddf51bc68171c381bf844'/>
<id>urn:sha1:436f2ad05a0b65b1467ddf51bc68171c381bf844</id>
<content type='text'>
Implement ib_uverbs_create_flow() and ib_uverbs_destroy_flow() to
support flow steering for user space applications.

Signed-off-by: Hadar Hen Zion &lt;hadarh@mellanox.com&gt;
Signed-off-by: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
</entry>
<entry>
<title>IB/core: Add receive flow steering support</title>
<updated>2013-08-28T16:51:52Z</updated>
<author>
<name>Hadar Hen Zion</name>
<email>hadarh@mellanox.com</email>
</author>
<published>2013-08-07T11:01:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=319a441d1361ea703b091caf92418f8121eadfc5'/>
<id>urn:sha1:319a441d1361ea703b091caf92418f8121eadfc5</id>
<content type='text'>
The RDMA stack allows for applications to create IB_QPT_RAW_PACKET
QPs, which receive plain Ethernet packets, specifically packets that
don't carry any QPN to be matched by the receiving side.  Applications
using these QPs must be provided with a method to program some
steering rule with the HW so packets arriving at the local port can be
routed to them.

This patch adds ib_create_flow(), which allow providing a flow
specification for a QP.  When there's a match between the
specification and a received packet, the packet is forwarded to that
QP, in a the same way one uses ib_attach_multicast() for IB UD
multicast handling.

Flow specifications are provided as instances of struct ib_flow_spec_yyy,
which describe L2, L3 and L4 headers.  Currently specs for Ethernet, IPv4,
TCP and UDP are defined.  Flow specs are made of values and masks.

The input to ib_create_flow() is a struct ib_flow_attr, which contains
a few mandatory control elements and optional flow specs.

    struct ib_flow_attr {
            enum ib_flow_attr_type type;
            u16      size;
            u16      priority;
            u32      flags;
            u8       num_of_specs;
            u8       port;
            /* Following are the optional layers according to user request
             * struct ib_flow_spec_yyy
             * struct ib_flow_spec_zzz
             */
    };

As these specs are eventually coming from user space, they are defined and
used in a way which allows adding new spec types without kernel/user ABI
change, just with a little API enhancement which defines the newly added spec.

The flow spec structures are defined with TLV (Type-Length-Value)
entries, which allows calling ib_create_flow() with a list of variable
length of optional specs.

For the actual processing of ib_flow_attr the driver uses the number
of specs and the size mandatory fields along with the TLV nature of
the specs.

Steering rules processing order is according to the domain over which
the rule is set and the rule priority.  All rules set by user space
applicatations fall into the IB_FLOW_DOMAIN_USER domain, other domains
could be used by future IPoIB RFS and Ethetool flow-steering interface
implementation.  Lower numerical value for the priority field means
higher priority.

The returned value from ib_create_flow() is a struct ib_flow, which
contains a database pointer (handle) provided by the HW driver to be
used when calling ib_destroy_flow().

Applications that offload TCP/IP traffic can also be written over IB
UD QPs.  The ib_create_flow() / ib_destroy_flow() API is designed to
support UD QPs too.  A HW driver can set IB_DEVICE_MANAGED_FLOW_STEERING
to denote support for flow steering.

The ib_flow_attr enum type supports usage of flow steering for promiscuous
and sniffer purposes:

    IB_FLOW_ATTR_NORMAL - "regular" rule, steering according to rule specification

    IB_FLOW_ATTR_ALL_DEFAULT - default unicast and multicast rule, receive
        all Ethernet traffic which isn't steered to any QP

    IB_FLOW_ATTR_MC_DEFAULT - same as IB_FLOW_ATTR_ALL_DEFAULT but only for multicast

    IB_FLOW_ATTR_SNIFFER - sniffer rule, receive all port traffic

ALL_DEFAULT and MC_DEFAULT rules options are valid only for Ethernet link type.

Signed-off-by: Hadar Hen Zion &lt;hadarh@mellanox.com&gt;
Signed-off-by: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
</entry>
<entry>
<title>IB/core: Add locking around event dispatching on XRC target QPs</title>
<updated>2013-08-13T18:21:32Z</updated>
<author>
<name>Yishai Hadas</name>
<email>yishaih@mellanox.com</email>
</author>
<published>2013-08-01T15:49:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=73c40c616a33fcb7961b3c90a91b550813129b3e'/>
<id>urn:sha1:73c40c616a33fcb7961b3c90a91b550813129b3e</id>
<content type='text'>
Fix a potential race when event occurrs on a target XRC QP and in the
middle of reporting that on its shared qps, one of them is destroyed
by user space application.  Also add note for kernel consumers in
ib_verbs.h that they must not destroy the QP from within the handler.

Signed-off-by: Yishai Hadas &lt;yishaih@mellanox.com&gt;
Signed-off-by: Jack Morgenstein &lt;jackm@dev.mellanox.co.il&gt;
Signed-off-by: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
</entry>
<entry>
<title>RDMA/cma: Add IPv6 support for iWARP</title>
<updated>2013-08-12T19:32:31Z</updated>
<author>
<name>Steve Wise</name>
<email>swise@opengridcomputing.com</email>
</author>
<published>2013-07-04T10:40:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=24d44a391f1b5d56e9c7a4fc1edd085687864ff9'/>
<id>urn:sha1:24d44a391f1b5d56e9c7a4fc1edd085687864ff9</id>
<content type='text'>
Modify the type of local_addr and remote_addr fields in struct
iw_cm_id from struct sockaddr_in to struct sockaddr_storage to hold
IPv6 and IPv4 addresses uniformly.

Change the references of local_addr and remote_addr in cxgb4, cxgb3,
nes and amso drivers to match this.  However to be able to actully run
traffic over IPv6, low-level drivers have to add code to support this.

Signed-off-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Reviewed-by: Sean Hefty &lt;sean.hefty@intel.com&gt;

[ Fix unused variable warnings when INFINIBAND_NES_DEBUG not set.
  - Roland ]

Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
</entry>
<entry>
<title>Merge branches 'af_ib', 'cxgb4', 'misc', 'mlx5', 'ocrdma', 'qib' and 'srp' into for-next</title>
<updated>2013-07-08T18:22:11Z</updated>
<author>
<name>Roland Dreier</name>
<email>roland@purestorage.com</email>
</author>
<published>2013-07-08T18:22:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0eba55114838059b873b173f1115cd5c5bab3dfd'/>
<id>urn:sha1:0eba55114838059b873b173f1115cd5c5bab3dfd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>IB/core: Add reserved values to enums for low-level driver use</title>
<updated>2013-07-08T02:21:21Z</updated>
<author>
<name>Jack Morgenstein</name>
<email>jackm@dev.mellanox.co.il</email>
</author>
<published>2013-07-07T14:25:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0134f16bc91cc15a38c867b81568b791c9b626aa'/>
<id>urn:sha1:0134f16bc91cc15a38c867b81568b791c9b626aa</id>
<content type='text'>
Continue the approach taken by commit d2b57063e4a ("IB/core: Reserve
bits in enum ib_qp_create_flags for low-level driver use") and add
reserved entries to the ib_qp_type and ib_wr_opcode enums.  Low-level
drivers can then define macros to use these reserved values, giving
proper names to the macros for readability.  Also add a range of
reserved flags to enum ib_send_flags.

The mlx5 IB driver uses the new additions.

Signed-off-by: Jack Morgenstein &lt;jackm@dev.mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
</entry>
<entry>
<title>RDMA/cma: Export cma_get_service_id()</title>
<updated>2013-06-21T06:35:41Z</updated>
<author>
<name>Sean Hefty</name>
<email>sean.hefty@intel.com</email>
</author>
<published>2013-05-29T17:09:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cf53936f229d81131fef475919f163ce566a205f'/>
<id>urn:sha1:cf53936f229d81131fef475919f163ce566a205f</id>
<content type='text'>
Allow the rdma_ucm to query the IB service ID formed or allocated by
the rdma_cm by exporting the cma_get_service_id() functionality.

Signed-off-by: Sean Hefty &lt;sean.hefty@intel.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
</entry>
<entry>
<title>IB/sa: Export function to pack a path record into wire format</title>
<updated>2013-06-21T06:35:39Z</updated>
<author>
<name>Sean Hefty</name>
<email>sean.hefty@intel.com</email>
</author>
<published>2013-05-29T17:09:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2e08b5879e9244fa893fe09f5b887f72f4e6c29b'/>
<id>urn:sha1:2e08b5879e9244fa893fe09f5b887f72f4e6c29b</id>
<content type='text'>
Allow converting from struct ib_sa_path_rec to the IB defined SA path
record wire format.  This will be used to report path data from the
rdma cm into user space.

Signed-off-by: Sean Hefty &lt;sean.hefty@intel.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
</entry>
</feed>
