]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sdp: module parameter to disable SDP over ROCEE
authorAmir Vadai <amirv@mellanox.co.il>
Mon, 12 Apr 2010 12:42:32 +0000 (15:42 +0300)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Tue, 6 Oct 2015 12:04:52 +0000 (05:04 -0700)
Since ROCEE added, SDP always try to connect, even
if link layer of type Ethernet. This make 'both' mode
in libsdp useless.

Added a module paramter to disable it by default

Signed-off-by: Amir Vadai <amirv@mellanox.co.il>
drivers/infiniband/ulp/sdp/sdp_cma.c

index 32ae6b6bc5177590a36e1fd96dbe19e54a60726d..f35b3c931e70430a30be153f0e6c05929324d858 100644 (file)
@@ -48,6 +48,9 @@
 
 #define SDP_MAJV_MINV 0x22
 
+SDP_MODPARAM_SINT(sdp_link_layer_ib_only, 1, "Support only link layer of "
+               "type Infiniband");
+
 enum {
        SDP_HH_SIZE = 76,
        SDP_HAH_SIZE = 180,
@@ -334,6 +337,19 @@ int sdp_cma_handler(struct rdma_cm_id *id, struct rdma_cm_event *event)
        switch (event->event) {
        case RDMA_CM_EVENT_ADDR_RESOLVED:
                sdp_dbg(sk, "RDMA_CM_EVENT_ADDR_RESOLVED\n");
+
+               if (sdp_link_layer_ib_only &&
+                       rdma_node_get_transport(id->device->node_type) == 
+                               RDMA_TRANSPORT_IB &&
+                       rdma_port_link_layer(id->device, id->port_num) !=
+                               IB_LINK_LAYER_INFINIBAND) {
+                       sdp_dbg(sk, "Link layer is: %d. Only IB link layer "
+                               "is allowed\n",
+                               rdma_port_link_layer(id->device, id->port_num));
+                       rc = -ENETUNREACH;
+                       break;
+               }
+
                rc = rdma_resolve_route(id, SDP_ROUTE_TIMEOUT);
                break;
        case RDMA_CM_EVENT_ADDR_ERROR: