mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
859 B
34 lines
859 B
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#ifndef __NET_RTNH_H |
|
#define __NET_RTNH_H |
|
|
|
#include <linux/rtnetlink.h> |
|
#include <net/netlink.h> |
|
|
|
static inline int rtnh_ok(const struct rtnexthop *rtnh, int remaining) |
|
{ |
|
return remaining >= (int)sizeof(*rtnh) && |
|
rtnh->rtnh_len >= sizeof(*rtnh) && |
|
rtnh->rtnh_len <= remaining; |
|
} |
|
|
|
static inline struct rtnexthop *rtnh_next(const struct rtnexthop *rtnh, |
|
int *remaining) |
|
{ |
|
int totlen = NLA_ALIGN(rtnh->rtnh_len); |
|
|
|
*remaining -= totlen; |
|
return (struct rtnexthop *) ((char *) rtnh + totlen); |
|
} |
|
|
|
static inline struct nlattr *rtnh_attrs(const struct rtnexthop *rtnh) |
|
{ |
|
return (struct nlattr *) ((char *) rtnh + NLA_ALIGN(sizeof(*rtnh))); |
|
} |
|
|
|
static inline int rtnh_attrlen(const struct rtnexthop *rtnh) |
|
{ |
|
return rtnh->rtnh_len - NLA_ALIGN(sizeof(*rtnh)); |
|
} |
|
|
|
#endif
|
|
|