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