Files @ 5fc7f2080582
Branch filter:

Location: vmkdrivers/BLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release/net/vmkapi_net_types.h

unknown
ESXi-5.5-U3
/* **********************************************************
 * Copyright 2006 - 2009 VMware, Inc.  All rights reserved.
 * **********************************************************/

/*
 * @VMKAPIMOD_LICENSE@
 */

/*
 ***********************************************************************
 * Network Types                                                  */ /**
 * \addtogroup Network
 *@{
 ***********************************************************************
 */
#ifndef _VMKAPI_NET_TYPES_H_
#define _VMKAPI_NET_TYPES_H_

/** \cond never */
#ifndef VMK_HEADER_INCLUDED_FROM_VMKAPI_H
#error This vmkapi file should never be included directly but only via vmkapi.h
#endif
/** \endcond never */

/*
 ***********************************************************************
 * Vlan                                                           */ /**
 * \defgroup Vlan Virtual Lan
 *@{
 ***********************************************************************
 */

/**
 * \brief Identifier number for vlan group.
 */

typedef vmk_uint16        vmk_VlanID;

/**
 * \brief 802.1p priority value for vlan tag.
 */

typedef vmk_uint8        vmk_VlanPriority;

/*
 * \brief Symbolic names for 802.1p priority values.
 *
 * Following the published version in 802.1Q-2005 Annex G.
 * Actual ranking in order of least to most important is not strictly numerical.
 * Priority 0 is the default priority and is ranked specially.
 * The ranking, from least to most important, is
 *    1,  0,  2,  3,  4,  5,  6,  7
 * or, using the corresponding 2-letter acronyms from 802.1Q,
 *    BK, BE, EE, CA, VI, VO, IC, NC
 */
enum {
   VMK_VLAN_PRIORITY_MINIMUM = 0,

   VMK_VLAN_PRIORITY_BE = VMK_VLAN_PRIORITY_MINIMUM,
   VMK_VLAN_PRIORITY_BEST_EFFORT = VMK_VLAN_PRIORITY_BE,

   VMK_VLAN_PRIORITY_BK = 1,
   VMK_VLAN_PRIORITY_BACKGROUND = VMK_VLAN_PRIORITY_BK,

   VMK_VLAN_PRIORITY_EE = 2,
   VMK_VLAN_PRIORITY_EXCELLENT_EFFORT = VMK_VLAN_PRIORITY_EE,

   VMK_VLAN_PRIORITY_CA = 3,
   VMK_VLAN_PRIORITY_CRITICAL_APPS = VMK_VLAN_PRIORITY_CA,

   VMK_VLAN_PRIORITY_VI = 4,
   VMK_VLAN_PRIORITY_VIDEO = VMK_VLAN_PRIORITY_VI,

   VMK_VLAN_PRIORITY_VO = 5,
   VMK_VLAN_PRIORITY_VOICE = VMK_VLAN_PRIORITY_VO,

   VMK_VLAN_PRIORITY_IC = 6,
   VMK_VLAN_PRIORITY_INTERNETWORK_CONROL = VMK_VLAN_PRIORITY_IC,

   VMK_VLAN_PRIORITY_NC = 7,
   VMK_VLAN_PRIORITY_NETWORK_CONROL = VMK_VLAN_PRIORITY_NC,

   VMK_VLAN_PRIORITY_MAXIMUM = VMK_VLAN_PRIORITY_NC,

   VMK_VLAN_NUM_PRIORITIES = VMK_VLAN_PRIORITY_MAXIMUM+1,

   VMK_VLAN_PRIORITY_INVALID = (vmk_VlanPriority)~0U
};

/**
 * \ingroup Passthru
 * \brief Enumeration of passthru types.
 */
typedef enum vmk_NetPTType {
   VMK_PT_UPT  = 1,
   VMK_PT_CDPT = 2,
} vmk_NetPTType;

/**
 * \brief Ethernet address length
 */
#define VMK_ETH_ADDR_LENGTH           6

/**
 * \brief Ethernet address type
 */
typedef vmk_uint8 vmk_EthAddress[VMK_ETH_ADDR_LENGTH];

/** Invalid identification number for a port */
#define VMK_VSWITCH_INVALID_PORT_ID 0

/**
 * \brief Identifier for a portset.
 */
typedef struct Portset vmk_Portset;

/**
 * \brief Identifier number for port on a virtual switch.
 */
typedef vmk_uint32 vmk_SwitchPortID;

/**
 * \brief Tag associated to a resource pool.
 */
typedef vmk_uint16 vmk_PortsetResPoolTag;

/**
 * \brief Default resource pool tag.
 */
#define VMK_PORTSET_DEFAULT_RESPOOL_TAG 0

/**
 * \brief Invalid resource pool tag.
 */
#define VMK_PORTSET_INVALID_RESPOOL_TAG ((vmk_PortsetResPoolTag)-1)


/**
 * \brief State of the device's link associated to a port.
 */

typedef enum {

   /** The device's link state is down */
   VMK_LINK_STATE_DOWN,

   /** The device's link state is up */
   VMK_LINK_STATE_UP
} vmk_LinkState;


/**
 * \brief Link speed in Mb/s
 */

typedef vmk_uint32 vmk_LinkSpeed;

/** Uplink auto negotiated speed */
#define VMK_LINK_SPEED_AUTO          0

/** Uplink link speed 10Mbps */
#define VMK_LINK_SPEED_10_MBPS       10

/** Uplink link speed 100Mbps */
#define VMK_LINK_SPEED_100_MBPS      100

/** Uplink link speed 1000Mbps */
#define VMK_LINK_SPEED_1000_MBPS     1000

/** Uplink link speed 10000Mbps */
#define VMK_LINK_SPEED_10000_MBPS    10000

/** Uplink link speed 20000Mbps */
#define VMK_LINK_SPEED_20000_MBPS    20000

/** Uplink link speed 40000Mbps */
#define VMK_LINK_SPEED_40000_MBPS    40000

/** Uplink link speed 100000Mbps */
#define VMK_LINK_SPEED_100000_MBPS   100000



/**
 * \brief Link duplex
 */

typedef enum {

   /** Duplex autonegotiation */
   VMK_LINK_DUPLEX_AUTO = -1,

   /** Half duplex */
   VMK_LINK_DUPLEX_HALF =  1,

   /** Full duplex */
   VMK_LINK_DUPLEX_FULL =  2,
} vmk_LinkDuplex;


/**
 * \brief Link status (state, speed & duplex)
 */
typedef struct {

   /** State of the link */
   vmk_LinkState state;

   /** Speed of the link */
   vmk_LinkSpeed       speed;

   /** Duplex of the link */
   vmk_LinkDuplex      duplex;
} vmk_LinkStatus;


/**
 * \brief Uplink handle
 *
 * vmk_Uplink is used as a handle to perform operations on uplink devices.
 *
 */
typedef struct UplinkDev *vmk_Uplink;


#endif /* _VMKAPI_NET_TYPES_H_ */
/** @} */
/** @} */