bfa_defs_itnim.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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. #ifndef __BFA_DEFS_ITNIM_H__
  18. #define __BFA_DEFS_ITNIM_H__
  19. #include <bfa_os_inc.h>
  20. #include <protocol/types.h>
  21. /**
  22. * FCS itnim states
  23. */
  24. enum bfa_itnim_state {
  25. BFA_ITNIM_OFFLINE = 0, /* offline */
  26. BFA_ITNIM_PRLI_SEND = 1, /* prli send */
  27. BFA_ITNIM_PRLI_SENT = 2, /* prli sent */
  28. BFA_ITNIM_PRLI_RETRY = 3, /* prli retry */
  29. BFA_ITNIM_HCB_ONLINE = 4, /* online callback */
  30. BFA_ITNIM_ONLINE = 5, /* online */
  31. BFA_ITNIM_HCB_OFFLINE = 6, /* offline callback */
  32. BFA_ITNIM_INITIATIOR = 7, /* initiator */
  33. };
  34. struct bfa_itnim_latency_s {
  35. u32 min;
  36. u32 max;
  37. u32 count;
  38. u32 clock_res;
  39. u32 avg;
  40. u32 rsvd;
  41. };
  42. struct bfa_itnim_hal_stats_s {
  43. u32 onlines; /* ITN nexus onlines (PRLI done) */
  44. u32 offlines; /* ITN Nexus offlines */
  45. u32 creates; /* ITN create requests */
  46. u32 deletes; /* ITN delete requests */
  47. u32 create_comps; /* ITN create completions */
  48. u32 delete_comps; /* ITN delete completions */
  49. u32 sler_events; /* SLER (sequence level error
  50. * recovery) events */
  51. u32 ioc_disabled; /* Num IOC disables */
  52. u32 cleanup_comps; /* ITN cleanup completions */
  53. u32 tm_cmnds; /* task management(TM) cmnds sent */
  54. u32 tm_fw_rsps; /* TM cmds firmware responses */
  55. u32 tm_success; /* TM successes */
  56. u32 tm_failures; /* TM failures */
  57. u32 tm_io_comps; /* TM IO completions */
  58. u32 tm_qresumes; /* TM queue resumes (after waiting
  59. * for resources)
  60. */
  61. u32 tm_iocdowns; /* TM cmnds affected by IOC down */
  62. u32 tm_cleanups; /* TM cleanups */
  63. u32 tm_cleanup_comps;
  64. /* TM cleanup completions */
  65. u32 ios; /* IO requests */
  66. u32 io_comps; /* IO completions */
  67. u64 input_reqs; /* INPUT requests */
  68. u64 output_reqs; /* OUTPUT requests */
  69. };
  70. /**
  71. * FCS remote port statistics
  72. */
  73. struct bfa_itnim_stats_s {
  74. u32 onlines; /* num rport online */
  75. u32 offlines; /* num rport offline */
  76. u32 prli_sent; /* num prli sent out */
  77. u32 fcxp_alloc_wait;/* num fcxp alloc waits */
  78. u32 prli_rsp_err; /* num prli rsp errors */
  79. u32 prli_rsp_acc; /* num prli rsp accepts */
  80. u32 initiator; /* rport is an initiator */
  81. u32 prli_rsp_parse_err; /* prli rsp parsing errors */
  82. u32 prli_rsp_rjt; /* num prli rsp rejects */
  83. u32 timeout; /* num timeouts detected */
  84. u32 sler; /* num sler notification from BFA */
  85. u32 rsvd;
  86. struct bfa_itnim_hal_stats_s hal_stats;
  87. };
  88. /**
  89. * FCS itnim attributes returned in queries
  90. */
  91. struct bfa_itnim_attr_s {
  92. enum bfa_itnim_state state; /* FCS itnim state */
  93. u8 retry; /* data retransmision support */
  94. u8 task_retry_id; /* task retry ident support */
  95. u8 rec_support; /* REC supported */
  96. u8 conf_comp; /* confirmed completion supp */
  97. struct bfa_itnim_latency_s io_latency; /* IO latency */
  98. };
  99. /**
  100. * BFA ITNIM events.
  101. * Arguments below are in BFAL context from Mgmt
  102. * BFA_ITNIM_AEN_NEW: [in]: None [out]: vf_id, lpwwn
  103. * BFA_ITNIM_AEN_DELETE: [in]: vf_id, lpwwn, rpwwn (0 = all fcp4 targets),
  104. * [out]: vf_id, ppwwn, lpwwn, rpwwn
  105. * BFA_ITNIM_AEN_ONLINE: [in]: vf_id, lpwwn, rpwwn (0 = all fcp4 targets),
  106. * [out]: vf_id, ppwwn, lpwwn, rpwwn
  107. * BFA_ITNIM_AEN_OFFLINE: [in]: vf_id, lpwwn, rpwwn (0 = all fcp4 targets),
  108. * [out]: vf_id, ppwwn, lpwwn, rpwwn
  109. * BFA_ITNIM_AEN_DISCONNECT:[in]: vf_id, lpwwn, rpwwn (0 = all fcp4 targets),
  110. * [out]: vf_id, ppwwn, lpwwn, rpwwn
  111. */
  112. enum bfa_itnim_aen_event {
  113. BFA_ITNIM_AEN_ONLINE = 1, /* Target online */
  114. BFA_ITNIM_AEN_OFFLINE = 2, /* Target offline */
  115. BFA_ITNIM_AEN_DISCONNECT = 3, /* Target disconnected */
  116. };
  117. /**
  118. * BFA ITNIM event data structure.
  119. */
  120. struct bfa_itnim_aen_data_s {
  121. u16 vf_id; /* vf_id of the IT nexus */
  122. u16 rsvd[3];
  123. wwn_t ppwwn; /* WWN of its physical port */
  124. wwn_t lpwwn; /* WWN of logical port */
  125. wwn_t rpwwn; /* WWN of remote(target) port */
  126. };
  127. #endif /* __BFA_DEFS_ITNIM_H__ */