1/* 2 * Copyright (c) 2005-2009 Brocade Communications Systems, Inc. 3 * All rights reserved 4 * www.brocade.com 5 * 6 * Linux driver for Brocade Fibre Channel Host Bus Adapter. 7 * 8 * This program is free software; you can redistribute it and/or modify it 9 * under the terms of the GNU General Public License (GPL) Version 2 as 10 * published by the Free Software Foundation 11 * 12 * This program is distributed in the hope that it will be useful, but 13 * WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * General Public License for more details. 16 */ 17 18#ifndef __BFI_FABRIC_H__ 19#define __BFI_FABRIC_H__ 20 21#include <bfi/bfi.h> 22 23#pragma pack(1) 24 25enum bfi_fabric_h2i_msgs { 26 BFI_FABRIC_H2I_CREATE_REQ = 1, 27 BFI_FABRIC_H2I_DELETE_REQ = 2, 28 BFI_FABRIC_H2I_SETAUTH = 3, 29}; 30 31enum bfi_fabric_i2h_msgs { 32 BFI_FABRIC_I2H_CREATE_RSP = BFA_I2HM(1), 33 BFI_FABRIC_I2H_DELETE_RSP = BFA_I2HM(2), 34 BFI_FABRIC_I2H_SETAUTH_RSP = BFA_I2HM(3), 35 BFI_FABRIC_I2H_ONLINE = BFA_I2HM(4), 36 BFI_FABRIC_I2H_OFFLINE = BFA_I2HM(5), 37}; 38 39struct bfi_fabric_create_req_s { 40 bfi_mhdr_t mh; /* common msg header */ 41 u8 vf_en; /* virtual fabric enable */ 42 u8 rsvd; 43 u16 vf_id; /* virtual fabric ID */ 44 wwn_t pwwn; /* port name */ 45 wwn_t nwwn; /* node name */ 46}; 47 48struct bfi_fabric_create_rsp_s { 49 bfi_mhdr_t mh; /* common msg header */ 50 u16 bfa_handle; /* host fabric handle */ 51 u8 status; /* fabric create status */ 52 u8 rsvd; 53}; 54 55struct bfi_fabric_delete_req_s { 56 bfi_mhdr_t mh; /* common msg header */ 57 u16 fw_handle; /* firmware fabric handle */ 58 u16 rsvd; 59}; 60 61struct bfi_fabric_delete_rsp_s { 62 bfi_mhdr_t mh; /* common msg header */ 63 u16 bfa_handle; /* host fabric handle */ 64 u8 status; /* fabric deletion status */ 65 u8 rsvd; 66}; 67 68#define BFI_FABRIC_AUTHSECRET_LEN 64 69struct bfi_fabric_setauth_req_s { 70 bfi_mhdr_t mh; /* common msg header */ 71 u16 fw_handle; /* f/w handle of fabric */ 72 u8 algorithm; 73 u8 group; 74 u8 secret[BFI_FABRIC_AUTHSECRET_LEN]; 75}; 76 77union bfi_fabric_h2i_msg_u { 78 bfi_msg_t *msg; 79 struct bfi_fabric_create_req_s *create_req; 80 struct bfi_fabric_delete_req_s *delete_req; 81}; 82 83union bfi_fabric_i2h_msg_u { 84 bfi_msg_t *msg; 85 struct bfi_fabric_create_rsp_s *create_rsp; 86 struct bfi_fabric_delete_rsp_s *delete_rsp; 87}; 88 89#pragma pack() 90 91#endif /* __BFI_FABRIC_H__ */ 92