Blame IbAccess/Common/Public/itcpip.h

Packit Service 3470d1
/* BEGIN_ICS_COPYRIGHT3 ****************************************
Packit Service 3470d1
Packit Service 3470d1
Copyright (c) 2015, Intel Corporation
Packit Service 3470d1
Packit Service 3470d1
Redistribution and use in source and binary forms, with or without
Packit Service 3470d1
modification, are permitted provided that the following conditions are met:
Packit Service 3470d1
Packit Service 3470d1
    * Redistributions of source code must retain the above copyright notice,
Packit Service 3470d1
      this list of conditions and the following disclaimer.
Packit Service 3470d1
    * Redistributions in binary form must reproduce the above copyright
Packit Service 3470d1
      notice, this list of conditions and the following disclaimer in the
Packit Service 3470d1
     documentation and/or other materials provided with the distribution.
Packit Service 3470d1
    * Neither the name of Intel Corporation nor the names of its contributors
Packit Service 3470d1
      may be used to endorse or promote products derived from this software
Packit Service 3470d1
      without specific prior written permission.
Packit Service 3470d1
Packit Service 3470d1
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Packit Service 3470d1
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Packit Service 3470d1
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Packit Service 3470d1
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
Packit Service 3470d1
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Packit Service 3470d1
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Packit Service 3470d1
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Packit Service 3470d1
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Packit Service 3470d1
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Packit Service 3470d1
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Packit Service 3470d1
Packit Service 3470d1
** END_ICS_COPYRIGHT3   ****************************************/
Packit Service 3470d1
Packit Service 3470d1
/* [ICS VERSION STRING: unknown] */
Packit Service 3470d1
Packit Service 3470d1
#ifndef _IBA_PUBLIC_ITCPIP_H_
Packit Service 3470d1
#define _IBA_PUBLIC_ITCPIP_H_
Packit Service 3470d1
Packit Service 3470d1
#include "iba/public/datatypes.h"
Packit Service 3470d1
#include "iba/public/ibyteswap.h"
Packit Service 3470d1
Packit Service 3470d1
#ifdef __cplusplus
Packit Service 3470d1
extern "C" {
Packit Service 3470d1
#endif
Packit Service 3470d1
Packit Service 3470d1
#include "iba/public/ipackon.h"
Packit Service 3470d1
Packit Service 3470d1
typedef struct _IP_HEADER
Packit Service 3470d1
{
Packit Service 3470d1
	IB_BITFIELD2(uint8,
Packit Service 3470d1
					Version:4,
Packit Service 3470d1
					HeaderLength:4
Packit Service 3470d1
				)
Packit Service 3470d1
	uint8	TypeOfService;
Packit Service 3470d1
	uint16	TotalLength;
Packit Service 3470d1
	uint16	Id;
Packit Service 3470d1
	uint16	FragmentOffset;
Packit Service 3470d1
	uint8	TimeToLive;
Packit Service 3470d1
	uint8	Protocol;
Packit Service 3470d1
	uint16	CheckSum;
Packit Service 3470d1
	uint32	SrcAddr;
Packit Service 3470d1
	uint32	DestAddr;
Packit Service 3470d1
} PACK_SUFFIX IP_HEADER;
Packit Service 3470d1
Packit Service 3470d1
typedef struct _IPV6_HEADER
Packit Service 3470d1
{
Packit Service 3470d1
    IB_BITFIELD2(uint8,
Packit Service 3470d1
                    Version:4,
Packit Service 3470d1
                    Priority:4
Packit Service 3470d1
                )
Packit Service 3470d1
    uint8   FlowLabel[3];
Packit Service 3470d1
    uint16  PayloadLength;
Packit Service 3470d1
    uint8   NextHeader;
Packit Service 3470d1
    uint8   HopLimit;
Packit Service 3470d1
    uint8   SrcAddr[16];
Packit Service 3470d1
    uint8   DestAddr[16];
Packit Service 3470d1
} PACK_SUFFIX IPV6_HEADER;
Packit Service 3470d1
Packit Service 3470d1
/*
Packit Service 3470d1
 *      IPV6 extension headers
Packit Service 3470d1
 */
Packit Service 3470d1
#define IPPROTO_ICMPV6          58      /* ICMPv6 */
Packit Service 3470d1
Packit Service 3470d1
Packit Service 3470d1
#define IP_PROTOCOL_UDP	17
Packit Service 3470d1
typedef struct _UDP_HEADER
Packit Service 3470d1
{
Packit Service 3470d1
	uint16	SrcPort;
Packit Service 3470d1
	uint16	DestPort;
Packit Service 3470d1
	uint16	UdpLength;
Packit Service 3470d1
	uint16	UdpCheckSum;
Packit Service 3470d1
} PACK_SUFFIX UDP_HEADER;
Packit Service 3470d1
Packit Service 3470d1
/* ARP */
Packit Service 3470d1
Packit Service 3470d1
/* opcodes */
Packit Service 3470d1
#define ARP_OPCODE_REQUEST			1
Packit Service 3470d1
#define ARP_OPCODE_REPLY			2
Packit Service 3470d1
#define ARP_OPCODE_RARP_REQUEST		3
Packit Service 3470d1
#define ARP_OPCODE_RARP_REPLY		4
Packit Service 3470d1
#define ARP_OPCODE_INARP_REQUEST	8
Packit Service 3470d1
#define ARP_OPCODE_INARP_REPLY		9
Packit Service 3470d1
#define ARP_OPCODE_NAK				10
Packit Service 3470d1
Packit Service 3470d1
/* protocol Hardware Ids */
Packit Service 3470d1
#define ARP_HARDWARE_ETHERNET		1
Packit Service 3470d1
Packit Service 3470d1
#include "iba/public/ipackoff.h"
Packit Service 3470d1
Packit Service 3470d1
#ifdef __cplusplus
Packit Service 3470d1
}	/* extern "C" */
Packit Service 3470d1
#endif
Packit Service 3470d1
Packit Service 3470d1
#endif /* _IBA_PUBLIC_ITCPIP_H_ */