OpenCores
URL https://opencores.org/ocsvn/hf-risc/hf-risc/trunk

Subversion Repositories hf-risc

[/] [hf-risc/] [trunk/] [tools/] [riscv-gnu-toolchain-master/] [linux-headers/] [include/] [linux/] [ipv6.h] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 serginhofr
#ifndef _IPV6_H
2
#define _IPV6_H
3
 
4
#include <linux/types.h>
5
#include <linux/in6.h>
6
#include <asm/byteorder.h>
7
 
8
/* The latest drafts declared increase in minimal mtu up to 1280. */
9
 
10
#define IPV6_MIN_MTU    1280
11
 
12
/*
13
 *      Advanced API
14
 *      source interface/address selection, source routing, etc...
15
 *      *under construction*
16
 */
17
 
18
 
19
struct in6_pktinfo {
20
        struct in6_addr ipi6_addr;
21
        int             ipi6_ifindex;
22
};
23
 
24
struct ip6_mtuinfo {
25
        struct sockaddr_in6     ip6m_addr;
26
        __u32                   ip6m_mtu;
27
};
28
 
29
struct in6_ifreq {
30
        struct in6_addr ifr6_addr;
31
        __u32           ifr6_prefixlen;
32
        int             ifr6_ifindex;
33
};
34
 
35
#define IPV6_SRCRT_STRICT       0x01    /* Deprecated; will be removed */
36
#define IPV6_SRCRT_TYPE_0       0        /* Deprecated; will be removed */
37
#define IPV6_SRCRT_TYPE_2       2       /* IPv6 type 2 Routing Header   */
38
 
39
/*
40
 *      routing header
41
 */
42
struct ipv6_rt_hdr {
43
        __u8            nexthdr;
44
        __u8            hdrlen;
45
        __u8            type;
46
        __u8            segments_left;
47
 
48
        /*
49
         *      type specific data
50
         *      variable length field
51
         */
52
};
53
 
54
 
55
struct ipv6_opt_hdr {
56
        __u8            nexthdr;
57
        __u8            hdrlen;
58
        /*
59
         * TLV encoded option data follows.
60
         */
61
} __attribute__((packed));      /* required for some archs */
62
 
63
#define ipv6_destopt_hdr ipv6_opt_hdr
64
#define ipv6_hopopt_hdr  ipv6_opt_hdr
65
 
66
/* Router Alert option values (RFC2711) */
67
#define IPV6_OPT_ROUTERALERT_MLD        0x0000  /* MLD(RFC2710) */
68
 
69
/*
70
 *      routing header type 0 (used in cmsghdr struct)
71
 */
72
 
73
struct rt0_hdr {
74
        struct ipv6_rt_hdr      rt_hdr;
75
        __u32                   reserved;
76
        struct in6_addr         addr[0];
77
 
78
#define rt0_type                rt_hdr.type
79
};
80
 
81
/*
82
 *      routing header type 2
83
 */
84
 
85
struct rt2_hdr {
86
        struct ipv6_rt_hdr      rt_hdr;
87
        __u32                   reserved;
88
        struct in6_addr         addr;
89
 
90
#define rt2_type                rt_hdr.type
91
};
92
 
93
/*
94
 *      home address option in destination options header
95
 */
96
 
97
struct ipv6_destopt_hao {
98
        __u8                    type;
99
        __u8                    length;
100
        struct in6_addr         addr;
101
} __attribute__((packed));
102
 
103
/*
104
 *      IPv6 fixed header
105
 *
106
 *      BEWARE, it is incorrect. The first 4 bits of flow_lbl
107
 *      are glued to priority now, forming "class".
108
 */
109
 
110
struct ipv6hdr {
111
#if defined(__LITTLE_ENDIAN_BITFIELD)
112
        __u8                    priority:4,
113
                                version:4;
114
#elif defined(__BIG_ENDIAN_BITFIELD)
115
        __u8                    version:4,
116
                                priority:4;
117
#else
118
#error  "Please fix <asm/byteorder.h>"
119
#endif
120
        __u8                    flow_lbl[3];
121
 
122
        __be16                  payload_len;
123
        __u8                    nexthdr;
124
        __u8                    hop_limit;
125
 
126
        struct  in6_addr        saddr;
127
        struct  in6_addr        daddr;
128
};
129
 
130
 
131
/* index values for the variables in ipv6_devconf */
132
enum {
133
        DEVCONF_FORWARDING = 0,
134
        DEVCONF_HOPLIMIT,
135
        DEVCONF_MTU6,
136
        DEVCONF_ACCEPT_RA,
137
        DEVCONF_ACCEPT_REDIRECTS,
138
        DEVCONF_AUTOCONF,
139
        DEVCONF_DAD_TRANSMITS,
140
        DEVCONF_RTR_SOLICITS,
141
        DEVCONF_RTR_SOLICIT_INTERVAL,
142
        DEVCONF_RTR_SOLICIT_DELAY,
143
        DEVCONF_USE_TEMPADDR,
144
        DEVCONF_TEMP_VALID_LFT,
145
        DEVCONF_TEMP_PREFERED_LFT,
146
        DEVCONF_REGEN_MAX_RETRY,
147
        DEVCONF_MAX_DESYNC_FACTOR,
148
        DEVCONF_MAX_ADDRESSES,
149
        DEVCONF_FORCE_MLD_VERSION,
150
        DEVCONF_ACCEPT_RA_DEFRTR,
151
        DEVCONF_ACCEPT_RA_PINFO,
152
        DEVCONF_ACCEPT_RA_RTR_PREF,
153
        DEVCONF_RTR_PROBE_INTERVAL,
154
        DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN,
155
        DEVCONF_PROXY_NDP,
156
        DEVCONF_OPTIMISTIC_DAD,
157
        DEVCONF_ACCEPT_SOURCE_ROUTE,
158
        DEVCONF_MC_FORWARDING,
159
        DEVCONF_DISABLE_IPV6,
160
        DEVCONF_ACCEPT_DAD,
161
        DEVCONF_FORCE_TLLAO,
162
        DEVCONF_NDISC_NOTIFY,
163
        DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL,
164
        DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL,
165
        DEVCONF_SUPPRESS_FRAG_NDISC,
166
        DEVCONF_MAX
167
};
168
 
169
 
170
#endif /* _IPV6_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.