Lines Matching refs:lport
535 struct fc_lport *lport, in fcoe_ctlr_send_keep_alive() argument
581 memcpy(vn->fd_mac, fip->get_src_addr(lport), ETH_ALEN); in fcoe_ctlr_send_keep_alive()
582 hton24(vn->fd_fc_id, lport->port_id); in fcoe_ctlr_send_keep_alive()
583 put_unaligned_be64(lport->wwpn, &vn->fd_wwpn); in fcoe_ctlr_send_keep_alive()
608 static int fcoe_ctlr_encaps(struct fcoe_ctlr *fip, struct fc_lport *lport, in fcoe_ctlr_encaps() argument
629 if (lport->point_to_multipoint) { in fcoe_ctlr_encaps()
665 memcpy(mac->fd_mac, fip->get_src_addr(lport), ETH_ALEN); in fcoe_ctlr_encaps()
702 int fcoe_ctlr_els_send(struct fcoe_ctlr *fip, struct fc_lport *lport, in fcoe_ctlr_els_send() argument
779 fip->update_mac(lport, mac); in fcoe_ctlr_els_send()
795 if (fcoe_ctlr_encaps(fip, lport, op, skb, ntoh24(fh->fh_d_id))) in fcoe_ctlr_els_send()
1140 struct fc_lport *lport = fip->lp; in fcoe_ctlr_recv_els() local
1288 fr_dev(fp) = lport; in fcoe_ctlr_recv_els()
1291 stats = per_cpu_ptr(lport->stats, get_cpu()); in fcoe_ctlr_recv_els()
1296 fc_exch_recv(lport, fp); in fcoe_ctlr_recv_els()
1324 struct fc_lport *lport = fip->lp; in fcoe_ctlr_recv_clr_vlink() local
1333 if (!fcf || !lport->port_id) { in fcoe_ctlr_recv_clr_vlink()
1399 vn_port = fc_vport_id_lookup(lport, in fcoe_ctlr_recv_clr_vlink()
1401 if (vn_port && (vn_port == lport)) { in fcoe_ctlr_recv_clr_vlink()
1403 per_cpu_ptr(lport->stats, in fcoe_ctlr_recv_clr_vlink()
1433 per_cpu_ptr(lport->stats, get_cpu())->VLinkFailureCount++; in fcoe_ctlr_recv_clr_vlink()
1438 mutex_lock(&lport->lp_mutex); in fcoe_ctlr_recv_clr_vlink()
1439 list_for_each_entry(vn_port, &lport->vports, list) in fcoe_ctlr_recv_clr_vlink()
1441 mutex_unlock(&lport->lp_mutex); in fcoe_ctlr_recv_clr_vlink()
1451 vn_port = fc_vport_id_lookup(lport, in fcoe_ctlr_recv_clr_vlink()
1466 if (vn_port == lport) in fcoe_ctlr_recv_clr_vlink()
1870 int fcoe_ctlr_recv_flogi(struct fcoe_ctlr *fip, struct fc_lport *lport, in fcoe_ctlr_recv_flogi() argument
2091 static void fcoe_ctlr_vn_rport_callback(struct fc_lport *lport, in fcoe_ctlr_vn_rport_callback() argument
2095 struct fcoe_ctlr *fip = lport->disc.priv; in fcoe_ctlr_vn_rport_callback()
2114 lport->tt.rport_logoff(rdata); in fcoe_ctlr_vn_rport_callback()
2133 static void fcoe_ctlr_disc_stop_locked(struct fc_lport *lport) in fcoe_ctlr_disc_stop_locked() argument
2137 mutex_lock(&lport->disc.disc_mutex); in fcoe_ctlr_disc_stop_locked()
2138 list_for_each_entry_rcu(rdata, &lport->disc.rports, peers) in fcoe_ctlr_disc_stop_locked()
2139 lport->tt.rport_logoff(rdata); in fcoe_ctlr_disc_stop_locked()
2140 lport->disc.disc_callback = NULL; in fcoe_ctlr_disc_stop_locked()
2141 mutex_unlock(&lport->disc.disc_mutex); in fcoe_ctlr_disc_stop_locked()
2151 static void fcoe_ctlr_disc_stop(struct fc_lport *lport) in fcoe_ctlr_disc_stop() argument
2153 struct fcoe_ctlr *fip = lport->disc.priv; in fcoe_ctlr_disc_stop()
2156 fcoe_ctlr_disc_stop_locked(lport); in fcoe_ctlr_disc_stop()
2167 static void fcoe_ctlr_disc_stop_final(struct fc_lport *lport) in fcoe_ctlr_disc_stop_final() argument
2169 fcoe_ctlr_disc_stop(lport); in fcoe_ctlr_disc_stop_final()
2170 lport->tt.rport_flush_queue(); in fcoe_ctlr_disc_stop_final()
2448 struct fc_lport *lport = fip->lp; in fcoe_ctlr_vn_add() local
2458 mutex_lock(&lport->disc.disc_mutex); in fcoe_ctlr_vn_add()
2459 rdata = lport->tt.rport_create(lport, port_id); in fcoe_ctlr_vn_add()
2461 mutex_unlock(&lport->disc.disc_mutex); in fcoe_ctlr_vn_add()
2466 rdata->disc_id = lport->disc.disc_id; in fcoe_ctlr_vn_add()
2471 lport->tt.rport_logoff(rdata); in fcoe_ctlr_vn_add()
2474 mutex_unlock(&lport->disc.disc_mutex); in fcoe_ctlr_vn_add()
2493 struct fc_lport *lport = fip->lp; in fcoe_ctlr_vn_lookup() local
2499 rdata = lport->tt.rport_lookup(lport, port_id); in fcoe_ctlr_vn_lookup()
2578 struct fc_lport *lport = fip->lp; in fcoe_ctlr_vn_beacon() local
2587 mutex_lock(&lport->disc.disc_mutex); in fcoe_ctlr_vn_beacon()
2588 rdata = lport->tt.rport_lookup(lport, new->ids.port_id); in fcoe_ctlr_vn_beacon()
2591 mutex_unlock(&lport->disc.disc_mutex); in fcoe_ctlr_vn_beacon()
2597 lport->tt.rport_login(rdata); in fcoe_ctlr_vn_beacon()
2600 kref_put(&rdata->kref, lport->tt.rport_destroy); in fcoe_ctlr_vn_beacon()
2628 struct fc_lport *lport = fip->lp; in fcoe_ctlr_vn_age() local
2635 mutex_lock(&lport->disc.disc_mutex); in fcoe_ctlr_vn_age()
2636 list_for_each_entry_rcu(rdata, &lport->disc.rports, peers) { in fcoe_ctlr_vn_age()
2647 lport->tt.rport_logoff(rdata); in fcoe_ctlr_vn_age()
2651 mutex_unlock(&lport->disc.disc_mutex); in fcoe_ctlr_vn_age()
2718 static void fcoe_ctlr_disc_recv(struct fc_lport *lport, struct fc_frame *fp) in fcoe_ctlr_disc_recv() argument
2724 lport->tt.seq_els_rsp_send(fp, ELS_LS_RJT, &rjt_data); in fcoe_ctlr_disc_recv()
2742 struct fc_lport *lport) in fcoe_ctlr_disc_start() argument
2744 struct fc_disc *disc = &lport->disc; in fcoe_ctlr_disc_start()
2765 struct fc_lport *lport = fip->lp; in fcoe_ctlr_vn_disc() local
2766 struct fc_disc *disc = &lport->disc; in fcoe_ctlr_vn_disc()
2777 lport->tt.rport_login(rdata); in fcoe_ctlr_vn_disc()
2781 callback(lport, DISC_EV_SUCCESS); in fcoe_ctlr_vn_disc()
2870 static void fcoe_ctlr_mode_set(struct fc_lport *lport, struct fcoe_ctlr *fip, in fcoe_ctlr_mode_set() argument
2875 WARN_ON(lport->state != LPORT_ST_RESET && in fcoe_ctlr_mode_set()
2876 lport->state != LPORT_ST_DISABLED); in fcoe_ctlr_mode_set()
2879 lport->rport_priv_size = sizeof(struct fcoe_rport); in fcoe_ctlr_mode_set()
2880 lport->point_to_multipoint = 1; in fcoe_ctlr_mode_set()
2881 lport->tt.disc_recv_req = fcoe_ctlr_disc_recv; in fcoe_ctlr_mode_set()
2882 lport->tt.disc_start = fcoe_ctlr_disc_start; in fcoe_ctlr_mode_set()
2883 lport->tt.disc_stop = fcoe_ctlr_disc_stop; in fcoe_ctlr_mode_set()
2884 lport->tt.disc_stop_final = fcoe_ctlr_disc_stop_final; in fcoe_ctlr_mode_set()
2887 lport->rport_priv_size = 0; in fcoe_ctlr_mode_set()
2888 lport->point_to_multipoint = 0; in fcoe_ctlr_mode_set()
2889 lport->tt.disc_recv_req = NULL; in fcoe_ctlr_mode_set()
2890 lport->tt.disc_start = NULL; in fcoe_ctlr_mode_set()
2891 lport->tt.disc_stop = NULL; in fcoe_ctlr_mode_set()
2892 lport->tt.disc_stop_final = NULL; in fcoe_ctlr_mode_set()
2893 priv = lport; in fcoe_ctlr_mode_set()
2896 fc_disc_config(lport, priv); in fcoe_ctlr_mode_set()
2908 int fcoe_libfc_config(struct fc_lport *lport, struct fcoe_ctlr *fip, in fcoe_libfc_config() argument
2912 memcpy(&lport->tt, tt, sizeof(*tt)); in fcoe_libfc_config()
2913 if (init_fcp && fc_fcp_init(lport)) in fcoe_libfc_config()
2915 fc_exch_init(lport); in fcoe_libfc_config()
2916 fc_elsct_init(lport); in fcoe_libfc_config()
2917 fc_lport_init(lport); in fcoe_libfc_config()
2918 fc_rport_init(lport); in fcoe_libfc_config()
2919 fc_disc_init(lport); in fcoe_libfc_config()
2920 fcoe_ctlr_mode_set(lport, fip, fip->mode); in fcoe_libfc_config()
2948 struct fc_lport *lport = ctlr->lp; in fcoe_ctlr_set_fip_mode() local
2963 fcoe_ctlr_mode_set(lport, ctlr, ctlr->mode); in fcoe_ctlr_set_fip_mode()