Files
@ d6b9b2ac5869
Branch filter:
Location: vmkdrivers/BLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release/sockets/vmkapi_socket_ip.h
d6b9b2ac5869
5.4 KiB
text/x-chdr
ESXi-5.5-U2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 | /***************************************************************************
* Copyright 2007 - 2009 VMware, Inc. All rights reserved.
***************************************************************************/
/*
* @VMKAPIMOD_LICENSE@
*/
/*
***********************************************************************
* vmkapi_socket_ip.h */ /**
* \addtogroup Socket
*@{
* \defgroup SocketIP IP Socket Interfaces
*@{
*
* Data types and constants for IPv4 sockets
*
***********************************************************************
*/
#ifndef _VMKAPI_SOCKET_IP_H_
#define _VMKAPI_SOCKET_IP_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 */
#include "sockets/vmkapi_socket.h"
/*
* IP protocol types
*/
#define VMK_SOCKET_IPPROTO_IP 0
#define VMK_SOCKET_IPPROTO_ICMP 1
#define VMK_SOCKET_IPPROTO_TCP 6
#define VMK_SOCKET_IPPROTO_UDP 17
#define VMK_SOCKET_IPPROTO_GRE 47
/*
* Special addresses
*/
#define VMK_SOCKET_IPINADDR_ANY ((vmk_uint32)(0x0))
#define VMK_SOCKET_IPINADDR_BROADCAST ((vmk_uint32)(0xffffffff))
/*
* Socket level
*/
#define VMK_SOCKET_SOL_IP 0
/*
* Socket options
*/
#define VMK_SOCKET_OPT_IP_HDRINCL 2
/**
* \brief Binary IPv4 address in network byte order.
*/
typedef struct vmk_SocketIPAddressAddr {
vmk_uint32 s_addr;
} vmk_SocketIPAddressAddr;
/**
* \brief An IPv4-style socket address.
*/
typedef struct vmk_SocketIPAddress {
/** \brief Address length. Should be sizeof(vmk_SocketIPAddress) */
vmk_uint8 sin_len;
/** \brief Address family. Should be VMK_SOCKET_AF_INET */
vmk_uint8 sin_family;
/** \brief IP port in network byte order */
vmk_uint16 sin_port;
/** \brief Binary IP address in network byte order */
vmk_SocketIPAddressAddr sin_addr;
/** \brief Padding. This area should be zeroed. */
vmk_uint8 sin_zero[8];
} VMK_ATTRIBUTE_PACKED vmk_SocketIPAddress;
/**
* \brief Binary IPv6 address in network byte order.
*/
typedef struct vmk_SocketIPv6AddressAddr {
union {
vmk_uint8 __u6_addr8[16];
vmk_uint16 __u6_addr16[8];
vmk_uint32 __u6_addr32[4];
} __u6_addr;
} VMK_ATTRIBUTE_PACKED vmk_SocketIPv6AddressAddr;
/**
* \brief An IPv6-style socket address.
*/
typedef struct vmk_SocketIPv6Address {
/** \brief Address length. Should be sizeof(vmk_SocketIPv6Address) */
vmk_uint8 sin6_len;
/** \brief Address family. Should be VMK_SOCKET_AF_INET6 */
vmk_uint8 sin6_family;
/** \brief IP port in network byte order */
vmk_uint16 sin6_port;
/** \brief Flow Info in network byte order */
vmk_uint32 sin6_flowinfo;
/** \brief Binary IP address in network byte order */
vmk_SocketIPv6AddressAddr sin6_addr;
/** \brief Scope ID in network byte order */
vmk_uint32 sin6_scopeid;
} VMK_ATTRIBUTE_PACKED vmk_SocketIPv6Address;
/*
***********************************************************************
* vmk_Ntohl -- */ /**
*
* \ingroup SocketIP
* \brief Convert a 32 bit unsigned integer in the network byte order
* to the host-native byte order.
*
* \note This function will not block.
*
* \param[in] x Value to reorder.
*
* \return Reordered value.
*
* \sa vmk_Htonl
*
***********************************************************************
*/
static inline vmk_uint32 vmk_Ntohl(vmk_uint32 x) {
return vmk_BE32ToCPU(x);
}
/*
***********************************************************************
* vmk_Htonl -- */ /**
*
* \ingroup SocketIP
* \brief Convert a 32 bit unsigned integer in the host-native byte
* order to the network byte order.
*
* \note This function will not block.
*
* \param[in] x Value to reorder.
*
* \return Reordered value.
*
* \sa vmk_Ntohl
*
***********************************************************************
*/
static inline vmk_uint32 vmk_Htonl(vmk_uint32 x) {
return vmk_CPUToBE32(x);
}
/*
***********************************************************************
* vmk_Ntohs -- */ /**
*
* \ingroup SocketIP
* \brief Convert a 16 bit unsigned integer in the network byte order
* to the host-native byte order.
*
* \note This function will not block.
*
* \param[in] x Value to reorder.
*
* \return Reordered value.
*
* \sa vmk_Htons
*
***********************************************************************
*/
static inline vmk_uint16 vmk_Ntohs(vmk_uint16 x) {
return vmk_BE16ToCPU(x);
}
/*
***********************************************************************
* vmk_Htons -- */ /**
*
* \ingroup SocketIP
* \brief Convert a 16 bit unsigned integer in the host-native byte
* order to the network byte order.
*
* \note This function will not block.
*
* \param[in] x Value to reorder.
*
* \return Reordered value.
*
* \sa vmk_Ntohs
*
***********************************************************************
*/
static inline vmk_uint16 vmk_Htons(vmk_uint16 x) {
return vmk_CPUToBE16(x);
}
/** @} */
/** @} */
#endif /* _VMKAPI_SOCKET_IP_H_ */
|