]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
uapi: Import nexthop object API
authorDavid Ahern <dsahern@gmail.com>
Fri, 7 Jun 2019 22:38:10 +0000 (15:38 -0700)
committerDavid Ahern <dsahern@gmail.com>
Tue, 11 Jun 2019 17:30:50 +0000 (10:30 -0700)
Add nexthop.h from kernel with the uapi for nexthop objects.

Signed-off-by: David Ahern <dsahern@gmail.com>
include/uapi/linux/nexthop.h [new file with mode: 0644]

diff --git a/include/uapi/linux/nexthop.h b/include/uapi/linux/nexthop.h
new file mode 100644 (file)
index 0000000..b56c5b8
--- /dev/null
@@ -0,0 +1,56 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef _LINUX_NEXTHOP_H
+#define _LINUX_NEXTHOP_H
+
+#include <linux/types.h>
+
+struct nhmsg {
+       unsigned char   nh_family;
+       unsigned char   nh_scope;     /* return only */
+       unsigned char   nh_protocol;  /* Routing protocol that installed nh */
+       unsigned char   resvd;
+       unsigned int    nh_flags;     /* RTNH_F flags */
+};
+
+/* entry in a nexthop group */
+struct nexthop_grp {
+       __u32   id;       /* nexthop id - must exist */
+       __u8    weight;   /* weight of this nexthop */
+       __u8    resvd1;
+       __u16   resvd2;
+};
+
+enum {
+       NEXTHOP_GRP_TYPE_MPATH,  /* default type if not specified */
+       __NEXTHOP_GRP_TYPE_MAX,
+};
+
+#define NEXTHOP_GRP_TYPE_MAX (__NEXTHOP_GRP_TYPE_MAX - 1)
+
+enum {
+       NHA_UNSPEC,
+       NHA_ID,         /* u32; id for nexthop. id == 0 means auto-assign */
+
+       NHA_GROUP,      /* array of nexthop_grp */
+       NHA_GROUP_TYPE, /* u16 one of NEXTHOP_GRP_TYPE */
+       /* if NHA_GROUP attribute is added, no other attributes can be set */
+
+       NHA_BLACKHOLE,  /* flag; nexthop used to blackhole packets */
+       /* if NHA_BLACKHOLE is added, OIF, GATEWAY, ENCAP can not be set */
+
+       NHA_OIF,        /* u32; nexthop device */
+       NHA_GATEWAY,    /* be32 (IPv4) or in6_addr (IPv6) gw address */
+       NHA_ENCAP_TYPE, /* u16; lwt encap type */
+       NHA_ENCAP,      /* lwt encap data */
+
+       /* NHA_OIF can be appended to dump request to return only
+        * nexthops using given device
+        */
+       NHA_GROUPS,     /* flag; only return nexthop groups in dump */
+       NHA_MASTER,     /* u32;  only return nexthops with given master dev */
+
+       __NHA_MAX,
+};
+
+#define NHA_MAX        (__NHA_MAX - 1)
+#endif