Lines Matching refs:span_entry

63 mlxsw_sp_span_entry_phys_configure(struct mlxsw_sp_span_entry *span_entry,  in mlxsw_sp_span_entry_phys_configure()  argument
70 int pa_id = span_entry->id; in mlxsw_sp_span_entry_phys_configure()
80 mlxsw_sp_span_entry_deconfigure_common(struct mlxsw_sp_span_entry *span_entry, in mlxsw_sp_span_entry_deconfigure_common() argument
83 struct mlxsw_sp_port *dest_port = span_entry->parms.dest_port; in mlxsw_sp_span_entry_deconfigure_common()
87 int pa_id = span_entry->id; in mlxsw_sp_span_entry_deconfigure_common()
94 mlxsw_sp_span_entry_phys_deconfigure(struct mlxsw_sp_span_entry *span_entry) in mlxsw_sp_span_entry_phys_deconfigure() argument
96 mlxsw_sp_span_entry_deconfigure_common(span_entry, in mlxsw_sp_span_entry_phys_deconfigure()
354 mlxsw_sp_span_entry_gretap4_configure(struct mlxsw_sp_span_entry *span_entry, in mlxsw_sp_span_entry_gretap4_configure() argument
361 int pa_id = span_entry->id; in mlxsw_sp_span_entry_gretap4_configure()
379 mlxsw_sp_span_entry_gretap4_deconfigure(struct mlxsw_sp_span_entry *span_entry) in mlxsw_sp_span_entry_gretap4_deconfigure() argument
381 mlxsw_sp_span_entry_deconfigure_common(span_entry, in mlxsw_sp_span_entry_gretap4_deconfigure()
455 mlxsw_sp_span_entry_gretap6_configure(struct mlxsw_sp_span_entry *span_entry, in mlxsw_sp_span_entry_gretap6_configure() argument
462 int pa_id = span_entry->id; in mlxsw_sp_span_entry_gretap6_configure()
479 mlxsw_sp_span_entry_gretap6_deconfigure(struct mlxsw_sp_span_entry *span_entry) in mlxsw_sp_span_entry_gretap6_deconfigure() argument
481 mlxsw_sp_span_entry_deconfigure_common(span_entry, in mlxsw_sp_span_entry_gretap6_deconfigure()
518 mlxsw_sp_span_entry_vlan_configure(struct mlxsw_sp_span_entry *span_entry, in mlxsw_sp_span_entry_vlan_configure() argument
525 int pa_id = span_entry->id; in mlxsw_sp_span_entry_vlan_configure()
535 mlxsw_sp_span_entry_vlan_deconfigure(struct mlxsw_sp_span_entry *span_entry) in mlxsw_sp_span_entry_vlan_deconfigure() argument
537 mlxsw_sp_span_entry_deconfigure_common(span_entry, in mlxsw_sp_span_entry_vlan_deconfigure()
569 mlxsw_sp_span_entry_nop_configure(struct mlxsw_sp_span_entry *span_entry, in mlxsw_sp_span_entry_nop_configure() argument
576 mlxsw_sp_span_entry_nop_deconfigure(struct mlxsw_sp_span_entry *span_entry) in mlxsw_sp_span_entry_nop_deconfigure() argument
588 struct mlxsw_sp_span_entry *span_entry, in mlxsw_sp_span_entry_configure() argument
593 … netdev_err(span_entry->to_dev, "Cannot mirror to %s, which belongs to a different mlxsw instance", in mlxsw_sp_span_entry_configure()
596 } else if (span_entry->ops->configure(span_entry, sparms)) { in mlxsw_sp_span_entry_configure()
597 netdev_err(span_entry->to_dev, "Failed to offload mirror to %s", in mlxsw_sp_span_entry_configure()
603 span_entry->parms = sparms; in mlxsw_sp_span_entry_configure()
607 mlxsw_sp_span_entry_deconfigure(struct mlxsw_sp_span_entry *span_entry) in mlxsw_sp_span_entry_deconfigure() argument
609 if (span_entry->parms.dest_port) in mlxsw_sp_span_entry_deconfigure()
610 span_entry->ops->deconfigure(span_entry); in mlxsw_sp_span_entry_deconfigure()
619 struct mlxsw_sp_span_entry *span_entry = NULL; in mlxsw_sp_span_entry_create() local
625 span_entry = &mlxsw_sp->span.entries[i]; in mlxsw_sp_span_entry_create()
629 if (!span_entry) in mlxsw_sp_span_entry_create()
632 span_entry->ops = ops; in mlxsw_sp_span_entry_create()
633 span_entry->ref_count = 1; in mlxsw_sp_span_entry_create()
634 span_entry->to_dev = to_dev; in mlxsw_sp_span_entry_create()
635 mlxsw_sp_span_entry_configure(mlxsw_sp, span_entry, sparms); in mlxsw_sp_span_entry_create()
637 return span_entry; in mlxsw_sp_span_entry_create()
640 static void mlxsw_sp_span_entry_destroy(struct mlxsw_sp_span_entry *span_entry) in mlxsw_sp_span_entry_destroy() argument
642 mlxsw_sp_span_entry_deconfigure(span_entry); in mlxsw_sp_span_entry_destroy()
661 struct mlxsw_sp_span_entry *span_entry) in mlxsw_sp_span_entry_invalidate() argument
663 mlxsw_sp_span_entry_deconfigure(span_entry); in mlxsw_sp_span_entry_invalidate()
664 span_entry->ops = &mlxsw_sp_span_entry_ops_nop; in mlxsw_sp_span_entry_invalidate()
687 struct mlxsw_sp_span_entry *span_entry; in mlxsw_sp_span_entry_get() local
689 span_entry = mlxsw_sp_span_entry_find_by_port(mlxsw_sp, to_dev); in mlxsw_sp_span_entry_get()
690 if (span_entry) { in mlxsw_sp_span_entry_get()
692 span_entry->ref_count++; in mlxsw_sp_span_entry_get()
693 return span_entry; in mlxsw_sp_span_entry_get()
700 struct mlxsw_sp_span_entry *span_entry) in mlxsw_sp_span_entry_put() argument
702 WARN_ON(!span_entry->ref_count); in mlxsw_sp_span_entry_put()
703 if (--span_entry->ref_count == 0) in mlxsw_sp_span_entry_put()
704 mlxsw_sp_span_entry_destroy(span_entry); in mlxsw_sp_span_entry_put()
756 mlxsw_sp_span_entry_bound_port_find(struct mlxsw_sp_span_entry *span_entry, in mlxsw_sp_span_entry_bound_port_find() argument
763 list_for_each_entry(p, &span_entry->bound_ports_list, list) in mlxsw_sp_span_entry_bound_port_find()
773 struct mlxsw_sp_span_entry *span_entry, in mlxsw_sp_span_inspected_port_bind() argument
779 int pa_id = span_entry->id; in mlxsw_sp_span_inspected_port_bind()
789 struct mlxsw_sp_span_entry *span_entry, in mlxsw_sp_span_inspected_port_add() argument
826 err = mlxsw_sp_span_inspected_port_bind(port, span_entry, type, in mlxsw_sp_span_inspected_port_add()
840 list_add_tail(&inspected_port->list, &span_entry->bound_ports_list); in mlxsw_sp_span_inspected_port_add()
846 mlxsw_sp_span_inspected_port_bind(port, span_entry, type, in mlxsw_sp_span_inspected_port_add()
858 struct mlxsw_sp_span_entry *span_entry, in mlxsw_sp_span_inspected_port_del() argument
866 inspected_port = mlxsw_sp_span_entry_bound_port_find(span_entry, type, in mlxsw_sp_span_inspected_port_del()
872 mlxsw_sp_span_inspected_port_bind(port, span_entry, type, in mlxsw_sp_span_inspected_port_del()
880 mlxsw_sp_span_entry_put(mlxsw_sp, span_entry); in mlxsw_sp_span_inspected_port_del()
907 struct mlxsw_sp_span_entry *span_entry; in mlxsw_sp_span_mirror_add() local
920 span_entry = mlxsw_sp_span_entry_get(mlxsw_sp, to_dev, ops, sparms); in mlxsw_sp_span_mirror_add()
921 if (!span_entry) in mlxsw_sp_span_mirror_add()
925 span_entry->id); in mlxsw_sp_span_mirror_add()
927 err = mlxsw_sp_span_inspected_port_add(from, span_entry, type, bind); in mlxsw_sp_span_mirror_add()
931 *p_span_id = span_entry->id; in mlxsw_sp_span_mirror_add()
935 mlxsw_sp_span_entry_put(mlxsw_sp, span_entry); in mlxsw_sp_span_mirror_add()
942 struct mlxsw_sp_span_entry *span_entry; in mlxsw_sp_span_mirror_del() local
944 span_entry = mlxsw_sp_span_entry_find_by_id(from->mlxsw_sp, span_id); in mlxsw_sp_span_mirror_del()
945 if (!span_entry) { in mlxsw_sp_span_mirror_del()
951 span_entry->id); in mlxsw_sp_span_mirror_del()
952 mlxsw_sp_span_inspected_port_del(from, span_entry, type, bind); in mlxsw_sp_span_mirror_del()