Home
last modified time | relevance | path

Searched refs:esw (Results 1 – 25 of 37) sorted by relevance

12

/Linux-v5.4/drivers/net/ethernet/mellanox/mlx5/core/
Deswitch_offloads.c51 #define fdb_prio_table(esw, chain, prio, level) \ argument
52 (esw)->fdb_table.offloads.fdb_prio[(chain)][(prio)][(level)]
56 static struct mlx5_eswitch_rep *mlx5_eswitch_get_rep(struct mlx5_eswitch *esw, in mlx5_eswitch_get_rep() argument
59 int idx = mlx5_eswitch_vport_num_to_index(esw, vport_num); in mlx5_eswitch_get_rep()
61 WARN_ON(idx > esw->total_vports - 1); in mlx5_eswitch_get_rep()
62 return &esw->offloads.vport_reps[idx]; in mlx5_eswitch_get_rep()
66 esw_get_prio_table(struct mlx5_eswitch *esw, u32 chain, u16 prio, int level);
68 esw_put_prio_table(struct mlx5_eswitch *esw, u32 chain, u16 prio, int level);
70 bool mlx5_eswitch_prios_supported(struct mlx5_eswitch *esw) in mlx5_eswitch_prios_supported() argument
72 return (!!(esw->fdb_table.flags & ESW_FDB_CHAINS_AND_PRIOS_SUPPORTED)); in mlx5_eswitch_prios_supported()
[all …]
Deswitch.c61 static void esw_destroy_legacy_fdb_table(struct mlx5_eswitch *esw);
62 static void esw_cleanup_vepa_rules(struct mlx5_eswitch *esw);
65 mlx5_eswitch_get_vport(struct mlx5_eswitch *esw, u16 vport_num) in mlx5_eswitch_get_vport() argument
69 if (!esw || !MLX5_CAP_GEN(esw->dev, vport_group_manager)) in mlx5_eswitch_get_vport()
72 idx = mlx5_eswitch_vport_num_to_index(esw, vport_num); in mlx5_eswitch_get_vport()
74 if (idx > esw->total_vports - 1) { in mlx5_eswitch_get_vport()
75 esw_debug(esw->dev, "vport out of range: num(0x%x), idx(0x%x)\n", in mlx5_eswitch_get_vport()
80 return &esw->vports[idx]; in mlx5_eswitch_get_vport()
126 int mlx5_eswitch_modify_esw_vport_context(struct mlx5_eswitch *esw, u16 vport, in mlx5_eswitch_modify_esw_vport_context() argument
129 return modify_esw_vport_context_cmd(esw->dev, vport, in, inlen); in mlx5_eswitch_modify_esw_vport_context()
[all …]
Deswitch.h205 struct mlx5_eswitch *esw; member
248 void esw_offloads_disable(struct mlx5_eswitch *esw);
249 int esw_offloads_enable(struct mlx5_eswitch *esw);
250 void esw_offloads_cleanup_reps(struct mlx5_eswitch *esw);
251 int esw_offloads_init_reps(struct mlx5_eswitch *esw);
252 void esw_vport_cleanup_ingress_rules(struct mlx5_eswitch *esw,
254 int esw_vport_enable_ingress_acl(struct mlx5_eswitch *esw,
256 void esw_vport_cleanup_egress_rules(struct mlx5_eswitch *esw,
258 int esw_vport_enable_egress_acl(struct mlx5_eswitch *esw,
260 void esw_vport_disable_egress_acl(struct mlx5_eswitch *esw,
[all …]
Deswitch_offloads_termtbl.c93 mlx5_eswitch_termtbl_get_create(struct mlx5_eswitch *esw, in mlx5_eswitch_termtbl_get_create() argument
102 mutex_lock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_get_create()
105 hash_for_each_possible(esw->offloads.termtbl_tbl, tt, in mlx5_eswitch_termtbl_get_create()
127 err = mlx5_eswitch_termtbl_create(esw->dev, tt, flow_act); in mlx5_eswitch_termtbl_get_create()
129 esw_warn(esw->dev, "Failed to create termination table\n"); in mlx5_eswitch_termtbl_get_create()
132 hash_add(esw->offloads.termtbl_tbl, &tt->termtbl_hlist, hash_key); in mlx5_eswitch_termtbl_get_create()
135 mutex_unlock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_get_create()
139 mutex_unlock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_get_create()
144 mlx5_eswitch_termtbl_put(struct mlx5_eswitch *esw, in mlx5_eswitch_termtbl_put() argument
147 mutex_lock(&esw->offloads.termtbl_mutex); in mlx5_eswitch_termtbl_put()
[all …]
Den_tc.c302 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; in get_mod_hdr_table() local
304 return namespace == MLX5_FLOW_NAMESPACE_FDB ? &esw->offloads.mod_hdr : in get_mod_hdr_table()
1031 mlx5e_tc_offload_fdb_rules(struct mlx5_eswitch *esw, in mlx5e_tc_offload_fdb_rules() argument
1038 rule = mlx5_eswitch_add_offloaded_rule(esw, spec, attr); in mlx5e_tc_offload_fdb_rules()
1043 flow->rule[1] = mlx5_eswitch_add_fwd_rule(esw, spec, attr); in mlx5e_tc_offload_fdb_rules()
1045 mlx5_eswitch_del_offloaded_rule(esw, rule, attr); in mlx5e_tc_offload_fdb_rules()
1054 mlx5e_tc_unoffload_fdb_rules(struct mlx5_eswitch *esw, in mlx5e_tc_unoffload_fdb_rules() argument
1061 mlx5_eswitch_del_fwd_rule(esw, flow->rule[1], attr); in mlx5e_tc_unoffload_fdb_rules()
1063 mlx5_eswitch_del_offloaded_rule(esw, flow->rule[0], attr); in mlx5e_tc_unoffload_fdb_rules()
1067 mlx5e_tc_offload_to_slow_path(struct mlx5_eswitch *esw, in mlx5e_tc_offload_to_slow_path() argument
[all …]
Den_rep.c137 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; in mlx5e_rep_update_hw_counters() local
144 err = mlx5_eswitch_get_vport_stats(esw, rep->vport, &vf_stats); in mlx5e_rep_update_hw_counters()
240 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; in mlx5e_replace_rep_vport_rx_rule() local
245 flow_rule = mlx5_eswitch_create_vport_rx_rule(esw, in mlx5e_replace_rep_vport_rx_rule()
408 static void mlx5e_sqs2vport_stop(struct mlx5_eswitch *esw, in mlx5e_sqs2vport_stop() argument
414 if (esw->mode != MLX5_ESWITCH_OFFLOADS) in mlx5e_sqs2vport_stop()
425 static int mlx5e_sqs2vport_start(struct mlx5_eswitch *esw, in mlx5e_sqs2vport_start() argument
435 if (esw->mode != MLX5_ESWITCH_OFFLOADS) in mlx5e_sqs2vport_start()
447 flow_rule = mlx5_eswitch_add_send_to_vport_rule(esw, in mlx5e_sqs2vport_start()
461 mlx5e_sqs2vport_stop(esw, rep); in mlx5e_sqs2vport_start()
[all …]
/Linux-v5.4/include/linux/mlx5/
Deswitch.h53 void mlx5_eswitch_register_vport_reps(struct mlx5_eswitch *esw,
56 void mlx5_eswitch_unregister_vport_reps(struct mlx5_eswitch *esw, u8 rep_type);
57 void *mlx5_eswitch_get_proto_dev(struct mlx5_eswitch *esw,
60 struct mlx5_eswitch_rep *mlx5_eswitch_vport_rep(struct mlx5_eswitch *esw,
62 void *mlx5_eswitch_uplink_get_proto_dev(struct mlx5_eswitch *esw, u8 rep_type);
64 mlx5_eswitch_add_send_to_vport_rule(struct mlx5_eswitch *esw,
73 bool mlx5_eswitch_vport_match_metadata_enabled(const struct mlx5_eswitch *esw);
74 u32 mlx5_eswitch_get_vport_metadata_for_match(const struct mlx5_eswitch *esw,
76 u8 mlx5_eswitch_mode(struct mlx5_eswitch *esw);
79 static inline u8 mlx5_eswitch_mode(struct mlx5_eswitch *esw) in mlx5_eswitch_mode() argument
[all …]
/Linux-v5.4/drivers/s390/cio/
Ddevice_status.c124 cdev_irb->esw.esw1.lpum = irb->esw.esw1.lpum; in ccw_device_accumulate_esw()
128 cdev_sublog = &cdev_irb->esw.esw0.sublog; in ccw_device_accumulate_esw()
129 sublog = &irb->esw.esw0.sublog; in ccw_device_accumulate_esw()
158 cdev_irb->esw.esw0.erw.cpt = irb->esw.esw0.erw.cpt; in ccw_device_accumulate_esw()
160 cdev_irb->esw.esw0.erw.fsavf = irb->esw.esw0.erw.fsavf; in ccw_device_accumulate_esw()
161 if (cdev_irb->esw.esw0.erw.fsavf) { in ccw_device_accumulate_esw()
163 memcpy(cdev_irb->esw.esw0.faddr, irb->esw.esw0.faddr, in ccw_device_accumulate_esw()
164 sizeof (irb->esw.esw0.faddr)); in ccw_device_accumulate_esw()
166 cdev_irb->esw.esw0.erw.fsaf = irb->esw.esw0.erw.fsaf; in ccw_device_accumulate_esw()
169 cdev_irb->esw.esw0.erw.scavf = irb->esw.esw0.erw.scavf; in ccw_device_accumulate_esw()
[all …]
Dccwreq.c186 if (irb->esw.esw0.erw.cons) { in ccwreq_status()
Deadm_sch.c140 && scsw->eswf == 1 && irb->esw.eadm.erw.r) in eadm_subchannel_irq()
/Linux-v5.4/drivers/infiniband/hw/mlx5/
Dib_rep.c99 struct mlx5_eswitch *esw = mdev->priv.eswitch; in mlx5_ib_register_vport_reps() local
101 mlx5_eswitch_register_vport_reps(esw, &rep_ops, REP_IB); in mlx5_ib_register_vport_reps()
106 struct mlx5_eswitch *esw = mdev->priv.eswitch; in mlx5_ib_unregister_vport_reps() local
108 mlx5_eswitch_unregister_vport_reps(esw, REP_IB); in mlx5_ib_unregister_vport_reps()
111 u8 mlx5_ib_eswitch_mode(struct mlx5_eswitch *esw) in mlx5_ib_eswitch_mode() argument
113 return mlx5_eswitch_mode(esw); in mlx5_ib_eswitch_mode()
116 struct mlx5_ib_dev *mlx5_ib_get_rep_ibdev(struct mlx5_eswitch *esw, in mlx5_ib_get_rep_ibdev() argument
119 return mlx5_eswitch_get_proto_dev(esw, vport_num, REP_IB); in mlx5_ib_get_rep_ibdev()
122 struct net_device *mlx5_ib_get_rep_netdev(struct mlx5_eswitch *esw, in mlx5_ib_get_rep_netdev() argument
125 return mlx5_eswitch_get_proto_dev(esw, vport_num, REP_ETH); in mlx5_ib_get_rep_netdev()
[all …]
Dib_rep.h15 u8 mlx5_ib_eswitch_mode(struct mlx5_eswitch *esw);
16 struct mlx5_ib_dev *mlx5_ib_get_rep_ibdev(struct mlx5_eswitch *esw,
18 struct mlx5_ib_dev *mlx5_ib_get_uplink_ibdev(struct mlx5_eswitch *esw);
19 struct mlx5_eswitch_rep *mlx5_ib_vport_rep(struct mlx5_eswitch *esw,
26 struct net_device *mlx5_ib_get_rep_netdev(struct mlx5_eswitch *esw,
29 static inline u8 mlx5_ib_eswitch_mode(struct mlx5_eswitch *esw) in mlx5_ib_eswitch_mode() argument
35 struct mlx5_ib_dev *mlx5_ib_get_rep_ibdev(struct mlx5_eswitch *esw, in mlx5_ib_get_rep_ibdev() argument
42 struct mlx5_ib_dev *mlx5_ib_get_uplink_ibdev(struct mlx5_eswitch *esw) in mlx5_ib_get_uplink_ibdev() argument
48 struct mlx5_eswitch_rep *mlx5_ib_vport_rep(struct mlx5_eswitch *esw, in mlx5_ib_vport_rep() argument
65 struct net_device *mlx5_ib_get_rep_netdev(struct mlx5_eswitch *esw, in mlx5_ib_get_rep_netdev() argument
/Linux-v5.4/Documentation/devicetree/bindings/net/
Dralink,rt3050-esw.txt8 - compatible: Should be "ralink,rt3050-esw"
12 - reset-names: Should contain the reset names "esw"
21 esw@10110000 {
22 compatible = "ralink,rt3050-esw";
26 reset-names = "esw";
Dmediatek-net.txt21 "ethif", "esw", "gp2", "gp1" : For MT2701 and MT7623 SoC
22 "ethif", "esw", "gp0", "gp1", "gp2", "sgmii_tx250m", "sgmii_rx250m",
24 "ethif", "sgmiitop", "esw", "gp0", "gp1", "gp2", "fe", "sgmii_tx250m",
63 clock-names = "ethif", "esw", "gp2", "gp1";
Dralink,rt2880-net.txt20 "esw" is also required.
/Linux-v5.4/arch/mips/include/asm/octeon/
Dcvmx-sli-defs.h108 __BITFIELD_FIELD(uint64_t esw:2,
120 __BITFIELD_FIELD(uint64_t esw:2,
Dcvmx-npi-defs.h1562 uint64_t esw:2; member
1574 uint64_t esw:2;
1585 uint64_t esw:2; member
1597 uint64_t esw:2;
/Linux-v5.4/drivers/net/ethernet/mellanox/mlx5/core/en/
Dtc_tun.c29 struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; in get_route_and_out_devs() local
33 uplink_dev = mlx5_eswitch_uplink_get_proto_dev(esw, REP_ETH); in get_route_and_out_devs()
89 struct mlx5_eswitch *esw = mdev->priv.eswitch; in mlx5e_route_lookup_ipv4() local
91 uplink_dev = mlx5_eswitch_uplink_get_proto_dev(esw, REP_ETH); in mlx5e_route_lookup_ipv4()
/Linux-v5.4/arch/s390/include/asm/
Dcio.h243 } esw; member
/Linux-v5.4/Documentation/devicetree/bindings/pinctrl/
Dpinctrl-mt7622.txt208 "esw" "eth" 51, 52, 53, 54, 55, 56,
479 mux-esw {
480 groups = "esw";
/Linux-v5.4/drivers/s390/block/
Ddasd_3990_erp.c157 ~(erp->irb.esw.esw0.sublog.lpum); in dasd_3990_erp_alternate_path()
159 erp->lpm &= ~(erp->irb.esw.esw0.sublog.lpum); in dasd_3990_erp_alternate_path()
165 erp->lpm, erp->irb.esw.esw0.sublog.lpum, opm); in dasd_3990_erp_alternate_path()
173 "/opm=%x)\n", erp->irb.esw.esw0.sublog.lpum, opm); in dasd_3990_erp_alternate_path()
2246 __u8 lpum = erp->refers->irb.esw.esw1.lpum; in dasd_3990_erp_account_error()
/Linux-v5.4/arch/mips/pci/
Dpci-octeon.c600 mem_access.s.esw = 1; /* Endian-Swap on write. */ in octeon_pci_setup()
Dpcie-octeon.c893 mem_access_subid.s.esw = 1; /* Endian-swap for Writes. */ in __cvmx_pcie_rc_initialize_gen1()
1345 mem_access_subid.s.esw = 1; /* Endian-swap for Writes. */ in __cvmx_pcie_rc_initialize_gen2()
/Linux-v5.4/arch/arm/boot/dts/
Dmt7629.dtsi448 clock-names = "ethif", "sgmiitop", "esw", "gp0", "gp1",
/Linux-v5.4/Documentation/s390/
Dcds.rst318 If the concurrent sense flag in the extended status word (esw) in the irb is
319 set, the field erw.scnt in the esw describes the number of device specific

12