[RTNETLINK]: Add rtnetlink notification interface
Adds rtnl_notify() to send rtnetlink notification messages and rtnl_set_sk_err() to report notification errors as socket errors in order to indicate the need of a resync due to loss of events. nlmsg_report() is added to properly document the meaning of NLM_F_ECHO. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
d387f6ad10
commit
97676b6b55
@@ -171,6 +171,22 @@ int rtnl_unicast(struct sk_buff *skb, u32 pid)
|
||||
return nlmsg_unicast(rtnl, skb, pid);
|
||||
}
|
||||
|
||||
int rtnl_notify(struct sk_buff *skb, u32 pid, u32 group,
|
||||
struct nlmsghdr *nlh, gfp_t flags)
|
||||
{
|
||||
int report = 0;
|
||||
|
||||
if (nlh)
|
||||
report = nlmsg_report(nlh);
|
||||
|
||||
return nlmsg_notify(rtnl, skb, pid, group, report, flags);
|
||||
}
|
||||
|
||||
void rtnl_set_sk_err(u32 group, int error)
|
||||
{
|
||||
netlink_set_err(rtnl, 0, group, error);
|
||||
}
|
||||
|
||||
int rtnetlink_put_metrics(struct sk_buff *skb, u32 *metrics)
|
||||
{
|
||||
struct rtattr *mx = (struct rtattr*)skb->tail;
|
||||
@@ -829,3 +845,5 @@ EXPORT_SYMBOL(rtnl_lock);
|
||||
EXPORT_SYMBOL(rtnl_trylock);
|
||||
EXPORT_SYMBOL(rtnl_unlock);
|
||||
EXPORT_SYMBOL(rtnl_unicast);
|
||||
EXPORT_SYMBOL(rtnl_notify);
|
||||
EXPORT_SYMBOL(rtnl_set_sk_err);
|
||||
|
Reference in New Issue
Block a user