net/sched: act_mpls: Add action to push MPLS LSE before Ethernet header

Define the MAC_PUSH action which pushes an MPLS LSE before the mac
header (instead of between the mac and the network headers as the
plain PUSH action does).

The only special case is when the skb has an offloaded VLAN. In that
case, it has to be inlined before pushing the MPLS header.

Change-Id: Iea0792dac8682bccc4a6a506244c81ed799f779f
Signed-off-by: Guillaume Nault gnault@redhat.com
Signed-off-by: David S. Miller davem@davemloft.net
Git-commit: a45294af9e96a3e060b6272fa7cd2c4b196de335
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[quic_jguidry@quicinc.com: Enabled net/sched filtering and classification in
 sdxlemur.config]
Signed-off-by: James Wyatt Guidry <quic_jguidry@quicinc.com>
This commit is contained in:
Guillaume Nault 2022-08-08 14:18:41 -07:00 • committed by James Wyatt Guidry
commit 79ff84826e
4 changed files with 120 additions and 0 deletions

View file

@ -10,6 +10,7 @@
#define TCA_MPLS_ACT_PUSH 2
#define TCA_MPLS_ACT_MODIFY 3
#define TCA_MPLS_ACT_DEC_TTL 4
#define TCA_MPLS_ACT_MAC_PUSH 5
struct tc_mpls {
tc_gen; /* generic TC action fields. */