diff --git a/package/kernel/mac80211/patches/020-add_mpls_h.patch b/package/kernel/mac80211/patches/020-add_mpls_h.patch new file mode 100644 index 0000000000..e5310bc120 --- /dev/null +++ b/package/kernel/mac80211/patches/020-add_mpls_h.patch @@ -0,0 +1,37 @@ +--- /dev/null ++++ b/include/uapi/linux/mpls.h +@@ -0,0 +1,34 @@ ++#ifndef _UAPI_MPLS_H ++#define _UAPI_MPLS_H ++ ++#include ++#include ++ ++/* 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 */