2015-07-24 02:33:59 +03:00
/* This file is part of the Emulex RoCE Device Driver for
* RoCE ( RDMA over Converged Ethernet ) adapters .
* Copyright ( C ) 2012 - 2015 Emulex . All rights reserved .
* EMULEX and SLI are trademarks of Emulex .
* www . emulex . com
*
* This software is available to you under a choice of one of two licenses .
* You may choose to be licensed under the terms of the GNU General Public
* License ( GPL ) Version 2 , available from the file COPYING in the main
* directory of this source tree , or the BSD license below :
*
* Redistribution and use in source and binary forms , with or without
* modification , are permitted provided that the following conditions
* are met :
*
* - Redistributions of source code must retain the above copyright notice ,
* this list of conditions and the following disclaimer .
*
* - Redistributions in binary form must reproduce the above copyright
* notice , this list of conditions and the following disclaimer in
* the documentation and / or other materials provided with the distribution .
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS " AS IS "
* AND ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED . IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL , EXEMPLARY , OR
* CONSEQUENTIAL DAMAGES ( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES ; LOSS OF USE , DATA , OR PROFITS ; OR
* BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY ,
* WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT ( INCLUDING NEGLIGENCE OR
* OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE , EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
2012-03-21 02:39:06 +04:00
*
* Contact Information :
* linux - drivers @ emulex . com
*
* Emulex
* 3333 Susan Street
* Costa Mesa , CA 92626
2015-07-24 02:33:59 +03:00
*/
2012-03-21 02:39:06 +04:00
# ifndef __OCRDMA_AH_H__
# define __OCRDMA_AH_H__
2014-12-18 11:43:07 +03:00
enum {
OCRDMA_AH_ID_MASK = 0x3FF ,
OCRDMA_AH_VLAN_VALID_MASK = 0x01 ,
2016-01-28 16:59:59 +03:00
OCRDMA_AH_VLAN_VALID_SHIFT = 0x1F ,
OCRDMA_AH_L3_TYPE_MASK = 0x03 ,
OCRDMA_AH_L3_TYPE_SHIFT = 0x1D /* 29 bits */
2014-12-18 11:43:07 +03:00
} ;
2016-11-23 09:23:24 +03:00
2017-04-29 21:41:18 +03:00
struct ib_ah * ocrdma_create_ah ( struct ib_pd * pd , struct rdma_ah_attr * ah_attr ,
2017-04-29 21:41:13 +03:00
struct ib_udata * udata ) ;
int ocrdma_destroy_ah ( struct ib_ah * ah ) ;
2017-04-29 21:41:18 +03:00
int ocrdma_query_ah ( struct ib_ah * ah , struct rdma_ah_attr * ah_attr ) ;
int ocrdma_modify_ah ( struct ib_ah * ah , struct rdma_ah_attr * ah_attr ) ;
2012-03-21 02:39:06 +04:00
int ocrdma_process_mad ( struct ib_device * ,
int process_mad_flags ,
u8 port_num ,
2015-06-01 00:15:30 +03:00
const struct ib_wc * in_wc ,
const struct ib_grh * in_grh ,
2015-06-06 21:38:31 +03:00
const struct ib_mad_hdr * in , size_t in_mad_size ,
struct ib_mad_hdr * out , size_t * out_mad_size ,
u16 * out_mad_pkey_index ) ;
2012-03-21 02:39:06 +04:00
# endif /* __OCRDMA_AH_H__ */