cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

rtnh.h (859B)


      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
      8static 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
     15static 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
     24static inline struct nlattr *rtnh_attrs(const struct rtnexthop *rtnh)
     25{
     26	return (struct nlattr *) ((char *) rtnh + NLA_ALIGN(sizeof(*rtnh)));
     27}
     28
     29static inline int rtnh_attrlen(const struct rtnexthop *rtnh)
     30{
     31	return rtnh->rtnh_len - NLA_ALIGN(sizeof(*rtnh));
     32}
     33
     34#endif