1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright 2008 Cisco Systems, Inc. All rights reserved. 3*4882a593Smuzhiyun * Copyright 2007 Nuova Systems, Inc. All rights reserved. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * This program is free software; you may redistribute it and/or modify 6*4882a593Smuzhiyun * it under the terms of the GNU General Public License as published by 7*4882a593Smuzhiyun * the Free Software Foundation; version 2 of the License. 8*4882a593Smuzhiyun * 9*4882a593Smuzhiyun * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 10*4882a593Smuzhiyun * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 11*4882a593Smuzhiyun * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 12*4882a593Smuzhiyun * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 13*4882a593Smuzhiyun * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 14*4882a593Smuzhiyun * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 15*4882a593Smuzhiyun * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 16*4882a593Smuzhiyun * SOFTWARE. 17*4882a593Smuzhiyun */ 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #ifndef _FNIC_FIP_H_ 20*4882a593Smuzhiyun #define _FNIC_FIP_H_ 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun #define FCOE_CTLR_START_DELAY 2000 /* ms after first adv. to choose FCF */ 24*4882a593Smuzhiyun #define FCOE_CTLR_FIPVLAN_TOV 2000 /* ms after FIP VLAN disc */ 25*4882a593Smuzhiyun #define FCOE_CTLR_MAX_SOL 8 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun #define FINC_MAX_FLOGI_REJECTS 8 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun struct vlan { 30*4882a593Smuzhiyun __be16 vid; 31*4882a593Smuzhiyun __be16 type; 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun /* 35*4882a593Smuzhiyun * VLAN entry. 36*4882a593Smuzhiyun */ 37*4882a593Smuzhiyun struct fcoe_vlan { 38*4882a593Smuzhiyun struct list_head list; 39*4882a593Smuzhiyun u16 vid; /* vlan ID */ 40*4882a593Smuzhiyun u16 sol_count; /* no. of sols sent */ 41*4882a593Smuzhiyun u16 state; /* state */ 42*4882a593Smuzhiyun }; 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun enum fip_vlan_state { 45*4882a593Smuzhiyun FIP_VLAN_AVAIL = 0, /* don't do anything */ 46*4882a593Smuzhiyun FIP_VLAN_SENT = 1, /* sent */ 47*4882a593Smuzhiyun FIP_VLAN_USED = 2, /* succeed */ 48*4882a593Smuzhiyun FIP_VLAN_FAILED = 3, /* failed to response */ 49*4882a593Smuzhiyun }; 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun struct fip_vlan { 52*4882a593Smuzhiyun struct ethhdr eth; 53*4882a593Smuzhiyun struct fip_header fip; 54*4882a593Smuzhiyun struct { 55*4882a593Smuzhiyun struct fip_mac_desc mac; 56*4882a593Smuzhiyun struct fip_wwn_desc wwnn; 57*4882a593Smuzhiyun } desc; 58*4882a593Smuzhiyun }; 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun #endif /* __FINC_FIP_H_ */ 61