[RTNETLINK]: Add rtnl_put_cacheinfo() to unify some code
IPv4, IPv6, and DECNet all use struct rta_cacheinfo in a similiar way, therefore rtnl_put_cacheinfo() is added to reuse code. 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
4e9b826935
commit
e3703b3de1
@@ -212,6 +212,26 @@ nla_put_failure:
|
||||
return nla_nest_cancel(skb, mx);
|
||||
}
|
||||
|
||||
int rtnl_put_cacheinfo(struct sk_buff *skb, struct dst_entry *dst, u32 id,
|
||||
u32 ts, u32 tsage, long expires, u32 error)
|
||||
{
|
||||
struct rta_cacheinfo ci = {
|
||||
.rta_lastuse = jiffies_to_clock_t(jiffies - dst->lastuse),
|
||||
.rta_used = dst->__use,
|
||||
.rta_clntref = atomic_read(&(dst->__refcnt)),
|
||||
.rta_error = error,
|
||||
.rta_id = id,
|
||||
.rta_ts = ts,
|
||||
.rta_tsage = tsage,
|
||||
};
|
||||
|
||||
if (expires)
|
||||
ci.rta_expires = jiffies_to_clock_t(expires);
|
||||
|
||||
return nla_put(skb, RTA_CACHEINFO, sizeof(ci), &ci);
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL_GPL(rtnl_put_cacheinfo);
|
||||
|
||||
static void set_operstate(struct net_device *dev, unsigned char transition)
|
||||
{
|
||||
|
Reference in New Issue
Block a user