<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><br><div>Dear Sir,<br><div dir="ltr"><br>&gt; Step 1: When making security decisions, you probably don't need a list<br>&gt; of *all* neighbors - you only need an answer to "is *this* neighbor known or<br>&gt; not".  And that would be a different API.<br><br>If I am to get the information of known neighbors, which API should use in my kernel module. I searched this on Google for hours and that did not do any good. I am a novice at this, a reference/ example would be really great to point me in the right direction.<br><br>Thank you very much sir,<br><br>Best Regards,<br>H. Hasitha Shan<br><br>P.S. Thank you Mr. Valdis for pointing me that I should always reply beck to the kernennewbies mailing list. <br><br><div>&gt; To: hh_shan@live.com<br>&gt; CC: kernelnewbies@kernelnewbies.org<br>&gt; Subject: Re: Identifying neighbors within the LAN<br>&gt; From: Valdis.Kletnieks@vt.edu<br>&gt; Date: Sat, 3 May 2014 19:10:18 -0400<br>&gt; <br>&gt; On Sat, 03 May 2014 11:01:19 -0700, Hettiarachchige Hasitha Shan said:<br>&gt; <br>&gt; &gt; In the concept, it is required to obtain the list of neighbors within the<br>&gt; &gt; LAN. I did some research online and I found out that I can obtain IPv4/ IPv6<br>&gt; &gt; neighbors by typing<br>&gt; &gt; in "ip -4 neigh show" or "ip -6 neigh show" in the terminal where this<br>&gt; &gt; feature is implemented by the module neighbour.<br>&gt; &gt;<br>&gt; &gt; My query is , If  I am to obtain these information programatically through<br>&gt; &gt; my kernel module, which methods should I call.<br>&gt; <br>&gt; Step 0:  Figure out why a packet security module even *cares* what neighbors<br>&gt; are known. Why do you care if a neighbor is known or not? First, figure out<br>&gt; under what conditions a neighbor becomes known. What security decisions are you<br>&gt; planning to make based on "IPv4 address is in ARP table"?  Whether an address<br>&gt; is in the ARP table is orthogonal to whether you should trust the host or not.<br>&gt; A trusted host can fail to be in the neighbor table simply because the ARP<br>&gt; entry has aged out.  Or an untrusted host can be *in* your ARP table....)<br>&gt; <br>&gt; Step 1: When making security decisions, you probably don't need a list<br>&gt; of *all* neighbors - you only need an answer to "is *this* neighbor known or<br>&gt; not".  And that would be a different API.<br>&gt; <br>&gt; (For bonus points, consider the case of a trusted host that has a longer<br>&gt; ARP table timeout than yours - then you can receive a packet from the host<br>&gt; without them ARP'ing for you first, but you still don't have a ARP entry<br>&gt; for them.<br></div>                                               </div></div>                                               </div></body>
</html>