/** * Lookup a virtual port. Excludes base port from lookup. */ struct bfa_fcs_vport_s * bfa_fcs_vport_lookup(struct bfa_fcs_s *fcs, u16 vf_id, wwn_t vpwwn) { struct bfa_fcs_vport_s *vport; struct bfa_fcs_fabric_s *fabric; bfa_trc(fcs, vf_id); bfa_trc(fcs, vpwwn); fabric = bfa_fcs_vf_lookup(fcs, vf_id); if (!fabric) { bfa_trc(fcs, vf_id); return NULL; } vport = bfa_fcs_fabric_vport_lookup(fabric, vpwwn); return vport; }
struct bfa_fcs_port_s * bfa_fcs_lookup_port(struct bfa_fcs_s *fcs, u16 vf_id, wwn_t lpwwn) { struct bfa_fcs_vport_s *vport; bfa_fcs_vf_t *vf; bfa_assert(fcs != NULL); vf = bfa_fcs_vf_lookup(fcs, vf_id); if (vf == NULL) { bfa_trc(fcs, vf_id); return NULL; } if (!lpwwn || (vf->bport.port_cfg.pwwn == lpwwn)) return &vf->bport; vport = bfa_fcs_fabric_vport_lookup(vf, lpwwn); if (vport) return &vport->lport; return NULL; }