void bfa_fcs_port_loop_online(struct bfa_fcs_port_s *port) { u8 num_alpa = port->port_topo.ploop.num_alpa; u8 *alpa_pos_map = port->port_topo.ploop.alpa_pos_map; struct bfa_fcs_rport_s *r_port; int ii = 0; if (port->port_cfg.roles == BFA_PORT_ROLE_FCP_IM) { if (num_alpa > 0) { for (ii = 0; ii < num_alpa; ii++) { if (alpa_pos_map[ii] != port->pid) { r_port = bfa_fcs_rport_create(port, alpa_pos_map[ii]); } } } else { for (ii = 0; ii < MAX_ALPA_COUNT; ii++) { if ((port_loop_alpa_map[ii] > 0) && (port_loop_alpa_map[ii] != port->pid)) bfa_fcs_port_loop_send_plogi(port, port_loop_alpa_map[ii]); } } } else { } }
/** * Called by port to notify transition to online state. */ void bfa_fcs_port_loop_online(struct bfa_fcs_port_s *port) { u8 num_alpa = port->port_topo.ploop.num_alpa; u8 *alpa_pos_map = port->port_topo.ploop.alpa_pos_map; struct bfa_fcs_rport_s *r_port; int ii = 0; /* * If the port role is Initiator Mode, create Rports. */ if (port->port_cfg.roles == BFA_PORT_ROLE_FCP_IM) { /* * Check if the ALPA positional bitmap is available. * if not, we send PLOGI to all possible ALPAs. */ if (num_alpa > 0) { for (ii = 0; ii < num_alpa; ii++) { /* * ignore ALPA of bfa port */ if (alpa_pos_map[ii] != port->pid) { r_port = bfa_fcs_rport_create(port, alpa_pos_map[ii]); } } } else { for (ii = 0; ii < MAX_ALPA_COUNT; ii++) { /* * ignore ALPA of bfa port */ if ((port_loop_alpa_map[ii] > 0) && (port_loop_alpa_map[ii] != port->pid)) bfa_fcs_port_loop_send_plogi(port, port_loop_alpa_map[ii]); /**TBD */ } } } else { /* * TBD Target Mode ?? */ } }