This commit was manufactured by cvs2svn to create branch 'vserver'.
[linux-2.6.git] / include / net / nexthop.h
diff --git a/include/net/nexthop.h b/include/net/nexthop.h
new file mode 100644 (file)
index 0000000..3334dbf
--- /dev/null
@@ -0,0 +1,33 @@
+#ifndef __NET_NEXTHOP_H
+#define __NET_NEXTHOP_H
+
+#include <linux/rtnetlink.h>
+#include <net/netlink.h>
+
+static inline int rtnh_ok(const struct rtnexthop *rtnh, int remaining)
+{
+       return remaining >= sizeof(*rtnh) &&
+              rtnh->rtnh_len >= sizeof(*rtnh) &&
+              rtnh->rtnh_len <= remaining;
+}
+
+static inline struct rtnexthop *rtnh_next(const struct rtnexthop *rtnh,
+                                         int *remaining)
+{
+       int totlen = NLA_ALIGN(rtnh->rtnh_len);
+
+       *remaining -= totlen;
+       return (struct rtnexthop *) ((char *) rtnh + totlen);
+}
+
+static inline struct nlattr *rtnh_attrs(const struct rtnexthop *rtnh)
+{
+       return (struct nlattr *) ((char *) rtnh + NLA_ALIGN(sizeof(*rtnh)));
+}
+
+static inline int rtnh_attrlen(const struct rtnexthop *rtnh)
+{
+       return rtnh->rtnh_len - NLA_ALIGN(sizeof(*rtnh));
+}
+
+#endif