/*
 * ip.h
 *
 * Copyright 2004, Minoru Murashima. All rights reserved.
 * Distributed under the terms of the BSD License.
 */


#ifndef share_ip_h
#define share_ip_h


#include<sys/types.h>


#ifndef ASM_FILE


typedef struct	{
	uint8_t  verhead;				/* バージョン、ヘッダ長。 */
	uint8_t  tos;					/* TOS. */
	uint16_t len;					/* トータル長。 */
	uint16_t id;					/* 識別番号。 */
	uint16_t fragOffset;			/* フラグメントオフセット。 */
#define	FRAG_DONT			0x4000	/* フラグメント不可 */
#define	FRAG_MORE			0x2000	/* 続きのフラグメントあり */
#define	FRAG_OFFSET_MASK	0x1fff	/* フラグメントオフセットビットマスク */
	uint8_t  ttl;					/* Time to Live. */
	uint8_t  prot;					/* プロトコル番号。 */
	uint16_t chksum;				/* ヘッダチェックサム。 */
	uint32_t srcip;					/* 送り元IP。 */
	uint32_t dstip;					/* 宛先IP。 */
	char     data[0];
}IP_HEADER;


#endif


#endif
