/linux/drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ |
A D | ingress_ofld.c | 43 if (vport->ingress.offloads.modify_metadata_rule) { 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() 95 vport->ingress.offloads.modify_metadata_rule = in esw_acl_ingress_mod_metadata_create() 104 vport->ingress.offloads.modify_metadata_rule = NULL; in esw_acl_ingress_mod_metadata_create() 112 if (!vport->ingress.offloads.modify_metadata_rule) in esw_acl_ingress_mod_metadata_destroy() 117 vport->ingress.offloads.modify_metadata_rule = NULL; in esw_acl_ingress_mod_metadata_destroy() 192 vport->ingress.offloads.metadata_prio_tag_grp = g; in esw_acl_ingress_ofld_groups_create() 212 vport->ingress.offloads.metadata_allmatch_grp = g; in esw_acl_ingress_ofld_groups_create() 230 if (vport->ingress.offloads.metadata_allmatch_grp) { in esw_acl_ingress_ofld_groups_destroy() [all …]
|
A D | egress_ofld.c | 11 if (!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() 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() 142 vport->egress.offloads.fwd_grp = fwd_grp; in esw_acl_egress_ofld_groups_create() 156 vport->egress.offloads.fwd_grp = NULL; in esw_acl_egress_ofld_groups_destroy() [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/ |
A D | eswitch_offloads.c | 843 struct offloads_fdb *offloads = &esw->fdb_table.offloads; in mlx5_eswitch_add_vlan_action() local 912 struct offloads_fdb *offloads = &esw->fdb_table.offloads; in mlx5_eswitch_del_vlan_action() local 1930 struct mlx5_esw_offload *offloads = &esw->offloads; in esw_destroy_offloads_table() local 1962 esw->offloads.vport_rx_group = g; in esw_create_vport_rx_group() 2061 struct mlx5_esw_offload *offloads = &esw->offloads; in esw_destroy_restore_table() local 2145 esw->offloads.restore_group = g; in esw_create_restore_table() 3475 esw->offloads.inline_mode); in mlx5_esw_vports_inline_set() 3587 esw->offloads.encap = encap; in mlx5_devlink_eswitch_encap_mode_set() 3603 esw->offloads.encap = encap; in mlx5_devlink_eswitch_encap_mode_set() 3610 esw->offloads.encap = !encap; in mlx5_devlink_eswitch_encap_mode_set() [all …]
|
A D | eswitch_offloads_termtbl.c | 120 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()
|
A D | eswitch.c | 1567 mutex_init(&esw->offloads.encap_tbl_lock); in mlx5_eswitch_init() 1568 hash_init(esw->offloads.encap_tbl); in mlx5_eswitch_init() 1569 mutex_init(&esw->offloads.decap_tbl_lock); in mlx5_eswitch_init() 1570 hash_init(esw->offloads.decap_tbl); in mlx5_eswitch_init() 1571 mlx5e_mod_hdr_tbl_init(&esw->offloads.mod_hdr); in mlx5_eswitch_init() 1572 atomic64_set(&esw->offloads.num_flows, 0); in mlx5_eswitch_init() 1573 ida_init(&esw->offloads.vport_metadata_ida); in mlx5_eswitch_init() 1619 WARN_ON(!xa_empty(&esw->offloads.vhca_map)); in mlx5_eswitch_cleanup() 1620 xa_destroy(&esw->offloads.vhca_map); in mlx5_eswitch_cleanup() 1623 mutex_destroy(&esw->offloads.encap_tbl_lock); in mlx5_eswitch_cleanup() [all …]
|
A D | Kconfig | 78 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.
|
A D | eswitch.h | 85 ((esw)->fdb_table.offloads.esw_chains_priv) 118 } offloads; member 136 } offloads; member 230 } offloads; member 318 struct mlx5_esw_offload offloads; member
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/ |
A D | tc_tun_encap.c | 390 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_tc_update_neigh_used_value() 504 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_encap() 527 mutex_lock(&esw->offloads.decap_tbl_lock); in mlx5e_detach_decap() 773 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_attach_encap() 828 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_attach_encap() 903 mutex_lock(&esw->offloads.decap_tbl_lock); in mlx5e_attach_decap() 940 mutex_lock(&esw->offloads.decap_tbl_lock); in mlx5e_attach_decap() 1156 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_attach_decap_route() 1267 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_decap_route() 1292 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_detach_encap_route() [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/esw/ |
A D | vporttbl.c | 65 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()
|
A D | indir_table.c | 427 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()
|
/linux/kernel/bpf/ |
A D | offload.c | 113 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/net/ipv4/ |
A D | fou.c | 233 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 …]
|
A D | udp_offload.c | 155 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/drivers/net/hyperv/ |
A D | rndis_filter.c | 1349 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() 1402 offloads.lso_v2_ipv6 = NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED; in rndis_netdev_set_hwcaps() 1419 offloads.rsc_ip_v4 = NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED; in rndis_netdev_set_hwcaps() 1420 offloads.rsc_ip_v6 = NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED; in rndis_netdev_set_hwcaps() 1422 offloads.rsc_ip_v4 = NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED; in rndis_netdev_set_hwcaps() 1423 offloads.rsc_ip_v6 = NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED; in rndis_netdev_set_hwcaps() [all …]
|
A D | netvsc_drv.c | 1947 struct ndis_offload_params offloads; in netvsc_set_features() local 1956 memset(&offloads, 0, sizeof(struct ndis_offload_params)); in netvsc_set_features() 1959 offloads.rsc_ip_v4 = NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED; in netvsc_set_features() 1960 offloads.rsc_ip_v6 = NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED; in netvsc_set_features() 1962 offloads.rsc_ip_v4 = NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED; in netvsc_set_features() 1963 offloads.rsc_ip_v6 = NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED; in netvsc_set_features() 1966 ret = rndis_filter_set_offload_params(ndev, nvdev, &offloads); in netvsc_set_features()
|
/linux/Documentation/networking/ |
A D | index.rst | 33 checksum-offloads 34 segmentation-offloads
|
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)
|
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
|
/linux/Documentation/infiniband/ |
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/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ |
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()
|
A D | sample.c | 555 err = mapping_add(esw->offloads.reg_c0_obj_pool, &restore_obj, &obj_id); in mlx5e_tc_sample_offload() 606 mapping_remove(esw->offloads.reg_c0_obj_pool, obj_id); in mlx5e_tc_sample_offload() 639 mapping_remove(esw->offloads.reg_c0_obj_pool, attr->sample_attr->restore_obj_id); in mlx5e_tc_sample_unoffload()
|
/linux/drivers/net/ |
A D | virtio_net.c | 180 __virtio64 offloads; member 2484 vi->ctrl->offloads = cpu_to_virtio64(vi->vdev, offloads); in virtnet_set_guest_offloads() 2486 sg_init_one(&sg, &vi->ctrl->offloads, sizeof(vi->ctrl->offloads)); in virtnet_set_guest_offloads() 2499 u64 offloads = 0; in virtnet_clear_guest_offloads() local 2504 return virtnet_set_guest_offloads(vi, offloads); in virtnet_clear_guest_offloads() 2509 u64 offloads = vi->guest_offloads; in virtnet_restore_guest_offloads() local 2514 return virtnet_set_guest_offloads(vi, offloads); in virtnet_restore_guest_offloads() 2660 u64 offloads; in virtnet_set_features() local 2668 offloads = vi->guest_offloads_capable; in virtnet_set_features() 2670 offloads = vi->guest_offloads_capable & in virtnet_set_features() [all …]
|
/linux/Documentation/networking/device_drivers/ethernet/freescale/ |
A D | gianfar.rst | 16 in hardware. The Linux kernel only offloads the TCP and UDP
|
/linux/Documentation/networking/device_drivers/ethernet/mellanox/ |
A D | mlx5.rst | 26 | 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 569 tc and eswitch offloads tracepoints: 606 Bridge offloads tracepoints:
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/rep/ |
A D | tc.c | 101 mutex_lock(&esw->offloads.encap_tbl_lock); in mlx5e_rep_update_flows() 127 mutex_unlock(&esw->offloads.encap_tbl_lock); in mlx5e_rep_update_flows() 746 err = mapping_find(esw->offloads.reg_c0_obj_pool, reg_c0, &mapped_obj); in mlx5e_rep_tc_receive()
|