root/include/net/rtnh.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. rtnh_ok
  2. rtnh_next
  3. rtnh_attrs
  4. rtnh_attrlen

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef __NET_RTNH_H
   3 #define __NET_RTNH_H
   4 
   5 #include <linux/rtnetlink.h>
   6 #include <net/netlink.h>
   7 
   8 static inline int rtnh_ok(const struct rtnexthop *rtnh, int remaining)
   9 {
  10         return remaining >= (int)sizeof(*rtnh) &&
  11                rtnh->rtnh_len >= sizeof(*rtnh) &&
  12                rtnh->rtnh_len <= remaining;
  13 }
  14 
  15 static inline struct rtnexthop *rtnh_next(const struct rtnexthop *rtnh,
  16                                          int *remaining)
  17 {
  18         int totlen = NLA_ALIGN(rtnh->rtnh_len);
  19 
  20         *remaining -= totlen;
  21         return (struct rtnexthop *) ((char *) rtnh + totlen);
  22 }
  23 
  24 static inline struct nlattr *rtnh_attrs(const struct rtnexthop *rtnh)
  25 {
  26         return (struct nlattr *) ((char *) rtnh + NLA_ALIGN(sizeof(*rtnh)));
  27 }
  28 
  29 static inline int rtnh_attrlen(const struct rtnexthop *rtnh)
  30 {
  31         return rtnh->rtnh_len - NLA_ALIGN(sizeof(*rtnh));
  32 }
  33 
  34 #endif

/* [<][>][^][v][top][bottom][index][help] */