Home
last modified time | relevance | path

Searched refs:offloads (Results 1 – 25 of 61) sorted by relevance

123

/linux/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/
H A Dingress_ofld.c46 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 …]
H A Degress_ofld.c11 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/drivers/net/ethernet/mellanox/mlx5/core/
H A Deswitch_offloads.c79 return xa_load(&esw->offloads.vport_reps, vport_num); in mlx5_eswitch_get_rep()
434 if (esw->offloads.ft_ipsec_tx_pol && in esw_setup_uplink_fwd_ipsec_needed()
451 if (!esw->offloads.ft_ipsec_tx_pol) in esw_flow_dests_fwd_ipsec_check()
496 dest[dest_idx].ft = esw->offloads.ft_ipsec_tx_pol; in esw_setup_dest_fwd_ipsec()
778 atomic64_inc(&esw->offloads.num_flows); in mlx5_eswitch_add_offloaded_rule()
864 atomic64_inc(&esw->offloads.num_flows); in mlx5_eswitch_add_fwd_rule()
899 atomic64_dec(&esw->offloads.num_flows); in __mlx5_eswitch_del_rule()
1001 on_esw == from_esw && on_esw->offloads.ft_ipsec_tx_pol) { in mlx5_eswitch_add_send_to_vport_rule()
1002 dest.ft = on_esw->offloads.ft_ipsec_tx_pol; in mlx5_eswitch_add_send_to_vport_rule()
1266 flow = mlx5_add_flow_rules(esw->fdb_table.offloads.slow_fdb, in esw_add_fdb_peer_miss_rules()
[all …]
H A Deswitch_offloads_termtbl.c122 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 DKconfig75 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.
H A Deswitch.c2043 mutex_init(&esw->offloads.encap_tbl_lock); in mlx5_eswitch_init()
2044 hash_init(esw->offloads.encap_tbl); in mlx5_eswitch_init()
2045 mutex_init(&esw->offloads.decap_tbl_lock); in mlx5_eswitch_init()
2046 hash_init(esw->offloads.decap_tbl); in mlx5_eswitch_init()
2047 mlx5e_mod_hdr_tbl_init(&esw->offloads.mod_hdr); in mlx5_eswitch_init()
2048 atomic64_set(&esw->offloads.num_flows, 0); in mlx5_eswitch_init()
2049 ida_init(&esw->offloads.vport_metadata_ida); in mlx5_eswitch_init()
2050 xa_init_flags(&esw->offloads.vhca_map, XA_FLAGS_ALLOC); in mlx5_eswitch_init()
2056 esw->offloads.inline_mode = MLX5_INLINE_MODE_NONE; in mlx5_eswitch_init()
2059 esw->offloads.encap = DEVLINK_ESWITCH_ENCAP_MODE_BASIC; in mlx5_eswitch_init()
[all …]
H A Deswitch.h87 ((esw)->fdb_table.offloads.esw_chains_priv)
123 } offloads; member
147 } offloads; member
287 } offloads; member
392 struct mlx5_esw_offload offloads; member
743 xa_for_each(&((esw)->offloads.vport_reps), i, rep)
906 return esw->fdb_table.offloads.slow_fdb; in mlx5_eswitch_get_slow_fdb()
/linux/drivers/net/ethernet/mellanox/mlx5/core/esw/
H A Dvporttbl.c27 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 Dindir_table.c293 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/drivers/net/ethernet/mellanox/mlx5/core/en/
H A Dtc_tun_encap.c420 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_tc_update_neigh_used_value()
437 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_tc_update_neigh_used_value()
495 if (!refcount_dec_and_mutex_lock(&e->refcnt, &esw->offloads.encap_tbl_lock)) in mlx5e_encap_put()
499 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_encap_put()
508 lockdep_assert_held(&esw->offloads.encap_tbl_lock); in mlx5e_encap_put_locked()
521 if (!refcount_dec_and_mutex_lock(&d->refcnt, &esw->offloads.decap_tbl_lock)) in mlx5e_decap_put()
524 mutex_unlock(&esw->offloads.decap_tbl_lock); in mlx5e_decap_put()
552 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_encap()
556 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_encap()
561 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_encap()
[all …]
/linux/drivers/net/ethernet/marvell/octeon_ep/
H A Doctep_ctrl_net.h134 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 Doctep_ctrl_net.c419 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 Doctep_main.c1094 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/kernel/bpf/
H A Doffload.c116 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/drivers/net/ethernet/intel/ice/virt/
H A Dvirtchnl.c1526 supported_caps = &caps->offloads.stripping_support; in ice_vc_set_dvm_caps()
1532 supported_caps = &caps->offloads.insertion_support; in ice_vc_set_dvm_caps()
1538 caps->offloads.ethertype_init = VIRTCHNL_VLAN_ETHERTYPE_8100; in ice_vc_set_dvm_caps()
1539 caps->offloads.ethertype_match = in ice_vc_set_dvm_caps()
1552 supported_caps = &caps->offloads.stripping_support; in ice_vc_set_dvm_caps()
1563 supported_caps = &caps->offloads.insertion_support; in ice_vc_set_dvm_caps()
1574 caps->offloads.ethertype_init = VIRTCHNL_VLAN_ETHERTYPE_8100; in ice_vc_set_dvm_caps()
1576 caps->offloads.ethertype_match = in ice_vc_set_dvm_caps()
1604 supported_caps = &caps->offloads.stripping_support; in ice_vc_set_svm_caps()
1608 supported_caps = &caps->offloads.insertion_support; in ice_vc_set_svm_caps()
[all …]
/linux/drivers/net/hyperv/
H A Drndis_filter.c1353 struct ndis_offload_params offloads; in rndis_netdev_set_hwcaps() local
1364 memset(&offloads, 0, sizeof(struct ndis_offload_params)); in rndis_netdev_set_hwcaps()
1367 offloads.ip_v4_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED; in rndis_netdev_set_hwcaps()
1383 offloads.tcp_ip_v4_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED; in rndis_netdev_set_hwcaps()
1386 offloads.lso_v2_ipv4 = NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED; in rndis_netdev_set_hwcaps()
1394 offloads.udp_ip_v4_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED; in rndis_netdev_set_hwcaps()
1402 offloads.tcp_ip_v6_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED; in rndis_netdev_set_hwcaps()
1407 offloads.lso_v2_ipv6 = NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED; in rndis_netdev_set_hwcaps()
1415 offloads.udp_ip_v6_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED; in rndis_netdev_set_hwcaps()
1424 offloads.rsc_ip_v4 = NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED; in rndis_netdev_set_hwcaps()
[all …]
/linux/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/
H A Dkconfig.rst12 | 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/Documentation/networking/
H A Dvxlan.rst63 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 Dindex.rst36 checksum-offloads
37 segmentation-offloads
H A Dsegmentation-offloads.rst77 In addition to the offloads described above it is possible for a frame to
120 deal with cases where device drivers cannot perform the offloads described
147 offloads or tunnel offloads with checksum to still make use of segmentation.
164 This requires a different approach to other offloads, as SCTP packets
H A Dxsk-tx-metadata.rst7 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/Documentation/translations/zh_CN/networking/
H A Dindex.rst56 * checksum-offloads
57 * segmentation-offloads
/linux/Documentation/infiniband/
H A Dipoib.rst57 Stateless offloads
60 If the IB HW supports IPoIB stateless offloads, IPoIB advertises
68 Stateless offloads are supported only in datagram mode.
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/tc/
H A Dint_port.c93 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 Dsample.c525 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()

123