root/drivers/scsi/fcoe/fcoe.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. fcoe_netdev

   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * Copyright(c) 2009 Intel Corporation. All rights reserved.
   4  *
   5  * Maintained at www.Open-FCoE.org
   6  */
   7 
   8 #ifndef _FCOE_H_
   9 #define _FCOE_H_
  10 
  11 #include <linux/skbuff.h>
  12 #include <linux/kthread.h>
  13 
  14 #define FCOE_MAX_QUEUE_DEPTH    256
  15 #define FCOE_MIN_QUEUE_DEPTH    32
  16 
  17 #define FCOE_WORD_TO_BYTE       4
  18 
  19 #define FCOE_VERSION    "0.1"
  20 #define FCOE_NAME       "fcoe"
  21 #define FCOE_VENDOR     "Open-FCoE.org"
  22 
  23 #define FCOE_MAX_LUN            0xFFFF
  24 #define FCOE_MAX_FCP_TARGET     256
  25 
  26 #define FCOE_MAX_OUTSTANDING_COMMANDS   1024
  27 
  28 #define FCOE_MIN_XID            0x0000  /* the min xid supported by fcoe_sw */
  29 #define FCOE_MAX_XID            0x0FFF  /* the max xid supported by fcoe_sw */
  30 
  31 extern unsigned int fcoe_debug_logging;
  32 
  33 #define FCOE_LOGGING        0x01 /* General logging, not categorized */
  34 #define FCOE_NETDEV_LOGGING 0x02 /* Netdevice logging */
  35 
  36 #define FCOE_CHECK_LOGGING(LEVEL, CMD)                                  \
  37 do {                                                                    \
  38         if (unlikely(fcoe_debug_logging & LEVEL))                       \
  39                 do {                                                    \
  40                         CMD;                                            \
  41                 } while (0);                                            \
  42 } while (0)
  43 
  44 #define FCOE_DBG(fmt, args...)                                          \
  45         FCOE_CHECK_LOGGING(FCOE_LOGGING,                                \
  46                            pr_info("fcoe: " fmt, ##args);)
  47 
  48 #define FCOE_NETDEV_DBG(netdev, fmt, args...)                   \
  49         FCOE_CHECK_LOGGING(FCOE_NETDEV_LOGGING,                 \
  50                            pr_info("fcoe: %s: " fmt,            \
  51                                    netdev->name, ##args);)
  52 
  53 /**
  54  * struct fcoe_interface - A FCoE interface
  55  * @list:             Handle for a list of FCoE interfaces
  56  * @netdev:           The associated net device
  57  * @fcoe_packet_type: FCoE packet type
  58  * @fip_packet_type:  FIP packet type
  59  * @oem:              The offload exchange manager for all local port
  60  *                    instances associated with this port
  61  * @removed:          Indicates fcoe interface removed from net device
  62  * @priority:         Priority for the FCoE packet (DCB)
  63  * This structure is 1:1 with a net device.
  64  */
  65 struct fcoe_interface {
  66         struct list_head   list;
  67         struct net_device  *netdev;
  68         struct net_device  *realdev;
  69         struct packet_type fcoe_packet_type;
  70         struct packet_type fip_packet_type;
  71         struct packet_type fip_vlan_packet_type;
  72         struct fc_exch_mgr *oem;
  73         u8      removed;
  74         u8      priority;
  75 };
  76 
  77 #define fcoe_to_ctlr(x)                                         \
  78         (struct fcoe_ctlr *)(((struct fcoe_ctlr *)(x)) - 1)
  79 
  80 #define fcoe_from_ctlr(x)                       \
  81         ((struct fcoe_interface *)((x) + 1))
  82 
  83 /**
  84  * fcoe_netdev() - Return the net device associated with a local port
  85  * @lport: The local port to get the net device from
  86  */
  87 static inline struct net_device *fcoe_netdev(const struct fc_lport *lport)
  88 {
  89         return ((struct fcoe_interface *)
  90                         ((struct fcoe_port *)lport_priv(lport))->priv)->netdev;
  91 }
  92 
  93 #endif /* _FCOE_H_ */

/* [<][>][^][v][top][bottom][index][help] */