Subject: [PATCH net-next 0/2] flow_dissector, cls_flower: Add support for multiple MPLS Label Stack Entries

From: Guillaume Nault <[email-masked]>
Date: Wed, 20 May 2020 19:28:36 +0200

Currently, the flow dissector and the Flower classifier can only handle
the first entry of an MPLS label stack. This patch series generalises
the code to allow parsing and matching the labels that follow.

Patch 1 extends the flow dissector to parse MPLS LSEs until the Bottom
Of Stack bit is reached. The number of parsed LSEs is capped at
FLOW_DIS_MPLS_MAX (arbitrarily set to 7).

Patch 2 extends Flower. It defines new netlink attributes, which are
independent from the previous MPLS ones. Mixing the old and the new
attributes in a same filter is not allowed. For backward compatibility,
the old attributes are used when dumping filters that don't require the
new ones.

Guillaume Nault (2):
  flow_dissector: Parse multiple MPLS Label Stack Entries
  cls_flower: Support filtering on multiple MPLS Label Stack Entries

 include/net/flow_dissector.h |  14 +-
 include/uapi/linux/pkt_cls.h |  23 +++
 net/core/flow_dissector.c    |  49 ++++--
 net/sched/cls_flower.c       | 295 +++++++++++++++++++++++++++++++++--
 4 files changed, 347 insertions(+), 34 deletions(-)

-- 
2.21.1