123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- /*
- * Copyright (c) 2005-2009 Brocade Communications Systems, Inc.
- * All rights reserved
- * www.brocade.com
- *
- * bfa_defs_cee.h Interface declarations between host based
- * BFAL and DCBX/LLDP module in Firmware
- *
- * Linux driver for Brocade Fibre Channel Host Bus Adapter.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License (GPL) Version 2 as
- * published by the Free Software Foundation
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- */
- #ifndef __BFA_DEFS_CEE_H__
- #define __BFA_DEFS_CEE_H__
- #include <defs/bfa_defs_types.h>
- #include <defs/bfa_defs_pport.h>
- #include <protocol/types.h>
- #pragma pack(1)
- #define BFA_CEE_LLDP_MAX_STRING_LEN (128)
- /* FIXME: this is coming from the protocol spec. Can the host & apps share the
- protocol .h files ?
- */
- #define BFA_CEE_LLDP_SYS_CAP_OTHER 0x0001
- #define BFA_CEE_LLDP_SYS_CAP_REPEATER 0x0002
- #define BFA_CEE_LLDP_SYS_CAP_MAC_BRIDGE 0x0004
- #define BFA_CEE_LLDP_SYS_CAP_WLAN_AP 0x0008
- #define BFA_CEE_LLDP_SYS_CAP_ROUTER 0x0010
- #define BFA_CEE_LLDP_SYS_CAP_TELEPHONE 0x0020
- #define BFA_CEE_LLDP_SYS_CAP_DOCSIS_CD 0x0040
- #define BFA_CEE_LLDP_SYS_CAP_STATION 0x0080
- #define BFA_CEE_LLDP_SYS_CAP_CVLAN 0x0100
- #define BFA_CEE_LLDP_SYS_CAP_SVLAN 0x0200
- #define BFA_CEE_LLDP_SYS_CAP_TPMR 0x0400
- /* LLDP string type */
- struct bfa_cee_lldp_str_s {
- u8 sub_type;
- u8 len;
- u8 rsvd[2];
- u8 value[BFA_CEE_LLDP_MAX_STRING_LEN];
- };
- /* LLDP paramters */
- struct bfa_cee_lldp_cfg_s {
- struct bfa_cee_lldp_str_s chassis_id;
- struct bfa_cee_lldp_str_s port_id;
- struct bfa_cee_lldp_str_s port_desc;
- struct bfa_cee_lldp_str_s sys_name;
- struct bfa_cee_lldp_str_s sys_desc;
- struct bfa_cee_lldp_str_s mgmt_addr;
- u16 time_to_interval;
- u16 enabled_system_cap;
- };
- enum bfa_cee_dcbx_version_e {
- DCBX_PROTOCOL_PRECEE = 1,
- DCBX_PROTOCOL_CEE = 2,
- };
- enum bfa_cee_lls_e {
- CEE_LLS_DOWN_NO_TLV = 0, /* LLS is down because the TLV not sent by
- * the peer */
- CEE_LLS_DOWN = 1, /* LLS is down as advertised by the peer */
- CEE_LLS_UP = 2,
- };
- /* CEE/DCBX parameters */
- struct bfa_cee_dcbx_cfg_s {
- u8 pgid[8];
- u8 pg_percentage[8];
- u8 pfc_enabled; /* bitmap of priorties with PFC enabled */
- u8 fcoe_user_priority; /* bitmap of priorities used for FcoE
- * traffic */
- u8 dcbx_version; /* operating version:CEE or preCEE */
- u8 lls_fcoe; /* FCoE Logical Link Status */
- u8 lls_lan; /* LAN Logical Link Status */
- u8 rsvd[3];
- };
- /* CEE status */
- /* Making this to tri-state for the benefit of port list command */
- enum bfa_cee_status_e {
- CEE_PHY_DOWN = 0,
- CEE_PHY_UP = 1,
- CEE_UP = 2,
- };
- /* CEE Query */
- struct bfa_cee_attr_s {
- u8 cee_status;
- u8 error_reason;
- struct bfa_cee_lldp_cfg_s lldp_remote;
- struct bfa_cee_dcbx_cfg_s dcbx_remote;
- mac_t src_mac;
- u8 link_speed;
- u8 filler[3];
- };
- /* LLDP/DCBX/CEE Statistics */
- struct bfa_cee_lldp_stats_s {
- u32 frames_transmitted;
- u32 frames_aged_out;
- u32 frames_discarded;
- u32 frames_in_error;
- u32 frames_rcvd;
- u32 tlvs_discarded;
- u32 tlvs_unrecognized;
- };
- struct bfa_cee_dcbx_stats_s {
- u32 subtlvs_unrecognized;
- u32 negotiation_failed;
- u32 remote_cfg_changed;
- u32 tlvs_received;
- u32 tlvs_invalid;
- u32 seqno;
- u32 ackno;
- u32 recvd_seqno;
- u32 recvd_ackno;
- };
- struct bfa_cee_cfg_stats_s {
- u32 cee_status_down;
- u32 cee_status_up;
- u32 cee_hw_cfg_changed;
- u32 recvd_invalid_cfg;
- };
- struct bfa_cee_stats_s {
- struct bfa_cee_lldp_stats_s lldp_stats;
- struct bfa_cee_dcbx_stats_s dcbx_stats;
- struct bfa_cee_cfg_stats_s cfg_stats;
- };
- #pragma pack()
- #endif /* __BFA_DEFS_CEE_H__ */
|