iproute2/include/uapi/linux/nexthop.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2#ifndef _LINUX_NEXTHOP_H
   3#define _LINUX_NEXTHOP_H
   4
   5#include <linux/types.h>
   6
   7struct nhmsg {
   8        unsigned char   nh_family;
   9        unsigned char   nh_scope;     /* return only */
  10        unsigned char   nh_protocol;  /* Routing protocol that installed nh */
  11        unsigned char   resvd;
  12        unsigned int    nh_flags;     /* RTNH_F flags */
  13};
  14
  15/* entry in a nexthop group */
  16struct nexthop_grp {
  17        __u32   id;       /* nexthop id - must exist */
  18        __u8    weight;   /* weight of this nexthop */
  19        __u8    resvd1;
  20        __u16   resvd2;
  21};
  22
  23enum {
  24        NEXTHOP_GRP_TYPE_MPATH,  /* default type if not specified */
  25        __NEXTHOP_GRP_TYPE_MAX,
  26};
  27
  28#define NEXTHOP_GRP_TYPE_MAX (__NEXTHOP_GRP_TYPE_MAX - 1)
  29
  30enum {
  31        NHA_UNSPEC,
  32        NHA_ID,         /* u32; id for nexthop. id == 0 means auto-assign */
  33
  34        NHA_GROUP,      /* array of nexthop_grp */
  35        NHA_GROUP_TYPE, /* u16 one of NEXTHOP_GRP_TYPE */
  36        /* if NHA_GROUP attribute is added, no other attributes can be set */
  37
  38        NHA_BLACKHOLE,  /* flag; nexthop used to blackhole packets */
  39        /* if NHA_BLACKHOLE is added, OIF, GATEWAY, ENCAP can not be set */
  40
  41        NHA_OIF,        /* u32; nexthop device */
  42        NHA_GATEWAY,    /* be32 (IPv4) or in6_addr (IPv6) gw address */
  43        NHA_ENCAP_TYPE, /* u16; lwt encap type */
  44        NHA_ENCAP,      /* lwt encap data */
  45
  46        /* NHA_OIF can be appended to dump request to return only
  47         * nexthops using given device
  48         */
  49        NHA_GROUPS,     /* flag; only return nexthop groups in dump */
  50        NHA_MASTER,     /* u32;  only return nexthops with given master dev */
  51
  52        NHA_FDB,        /* flag; nexthop belongs to a bridge fdb */
  53        /* if NHA_FDB is added, OIF, BLACKHOLE, ENCAP cannot be set */
  54
  55        __NHA_MAX,
  56};
  57
  58#define NHA_MAX (__NHA_MAX - 1)
  59#endif
  60