Subversion Repositories HelenOS

Rev

Rev 3886 | Rev 3991 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3886 Rev 3912
Line 1... Line 1...
1
/*
1
/*
2
 * Copyright (c) 2008 Lukas Mejdrech
2
 * Copyright (c) 2009 Lukas Mejdrech
3
 * All rights reserved.
3
 * All rights reserved.
4
 *
4
 *
5
 * Redistribution and use in source and binary forms, with or without
5
 * Redistribution and use in source and binary forms, with or without
6
 * modification, are permitted provided that the following conditions
6
 * modification, are permitted provided that the following conditions
7
 * are met:
7
 * are met:
Line 24... Line 24...
24
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
 */
27
 */
28
 
28
 
29
/** @addtogroup net
29
/** @addtogroup ip
30
 * @{
30
 *  @{
31
 */
31
 */
32
 
32
 
33
/**
-
 
34
 * @file
33
/** @file
35
 * Interent protocol header and options definitions.
34
 *  Internet protocol header and options definitions.
36
 * Names according to the linux src/include/linux/ip.h header file.
35
 *  Names according to the linux src/include/linux/ip.h header file.
37
 */
36
 */
38
 
37
 
39
#ifndef __NET_IP_HEADER_H__
38
#ifndef __NET_IP_HEADER_H__
40
#define __NET_IP_HEADER_H__
39
#define __NET_IP_HEADER_H__
41
 
40
 
42
#include <byteorder.h>
41
#include <byteorder.h>
43
#include <types.h>
42
#include <types.h>
44
 
43
 
-
 
44
/** Type definition of the internet header.
-
 
45
 *  @see ip_header
-
 
46
 */
45
typedef struct ip_header    ip_header_t;
47
typedef struct ip_header    ip_header_t;
-
 
48
 
-
 
49
/** Type definition of the internet header pointer.
-
 
50
 *  @see ip_header
-
 
51
 */
46
typedef ip_header_t *       ip_header_ref;
52
typedef ip_header_t *       ip_header_ref;
47
 
53
 
-
 
54
 
48
/** Internet header.
55
/** Internet header.
49
 *  The variable options should be included after the header itself and indicated by the increased header length value.
56
 *  The variable options should be included after the header itself and indicated by the increased header length value.
50
 */
57
 */
51
struct ip_header{
58
struct ip_header{
52
#ifdef ARCH_IS_BIG_ENDIAN
59
#ifdef ARCH_IS_BIG_ENDIAN
Line 153... Line 160...
153
};
160
};
154
 
161
 
155
#define IPTOS_TOS_MASK              0x1E
162
#define IPTOS_TOS_MASK              0x1E
156
#define IPTOS_PRECEDENCE_SHIFT      5
163
#define IPTOS_PRECEDENCE_SHIFT      5
157
#define IPTOS_DELAY_SHIFT           4
164
#define IPTOS_DELAY_SHIFT           4
158
#define IPTOS_TROUGHPUT_SHIFT       3
165
#define IPTOS_THROUGHPUT_SHIFT      3
159
#define IPTOS_RELIABILITY_SHIFT     2
166
#define IPTOS_RELIABILITY_SHIFT     2
160
#define IPTOS_COST_SHIFT            1
167
#define IPTOS_COST_SHIFT            1
161
 
168
 
162
#define IPTOS_NORMALDELAY           ( 0x0 << IPTOS_DELAY_SHIFT )
169
#define IPTOS_NORMALDELAY           ( 0x0 << IPTOS_DELAY_SHIFT )
163
#define IPTOS_LOWDELAY              ( 0x1 << IPTOS_DELAY_SHIFT )
170
#define IPTOS_LOWDELAY              ( 0x1 << IPTOS_DELAY_SHIFT )