Home
last modified time | relevance | path

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

12

/Linux-v5.15/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/
Dingress_ofld.c43 if (vport->ingress.offloads.modify_metadata_rule) { in esw_acl_ingress_prio_tag_create()
45 flow_act.modify_hdr = vport->ingress.offloads.modify_metadata; in esw_acl_ingress_prio_tag_create()
82 vport->ingress.offloads.modify_metadata = in esw_acl_ingress_mod_metadata_create()
85 if (IS_ERR(vport->ingress.offloads.modify_metadata)) { in esw_acl_ingress_mod_metadata_create()
86 err = PTR_ERR(vport->ingress.offloads.modify_metadata); in esw_acl_ingress_mod_metadata_create()
94 flow_act.modify_hdr = vport->ingress.offloads.modify_metadata; in esw_acl_ingress_mod_metadata_create()
95 vport->ingress.offloads.modify_metadata_rule = in esw_acl_ingress_mod_metadata_create()
98 if (IS_ERR(vport->ingress.offloads.modify_metadata_rule)) { in esw_acl_ingress_mod_metadata_create()
99 err = PTR_ERR(vport->ingress.offloads.modify_metadata_rule); in esw_acl_ingress_mod_metadata_create()
103 mlx5_modify_header_dealloc(esw->dev, vport->ingress.offloads.modify_metadata); in esw_acl_ingress_mod_metadata_create()
[all …]
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()
20 if (!vport->egress.offloads.bounce_rule) in esw_acl_egress_ofld_bounce_rule_destroy()
23 mlx5_del_flow_rules(vport->egress.offloads.bounce_rule); in esw_acl_egress_ofld_bounce_rule_destroy()
24 vport->egress.offloads.bounce_rule = NULL; in esw_acl_egress_ofld_bounce_rule_destroy()
42 vport->egress.offloads.fwd_rule = in esw_acl_egress_ofld_fwd2vport_create()
45 if (IS_ERR(vport->egress.offloads.fwd_rule)) { in esw_acl_egress_ofld_fwd2vport_create()
46 err = PTR_ERR(vport->egress.offloads.fwd_rule); in esw_acl_egress_ofld_fwd2vport_create()
50 vport->egress.offloads.fwd_rule = NULL; in esw_acl_egress_ofld_fwd2vport_create()
[all …]
/Linux-v5.15/drivers/net/ethernet/mellanox/mlx5/core/
Deswitch_offloads.c54 xa_for_each(&((esw)->offloads.vport_reps), i, rep)
57 xa_for_each_marked(&((esw)->offloads.vport_reps), i, rep, MLX5_ESW_VPT_SF)
60 mlx5_esw_for_each_entry_marked(&((esw)->offloads.vport_reps), index, \
81 return xa_load(&esw->offloads.vport_reps, vport_num); in mlx5_eswitch_get_rep()
575 atomic64_inc(&esw->offloads.num_flows); in mlx5_eswitch_add_offloaded_rule()
655 atomic64_inc(&esw->offloads.num_flows); in mlx5_eswitch_add_fwd_rule()
689 atomic64_dec(&esw->offloads.num_flows); in __mlx5_eswitch_del_rule()
802 struct offloads_fdb *offloads = &esw->fdb_table.offloads; in mlx5_eswitch_add_vlan_action() local
840 if (!(offloads->vlan_push_pop_refcount)) { in mlx5_eswitch_add_vlan_action()
846 offloads->vlan_push_pop_refcount++; in mlx5_eswitch_add_vlan_action()
[all …]
Deswitch_offloads_termtbl.c120 mutex_lock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_get_create()
122 hash_for_each_possible(esw->offloads.termtbl_tbl, tt, in mlx5_eswitch_termtbl_get_create()
149 hash_add(esw->offloads.termtbl_tbl, &tt->termtbl_hlist, hash_key); in mlx5_eswitch_termtbl_get_create()
152 mutex_unlock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_get_create()
156 mutex_unlock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_get_create()
164 mutex_lock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_put()
167 mutex_unlock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_put()
DKconfig78 Switchdev mode (eswitch offloads).
85 mlx5 ConnectX offloads support for Ethernet Bridging (BRIDGE).
95 mlx5 ConnectX offloads support for TC classifier action (NET_CLS_ACT),
102 If set to N, TC offloads in both NIC and switchdev modes will be disabled.
140 bool "Mellanox 5th generation network adapters (connectX series) IPoIB offloads support"
143 MLX5 IPoIB offloads & acceleration support.
Deswitch.c1559 mutex_init(&esw->offloads.encap_tbl_lock); in mlx5_eswitch_init()
1560 hash_init(esw->offloads.encap_tbl); in mlx5_eswitch_init()
1561 mutex_init(&esw->offloads.decap_tbl_lock); in mlx5_eswitch_init()
1562 hash_init(esw->offloads.decap_tbl); in mlx5_eswitch_init()
1563 mlx5e_mod_hdr_tbl_init(&esw->offloads.mod_hdr); in mlx5_eswitch_init()
1564 atomic64_set(&esw->offloads.num_flows, 0); in mlx5_eswitch_init()
1565 ida_init(&esw->offloads.vport_metadata_ida); in mlx5_eswitch_init()
1566 xa_init_flags(&esw->offloads.vhca_map, XA_FLAGS_ALLOC); in mlx5_eswitch_init()
1574 esw->offloads.inline_mode = MLX5_INLINE_MODE_NONE; in mlx5_eswitch_init()
1606 WARN_ON(!xa_empty(&esw->offloads.vhca_map)); in mlx5_eswitch_cleanup()
[all …]
Deswitch.h83 ((esw)->fdb_table.offloads.esw_chains_priv)
115 } offloads; member
133 } offloads; member
227 } offloads; member
315 struct mlx5_esw_offload offloads; member
/Linux-v5.15/drivers/net/ethernet/mellanox/mlx5/core/esw/
Dvporttbl.c65 hash_for_each_possible(esw->fdb_table.offloads.vports.table, e, hlist, key) in esw_vport_tbl_lookup()
82 mutex_lock(&esw->fdb_table.offloads.vports.lock); in mlx5_esw_vporttbl_get()
110 hash_add(esw->fdb_table.offloads.vports.table, &e->hlist, hkey); in mlx5_esw_vporttbl_get()
112 mutex_unlock(&esw->fdb_table.offloads.vports.lock); in mlx5_esw_vporttbl_get()
118 mutex_unlock(&esw->fdb_table.offloads.vports.lock); in mlx5_esw_vporttbl_get()
129 mutex_lock(&esw->fdb_table.offloads.vports.lock); in mlx5_esw_vporttbl_put()
139 mutex_unlock(&esw->fdb_table.offloads.vports.lock); in mlx5_esw_vporttbl_put()
Dindir_table.c427 hash_add(esw->fdb_table.offloads.indir->table, &e->hlist, in mlx5_esw_indir_table_entry_create()
450 hash_for_each_possible(esw->fdb_table.offloads.indir->table, e, hlist, key) in mlx5_esw_indir_table_entry_lookup()
465 mutex_lock(&esw->fdb_table.offloads.indir->lock); in mlx5_esw_indir_table_get()
483 mutex_unlock(&esw->fdb_table.offloads.indir->lock); in mlx5_esw_indir_table_get()
487 mutex_unlock(&esw->fdb_table.offloads.indir->lock); in mlx5_esw_indir_table_get()
497 mutex_lock(&esw->fdb_table.offloads.indir->lock); in mlx5_esw_indir_table_put()
517 mutex_unlock(&esw->fdb_table.offloads.indir->lock); in mlx5_esw_indir_table_put()
Ddevlink_port.c42 controller_num = dev->priv.eswitch->offloads.host_number + 1; in mlx5_esw_dl_port_alloc()
/Linux-v5.15/drivers/net/ethernet/mellanox/mlx5/core/en/
Dtc_tun_encap.c360 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_tc_update_neigh_used_value()
377 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_tc_update_neigh_used_value()
435 if (!refcount_dec_and_mutex_lock(&e->refcnt, &esw->offloads.encap_tbl_lock)) in mlx5e_encap_put()
439 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_encap_put()
448 if (!refcount_dec_and_mutex_lock(&d->refcnt, &esw->offloads.decap_tbl_lock)) in mlx5e_decap_put()
451 mutex_unlock(&esw->offloads.decap_tbl_lock); in mlx5e_decap_put()
474 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_encap()
478 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_encap()
483 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_encap()
497 mutex_lock(&esw->offloads.decap_tbl_lock); in mlx5e_detach_decap()
[all …]
/Linux-v5.15/kernel/bpf/
Doffload.c113 list_add_tail(&offload->offloads, &ondev->progs); in bpf_prog_offload_init()
222 list_del_init(&offload->offloads); in __bpf_prog_offload_destroy()
398 list_add_tail(&offmap->offloads, &ondev->maps); in bpf_map_offload_map_alloc()
416 list_del_init(&offmap->offloads); in __bpf_map_offload_destroy()
650 list_for_each_entry(offload, &ondev->progs, offloads) in bpf_offload_dev_netdev_unregister()
654 list_for_each_entry(offmap, &ondev->maps, offloads) in bpf_offload_dev_netdev_unregister()
658 list_for_each_entry_safe(offload, ptmp, &ondev->progs, offloads) in bpf_offload_dev_netdev_unregister()
660 list_for_each_entry_safe(offmap, mtmp, &ondev->maps, offloads) in bpf_offload_dev_netdev_unregister()
/Linux-v5.15/net/ipv4/
Dfou.c233 const struct net_offload __rcu **offloads; in fou_gro_receive() local
250 offloads = NAPI_GRO_CB(skb)->is_ipv6 ? inet6_offloads : inet_offloads; in fou_gro_receive()
251 ops = rcu_dereference(offloads[proto]); in fou_gro_receive()
266 const struct net_offload __rcu **offloads; in fou_gro_complete() local
272 offloads = NAPI_GRO_CB(skb)->is_ipv6 ? inet6_offloads : inet_offloads; in fou_gro_complete()
273 ops = rcu_dereference(offloads[proto]); in fou_gro_complete()
314 const struct net_offload __rcu **offloads; in gue_gro_receive() local
442 offloads = NAPI_GRO_CB(skb)->is_ipv6 ? inet6_offloads : inet_offloads; in gue_gro_receive()
443 ops = rcu_dereference(offloads[proto]); in gue_gro_receive()
461 const struct net_offload __rcu **offloads; in gue_gro_complete() local
[all …]
Dudp_offload.c155 const struct net_offload __rcu **offloads; in skb_udp_tunnel_segment() local
170 offloads = is_ipv6 ? inet6_offloads : inet_offloads; in skb_udp_tunnel_segment()
171 ops = rcu_dereference(offloads[skb->inner_ipproto]); in skb_udp_tunnel_segment()
/Linux-v5.15/Documentation/networking/
Dindex.rst33 checksum-offloads
34 segmentation-offloads
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)
Dsegmentation-offloads.rst68 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-v5.15/drivers/net/hyperv/
Drndis_filter.c1349 struct ndis_offload_params offloads; in rndis_netdev_set_hwcaps() local
1359 memset(&offloads, 0, sizeof(struct ndis_offload_params)); in rndis_netdev_set_hwcaps()
1362 offloads.ip_v4_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED; in rndis_netdev_set_hwcaps()
1378 offloads.tcp_ip_v4_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED; in rndis_netdev_set_hwcaps()
1381 offloads.lso_v2_ipv4 = NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED; in rndis_netdev_set_hwcaps()
1389 offloads.udp_ip_v4_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED; in rndis_netdev_set_hwcaps()
1397 offloads.tcp_ip_v6_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED; in rndis_netdev_set_hwcaps()
1402 offloads.lso_v2_ipv6 = NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED; in rndis_netdev_set_hwcaps()
1410 offloads.udp_ip_v6_csum = NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED; in rndis_netdev_set_hwcaps()
1419 offloads.rsc_ip_v4 = NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED; in rndis_netdev_set_hwcaps()
[all …]
/Linux-v5.15/Documentation/infiniband/
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-v5.15/drivers/net/
Dvirtio_net.c178 __virtio64 offloads; member
2465 static int virtnet_set_guest_offloads(struct virtnet_info *vi, u64 offloads) in virtnet_set_guest_offloads() argument
2468 vi->ctrl->offloads = cpu_to_virtio64(vi->vdev, offloads); in virtnet_set_guest_offloads()
2470 sg_init_one(&sg, &vi->ctrl->offloads, sizeof(vi->ctrl->offloads)); in virtnet_set_guest_offloads()
2483 u64 offloads = 0; in virtnet_clear_guest_offloads() local
2488 return virtnet_set_guest_offloads(vi, offloads); in virtnet_clear_guest_offloads()
2493 u64 offloads = vi->guest_offloads; in virtnet_restore_guest_offloads() local
2498 return virtnet_set_guest_offloads(vi, offloads); in virtnet_restore_guest_offloads()
2644 u64 offloads; in virtnet_set_features() local
2652 offloads = vi->guest_offloads_capable; in virtnet_set_features()
[all …]
/Linux-v5.15/Documentation/networking/device_drivers/ethernet/freescale/
Dgianfar.rst16 in hardware. The Linux kernel only offloads the TCP and UDP
/Linux-v5.15/drivers/net/ethernet/mellanox/mlx5/core/en/rep/
Dtc.c97 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_rep_update_flows()
123 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_rep_update_flows()
677 err = mapping_find(esw->offloads.reg_c0_obj_pool, reg_c0, &mapped_obj); in mlx5e_rep_tc_update_skb()
/Linux-v5.15/drivers/net/ethernet/mellanox/mlx5/core/en/tc/
Dsample.c561 err = mapping_add(esw->offloads.reg_c0_obj_pool, &restore_obj, &obj_id); in mlx5e_tc_sample_offload()
612 mapping_remove(esw->offloads.reg_c0_obj_pool, obj_id); in mlx5e_tc_sample_offload()
658 mapping_remove(esw->offloads.reg_c0_obj_pool, attr->sample_attr->restore_obj_id); in mlx5e_tc_sample_unoffload()
/Linux-v5.15/Documentation/networking/device_drivers/ethernet/mellanox/
Dmlx5.rst26 | Basic features, ethernet net device rx/tx offloads and XDP, are available with the most basic fla…
38 …ng this option will allow basic ethernet netdevice support with all of the standard rx/tx offloads.
72 | 2) `Switchdev mode (eswitch offloads) <https://www.mellanox.com/related-docs/prod_softw…
77 | IPoIB offloads & acceleration support.
269 offloads. The user configures eswitch to send/receive packets from/to
567 tc and eswitch offloads tracepoints:
604 Bridge offloads tracepoints:
/Linux-v5.15/drivers/vdpa/
DKconfig72 offloads depending on the actual device used and firmware version.

12