diff options
author | Jeff Roberson <jeff@FreeBSD.org> | 2011-03-21 09:58:24 +0000 |
---|---|---|
committer | Jeff Roberson <jeff@FreeBSD.org> | 2011-03-21 09:58:24 +0000 |
commit | aa0a1e58f0189b0fde359a8bda032887e72057fa (patch) | |
tree | 3051c12f4ce44a65c025b72ec5821b35b2ec46be /contrib/ofed/management/infiniband-diags/include | |
parent | e4cd31dd3c7adc94a486ca5309c7096f81fa70f1 (diff) | |
download | src-aa0a1e58f0189b0fde359a8bda032887e72057fa.tar.gz src-aa0a1e58f0189b0fde359a8bda032887e72057fa.zip |
- Merge in OFED 1.5.3 from projects/ofed/head
Notes
Notes:
svn path=/head/; revision=219820
Diffstat (limited to 'contrib/ofed/management/infiniband-diags/include')
5 files changed, 360 insertions, 0 deletions
diff --git a/contrib/ofed/management/infiniband-diags/include/grouping.h b/contrib/ofed/management/infiniband-diags/include/grouping.h new file mode 100644 index 000000000000..e54efef83a85 --- /dev/null +++ b/contrib/ofed/management/infiniband-diags/include/grouping.h @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2004-2007 Voltaire Inc. All rights reserved. + * Copyright (c) 2007 Xsigo Systems Inc. All rights reserved. + * + * 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 + * OpenIB.org 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. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef _GROUPING_H_ +#define _GROUPING_H_ + +/*========================================================*/ +/* FABRIC SCANNER SPECIFIC DATA */ +/*========================================================*/ + +#define SPINES_MAX_NUM 12 +#define LINES_MAX_NUM 36 + +typedef struct ChassisList ChassisList; +typedef struct AllChassisList AllChassisList; + +struct ChassisList { + ChassisList *next; + uint64_t chassisguid; + int chassisnum; + int chassistype; + int nodecount; /* used for grouping by SystemImageGUID */ + Node *spinenode[SPINES_MAX_NUM + 1]; + Node *linenode[LINES_MAX_NUM + 1]; +}; + +struct AllChassisList { + ChassisList *first; + ChassisList *current; + ChassisList *last; +}; + +/*========================================================*/ +/* CHASSIS RECOGNITION SPECIFIC DATA */ +/*========================================================*/ + +/* Device IDs */ +#define VTR_DEVID_IB_FC_ROUTER 0x5a00 +#define VTR_DEVID_IB_IP_ROUTER 0x5a01 +#define VTR_DEVID_ISR9600_SPINE 0x5a02 +#define VTR_DEVID_ISR9600_LEAF 0x5a03 +#define VTR_DEVID_HCA1 0x5a04 +#define VTR_DEVID_HCA2 0x5a44 +#define VTR_DEVID_HCA3 0x6278 +#define VTR_DEVID_SW_6IB4 0x5a05 +#define VTR_DEVID_ISR9024 0x5a06 +#define VTR_DEVID_ISR9288 0x5a07 +#define VTR_DEVID_SLB24 0x5a09 +#define VTR_DEVID_SFB12 0x5a08 +#define VTR_DEVID_SFB4 0x5a0b +#define VTR_DEVID_ISR9024_12 0x5a0c +#define VTR_DEVID_SLB8 0x5a0d +#define VTR_DEVID_RLX_SWITCH_BLADE 0x5a20 +#define VTR_DEVID_ISR9024_DDR 0x5a31 +#define VTR_DEVID_SFB12_DDR 0x5a32 +#define VTR_DEVID_SFB4_DDR 0x5a33 +#define VTR_DEVID_SLB24_DDR 0x5a34 +#define VTR_DEVID_SFB2012 0x5a37 +#define VTR_DEVID_SLB2024 0x5a38 +#define VTR_DEVID_ISR2012 0x5a39 +#define VTR_DEVID_SFB2004 0x5a40 +#define VTR_DEVID_ISR2004 0x5a41 +#define VTR_DEVID_SRB2004 0x5a42 + +enum ChassisType { UNRESOLVED_CT, ISR9288_CT, ISR9096_CT, ISR2012_CT, ISR2004_CT }; +enum ChassisSlot { UNRESOLVED_CS, LINE_CS, SPINE_CS, SRBD_CS }; + +/*========================================================*/ +/* External interface */ +/*========================================================*/ + +ChassisList *group_nodes(); +char *portmapstring(Port *port); +char *get_chassis_type(unsigned char chassistype); +char *get_chassis_slot(unsigned char chassisslot); +uint64_t get_chassis_guid(unsigned char chassisnum); + +int is_xsigo_guid(uint64_t guid); +int is_xsigo_tca(uint64_t guid); +int is_xsigo_hca(uint64_t guid); + +#endif /* _GROUPING_H_ */ diff --git a/contrib/ofed/management/infiniband-diags/include/ibdiag_common.h b/contrib/ofed/management/infiniband-diags/include/ibdiag_common.h new file mode 100644 index 000000000000..39e09d70909c --- /dev/null +++ b/contrib/ofed/management/infiniband-diags/include/ibdiag_common.h @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2006-2007 The Regents of the University of California. + * Copyright (c) 2004-2008 Voltaire Inc. All rights reserved. + * + * 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 + * OpenIB.org 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. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef _IBDIAG_COMMON_H_ +#define _IBDIAG_COMMON_H_ + +#include <stdio.h> +#include <inttypes.h> + +extern char *argv0; +extern int ibdebug; + +/*========================================================*/ +/* External interface */ +/*========================================================*/ + +#undef DEBUG +#define DEBUG if (ibdebug || verbose) IBWARN +#define VERBOSE if (ibdebug || verbose > 1) IBWARN +#define IBERROR(fmt, args...) iberror(__FUNCTION__, fmt, ## args) + +void iberror(const char *fn, char *msg, ...); + +#include <ibdiag_version.h> + +static inline const char* get_build_version(void) +{ + return "BUILD VERSION: " IBDIAG_VERSION " Build date: " __DATE__ " " __TIME__ ; +} + +#endif /* _IBDIAG_COMMON_H_ */ diff --git a/contrib/ofed/management/infiniband-diags/include/ibdiag_version.h b/contrib/ofed/management/infiniband-diags/include/ibdiag_version.h new file mode 100644 index 000000000000..da9ed51096e9 --- /dev/null +++ b/contrib/ofed/management/infiniband-diags/include/ibdiag_version.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2008 Voltaire Inc. All rights reserved. + * + * 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 + * OpenIB.org 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. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef _IBDIAG_VERSION_H_ +#define _IBDIAG_VERSION_H_ + +#define IBDIAG_VERSION "1.4.4" + +#endif /* _IBDIAG_VERSION_H_ */ diff --git a/contrib/ofed/management/infiniband-diags/include/ibdiag_version.h.in b/contrib/ofed/management/infiniband-diags/include/ibdiag_version.h.in new file mode 100644 index 000000000000..62430c57d9a8 --- /dev/null +++ b/contrib/ofed/management/infiniband-diags/include/ibdiag_version.h.in @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2008 Voltaire Inc. All rights reserved. + * + * 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 + * OpenIB.org 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. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef _IBDIAG_VERSION_H_ +#define _IBDIAG_VERSION_H_ + +#define IBDIAG_VERSION "@VERSION@" + +#endif /* _IBDIAG_VERSION_H_ */ diff --git a/contrib/ofed/management/infiniband-diags/include/ibnetdiscover.h b/contrib/ofed/management/infiniband-diags/include/ibnetdiscover.h new file mode 100644 index 000000000000..0226615537aa --- /dev/null +++ b/contrib/ofed/management/infiniband-diags/include/ibnetdiscover.h @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2004-2007 Voltaire Inc. All rights reserved. + * Copyright (c) 2007 Xsigo Systems Inc. All rights reserved. + * + * 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 + * OpenIB.org 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. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef _IBNETDISCOVER_H_ +#define _IBNETDISCOVER_H_ + +#define MAXHOPS 63 + +#define CA_NODE 1 +#define SWITCH_NODE 2 +#define ROUTER_NODE 3 + +#define LIST_CA_NODE (1 << CA_NODE) +#define LIST_SWITCH_NODE (1 << SWITCH_NODE) +#define LIST_ROUTER_NODE (1 << ROUTER_NODE) + +/* Vendor IDs (for chassis based systems) */ +#define VTR_VENDOR_ID 0x8f1 /* Voltaire */ +#define TS_VENDOR_ID 0x5ad /* Cisco */ +#define SS_VENDOR_ID 0x66a /* InfiniCon */ +#define XS_VENDOR_ID 0x1397 /* Xsigo */ + + +typedef struct Port Port; +typedef struct Node Node; +typedef struct ChassisRecord ChassisRecord; + +struct ChassisRecord { + ChassisRecord *next; + + unsigned char chassisnum; + unsigned char anafanum; + unsigned char slotnum; + unsigned char chassistype; + unsigned char chassisslot; +}; + +struct Port { + Port *next; + uint64_t portguid; + int portnum; + int lid; + int lmc; + int state; + int physstate; + int linkwidth; + int linkspeed; + + Node *node; + Port *remoteport; /* null if SMA */ +}; + +struct Node { + Node *htnext; + Node *dnext; + Port *ports; + ib_portid_t path; + int type; + int dist; + int numports; + int localport; + int smalid; + int smalmc; + int smaenhsp0; + uint32_t devid; + uint32_t vendid; + uint64_t sysimgguid; + uint64_t nodeguid; + uint64_t portguid; + char nodedesc[64]; + uint8_t nodeinfo[64]; + + ChassisRecord *chrecord; +}; + +#endif /* _IBNETDISCOVER_H_ */ |