summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2016-10-03 09:00:29 +0300
committerDavid S. Miller <davem@davemloft.net>2016-10-03 09:00:29 +0300
commit32986b554a5bc673e3aeaded7acbe84ca362b3f3 (patch)
treec93484e9f3001d3afb4c030eb632d2994b6b8b84 /include
parentab580705693d5af79663efa504a72248700766fc (diff)
parent85de4a2101acb85c3b1dde465e84596ccca99f2c (diff)
downloadlinux-32986b554a5bc673e3aeaded7acbe84ca362b3f3.tar.xz
Merge branch 'ovs-mpls'
Jiri Benc says: ==================== openvswitch: mpls fix and clean up Convert to the new mpls skb layout the last remaining place in openvswitch, forgotten on the mpls GSO rework. The GSO rework also allows for some cleanup in the third patch. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/net/mpls.h15
1 files changed, 6 insertions, 9 deletions
diff --git a/include/net/mpls.h b/include/net/mpls.h
index 5b3b5addfb08..1dbc669b770e 100644
--- a/include/net/mpls.h
+++ b/include/net/mpls.h
@@ -19,21 +19,18 @@
#define MPLS_HLEN 4
+struct mpls_shim_hdr {
+ __be32 label_stack_entry;
+};
+
static inline bool eth_p_mpls(__be16 eth_type)
{
return eth_type == htons(ETH_P_MPLS_UC) ||
eth_type == htons(ETH_P_MPLS_MC);
}
-/*
- * For non-MPLS skbs this will correspond to the network header.
- * For MPLS skbs it will be before the network_header as the MPLS
- * label stack lies between the end of the mac header and the network
- * header. That is, for MPLS skbs the end of the mac header
- * is the top of the MPLS label stack.
- */
-static inline unsigned char *skb_mpls_header(struct sk_buff *skb)
+static inline struct mpls_shim_hdr *mpls_hdr(const struct sk_buff *skb)
{
- return skb_mac_header(skb) + skb->mac_len;
+ return (struct mpls_shim_hdr *)skb_network_header(skb);
}
#endif