@@ -61,6 +61,8 @@ struct nlmsghdr {
#define NLM_F_CREATE 0x400 /* Create, if it does not exist */
#define NLM_F_APPEND 0x800 /* Add to end of list */
+#define NLM_F_NOREPLY 0x1000 /* Do not generate reply */
+
/*
4.4BSD ADD NLM_F_CREATE|NLM_F_EXCL
4.4BSD CHANGE NLM_F_REPLACE
@@ -2110,6 +2110,9 @@ static int inet_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr* nlh, void
goto errout_free;
skb_dst_set(skb, &rt->dst);
+ if (nlh->nlmsg_flags & NLM_F_NOREPLY)
+ goto errout_free;
+
if (rtm->rtm_flags & RTM_F_NOTIFY)
rt->rt_flags |= RTCF_NOTIFY;
It is used to bypass the response generation for "GET" type operations. This mechanism can then be used to allow a query operation to be used in a "benchmarking" role, since the actual overhead of the netlink communications will be muted. The first query to support this is inet_rtm_getroute(). Signed-off-by: David S. Miller <davem@davemloft.net> --- include/linux/netlink.h | 2 ++ net/ipv4/route.c | 3 +++ 2 files changed, 5 insertions(+), 0 deletions(-)