Example #1
0
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 {
		
	}

}
Example #2
0
/**
 *   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 ??
         */
    }

}