ndisc_get_neigh(struct net_device *dev, struct in6_addr *addr)
	dev  addr ǻꤵ줿 struct neighbour ֤
- return __neigh_lookup(&nd_tbl, addr, dev, 1)		: nd_tbl 椫 addr/dev Ǹơ̵Ϻ
  - __neigh_lookup(*tbl, *pkey, *dev, create)		: neigh_table  dev  pkey ƱΤ򸡺ơ̵ create  0 ʳ
							: ΤȤdev  pkey Ǥ neighbour 롣
  - neigh_lookup(*tbl, *pkey, *dev)			: neigh_table 椫 dev  pkey ƱΤ򸡺̵֤ NULL
    - key_len = tbl->key_len
    - hash_val = tbl->hash(pkey, dev)			: pkey  dev ϥåͤ
    - read_lock_bh(&tbl->lock)
    - n = tbl->hash_buckets[hash_val]			: struct neighbour κǽ
      - if (dev == n->dev && memcmp(n->primary_key, pkey, key_len) == 0): dev Ʊǡpkey ȤƱʤ neigh_hold(n) ƥ롼פȴ
    - read_unlock_bh(&tbl->lock)

  - if (n || !create) return n;				: n ¸ߤ뤫create  0 ΤȤ n ֤
  - n = neigh_create(tbl, pkey, dev)			: neighbour n 
  - return IS_ERR(n) ? NULL : n;			: IS_ERR  false ʤ n ֤
    - IS_ERR(*ptr)					: return (unsigned long)ptr > (unsigned long)-1000L	(ɥ쥹å)
