Thread (7 messages) 7 messages, 2 authors, 2016-09-30

Re: [PATCH net-next 2/2] openvswitch: remove skb_mpls_header

From: pravin shelar <hidden>
Date: 2016-09-30 16:05:16

On Fri, Sep 30, 2016 at 1:06 AM, Jiri Benc [off-list ref] wrote:
On Thu, 29 Sep 2016 16:03:19 -0700, pravin shelar wrote:
quoted
quoted
--- a/include/net/mpls.h
+++ b/include/net/mpls.h
@@ -25,15 +25,4 @@ static inline bool eth_p_mpls(__be16 eth_type)
                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)
-{
-       return skb_mac_header(skb) + skb->mac_len;
-}
I think we should keep this API, so that it is clear that MPLS header
mapped skb network header.
I was pondering this but I don't think it really gains us anything.
Wrappers like ip_hdr() are useful as they do type conversion; it's much
nicer to write
        ip_hdr(skb)->daddr
than
        (struct iphdr *)skb_network_header(skb)->daddr.

But we don't really have a good type to return from skb_mpls_header, it
boils down to be 100% equivalent to skb_network_header. In fact, you
could just do:
#define skb_mpls_header skb_network_header
I am fine with this too.
In the code, I don't think there's much benefit from calling the
wrapper, meaning of skb_network_header itself is clear enough. It *is*
the network header, after all. In the whole openvswitch code, MPLS is
treated as L3 header - no dissection is performed after the MPLS
headers, the network header and mac_len is set as expected now, etc.
It makes it easier to locate which modules are using this API. That
also helps if in future we decide to change MPLS header mapping again.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help