sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
Loading...
Searching...
No Matches
nd6_priv.h
Go to the documentation of this file.
1
9
10
/*
11
* Copyright (c) 2010 Inico Technologies Ltd.
12
* All rights reserved.
13
*
14
* Redistribution and use in source and binary forms, with or without modification,
15
* are permitted provided that the following conditions are met:
16
*
17
* 1. Redistributions of source code must retain the above copyright notice,
18
* this list of conditions and the following disclaimer.
19
* 2. Redistributions in binary form must reproduce the above copyright notice,
20
* this list of conditions and the following disclaimer in the documentation
21
* and/or other materials provided with the distribution.
22
* 3. The name of the author may not be used to endorse or promote products
23
* derived from this software without specific prior written permission.
24
*
25
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
26
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
27
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
28
* SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
29
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
30
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
33
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
34
* OF SUCH DAMAGE.
35
*
36
* This file is part of the lwIP TCP/IP stack.
37
*
38
* Author: Ivan Delamer <delamer@inicotech.com>
39
*
40
*
41
* Please coordinate changes and requests with Ivan Delamer
42
* <delamer@inicotech.com>
43
*/
44
45
#ifndef LWIP_HDR_ND6_PRIV_H
46
#define LWIP_HDR_ND6_PRIV_H
47
48
#include "
lwip/opt.h
"
49
50
#if LWIP_IPV6
/* don't build if not configured for use in lwipopts.h */
51
52
#include "
lwip/pbuf.h
"
53
#include "
lwip/ip6_addr.h
"
54
#include "
lwip/netif.h
"
55
56
57
#ifdef __cplusplus
58
extern
"C"
{
59
#endif
60
61
#if LWIP_ND6_QUEUEING
65
struct
nd6_q_entry {
66
struct
nd6_q_entry *next;
67
struct
pbuf *p;
68
};
69
#endif
/* LWIP_ND6_QUEUEING */
70
72
struct
nd6_neighbor_cache_entry {
73
ip6_addr_t
next_hop_address;
74
struct
netif *netif;
75
u8_t lladdr[
NETIF_MAX_HWADDR_LEN
];
76
/*u32_t pmtu;*/
77
#if LWIP_ND6_QUEUEING
79
struct
nd6_q_entry *q;
80
#else
/* LWIP_ND6_QUEUEING */
82
struct
pbuf *q;
83
#endif
/* LWIP_ND6_QUEUEING */
84
u8_t state;
85
u8_t isrouter;
86
union
{
87
u32_t reachable_time;
/* in seconds */
88
u32_t delay_time;
/* ticks (ND6_TMR_INTERVAL) */
89
u32_t probes_sent;
90
u32_t stale_time;
/* ticks (ND6_TMR_INTERVAL) */
91
} counter;
92
};
93
94
struct
nd6_destination_cache_entry {
95
ip6_addr_t
destination_addr;
96
ip6_addr_t
next_hop_addr;
97
u16_t pmtu;
98
u8_t cached_neighbor_idx;
99
u32_t age;
100
};
101
102
struct
nd6_prefix_list_entry {
103
ip6_addr_t
prefix;
104
struct
netif *netif;
105
u32_t invalidation_timer;
/* in seconds */
106
};
107
108
struct
nd6_router_list_entry {
109
struct
nd6_neighbor_cache_entry *neighbor_entry;
110
u32_t invalidation_timer;
/* in seconds */
111
u8_t flags;
112
};
113
114
enum
nd6_neighbor_cache_entry_state {
115
ND6_NO_ENTRY = 0,
116
ND6_INCOMPLETE,
117
ND6_REACHABLE,
118
ND6_STALE,
119
ND6_DELAY,
120
ND6_PROBE
121
};
122
123
#define ND6_HOPLIM 255
/* maximum hop limit, required in all ND packets */
124
125
#define ND6_2HRS 7200
/* two hours, expressed in number of seconds */
126
127
/* Router tables. */
128
/* @todo make these static? and entries accessible through API? */
129
extern
struct
nd6_neighbor_cache_entry neighbor_cache[];
130
extern
struct
nd6_destination_cache_entry destination_cache[];
131
extern
struct
nd6_prefix_list_entry prefix_list[];
132
extern
struct
nd6_router_list_entry default_router_list[];
133
134
/* Default values, can be updated by a RA message. */
135
extern
u32_t reachable_time;
136
extern
u32_t retrans_timer;
137
138
#ifdef __cplusplus
139
}
140
#endif
141
142
#endif
/* LWIP_IPV6 */
143
144
#endif
/* LWIP_HDR_ND6_PRIV_H */
ip6_addr_t
struct ip6_addr ip6_addr_t
Definition
tcpip.h:434
NETIF_MAX_HWADDR_LEN
#define NETIF_MAX_HWADDR_LEN
Definition
tcpip.h:1109
ip6_addr.h
netif.h
opt.h
pbuf.h
core
ps2ip
include
lwip_include
lwip
priv
nd6_priv.h
Generated by
1.18.0