[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220218145048.6718-1-marcin.szycik@linux.intel.com>
Date: Fri, 18 Feb 2022 15:50:48 +0100
From: Marcin Szycik <marcin.szycik@...ux.intel.com>
To: netdev@...r.kernel.org
Cc: michal.swiatkowski@...ux.intel.com, wojciech.drewek@...el.com,
davem@...emloft.net, kuba@...nel.org, pablo@...filter.org,
laforge@...monks.org, Marcin Szycik <marcin.szycik@...ux.intel.com>
Subject: [PATCH net-next v6 0/7] ice: GTP support in switchdev
Add support for adding GTP-C and GTP-U filters in switchdev mode.
To create a filter for GTP, create a GTP-type netdev with ip tool, enable
hardware offload, add qdisc and add a filter in tc:
ip link add $GTP0 type gtp role <sgsn/ggsn> hsize <hsize>
ethtool -K $PF0 hw-tc-offload on
tc qdisc add dev $GTP0 ingress
tc filter add dev $GTP0 ingress prio 1 flower enc_key_id 1337 \
action mirred egress redirect dev $VF1_PR
By default, a filter for GTP-U will be added. To add a filter for GTP-C,
specify enc_dst_port = 2123, e.g.:
tc filter add dev $GTP0 ingress prio 1 flower enc_key_id 1337 \
enc_dst_port 2123 action mirred egress redirect dev $VF1_PR
Note: outer IPv6 offload is not supported yet.
Note: GTP-U with no payload offload is not supported yet.
ICE COMMS package is required to create a filter as it contains GTP
profiles.
Changes in iproute2 [1] are required to be able to add GTP netdev and use
GTP-specific options (QFI and PDU type).
[1] https://lore.kernel.org/netdev/20220211182902.11542-1-wojciech.drewek@intel.com/T
---
v2: Adding more CC
v3: Fixed mail thread, sorry for spam
v4: Added GTP echo response in gtp module
v5: Change patch order
v6: Added GTP echo request in gtp module
Marcin Szycik (1):
ice: Support GTP-U and GTP-C offload in switchdev
Michal Swiatkowski (1):
ice: Fix FV offset searching
Wojciech Drewek (5):
gtp: Allow to create GTP device without FDs
gtp: Implement GTP echo response
gtp: Implement GTP echo request
net/sched: Allow flower to match on GTP options
gtp: Add support for checking GTP device type
drivers/net/ethernet/intel/ice/ice.h | 1 +
.../net/ethernet/intel/ice/ice_flex_pipe.c | 46 +-
.../net/ethernet/intel/ice/ice_flex_pipe.h | 2 +-
.../net/ethernet/intel/ice/ice_flex_type.h | 6 +-
.../ethernet/intel/ice/ice_protocol_type.h | 19 +
drivers/net/ethernet/intel/ice/ice_switch.c | 630 +++++++++++++++--
drivers/net/ethernet/intel/ice/ice_switch.h | 9 +
drivers/net/ethernet/intel/ice/ice_tc_lib.c | 105 ++-
drivers/net/ethernet/intel/ice/ice_tc_lib.h | 3 +
drivers/net/gtp.c | 661 +++++++++++++++++-
include/net/gtp.h | 42 ++
include/uapi/linux/gtp.h | 2 +
include/uapi/linux/if_link.h | 2 +
include/uapi/linux/if_tunnel.h | 4 +-
include/uapi/linux/pkt_cls.h | 15 +
net/sched/cls_flower.c | 116 +++
16 files changed, 1562 insertions(+), 101 deletions(-)
--
2.31.1
Powered by blists - more mailing lists