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.