144d362409d5469aed47d19e7908d19bd194493aThomas Graf/*
244d362409d5469aed47d19e7908d19bd194493aThomas Graf * netlink/nfnl/nfnl.h		Netfilter Netlink
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 *
91155370f520cb64657e25153255cf7dc1424317fThomas Graf * Copyright (c) 2003-2008 Thomas Graf <tgraf@suug.ch>
1044d362409d5469aed47d19e7908d19bd194493aThomas Graf * Copyright (c) 2007 Philip Craig <philipc@snapgear.com>
1144d362409d5469aed47d19e7908d19bd194493aThomas Graf * Copyright (c) 2007 Secure Computing Corporation
1244d362409d5469aed47d19e7908d19bd194493aThomas Graf */
1344d362409d5469aed47d19e7908d19bd194493aThomas Graf
1444d362409d5469aed47d19e7908d19bd194493aThomas Graf#ifndef NETLINK_NFNL_H_
1544d362409d5469aed47d19e7908d19bd194493aThomas Graf#define NETLINK_NFNL_H_
1644d362409d5469aed47d19e7908d19bd194493aThomas Graf
1744d362409d5469aed47d19e7908d19bd194493aThomas Graf#include <netlink/netlink.h>
1844d362409d5469aed47d19e7908d19bd194493aThomas Graf
1944d362409d5469aed47d19e7908d19bd194493aThomas Graf#ifdef __cplusplus
2044d362409d5469aed47d19e7908d19bd194493aThomas Grafextern "C" {
2144d362409d5469aed47d19e7908d19bd194493aThomas Graf#endif
2244d362409d5469aed47d19e7908d19bd194493aThomas Graf
2344d362409d5469aed47d19e7908d19bd194493aThomas Graf#define NFNL_HDRLEN NLMSG_ALIGN(sizeof(struct nfgenmsg))
2444d362409d5469aed47d19e7908d19bd194493aThomas Graf#define NFNLMSG_TYPE(subsys, subtype) (((subsys) << 8) | (subtype))
2544d362409d5469aed47d19e7908d19bd194493aThomas Graf
261155370f520cb64657e25153255cf7dc1424317fThomas Grafextern int		nfnl_connect(struct nl_sock *);
2744d362409d5469aed47d19e7908d19bd194493aThomas Graf
2844d362409d5469aed47d19e7908d19bd194493aThomas Grafextern uint8_t		nfnlmsg_subsys(struct nlmsghdr *);
2944d362409d5469aed47d19e7908d19bd194493aThomas Grafextern uint8_t		nfnlmsg_subtype(struct nlmsghdr *);
3044d362409d5469aed47d19e7908d19bd194493aThomas Grafextern uint8_t		nfnlmsg_family(struct nlmsghdr *);
3144d362409d5469aed47d19e7908d19bd194493aThomas Grafextern uint16_t		nfnlmsg_res_id(struct nlmsghdr *);
3244d362409d5469aed47d19e7908d19bd194493aThomas Graf
331155370f520cb64657e25153255cf7dc1424317fThomas Grafextern int		nfnl_send_simple(struct nl_sock *, uint8_t, uint8_t,
3444d362409d5469aed47d19e7908d19bd194493aThomas Graf					 int, uint8_t, uint16_t);
3544d362409d5469aed47d19e7908d19bd194493aThomas Grafextern struct nl_msg *	nfnlmsg_alloc_simple(uint8_t, uint8_t, int,
3644d362409d5469aed47d19e7908d19bd194493aThomas Graf					     uint8_t, uint16_t);
3744d362409d5469aed47d19e7908d19bd194493aThomas Grafextern int		nfnlmsg_put(struct nl_msg *, uint32_t, uint32_t,
3844d362409d5469aed47d19e7908d19bd194493aThomas Graf				    uint8_t, uint8_t, int, uint8_t, uint16_t);
3944d362409d5469aed47d19e7908d19bd194493aThomas Graf
4044d362409d5469aed47d19e7908d19bd194493aThomas Graf#ifdef __cplusplus
4144d362409d5469aed47d19e7908d19bd194493aThomas Graf}
4244d362409d5469aed47d19e7908d19bd194493aThomas Graf#endif
4344d362409d5469aed47d19e7908d19bd194493aThomas Graf
4444d362409d5469aed47d19e7908d19bd194493aThomas Graf#endif
45