Skip to content

Commit

Permalink
neigh: Allow for user space users of the neighbour table
Browse files Browse the repository at this point in the history
Currently it is possible to do just about everything with the arp table
from user space except treat an entry like you are using it.  To that end
implement and a flag NTF_USE that when set in a netwlink update request
treats the neighbour table entry like the kernel does on the output path.

This allows user space applications to share the kernel's arp cache.

Signed-off-by: Eric Biederman <ebiederm@aristanetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Eric Biederman authored and davem330 committed Mar 4, 2009
1 parent fc1f9ea commit 0c5c2d3
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 1 deletion.
1 change: 1 addition & 0 deletions include/linux/neighbour.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ enum
* Neighbor Cache Entry Flags
*/

#define NTF_USE 0x01
#define NTF_PROXY 0x08 /* == ATF_PUBL */
#define NTF_ROUTER 0x80

Expand Down
6 changes: 5 additions & 1 deletion net/core/neighbour.c
Original file line number Diff line number Diff line change
Expand Up @@ -1654,7 +1654,11 @@ static int neigh_add(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
flags &= ~NEIGH_UPDATE_F_OVERRIDE;
}

err = neigh_update(neigh, lladdr, ndm->ndm_state, flags);
if (ndm->ndm_flags & NTF_USE) {
neigh_event_send(neigh, NULL);
err = 0;
} else
err = neigh_update(neigh, lladdr, ndm->ndm_state, flags);
neigh_release(neigh);
goto out_dev_put;
}
Expand Down

0 comments on commit 0c5c2d3

Please sign in to comment.