neigh.h revision 331769
1/* Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md 2 */ 3 4#ifndef _NEIGH_H_ 5#define _NEIGH_H_ 6 7#include <stddef.h> 8#include <stdint.h> 9#include "config.h" 10#ifdef HAVE_LIBNL1 11#include <netlink/object.h> 12#include "nl1_compat.h" 13#else 14#include <netlink/object-api.h> 15#endif 16 17struct get_neigh_handler { 18#ifdef HAVE_LIBNL1 19 struct nl_handle *sock; 20#else 21 struct nl_sock *sock; 22#endif 23 struct nl_cache *link_cache; 24 struct nl_cache *neigh_cache; 25 struct nl_cache *route_cache; 26 int32_t oif; 27 int vid; 28 struct rtnl_neigh *filter_neigh; 29 struct nl_addr *found_ll_addr; 30 struct nl_addr *dst; 31 struct nl_addr *src; 32 uint64_t timeout; 33}; 34 35int process_get_neigh(struct get_neigh_handler *neigh_handler); 36void neigh_free_resources(struct get_neigh_handler *neigh_handler); 37void neigh_set_vlan_id(struct get_neigh_handler *neigh_handler, uint16_t vid); 38uint16_t neigh_get_vlan_id_from_dev(struct get_neigh_handler *neigh_handler); 39int neigh_init_resources(struct get_neigh_handler *neigh_handler, int timeout); 40 41int neigh_set_src(struct get_neigh_handler *neigh_handler, 42 int family, void *buf, size_t size); 43void neigh_set_oif(struct get_neigh_handler *neigh_handler, int oif); 44int neigh_set_dst(struct get_neigh_handler *neigh_handler, 45 int family, void *buf, size_t size); 46int neigh_get_oif_from_src(struct get_neigh_handler *neigh_handler); 47int neigh_get_ll(struct get_neigh_handler *neigh_handler, void *addr_buf, 48 int addr_size); 49 50#endif 51