| /linux-6.15/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ |
| H A D | ingress_ofld.c | 46 if (vport->ingress.offloads.modify_metadata_rule) { in esw_acl_ingress_prio_tag_create() 85 vport->ingress.offloads.modify_metadata = in esw_acl_ingress_mod_metadata_create() 99 vport->ingress.offloads.modify_metadata_rule = in esw_acl_ingress_mod_metadata_create() 140 flow_act.fg = vport->ingress.offloads.drop_grp; in esw_acl_ingress_src_port_drop_create() 147 vport->ingress.offloads.drop_rule = flow_rule; in esw_acl_ingress_src_port_drop_create() 160 if (!vport->ingress.offloads.drop_rule) in esw_acl_ingress_src_port_drop_destroy() 164 vport->ingress.offloads.drop_rule = NULL; in esw_acl_ingress_src_port_drop_destroy() 235 vport->ingress.offloads.drop_grp = g; in esw_acl_ingress_ofld_groups_create() 293 vport->ingress.offloads.drop_grp = NULL; in esw_acl_ingress_ofld_groups_create() 312 if (vport->ingress.offloads.drop_grp) { in esw_acl_ingress_ofld_groups_destroy() [all …]
|
| H A D | egress_ofld.c | 11 if (!vport->egress.offloads.fwd_rule) in esw_acl_egress_ofld_fwd2vport_destroy() 14 mlx5_del_flow_rules(vport->egress.offloads.fwd_rule); in esw_acl_egress_ofld_fwd2vport_destroy() 15 vport->egress.offloads.fwd_rule = NULL; in esw_acl_egress_ofld_fwd2vport_destroy() 37 xa_erase(&vport->egress.offloads.bounce_rules, i); in esw_acl_egress_ofld_bounce_rules_destroy() 56 vport->egress.offloads.fwd_rule = in esw_acl_egress_ofld_fwd2vport_create() 59 if (IS_ERR(vport->egress.offloads.fwd_rule)) { in esw_acl_egress_ofld_fwd2vport_create() 60 err = PTR_ERR(vport->egress.offloads.fwd_rule); in esw_acl_egress_ofld_fwd2vport_create() 64 vport->egress.offloads.fwd_rule = NULL; in esw_acl_egress_ofld_fwd2vport_create() 156 vport->egress.offloads.fwd_grp = fwd_grp; in esw_acl_egress_ofld_groups_create() 170 vport->egress.offloads.fwd_grp = NULL; in esw_acl_egress_ofld_groups_destroy() [all …]
|
| /linux-6.15/drivers/net/ethernet/mellanox/mlx5/core/ |
| H A D | eswitch_offloads.c | 2021 struct mlx5_esw_offload *offloads = &esw->offloads; in esw_destroy_offloads_table() local 2232 struct mlx5_esw_offload *offloads = &esw->offloads; in esw_destroy_restore_table() local 2316 esw->offloads.restore_group = g; in esw_create_restore_table() 3725 esw->offloads.num_block_mode++; in mlx5_eswitch_block_mode() 3738 esw->offloads.num_block_mode--; in mlx5_eswitch_unblock_mode() 3955 esw->offloads.num_block_encap++; in mlx5_eswitch_block_encap() 3968 esw->offloads.num_block_encap--; in mlx5_eswitch_unblock_encap() 3999 esw->offloads.encap = encap; in mlx5_devlink_eswitch_encap_mode_set() 4025 esw->offloads.encap = encap; in mlx5_devlink_eswitch_encap_mode_set() 4032 esw->offloads.encap = !encap; in mlx5_devlink_eswitch_encap_mode_set() [all …]
|
| H A D | eswitch_offloads_termtbl.c | 122 mutex_lock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_get_create() 124 hash_for_each_possible(esw->offloads.termtbl_tbl, tt, in mlx5_eswitch_termtbl_get_create() 151 hash_add(esw->offloads.termtbl_tbl, &tt->termtbl_hlist, hash_key); in mlx5_eswitch_termtbl_get_create() 154 mutex_unlock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_get_create() 158 mutex_unlock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_get_create() 166 mutex_lock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_put() 169 mutex_unlock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_put()
|
| H A D | Kconfig | 76 Switchdev mode (eswitch offloads). 83 mlx5 ConnectX offloads support for Ethernet Bridging (BRIDGE). 93 mlx5 ConnectX offloads support for TC classifier action (NET_CLS_ACT), 100 If set to N, TC offloads in both NIC and switchdev modes will be disabled. 139 bool "Mellanox 5th generation network adapters (connectX series) IPoIB offloads support" 142 MLX5 IPoIB offloads & acceleration support.
|
| H A D | eswitch.c | 1886 mutex_init(&esw->offloads.encap_tbl_lock); in mlx5_eswitch_init() 1887 hash_init(esw->offloads.encap_tbl); in mlx5_eswitch_init() 1888 mutex_init(&esw->offloads.decap_tbl_lock); in mlx5_eswitch_init() 1889 hash_init(esw->offloads.decap_tbl); in mlx5_eswitch_init() 1890 mlx5e_mod_hdr_tbl_init(&esw->offloads.mod_hdr); in mlx5_eswitch_init() 1891 atomic64_set(&esw->offloads.num_flows, 0); in mlx5_eswitch_init() 1892 ida_init(&esw->offloads.vport_metadata_ida); in mlx5_eswitch_init() 1939 WARN_ON(!xa_empty(&esw->offloads.vhca_map)); in mlx5_eswitch_cleanup() 1940 xa_destroy(&esw->offloads.vhca_map); in mlx5_eswitch_cleanup() 1943 mutex_destroy(&esw->offloads.encap_tbl_lock); in mlx5_eswitch_cleanup() [all …]
|
| H A D | eswitch.h | 87 ((esw)->fdb_table.offloads.esw_chains_priv) 123 } offloads; member 147 } offloads; member 265 } offloads; member 374 struct mlx5_esw_offload offloads; member 718 xa_for_each(&((esw)->offloads.vport_reps), i, rep) 873 return esw->fdb_table.offloads.slow_fdb; in mlx5_eswitch_get_slow_fdb()
|
| /linux-6.15/drivers/net/ethernet/mellanox/mlx5/core/esw/ |
| H A D | vporttbl.c | 27 if (esw->offloads.encap != DEVLINK_ESWITCH_ENCAP_MODE_NONE) in esw_vport_tbl_init() 73 hash_for_each_possible(esw->fdb_table.offloads.vports.table, e, hlist, key) in esw_vport_tbl_lookup() 90 mutex_lock(&esw->fdb_table.offloads.vports.lock); in mlx5_esw_vporttbl_get() 119 hash_add(esw->fdb_table.offloads.vports.table, &e->hlist, hkey); in mlx5_esw_vporttbl_get() 121 mutex_unlock(&esw->fdb_table.offloads.vports.lock); in mlx5_esw_vporttbl_get() 127 mutex_unlock(&esw->fdb_table.offloads.vports.lock); in mlx5_esw_vporttbl_get() 138 mutex_lock(&esw->fdb_table.offloads.vports.lock); in mlx5_esw_vporttbl_put() 149 mutex_unlock(&esw->fdb_table.offloads.vports.lock); in mlx5_esw_vporttbl_put()
|
| H A D | indir_table.c | 293 hash_add(esw->fdb_table.offloads.indir->table, &e->hlist, in mlx5_esw_indir_table_entry_create() 316 hash_for_each_possible(esw->fdb_table.offloads.indir->table, e, hlist, key) in mlx5_esw_indir_table_entry_lookup() 330 mutex_lock(&esw->fdb_table.offloads.indir->lock); in mlx5_esw_indir_table_get() 348 mutex_unlock(&esw->fdb_table.offloads.indir->lock); in mlx5_esw_indir_table_get() 352 mutex_unlock(&esw->fdb_table.offloads.indir->lock); in mlx5_esw_indir_table_get() 361 mutex_lock(&esw->fdb_table.offloads.indir->lock); in mlx5_esw_indir_table_put() 381 mutex_unlock(&esw->fdb_table.offloads.indir->lock); in mlx5_esw_indir_table_put()
|
| /linux-6.15/drivers/net/ethernet/mellanox/mlx5/core/en/ |
| H A D | tc_tun_encap.c | 420 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_tc_update_neigh_used_value() 499 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_encap_put() 552 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_encap() 575 mutex_lock(&esw->offloads.decap_tbl_lock); in mlx5e_detach_decap() 966 mutex_lock(&esw->offloads.decap_tbl_lock); in mlx5e_attach_decap() 1003 mutex_lock(&esw->offloads.decap_tbl_lock); in mlx5e_attach_decap() 1045 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_tc_tun_encap_dests_set() 1304 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_attach_decap_route() 1415 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_decap_route() 1440 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_encap_route() [all …]
|
| /linux-6.15/drivers/net/ethernet/marvell/octeon_ep/ |
| H A D | octep_ctrl_net.h | 134 struct octep_ctrl_net_offloads offloads; member 146 struct octep_ctrl_net_h2f_req_cmd_offloads offloads; member 204 struct octep_ctrl_net_offloads offloads; member 418 struct octep_ctrl_net_offloads *offloads,
|
| H A D | octep_ctrl_net.c | 419 struct octep_ctrl_net_offloads *offloads, in octep_ctrl_net_set_offloads() argument 428 req->offloads.cmd = OCTEP_CTRL_NET_CMD_SET; in octep_ctrl_net_set_offloads() 429 req->offloads.offloads = *offloads; in octep_ctrl_net_set_offloads()
|
| H A D | octep_main.c | 1094 struct octep_ctrl_net_offloads offloads = { 0 }; in octep_set_features() local 1103 offloads.tx_offloads |= OCTEP_TX_OFFLOAD_TSO; in octep_set_features() 1106 offloads.tx_offloads |= OCTEP_TX_OFFLOAD_TSO; in octep_set_features() 1109 offloads.tx_offloads |= OCTEP_TX_OFFLOAD_CKSUM; in octep_set_features() 1112 offloads.tx_offloads |= OCTEP_TX_OFFLOAD_CKSUM; in octep_set_features() 1115 offloads.rx_offloads |= OCTEP_RX_OFFLOAD_CKSUM; in octep_set_features() 1119 &offloads, in octep_set_features()
|
| /linux-6.15/kernel/bpf/ |
| H A D | offload.c | 116 list_del_init(&offload->offloads); in __bpf_prog_offload_destroy() 142 list_del_init(&offmap->offloads); in __bpf_map_offload_destroy() 170 list_for_each_entry(offload, &ondev->progs, offloads) in __bpf_offload_dev_netdev_unregister() 174 list_for_each_entry(offmap, &ondev->maps, offloads) in __bpf_offload_dev_netdev_unregister() 178 list_for_each_entry_safe(offload, ptmp, &ondev->progs, offloads) in __bpf_offload_dev_netdev_unregister() 180 list_for_each_entry_safe(offmap, mtmp, &ondev->maps, offloads) in __bpf_offload_dev_netdev_unregister() 221 list_add_tail(&offload->offloads, &ondev->progs); in __bpf_prog_dev_bound_init() 390 list_del_init(&prog->aux->offload->offloads); in bpf_prog_dev_bound_destroy() 551 list_add_tail(&offmap->offloads, &ondev->maps); in bpf_map_offload_map_alloc()
|
| /linux-6.15/net/ipv4/ |
| H A D | fou_core.c | 235 const struct net_offload __rcu **offloads; in fou_gro_receive() local 257 offloads = NAPI_GRO_CB(skb)->is_ipv6 ? inet6_offloads : inet_offloads; in fou_gro_receive() 258 ops = rcu_dereference(offloads[proto]); in fou_gro_receive() 271 const struct net_offload __rcu **offloads; in fou_gro_complete() local 284 offloads = NAPI_GRO_CB(skb)->is_ipv6 ? inet6_offloads : inet_offloads; in fou_gro_complete() 285 ops = rcu_dereference(offloads[proto]); in fou_gro_complete() 326 const struct net_offload __rcu **offloads; in gue_gro_receive() local 453 offloads = NAPI_GRO_CB(skb)->is_ipv6 ? inet6_offloads : inet_offloads; in gue_gro_receive() 454 ops = rcu_dereference(offloads[proto]); in gue_gro_receive() 470 const struct net_offload __rcu **offloads; in gue_gro_complete() local [all …]
|
| /linux-6.15/drivers/net/hyperv/ |
| H A D | rndis_filter.c | 1344 struct ndis_offload_params offloads; in rndis_netdev_set_hwcaps() local 1355 memset(&offloads, 0, sizeof(struct ndis_offload_params)); in rndis_netdev_set_hwcaps() 1358 offloads.ip_v4_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED; in rndis_netdev_set_hwcaps() 1374 offloads.tcp_ip_v4_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED; in rndis_netdev_set_hwcaps() 1377 offloads.lso_v2_ipv4 = NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED; in rndis_netdev_set_hwcaps() 1398 offloads.lso_v2_ipv6 = NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED; in rndis_netdev_set_hwcaps() 1415 offloads.rsc_ip_v4 = NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED; in rndis_netdev_set_hwcaps() 1416 offloads.rsc_ip_v6 = NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED; in rndis_netdev_set_hwcaps() 1418 offloads.rsc_ip_v4 = NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED; in rndis_netdev_set_hwcaps() 1419 offloads.rsc_ip_v6 = NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED; in rndis_netdev_set_hwcaps() [all …]
|
| /linux-6.15/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/ |
| H A D | kconfig.rst | 12 | Basic features, ethernet net device rx/tx offloads and XDP, are available with the most basic fla… 32 …ng this option will allow basic ethernet netdevice support with all of the standard rx/tx offloads. 44 | IPoIB offloads & acceleration support. 91 | 2) :ref:`Switchdev mode (eswitch offloads) <switchdev>`. 159 | offloads depending on the actual device used and firmware version.
|
| /linux-6.15/Documentation/networking/ |
| H A D | vxlan.rst | 63 offloads (most commonly VXLAN features, but support for a particular 72 perform protocol-aware offloads, like checksum validation offload of 73 inner frames (only needed by NICs without protocol-agnostic offloads)
|
| H A D | index.rst | 36 checksum-offloads 37 segmentation-offloads
|
| H A D | segmentation-offloads.rst | 68 In addition to the offloads described above it is possible for a frame to 111 deal with cases where device drivers cannot perform the offloads described 141 offloads or tunnel offloads with checksum to still make use of segmentation. 158 This requires a different approach to other offloads, as SCTP packets
|
| H A D | xsk-tx-metadata.rst | 7 This document describes how to enable offloads when transmitting packets 58 Besides the flags above, in order to trigger the offloads, the first 132 Every devices exports its offloads capabilities via netlink netdev family.
|
| /linux-6.15/Documentation/infiniband/ |
| H A D | ipoib.rst | 57 Stateless offloads 60 If the IB HW supports IPoIB stateless offloads, IPoIB advertises 68 Stateless offloads are supported only in datagram mode.
|
| /linux-6.15/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ |
| H A D | int_port.c | 93 flow_rule = mlx5_add_flow_rules(esw->offloads.ft_offloads, spec, in mlx5e_int_port_create_rx_rule() 182 ctx = esw->offloads.reg_c0_obj_pool; in mlx5e_int_port_add() 233 ctx = esw->offloads.reg_c0_obj_pool; in mlx5e_int_port_remove()
|
| H A D | sample.c | 525 err = mapping_add(esw->offloads.reg_c0_obj_pool, &restore_obj, &obj_id); in mlx5e_tc_sample_offload() 577 mapping_remove(esw->offloads.reg_c0_obj_pool, obj_id); in mlx5e_tc_sample_offload() 607 mapping_remove(esw->offloads.reg_c0_obj_pool, attr->sample_attr.restore_obj_id); in mlx5e_tc_sample_unoffload()
|
| /linux-6.15/drivers/net/ethernet/intel/ice/ |
| H A D | ice_virtchnl.c | 3166 supported_caps = &caps->offloads.stripping_support; in ice_vc_set_dvm_caps() 3172 supported_caps = &caps->offloads.insertion_support; in ice_vc_set_dvm_caps() 3179 caps->offloads.ethertype_match = in ice_vc_set_dvm_caps() 3192 supported_caps = &caps->offloads.stripping_support; in ice_vc_set_dvm_caps() 3203 supported_caps = &caps->offloads.insertion_support; in ice_vc_set_dvm_caps() 3216 caps->offloads.ethertype_match = in ice_vc_set_dvm_caps() 3244 supported_caps = &caps->offloads.stripping_support; in ice_vc_set_svm_caps() 3248 supported_caps = &caps->offloads.insertion_support; in ice_vc_set_svm_caps() 3261 supported_caps = &caps->offloads.stripping_support; in ice_vc_set_svm_caps() 3267 supported_caps = &caps->offloads.insertion_support; in ice_vc_set_svm_caps() [all …]
|