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);
#define NULL
The null pointer.
Header file for database of link-local neighbors, used by IPv6 code and to be used by future ...
#define uip_ipaddr_copy(dest, src)
Copy an IP address from one place to another.