act_mpls.c (15936ca13dac032a3f4e6b4ba78add3880bddcf3) act_mpls.c (9608fa653059c3f72faab0c148ac8773c46e7314)
1// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2/* Copyright (C) 2019 Netronome Systems, Inc. */
3
4#include <linux/if_arp.h>
5#include <linux/init.h>
6#include <linux/kernel.h>
7#include <linux/module.h>
8#include <linux/mpls.h>

--- 91 unchanged lines hidden (view full) ---

100
101 new_lse = tcf_mpls_get_lse(NULL, p, mac_len ||
102 !eth_p_mpls(skb->protocol));
103
104 if (skb_mpls_push(skb, new_lse, p->tcfm_proto, 0, false))
105 goto drop;
106 break;
107 case TCA_MPLS_ACT_MODIFY:
1// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2/* Copyright (C) 2019 Netronome Systems, Inc. */
3
4#include <linux/if_arp.h>
5#include <linux/init.h>
6#include <linux/kernel.h>
7#include <linux/module.h>
8#include <linux/mpls.h>

--- 91 unchanged lines hidden (view full) ---

100
101 new_lse = tcf_mpls_get_lse(NULL, p, mac_len ||
102 !eth_p_mpls(skb->protocol));
103
104 if (skb_mpls_push(skb, new_lse, p->tcfm_proto, 0, false))
105 goto drop;
106 break;
107 case TCA_MPLS_ACT_MODIFY:
108 if (!pskb_may_pull(skb,
109 skb_network_offset(skb) + MPLS_HLEN))
110 goto drop;
108 new_lse = tcf_mpls_get_lse(mpls_hdr(skb), p, false);
109 if (skb_mpls_update_lse(skb, new_lse))
110 goto drop;
111 break;
112 case TCA_MPLS_ACT_DEC_TTL:
113 if (skb_mpls_dec_ttl(skb))
114 goto drop;
115 break;

--- 317 unchanged lines hidden ---
111 new_lse = tcf_mpls_get_lse(mpls_hdr(skb), p, false);
112 if (skb_mpls_update_lse(skb, new_lse))
113 goto drop;
114 break;
115 case TCA_MPLS_ACT_DEC_TTL:
116 if (skb_mpls_dec_ttl(skb))
117 goto drop;
118 break;

--- 317 unchanged lines hidden ---