/linux-6.12.1/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ |
D | ingress_ofld.c | 46 if (vport->ingress.offloads.modify_metadata_rule) { in esw_acl_ingress_prio_tag_create() 48 flow_act.modify_hdr = vport->ingress.offloads.modify_metadata; in esw_acl_ingress_prio_tag_create() 85 vport->ingress.offloads.modify_metadata = in esw_acl_ingress_mod_metadata_create() 88 if (IS_ERR(vport->ingress.offloads.modify_metadata)) { in esw_acl_ingress_mod_metadata_create() 89 err = PTR_ERR(vport->ingress.offloads.modify_metadata); in esw_acl_ingress_mod_metadata_create() 97 flow_act.modify_hdr = vport->ingress.offloads.modify_metadata; in esw_acl_ingress_mod_metadata_create() 98 flow_act.fg = vport->ingress.offloads.metadata_allmatch_grp; in esw_acl_ingress_mod_metadata_create() 99 vport->ingress.offloads.modify_metadata_rule = in esw_acl_ingress_mod_metadata_create() 102 if (IS_ERR(vport->ingress.offloads.modify_metadata_rule)) { in esw_acl_ingress_mod_metadata_create() 103 err = PTR_ERR(vport->ingress.offloads.modify_metadata_rule); in esw_acl_ingress_mod_metadata_create() [all …]
|
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() 21 xa_load(&vport->egress.offloads.bounce_rules, rule_index); in esw_acl_egress_ofld_bounce_rule_destroy() 27 xa_erase(&vport->egress.offloads.bounce_rules, rule_index); in esw_acl_egress_ofld_bounce_rule_destroy() 35 xa_for_each(&vport->egress.offloads.bounce_rules, i, bounce_rule) { in esw_acl_egress_ofld_bounce_rules_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() [all …]
|
/linux-6.12.1/drivers/net/ethernet/mellanox/mlx5/core/ |
D | eswitch_offloads.c | 57 xa_for_each(&((esw)->offloads.vport_reps), i, rep) 82 return xa_load(&esw->offloads.vport_reps, vport_num); in mlx5_eswitch_get_rep() 437 if (esw->offloads.ft_ipsec_tx_pol && in esw_setup_uplink_fwd_ipsec_needed() 454 if (!esw->offloads.ft_ipsec_tx_pol) in esw_flow_dests_fwd_ipsec_check() 499 dest[dest_idx].ft = esw->offloads.ft_ipsec_tx_pol; in esw_setup_dest_fwd_ipsec() 780 atomic64_inc(&esw->offloads.num_flows); in mlx5_eswitch_add_offloaded_rule() 866 atomic64_inc(&esw->offloads.num_flows); in mlx5_eswitch_add_fwd_rule() 901 atomic64_dec(&esw->offloads.num_flows); in __mlx5_eswitch_del_rule() 1003 on_esw == from_esw && on_esw->offloads.ft_ipsec_tx_pol) { in mlx5_eswitch_add_send_to_vport_rule() 1004 dest.ft = on_esw->offloads.ft_ipsec_tx_pol; in mlx5_eswitch_add_send_to_vport_rule() [all …]
|
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()
|
D | Kconfig | 75 Switchdev mode (eswitch offloads). 82 mlx5 ConnectX offloads support for Ethernet Bridging (BRIDGE). 92 mlx5 ConnectX offloads support for TC classifier action (NET_CLS_ACT), 99 If set to N, TC offloads in both NIC and switchdev modes will be disabled. 138 bool "Mellanox 5th generation network adapters (connectX series) IPoIB offloads support" 141 MLX5 IPoIB offloads & acceleration support.
|
D | eswitch.c | 1878 mutex_init(&esw->offloads.encap_tbl_lock); in mlx5_eswitch_init() 1879 hash_init(esw->offloads.encap_tbl); in mlx5_eswitch_init() 1880 mutex_init(&esw->offloads.decap_tbl_lock); in mlx5_eswitch_init() 1881 hash_init(esw->offloads.decap_tbl); in mlx5_eswitch_init() 1882 mlx5e_mod_hdr_tbl_init(&esw->offloads.mod_hdr); in mlx5_eswitch_init() 1883 atomic64_set(&esw->offloads.num_flows, 0); in mlx5_eswitch_init() 1884 ida_init(&esw->offloads.vport_metadata_ida); in mlx5_eswitch_init() 1885 xa_init_flags(&esw->offloads.vhca_map, XA_FLAGS_ALLOC); in mlx5_eswitch_init() 1892 esw->offloads.inline_mode = MLX5_INLINE_MODE_NONE; in mlx5_eswitch_init() 1895 esw->offloads.encap = DEVLINK_ESWITCH_ENCAP_MODE_BASIC; in mlx5_eswitch_init() [all …]
|
D | eswitch.h | 87 ((esw)->fdb_table.offloads.esw_chains_priv) 123 } offloads; member 147 } offloads; member 268 } offloads; member 374 struct mlx5_esw_offload offloads; member 872 return esw->fdb_table.offloads.slow_fdb; in mlx5_eswitch_get_slow_fdb()
|
/linux-6.12.1/drivers/net/ethernet/mellanox/mlx5/core/esw/ |
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()
|
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.12.1/drivers/net/ethernet/mellanox/mlx5/core/en/ |
D | tc_tun_encap.c | 412 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_tc_update_neigh_used_value() 429 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_tc_update_neigh_used_value() 487 if (!refcount_dec_and_mutex_lock(&e->refcnt, &esw->offloads.encap_tbl_lock)) in mlx5e_encap_put() 491 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_encap_put() 500 lockdep_assert_held(&esw->offloads.encap_tbl_lock); in mlx5e_encap_put_locked() 513 if (!refcount_dec_and_mutex_lock(&d->refcnt, &esw->offloads.decap_tbl_lock)) in mlx5e_decap_put() 516 mutex_unlock(&esw->offloads.decap_tbl_lock); in mlx5e_decap_put() 544 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_encap() 548 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_encap() 553 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_encap() [all …]
|
/linux-6.12.1/drivers/net/ethernet/marvell/octeon_ep/ |
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,
|
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()
|
D | octep_main.c | 1107 struct octep_ctrl_net_offloads offloads = { 0 }; in octep_set_features() local 1116 offloads.tx_offloads |= OCTEP_TX_OFFLOAD_TSO; in octep_set_features() 1119 offloads.tx_offloads |= OCTEP_TX_OFFLOAD_TSO; in octep_set_features() 1122 offloads.tx_offloads |= OCTEP_TX_OFFLOAD_CKSUM; in octep_set_features() 1125 offloads.tx_offloads |= OCTEP_TX_OFFLOAD_CKSUM; in octep_set_features() 1128 offloads.rx_offloads |= OCTEP_RX_OFFLOAD_CKSUM; in octep_set_features() 1132 &offloads, in octep_set_features()
|
/linux-6.12.1/kernel/bpf/ |
D | offload.c | 115 list_del_init(&offload->offloads); in __bpf_prog_offload_destroy() 141 list_del_init(&offmap->offloads); in __bpf_map_offload_destroy() 169 list_for_each_entry(offload, &ondev->progs, offloads) in __bpf_offload_dev_netdev_unregister() 173 list_for_each_entry(offmap, &ondev->maps, offloads) in __bpf_offload_dev_netdev_unregister() 177 list_for_each_entry_safe(offload, ptmp, &ondev->progs, offloads) in __bpf_offload_dev_netdev_unregister() 179 list_for_each_entry_safe(offmap, mtmp, &ondev->maps, offloads) in __bpf_offload_dev_netdev_unregister() 220 list_add_tail(&offload->offloads, &ondev->progs); in __bpf_prog_dev_bound_init() 389 list_del_init(&prog->aux->offload->offloads); in bpf_prog_dev_bound_destroy() 549 list_add_tail(&offmap->offloads, &ondev->maps); in bpf_map_offload_map_alloc()
|
/linux-6.12.1/net/ipv4/ |
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.12.1/drivers/net/hyperv/ |
D | rndis_filter.c | 1353 struct ndis_offload_params offloads; in rndis_netdev_set_hwcaps() local 1363 memset(&offloads, 0, sizeof(struct ndis_offload_params)); in rndis_netdev_set_hwcaps() 1366 offloads.ip_v4_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED; in rndis_netdev_set_hwcaps() 1382 offloads.tcp_ip_v4_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED; in rndis_netdev_set_hwcaps() 1385 offloads.lso_v2_ipv4 = NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED; in rndis_netdev_set_hwcaps() 1393 offloads.udp_ip_v4_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED; in rndis_netdev_set_hwcaps() 1401 offloads.tcp_ip_v6_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED; in rndis_netdev_set_hwcaps() 1406 offloads.lso_v2_ipv6 = NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED; in rndis_netdev_set_hwcaps() 1414 offloads.udp_ip_v6_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED; in rndis_netdev_set_hwcaps() 1423 offloads.rsc_ip_v4 = NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED; in rndis_netdev_set_hwcaps() [all …]
|
/linux-6.12.1/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/ |
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.12.1/Documentation/networking/ |
D | xsk-tx-metadata.rst | 7 This document describes how to enable offloads when transmitting packets 54 Besides the flags above, in order to trigger the offloads, the first 71 Every devices exports its offloads capabilities via netlink netdev family.
|
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)
|
D | index.rst | 35 checksum-offloads 36 segmentation-offloads
|
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
|
/linux-6.12.1/drivers/net/ethernet/intel/ice/ |
D | ice_virtchnl.c | 2831 supported_caps = &caps->offloads.stripping_support; in ice_vc_set_dvm_caps() 2837 supported_caps = &caps->offloads.insertion_support; in ice_vc_set_dvm_caps() 2843 caps->offloads.ethertype_init = VIRTCHNL_VLAN_ETHERTYPE_8100; in ice_vc_set_dvm_caps() 2844 caps->offloads.ethertype_match = in ice_vc_set_dvm_caps() 2857 supported_caps = &caps->offloads.stripping_support; in ice_vc_set_dvm_caps() 2868 supported_caps = &caps->offloads.insertion_support; in ice_vc_set_dvm_caps() 2879 caps->offloads.ethertype_init = VIRTCHNL_VLAN_ETHERTYPE_8100; in ice_vc_set_dvm_caps() 2881 caps->offloads.ethertype_match = in ice_vc_set_dvm_caps() 2909 supported_caps = &caps->offloads.stripping_support; in ice_vc_set_svm_caps() 2913 supported_caps = &caps->offloads.insertion_support; in ice_vc_set_svm_caps() [all …]
|
/linux-6.12.1/Documentation/infiniband/ |
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.12.1/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ |
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()
|
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()
|