mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-26 00:41:17 +00:00
a67cd94def
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 44670
38 lines
1.1 KiB
Diff
38 lines
1.1 KiB
Diff
--- /dev/null
|
|
+++ b/include/uapi/linux/mpls.h
|
|
@@ -0,0 +1,34 @@
|
|
+#ifndef _UAPI_MPLS_H
|
|
+#define _UAPI_MPLS_H
|
|
+
|
|
+#include <linux/types.h>
|
|
+#include <asm/byteorder.h>
|
|
+
|
|
+/* Reference: RFC 5462, RFC 3032
|
|
+ *
|
|
+ * 0 1 2 3
|
|
+ * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
|
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
+ * | Label | TC |S| TTL |
|
|
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
+ *
|
|
+ * Label: Label Value, 20 bits
|
|
+ * TC: Traffic Class field, 3 bits
|
|
+ * S: Bottom of Stack, 1 bit
|
|
+ * TTL: Time to Live, 8 bits
|
|
+ */
|
|
+
|
|
+struct mpls_label {
|
|
+ __be32 entry;
|
|
+};
|
|
+
|
|
+#define MPLS_LS_LABEL_MASK 0xFFFFF000
|
|
+#define MPLS_LS_LABEL_SHIFT 12
|
|
+#define MPLS_LS_TC_MASK 0x00000E00
|
|
+#define MPLS_LS_TC_SHIFT 9
|
|
+#define MPLS_LS_S_MASK 0x00000100
|
|
+#define MPLS_LS_S_SHIFT 8
|
|
+#define MPLS_LS_TTL_MASK 0x000000FF
|
|
+#define MPLS_LS_TTL_SHIFT 0
|
|
+
|
|
+#endif /* _UAPI_MPLS_H */
|