48 #ifdef UIP_NEIGHBOR_CONF_ENTRIES
49 #define ENTRIES UIP_NEIGHBOR_CONF_ENTRIES
54 struct neighbor_entry {
56 struct uip_neighbor_addr
addr;
59 static struct neighbor_entry entries[ENTRIES];
63 uip_neighbor_init(
void)
67 for(i = 0; i < ENTRIES; ++i) {
68 entries[i].time = MAX_TIME;
73 uip_neighbor_periodic(
void)
77 for(i = 0; i < ENTRIES; ++i) {
78 if(entries[i].time < MAX_TIME) {
85 uip_neighbor_add(uip_ipaddr_t *
ipaddr,
struct uip_neighbor_addr *
addr)
97 for(i = 0; i < ENTRIES; ++i) {
98 if(entries[i].time == MAX_TIME) {
102 if(uip_ipaddr_cmp(&entries[i].ipaddr, ipaddr)) {
106 if(entries[i].time > oldest_time) {
108 oldest_time = entries[i].time;
114 entries[oldest].time = 0;
116 memcpy(&entries[oldest].addr, addr,
sizeof(
struct uip_neighbor_addr));
119 static struct neighbor_entry *
120 find_entry(uip_ipaddr_t *ipaddr)
124 for(i = 0; i < ENTRIES; ++i) {
125 if(uip_ipaddr_cmp(&entries[i].ipaddr, ipaddr)) {
133 uip_neighbor_update(uip_ipaddr_t *ipaddr)
135 struct neighbor_entry *e;
137 e = find_entry(ipaddr);
143 struct uip_neighbor_addr *
144 uip_neighbor_lookup(uip_ipaddr_t *ipaddr)
146 struct neighbor_entry *e;
148 e = find_entry(ipaddr);
static uip_ipaddr_t ipaddr
Pointer to prefix information option in uip_buf.
static uip_ds6_addr_t * addr
Pointer to a router list entry.
#define uip_ipaddr_copy(dest, src)
Copy an IP address from one place to another.
#define NULL
The null pointer.
Header file for database of link-local neighbors, used by IPv6 code and to be used by future ...