History

Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue

Tony Nguyen says: ==================== ice: GTP support in switchdev Marcin Szycik says: 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: Add more CC v3: Fix mail thread, sorry for spam v4: Add GTP echo response in gtp module v5: Change patch order v6: Add GTP echo request in gtp module v7: Fix kernel-docs in ice v8: Remove handling of GTP Echo Response v9: Add sending of multicast message on GTP Echo Response, fix GTP-C dummy packet selection v10: Rebase, fixed most 80 char line limits v11: Rebase, collect Harald's Reviewed-by on patch 3 ====================

David S. Miller committed 4 years ago

Commit 97aeb872 parents 4d17d43 9a225f816 files · +1478 −119Browse files

Showing the changes to include/uapi (4 of 16 files). Show all

Unified · Split

4 files
  1. include/uapi/linux/gtp.h +1 −0
  2. include/uapi/linux/if_link.h +2 −0
  3. include/uapi/linux/if_tunnel.h +3 −1
  4. include/uapi/linux/pkt_cls.h +15 −0
include/uapi/linux/gtp.h+1−0
@@ -8,6 +8,7 @@ enum gtp_genl_cmds { · 7 unmodified lines
8 GTP_CMD_NEWPDP,8 GTP_CMD_NEWPDP,
9 GTP_CMD_DELPDP,9 GTP_CMD_DELPDP,
10 GTP_CMD_GETPDP,10 GTP_CMD_GETPDP,
11 GTP_CMD_ECHOREQ,
11 12
12 GTP_CMD_MAX,13 GTP_CMD_MAX,
13};14};
include/uapi/linux/if_link.h+2−0
@@ -887,6 +887,8 @@ enum { · 886 unmodified lines
887 IFLA_GTP_FD1,887 IFLA_GTP_FD1,
888 IFLA_GTP_PDP_HASHSIZE,888 IFLA_GTP_PDP_HASHSIZE,
889 IFLA_GTP_ROLE,889 IFLA_GTP_ROLE,
890 IFLA_GTP_CREATE_SOCKETS,
891 IFLA_GTP_RESTART_COUNT,
890 __IFLA_GTP_MAX,892 __IFLA_GTP_MAX,
891};893};
892#define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1)894#define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1)
include/uapi/linux/if_tunnel.h+3−1
@@ -176,8 +176,10 @@ enum { · 175 unmodified lines
176#define TUNNEL_VXLAN_OPT __cpu_to_be16(0x1000)176#define TUNNEL_VXLAN_OPT __cpu_to_be16(0x1000)
177#define TUNNEL_NOCACHE __cpu_to_be16(0x2000)177#define TUNNEL_NOCACHE __cpu_to_be16(0x2000)
178#define TUNNEL_ERSPAN_OPT __cpu_to_be16(0x4000)178#define TUNNEL_ERSPAN_OPT __cpu_to_be16(0x4000)
179#define TUNNEL_GTP_OPT __cpu_to_be16(0x8000)
179 180
180#define TUNNEL_OPTIONS_PRESENT \181#define TUNNEL_OPTIONS_PRESENT \
181 (TUNNEL_GENEVE_OPT | TUNNEL_VXLAN_OPT | TUNNEL_ERSPAN_OPT)182 (TUNNEL_GENEVE_OPT | TUNNEL_VXLAN_OPT | TUNNEL_ERSPAN_OPT | \
183 TUNNEL_GTP_OPT)
182 184
183#endif /* _UAPI_IF_TUNNEL_H_ */185#endif /* _UAPI_IF_TUNNEL_H_ */
include/uapi/linux/pkt_cls.h+15−0
@@ -616,6 +616,10 @@ enum { · 615 unmodified lines
616 * TCA_FLOWER_KEY_ENC_OPT_ERSPAN_616 * TCA_FLOWER_KEY_ENC_OPT_ERSPAN_
617 * attributes617 * attributes
618 */618 */
619 TCA_FLOWER_KEY_ENC_OPTS_GTP, /* Nested
620 * TCA_FLOWER_KEY_ENC_OPT_GTP_
621 * attributes
622 */
619 __TCA_FLOWER_KEY_ENC_OPTS_MAX,623 __TCA_FLOWER_KEY_ENC_OPTS_MAX,
620};624};
621 625
@@ -654,6 +658,17 @@ enum { · 32 unmodified lines
654#define TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX \658#define TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX \
655 (__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1)659 (__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1)
656 660
661enum {
662 TCA_FLOWER_KEY_ENC_OPT_GTP_UNSPEC,
663 TCA_FLOWER_KEY_ENC_OPT_GTP_PDU_TYPE, /* u8 */
664 TCA_FLOWER_KEY_ENC_OPT_GTP_QFI, /* u8 */
665
666 __TCA_FLOWER_KEY_ENC_OPT_GTP_MAX,
667};
668
669#define TCA_FLOWER_KEY_ENC_OPT_GTP_MAX \
670 (__TCA_FLOWER_KEY_ENC_OPT_GTP_MAX - 1)
671
657enum {672enum {
658 TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC,673 TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC,
659 TCA_FLOWER_KEY_MPLS_OPTS_LSE,674 TCA_FLOWER_KEY_MPLS_OPTS_LSE,