netlink_packet_netfilter/nflog/
mod.rs

1// SPDX-License-Identifier: MIT
2
3mod message;
4pub use message::NfLogMessage;
5pub mod nlas;
6
7use netlink_packet_core::{
8    NetlinkHeader, NetlinkMessage, NetlinkPayload, NLM_F_ACK, NLM_F_REQUEST,
9};
10
11use crate::{
12    constants::NFNETLINK_V0, nflog::nlas::config::ConfigNla, NetfilterHeader,
13    NetfilterMessage,
14};
15
16pub fn config_request(
17    family: u8,
18    group_num: u16,
19    nlas: Vec<ConfigNla>,
20) -> NetlinkMessage<NetfilterMessage> {
21    let mut hdr = NetlinkHeader::default();
22    hdr.flags = NLM_F_REQUEST | NLM_F_ACK;
23    let mut message = NetlinkMessage::new(
24        hdr,
25        NetlinkPayload::from(NetfilterMessage::new(
26            NetfilterHeader::new(family, NFNETLINK_V0, group_num),
27            NfLogMessage::Config(nlas),
28        )),
29    );
30    message.finalize();
31    message
32}