aboutsummaryrefslogtreecommitdiff
path: root/linux-headers/include/linux/nexthop.h
diff options
context:
space:
mode:
authorChristoph Müllner <christoph.muellner@vrull.eu>2025-08-01 13:55:33 +0200
committerChristoph Müllner <christophm30@gmail.com>2025-08-01 20:40:25 +0200
commit5d061c0ee23b1052d796e4e8e421aa6e16166fed (patch)
tree0ec5b8dceabfae236de0759c048b2a8fefad047f /linux-headers/include/linux/nexthop.h
parent686d7e6564509f1b25127df47e2f27a66958d0a0 (diff)
downloadriscv-gnu-toolchain-master.zip
riscv-gnu-toolchain-master.tar.gz
riscv-gnu-toolchain-master.tar.bz2
Update Linux headers from v6.6 to v6.16HEADmaster
This patch imports the Linux kernel headers v6.16. This brings tons of new supported extensions for hwprobe. Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
Diffstat (limited to 'linux-headers/include/linux/nexthop.h')
-rw-r--r--linux-headers/include/linux/nexthop.h55
1 files changed, 54 insertions, 1 deletions
diff --git a/linux-headers/include/linux/nexthop.h b/linux-headers/include/linux/nexthop.h
index 37b14b4..afbd064 100644
--- a/linux-headers/include/linux/nexthop.h
+++ b/linux-headers/include/linux/nexthop.h
@@ -16,10 +16,15 @@ struct nhmsg {
struct nexthop_grp {
__u32 id; /* nexthop id - must exist */
__u8 weight; /* weight of this nexthop */
- __u8 resvd1;
+ __u8 weight_high; /* high order bits of weight */
__u16 resvd2;
};
+static __inline__ __u16 nexthop_grp_weight(const struct nexthop_grp *entry)
+{
+ return ((entry->weight_high << 8) | entry->weight) + 1;
+}
+
enum {
NEXTHOP_GRP_TYPE_MPATH, /* hash-threshold nexthop group
* default type if not specified
@@ -30,6 +35,12 @@ enum {
#define NEXTHOP_GRP_TYPE_MAX (__NEXTHOP_GRP_TYPE_MAX - 1)
+#define NHA_OP_FLAG_DUMP_STATS BIT(0)
+#define NHA_OP_FLAG_DUMP_HW_STATS BIT(1)
+
+/* Response OP_FLAGS. */
+#define NHA_OP_FLAG_RESP_GRP_RESVD_0 BIT(31) /* Dump clears resvd fields. */
+
enum {
NHA_UNSPEC,
NHA_ID, /* u32; id for nexthop. id == 0 means auto-assign */
@@ -60,6 +71,18 @@ enum {
/* nested; nexthop bucket attributes */
NHA_RES_BUCKET,
+ /* u32; operation-specific flags */
+ NHA_OP_FLAGS,
+
+ /* nested; nexthop group stats */
+ NHA_GROUP_STATS,
+
+ /* u32; nexthop hardware stats enable */
+ NHA_HW_STATS_ENABLE,
+
+ /* u32; read-only; whether any driver collects HW stats */
+ NHA_HW_STATS_USED,
+
__NHA_MAX,
};
@@ -101,4 +124,34 @@ enum {
#define NHA_RES_BUCKET_MAX (__NHA_RES_BUCKET_MAX - 1)
+enum {
+ NHA_GROUP_STATS_UNSPEC,
+
+ /* nested; nexthop group entry stats */
+ NHA_GROUP_STATS_ENTRY,
+
+ __NHA_GROUP_STATS_MAX,
+};
+
+#define NHA_GROUP_STATS_MAX (__NHA_GROUP_STATS_MAX - 1)
+
+enum {
+ NHA_GROUP_STATS_ENTRY_UNSPEC,
+
+ /* u32; nexthop id of the nexthop group entry */
+ NHA_GROUP_STATS_ENTRY_ID,
+
+ /* uint; number of packets forwarded via the nexthop group entry */
+ NHA_GROUP_STATS_ENTRY_PACKETS,
+
+ /* uint; number of packets forwarded via the nexthop group entry in
+ * hardware
+ */
+ NHA_GROUP_STATS_ENTRY_PACKETS_HW,
+
+ __NHA_GROUP_STATS_ENTRY_MAX,
+};
+
+#define NHA_GROUP_STATS_ENTRY_MAX (__NHA_GROUP_STATS_ENTRY_MAX - 1)
+
#endif