/* Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md
 */

#ifndef _NEIGH_H_
#define _NEIGH_H_

#include <stddef.h>
#include <stdint.h>
#include "config.h"
#include <netlink/object-api.h>

struct get_neigh_handler {
	struct nl_sock *sock;
	struct nl_cache *link_cache;
	struct nl_cache	*neigh_cache;
	struct nl_cache *route_cache;
	int32_t oif;
	int vid;
	struct rtnl_neigh *filter_neigh;
	struct nl_addr *found_ll_addr;
	struct nl_addr *dst;
	struct nl_addr *src;
	uint64_t timeout;
};

int process_get_neigh(struct get_neigh_handler *neigh_handler);
void neigh_free_resources(struct get_neigh_handler *neigh_handler);
void neigh_set_vlan_id(struct get_neigh_handler *neigh_handler, uint16_t vid);
uint16_t neigh_get_vlan_id_from_dev(struct get_neigh_handler *neigh_handler);
int neigh_init_resources(struct get_neigh_handler *neigh_handler, int timeout);

int neigh_set_src(struct get_neigh_handler *neigh_handler,
		  int family, void *buf, size_t size);
void neigh_set_oif(struct get_neigh_handler *neigh_handler, int oif);
int neigh_set_dst(struct get_neigh_handler *neigh_handler,
		  int family, void *buf, size_t size);
int neigh_get_oif_from_src(struct get_neigh_handler *neigh_handler);
int neigh_get_ll(struct get_neigh_handler *neigh_handler, void *addr_buf,
		 int addr_size);

#endif
