130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/*
230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Copyright (c) 2005 Intel Corporation.  All rights reserved.
330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *
430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * This software is available to you under a choice of one of two
530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * licenses.  You may choose to be licensed under the terms of the GNU
630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * General Public License (GPL) Version 2, available from the file
730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * COPYING in the main directory of this source tree, or the
830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * OpenIB.org BSD license below:
930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *
1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *     Redistribution and use in source and binary forms, with or
1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *     without modification, are permitted provided that the following
1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *     conditions are met:
1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *
1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *      - Redistributions of source code must retain the above
1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *        copyright notice, this list of conditions and the following
1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *        disclaimer.
1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *
1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *      - Redistributions in binary form must reproduce the above
1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *        copyright notice, this list of conditions and the following
2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *        disclaimer in the documentation and/or other materials
2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *        provided with the distribution.
2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng *
2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * SOFTWARE.
3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */
3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef IB_USER_SA_H
3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IB_USER_SA_H
3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/types.h>
3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3830692c65c4174412c90e79489e98ab85c1a7412fBen Chengenum {
3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	IB_PATH_GMP		= 1,
4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	IB_PATH_PRIMARY		= (1<<1),
4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	IB_PATH_ALTERNATE	= (1<<2),
4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	IB_PATH_OUTBOUND	= (1<<3),
4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	IB_PATH_INBOUND		= (1<<4),
4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	IB_PATH_INBOUND_REVERSE = (1<<5),
4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	IB_PATH_BIDIRECTIONAL	= IB_PATH_OUTBOUND | IB_PATH_INBOUND_REVERSE
4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
4830692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct ib_path_rec_data {
4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	flags;
5030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	reserved;
5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	path_rec[16];
5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
5330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
5430692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct ib_user_path_rec {
5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	dgid[16];
5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	sgid[16];
5730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__be16	dlid;
5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__be16	slid;
5930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	raw_traffic;
6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__be32	flow_label;
6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	reversible;
6230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	mtu;
6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__be16	pkey;
6430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	hop_limit;
6530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	traffic_class;
6630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	numb_path;
6730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	sl;
6830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	mtu_selector;
6930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	rate_selector;
7030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	rate;
7130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	packet_life_time_selector;
7230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	packet_life_time;
7330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	preference;
7430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
7530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
7630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* IB_USER_SA_H */
77