On Wed, Nov 15, 2023 at 09:53:24PM +1100, Duncan Roe wrote: > On Wed, Nov 15, 2023 at 11:25:27AM +0100, Pablo Neira Ayuso wrote: > > On Wed, Nov 15, 2023 at 09:09:50PM +1100, Duncan Roe wrote: > > > +EXPORT_SYMBOL > > > +struct nlmsghdr *nfq_nlmsg_put2(char *buf, int type, uint32_t queue_num, > > > + uint16_t flags) > > > { > > > struct nlmsghdr *nlh = mnl_nlmsg_put_header(buf); > > > nlh->nlmsg_type = (NFNL_SUBSYS_QUEUE << 8) | type; > > > - nlh->nlmsg_flags = NLM_F_REQUEST > > > + nlh->nlmsg_flags = flags; > > > > Leave this as is. > > > > NLM_F_REQUEST means this message goes to the kernel, this flag is a > > must have. > > How about > > nlh->nlmsg_flags = NLM_F_REQUEST | flags; Yes, that is fine.