144d362409d5469aed47d19e7908d19bd194493aThomas Graf/*
244d362409d5469aed47d19e7908d19bd194493aThomas Graf * netlink/fib_lookup/fib_lookup.h	FIB Lookup
344d362409d5469aed47d19e7908d19bd194493aThomas Graf *
444d362409d5469aed47d19e7908d19bd194493aThomas Graf *	This library is free software; you can redistribute it and/or
544d362409d5469aed47d19e7908d19bd194493aThomas Graf *	modify it under the terms of the GNU Lesser General Public
644d362409d5469aed47d19e7908d19bd194493aThomas Graf *	License as published by the Free Software Foundation version 2.1
744d362409d5469aed47d19e7908d19bd194493aThomas Graf *	of the License.
844d362409d5469aed47d19e7908d19bd194493aThomas Graf *
98a3efffa5b3fde252675239914118664d36a2c24Thomas Graf * Copyright (c) 2003-2008 Thomas Graf <tgraf@suug.ch>
1044d362409d5469aed47d19e7908d19bd194493aThomas Graf */
1144d362409d5469aed47d19e7908d19bd194493aThomas Graf
1244d362409d5469aed47d19e7908d19bd194493aThomas Graf#ifndef NETLINK_FIB_LOOKUP_H_
1344d362409d5469aed47d19e7908d19bd194493aThomas Graf#define NETLINK_FIB_LOOKUP_H_
1444d362409d5469aed47d19e7908d19bd194493aThomas Graf
1544d362409d5469aed47d19e7908d19bd194493aThomas Graf#include <netlink/netlink.h>
1644d362409d5469aed47d19e7908d19bd194493aThomas Graf#include <netlink/cache.h>
1744d362409d5469aed47d19e7908d19bd194493aThomas Graf#include <netlink/addr.h>
1844d362409d5469aed47d19e7908d19bd194493aThomas Graf#include <netlink/fib_lookup/request.h>
1944d362409d5469aed47d19e7908d19bd194493aThomas Graf
2044d362409d5469aed47d19e7908d19bd194493aThomas Graf#ifdef __cplusplus
2144d362409d5469aed47d19e7908d19bd194493aThomas Grafextern "C" {
2244d362409d5469aed47d19e7908d19bd194493aThomas Graf#endif
2344d362409d5469aed47d19e7908d19bd194493aThomas Graf
2444d362409d5469aed47d19e7908d19bd194493aThomas Grafstruct flnl_result;
2544d362409d5469aed47d19e7908d19bd194493aThomas Graf
2644d362409d5469aed47d19e7908d19bd194493aThomas Grafextern struct flnl_result *	flnl_result_alloc(void);
2744d362409d5469aed47d19e7908d19bd194493aThomas Grafextern void			flnl_result_put(struct flnl_result *);
2844d362409d5469aed47d19e7908d19bd194493aThomas Graf
2944d362409d5469aed47d19e7908d19bd194493aThomas Grafextern struct nl_cache *	flnl_result_alloc_cache(void);
3044d362409d5469aed47d19e7908d19bd194493aThomas Graf
318a3efffa5b3fde252675239914118664d36a2c24Thomas Grafextern int			flnl_lookup_build_request(struct flnl_request *,
328a3efffa5b3fde252675239914118664d36a2c24Thomas Graf							  int,
338a3efffa5b3fde252675239914118664d36a2c24Thomas Graf							  struct nl_msg **);
341155370f520cb64657e25153255cf7dc1424317fThomas Grafextern int			flnl_lookup(struct nl_sock *,
3544d362409d5469aed47d19e7908d19bd194493aThomas Graf					    struct flnl_request *,
3644d362409d5469aed47d19e7908d19bd194493aThomas Graf					    struct nl_cache *);
3744d362409d5469aed47d19e7908d19bd194493aThomas Graf
3844d362409d5469aed47d19e7908d19bd194493aThomas Graf#ifdef __cplusplus
3944d362409d5469aed47d19e7908d19bd194493aThomas Graf}
4044d362409d5469aed47d19e7908d19bd194493aThomas Graf#endif
4144d362409d5469aed47d19e7908d19bd194493aThomas Graf
4244d362409d5469aed47d19e7908d19bd194493aThomas Graf#endif
43