[RFC PATCH net-next v4 0/4] ice: PPPoE offload support

Marcin Szycik
2022-07-08T12:24:58Z

Add support for dissecting PPPoE and PPP-specific fields in flow dissector:
PPPoE session id and PPP protocol type. Add support for those fields in
tc-flower and support offloading PPPoE. Finally, add support for hardware
offload of PPPoE packets in switchdev mode in ice driver.

Example filter:
tc filter add dev $PF1 ingress protocol ppp_ses prio 1 flower pppoe_sid \
1234 ppp_proto ip skip_sw action mirred egress redirect dev $VF1_PR

Changes in iproute2 are required to use the new fields (will be submitted
soon).

ICE COMMS DDP package is required to create a filter in ice.

v4:
* PPPoE header validation
* added MPLS support
* added support for compressed PPP protocol field
* flow_dissector_key_pppoe::session_id stored in __be16
* new field: flow_dissector_key_pppoe::type
* always add an ethtype lookup if PPP/PPPoE options are provided (to
prevent setting incorrect ethtype)
* rebase
v3:
* revert byte order changes in is_ppp_proto_supported from previous
version
* add kernel-doc for is_ppp_proto_supported
* add more CC
v2: cosmetic changes

Marcin Szycik (1):
ice: Add support for PPPoE hardware offload

Wojciech Drewek (3):
flow_dissector: Add PPPoE dissectors
net/sched: flower: Add PPPoE filter
flow_offload: Introduce flow_match_pppoe

drivers/net/ethernet/intel/ice/ice.h | 1 +
.../net/ethernet/intel/ice/ice_flex_pipe.c | 5 +-
.../ethernet/intel/ice/ice_protocol_type.h | 11 ++
drivers/net/ethernet/intel/ice/ice_switch.c | 165 ++++++++++++++++++
drivers/net/ethernet/intel/ice/ice_tc_lib.c | 71 +++++++-
drivers/net/ethernet/intel/ice/ice_tc_lib.h | 8 +
include/net/flow_dissector.h | 13 ++
include/net/flow_offload.h | 6 +
include/uapi/linux/pkt_cls.h | 3 +
net/core/flow_dissector.c | 84 ++++++++-
net/core/flow_offload.c | 7 +
net/sched/cls_flower.c | 61 +++++++
12 files changed, 426 insertions(+), 9 deletions(-)

--
2.35.1