Lines Matching full:fabric
68 (iport->fabric.retry_counter == FABRIC_LOGO_MAX_RETRY)
395 fnic->iport.fabric.del_timer_inprogress = 1;
397 timer_delete_sync(&fnic->iport.fabric.retry_timer);
399 fnic->iport.fabric.del_timer_inprogress = 0;
418 if (iport->fabric.timer_pending) {
420 "iport fcid: 0x%x: Canceling fabric disc timer\n",
423 iport->fabric.timer_pending = 0;
426 if (!(iport->fabric.flags & FNIC_FDLS_FABRIC_ABORT_ISSUED))
427 iport->fabric.retry_counter++;
430 mod_timer(&iport->fabric.retry_timer, round_jiffies(fabric_tov));
431 iport->fabric.timer_pending = 1;
433 "fabric timer is %d ", timeout);
691 "Failed to allocate frame to send fabric ABTS");
700 switch (iport->fabric.state) {
754 "0x%x: FDLS send fabric abts. iport->fabric.state: %d oxid: 0x%x",
755 iport->fcid, iport->fabric.state, oxid);
757 iport->fabric.flags |= FNIC_FDLS_FABRIC_ABORT_ISSUED;
763 iport->fabric.timer_pending = 1;
799 if (iport->fabric.fdmi_pending & FDLS_FDMI_PLOGI_PENDING) {
806 "0x%x: FDLS send FDMI PLOGI abts. iport->fabric.state: %d oxid: 0x%x",
807 iport->fcid, iport->fabric.state, iport->active_oxid_fdmi_plogi);
810 if (iport->fabric.fdmi_pending & FDLS_FDMI_REG_HBA_PENDING) {
817 "0x%x: FDLS send FDMI RHBA abts. iport->fabric.state: %d oxid: 0x%x",
818 iport->fcid, iport->fabric.state, iport->active_oxid_fdmi_rhba);
821 if (iport->fabric.fdmi_pending & FDLS_FDMI_RPA_PENDING) {
825 if (iport->fabric.fdmi_pending & FDLS_FDMI_REG_HBA_PENDING)
832 "0x%x: FDLS send FDMI RPA abts. iport->fabric.state: %d oxid: 0x%x",
833 iport->fcid, iport->fabric.state, iport->active_oxid_fdmi_rpa);
840 mod_timer(&iport->fabric.fdmi_timer, round_jiffies(fdmi_tov));
841 iport->fabric.fdmi_pending |= FDLS_FDMI_ABORT_PENDING;
844 "0x%x: iport->fabric.fdmi_pending: 0x%x",
845 iport->fcid, iport->fabric.fdmi_pending);
861 iport->fabric.flags |= FNIC_FDLS_RETRY_FRAME;
892 iport->fabric.flags |= FNIC_FDLS_RETRY_FRAME;
898 "0x%x: FDLS send fabric FLOGI with oxid: 0x%x", iport->fcid,
921 iport->fabric.flags |= FNIC_FDLS_RETRY_FRAME;
932 "0x%x: Failed to allocate OXID to send fabric PLOGI",
935 iport->fabric.flags |= FNIC_FDLS_RETRY_FRAME;
941 "0x%x: FDLS send fabric PLOGI with oxid: 0x%x", iport->fcid,
996 mod_timer(&iport->fabric.fdmi_timer, round_jiffies(fdmi_tov));
997 iport->fabric.fdmi_pending = FDLS_FDMI_PLOGI_PENDING;
1014 iport->fabric.flags |= FNIC_FDLS_RETRY_FRAME;
1043 iport->fabric.flags |= FNIC_FDLS_RETRY_FRAME;
1073 iport->fabric.flags |= FNIC_FDLS_RETRY_FRAME;
1097 iport->fabric.flags |= FNIC_FDLS_RETRY_FRAME;
1128 iport->fabric.flags |= FNIC_FDLS_RETRY_FRAME;
1155 iport->fabric.flags |= FNIC_FDLS_RETRY_FRAME;
1169 fdls_set_state((&iport->fabric), fdls_state);
1550 * This function does not change or check the fabric state.
1551 * It the caller's responsibility to set the appropriate iport fabric
1568 "Failed to allocate frame to send fabric LOGO");
1580 "0x%x: Failed to allocate OXID to send fabric LOGO",
1590 iport->fabric.flags &= ~FNIC_FDLS_FABRIC_ABORT_ISSUED;
1593 "0x%x: FDLS send fabric LOGO with oxid: 0x%x",
1606 * This function does not change or check the fabric/tport state.
1607 * It the caller's responsibility to set the appropriate tport/fabric
1625 "Failed to allocate frame to send fabric LOGO");
1691 fdls_set_state((&iport->fabric), FDLS_STATE_TGT_DISCOVERY);
1976 iport->fabric.fdmi_pending |= FDLS_FDMI_REG_HBA_PENDING;
2108 iport->fabric.fdmi_pending |= FDLS_FDMI_RPA_PENDING;
2113 struct fnic_fdls_fabric_s *fabric = timer_container_of(fabric, t,
2116 container_of(fabric, struct fnic_iport_s, fabric);
2122 iport->fabric.timer_pending, iport->fabric.state,
2123 iport->fabric.retry_counter, iport->max_flogi_retries);
2127 if (!iport->fabric.timer_pending) {
2132 if (iport->fabric.del_timer_inprogress) {
2133 iport->fabric.del_timer_inprogress = 0;
2137 iport->fabric.del_timer_inprogress);
2141 iport->fabric.timer_pending = 0;
2143 /* The fabric state indicates which frames have time out, and we retry */
2144 switch (iport->fabric.state) {
2147 if ((iport->fabric.flags & FNIC_FDLS_RETRY_FRAME)
2148 && (iport->fabric.retry_counter < iport->max_flogi_retries)) {
2149 iport->fabric.flags &= ~FNIC_FDLS_RETRY_FRAME;
2151 } else if (!(iport->fabric.flags & FNIC_FDLS_FABRIC_ABORT_ISSUED)) {
2159 if (iport->fabric.retry_counter < iport->max_flogi_retries) {
2160 iport->fabric.flags &= ~FNIC_FDLS_FABRIC_ABORT_ISSUED;
2169 if ((iport->fabric.flags & FNIC_FDLS_RETRY_FRAME)
2170 && (iport->fabric.retry_counter < iport->max_plogi_retries)) {
2171 iport->fabric.flags &= ~FNIC_FDLS_RETRY_FRAME;
2173 } else if (!(iport->fabric.flags & FNIC_FDLS_FABRIC_ABORT_ISSUED)) {
2181 if (iport->fabric.retry_counter < iport->max_plogi_retries) {
2182 iport->fabric.flags &= ~FNIC_FDLS_FABRIC_ABORT_ISSUED;
2191 if ((iport->fabric.flags & FNIC_FDLS_RETRY_FRAME)
2192 && (iport->fabric.retry_counter < FDLS_RETRY_COUNT)) {
2193 iport->fabric.flags &= ~FNIC_FDLS_RETRY_FRAME;
2195 } else if (!(iport->fabric.flags & FNIC_FDLS_FABRIC_ABORT_ISSUED))
2201 fnic_fdls_start_plogi(iport); /* go back to fabric Plogi */
2206 if ((iport->fabric.flags & FNIC_FDLS_RETRY_FRAME)
2207 && (iport->fabric.retry_counter < FDLS_RETRY_COUNT)) {
2208 iport->fabric.flags &= ~FNIC_FDLS_RETRY_FRAME;
2210 } else if (!(iport->fabric.flags & FNIC_FDLS_FABRIC_ABORT_ISSUED))
2223 if ((iport->fabric.flags & FNIC_FDLS_RETRY_FRAME)
2224 && (iport->fabric.retry_counter < FDLS_RETRY_COUNT)) {
2225 iport->fabric.flags &= ~FNIC_FDLS_RETRY_FRAME;
2227 } else if (!(iport->fabric.flags & FNIC_FDLS_FABRIC_ABORT_ISSUED)) {
2235 fnic_fdls_start_plogi(iport); /* go back to fabric Plogi */
2240 if ((iport->fabric.flags & FNIC_FDLS_RETRY_FRAME)
2241 && (iport->fabric.retry_counter < FDLS_RETRY_COUNT)) {
2242 iport->fabric.flags &= ~FNIC_FDLS_RETRY_FRAME;
2244 } else if (!(iport->fabric.flags & FNIC_FDLS_FABRIC_ABORT_ISSUED))
2252 fnic_fdls_start_plogi(iport); /* go back to fabric Plogi */
2259 if ((iport->fabric.flags & FNIC_FDLS_RETRY_FRAME)
2260 && (iport->fabric.retry_counter < FDLS_RETRY_COUNT)) {
2261 iport->fabric.flags &= ~FNIC_FDLS_RETRY_FRAME;
2262 fdls_send_gpn_ft(iport, iport->fabric.state);
2263 } else if (!(iport->fabric.flags & FNIC_FDLS_FABRIC_ABORT_ISSUED)) {
2269 if (iport->fabric.retry_counter < FDLS_RETRY_COUNT) {
2270 fdls_send_gpn_ft(iport, iport->fabric.state);
2273 "ABTS timeout for fabric GPN_FT. Check name server: %p",
2288 iport->fabric.fdmi_pending = 0;
2290 if (iport->fabric.fdmi_retry < FDLS_FDMI_MAX_RETRY) {
2291 iport->fabric.fdmi_retry++;
2294 iport->fabric.fdmi_retry);
2301 struct fnic_fdls_fabric_s *fabric = timer_container_of(fabric, t,
2304 container_of(fabric, struct fnic_iport_s, fabric);
2311 "iport->fabric.fdmi_pending: 0x%x\n", iport->fabric.fdmi_pending);
2313 if (!iport->fabric.fdmi_pending) {
2319 "iport->fabric.fdmi_pending: 0x%x\n", iport->fabric.fdmi_pending);
2322 if (!(iport->fabric.fdmi_pending & FDLS_FDMI_ABORT_PENDING)) {
2328 "iport->fabric.fdmi_pending: 0x%x\n", iport->fabric.fdmi_pending);
2334 if (iport->fabric.fdmi_pending & FDLS_FDMI_PLOGI_PENDING) {
2340 if (iport->fabric.fdmi_pending & FDLS_FDMI_REG_HBA_PENDING) {
2346 if (iport->fabric.fdmi_pending & FDLS_FDMI_RPA_PENDING) {
2354 "iport->fabric.fdmi_pending: 0x%x\n", iport->fabric.fdmi_pending);
2358 "iport->fabric.fdmi_pending: 0x%x\n", iport->fabric.fdmi_pending);
2486 iport->fabric.retry_counter = 0;
2488 fdls_set_state((&iport->fabric), FDLS_STATE_FABRIC_FLOGI);
2489 iport->fabric.flags = 0;
2494 iport->fabric.retry_counter = 0;
2496 fdls_set_state((&iport->fabric), FDLS_STATE_FABRIC_PLOGI);
2497 iport->fabric.flags &= ~FNIC_FDLS_FABRIC_ABORT_ISSUED;
2501 iport->fabric.fdmi_retry = 0;
2502 timer_setup(&iport->fabric.fdmi_timer, fdls_fdmi_timer_callback,
2559 "tport 0x%p Canceling fabric disc timer\n",
2877 struct fnic_fdls_fabric_s *fdls = &iport->fabric;
2906 if (iport->fabric.timer_pending) {
2908 "Canceling fabric disc timer %p\n", iport);
2911 iport->fabric.timer_pending = 0;
2913 fdls_set_state((&iport->fabric), FDLS_STATE_SCR);
2931 if (iport->fabric.timer_pending) {
2933 "Canceling fabric disc timer %p\n", iport);
2949 struct fnic_fdls_fabric_s *fdls = &iport->fabric;
2980 if (iport->fabric.timer_pending) {
2982 "Canceling fabric disc timer %p\n", iport);
2985 iport->fabric.timer_pending = 0;
2988 fdls_set_state((&iport->fabric), FDLS_STATE_REGISTER_FC4_FEATURES);
3006 if (iport->fabric.timer_pending) {
3008 "Canceling fabric disc timer %p\n", iport);
3024 struct fnic_fdls_fabric_s *fdls = &iport->fabric;
3052 if (iport->fabric.timer_pending) {
3054 "Canceling fabric disc timer %p\n", iport);
3057 iport->fabric.timer_pending = 0;
3060 fdls_set_state((&iport->fabric), FDLS_STATE_REGISTER_FC4_TYPES);
3076 if (iport->fabric.timer_pending) {
3078 "Canceling fabric disc timer %p\n", iport);
3094 struct fnic_fdls_fabric_s *fdls = &iport->fabric;
3121 if (iport->fabric.timer_pending) {
3123 "Canceling fabric disc timer %p\n", iport);
3126 iport->fabric.timer_pending = 0;
3127 iport->fabric.retry_counter = 0;
3145 if (iport->fabric.timer_pending) {
3147 "Canceling fabric disc timer %p\n",
3225 if (fdls_get_state((&iport->fabric)) == FDLS_STATE_RSCN_GPN_FT)
3241 if (fdls_get_state((&iport->fabric)) == FDLS_STATE_RSCN_GPN_FT) {
3264 struct fnic_fdls_fabric_s *fdls = &iport->fabric;
3281 * during fabric discovery(FNIC_IPORT_STATE_FABRIC_DISC)
3316 if (iport->fabric.timer_pending) {
3318 "0x%x: Canceling fabric disc timer\n",
3322 iport->fabric.timer_pending = 0;
3323 iport->fabric.retry_counter = 0;
3356 if (iport->fabric.timer_pending) {
3358 "0x%x: Canceling fabric disc timer\n",
3362 iport->fabric.timer_pending = 0;
3363 iport->fabric.retry_counter = 0;
3401 struct fnic_fdls_fabric_s *fdls = &iport->fabric;
3414 if (iport->fabric.state != FDLS_STATE_FABRIC_LOGO) {
3416 "Flogo response. Fabric not in LOGO state. Dropping! %p",
3421 iport->fabric.state = FDLS_STATE_FLOGO_DONE;
3424 if (iport->fabric.timer_pending) {
3426 "iport 0x%p Canceling fabric disc timer\n",
3430 iport->fabric.timer_pending = 0;
3432 "Flogo response from Fabric for did: 0x%x",
3438 "Flogo response from Fabric for did: 0x%x returned ELS_LS_RJT",
3453 struct fnic_fdls_fabric_s *fabric = &iport->fabric;
3464 if (fdls_get_state(fabric) != FDLS_STATE_FABRIC_FLOGI) {
3467 fdls_get_state(fabric));
3473 fdls_get_state(fabric), oxid, iport->active_oxid_fabric_req);
3482 if (iport->fabric.timer_pending) {
3484 "iport fcid: 0x%x Canceling fabric disc timer\n",
3489 iport->fabric.timer_pending = 0;
3490 iport->fabric.retry_counter = 0;
3504 "max_payload_size from fabric: %u set: %d", rdf_size,
3514 "From fabric: R_A_TOV: %d E_D_TOV: %d",
3536 if (fdls_get_state(fabric) == FDLS_STATE_FABRIC_FLOGI) {
3541 /* From FDLS_STATE_FABRIC_FLOGI state fabric can only go to
3548 fdls_get_state(fabric));
3554 if (fabric->retry_counter < iport->max_flogi_retries) {
3560 fabric->flags |= FNIC_FDLS_RETRY_FRAME;
3566 if (iport->fabric.timer_pending) {
3568 "iport 0x%p Canceling fabric disc timer\n",
3572 fabric->timer_pending = 0;
3573 fabric->retry_counter = 0;
3592 struct fnic_fdls_fabric_s *fdls = &iport->fabric;
3596 if (fdls_get_state((&iport->fabric)) != FDLS_STATE_FABRIC_PLOGI) {
3598 "Fabric PLOGI response received in state (%d). Dropping frame",
3599 fdls_get_state(&iport->fabric));
3613 if (iport->fabric.timer_pending) {
3615 "iport fcid: 0x%x fabric PLOGI response: Accepted\n",
3619 iport->fabric.timer_pending = 0;
3620 iport->fabric.retry_counter = 0;
3621 fdls_set_state(&iport->fabric, FDLS_STATE_RPN_ID);
3628 && (iport->fabric.retry_counter < iport->max_plogi_retries)) {
3630 "0x%x: Fabric PLOGI ELS_LS_RJT BUSY. Retry from timer routine",
3634 "0x%x: Fabric PLOGI ELS_LS_RJT. Halting discovery",
3636 if (iport->fabric.timer_pending) {
3638 "iport fcid: 0x%x Canceling fabric disc timer\n",
3642 iport->fabric.timer_pending = 0;
3643 iport->fabric.retry_counter = 0;
3661 struct fnic_fdls_fabric_s *fdls = &iport->fabric;
3673 iport->fabric.fdmi_pending &= ~FDLS_FDMI_PLOGI_PENDING;
3677 timer_delete_sync(&iport->fabric.fdmi_timer);
3678 iport->fabric.fdmi_pending = 0;
3690 mod_timer(&iport->fabric.fdmi_timer,
3695 "Fabric FDMI PLOGI returned ELS_LS_RJT reason: 0x%x",
3700 && (iport->fabric.fdmi_retry < 7)) {
3701 iport->fabric.fdmi_retry++;
3717 if (!iport->fabric.fdmi_pending) {
3734 iport->fabric.fdmi_pending &= ~FDLS_FDMI_REG_HBA_PENDING;
3737 iport->fabric.fdmi_pending &= ~FDLS_FDMI_RPA_PENDING;
3745 if (!iport->fabric.fdmi_pending) {
3746 timer_delete_sync(&iport->fabric.fdmi_timer);
3776 "0x%x: iport->fabric.fdmi_pending: 0x%x",
3777 iport->fcid, iport->fabric.fdmi_pending);
3780 iport->fabric.fdmi_pending &= ~FDLS_FDMI_PLOGI_PENDING;
3781 iport->fabric.fdmi_pending &= ~FDLS_FDMI_ABORT_PENDING;
3783 "0x%x: iport->fabric.fdmi_pending: 0x%x",
3784 iport->fcid, iport->fabric.fdmi_pending);
3790 "0x%x: iport->fabric.fdmi_pending: 0x%x",
3791 iport->fcid, iport->fabric.fdmi_pending);
3793 iport->fabric.fdmi_pending &= ~FDLS_FDMI_REG_HBA_PENDING;
3799 if (!(iport->fabric.fdmi_pending & FDLS_FDMI_RPA_PENDING))
3800 iport->fabric.fdmi_pending &= ~FDLS_FDMI_ABORT_PENDING;
3804 "0x%x: iport->fabric.fdmi_pending: 0x%x",
3805 iport->fcid, iport->fabric.fdmi_pending);
3811 "0x%x: iport->fabric.fdmi_pending: 0x%x",
3812 iport->fcid, iport->fabric.fdmi_pending);
3814 iport->fabric.fdmi_pending &= ~FDLS_FDMI_RPA_PENDING;
3820 if (!(iport->fabric.fdmi_pending & FDLS_FDMI_REG_HBA_PENDING))
3821 iport->fabric.fdmi_pending &= ~FDLS_FDMI_ABORT_PENDING;
3825 "0x%x: iport->fabric.fdmi_pending: 0x%x",
3826 iport->fcid, iport->fabric.fdmi_pending);
3840 if (!(iport->fabric.fdmi_pending & FDLS_FDMI_ABORT_PENDING)) {
3841 timer_delete_sync(&iport->fabric.fdmi_timer);
3842 if (!iport->fabric.fdmi_pending)
3854 uint32_t fabric_state = iport->fabric.state;
3878 if (iport->fabric.timer_pending) {
3880 "Canceling fabric disc timer %p\n", iport);
3883 iport->fabric.timer_pending = 0;
3884 iport->fabric.flags &= ~FNIC_FDLS_FABRIC_ABORT_ISSUED;
3903 if (iport->fabric.retry_counter < iport->max_flogi_retries)
3910 if (iport->fabric.retry_counter < FABRIC_LOGO_MAX_RETRY)
3914 if (iport->fabric.retry_counter < iport->max_plogi_retries)
3921 if (iport->fabric.retry_counter < FDLS_RETRY_COUNT)
3924 /* go back to fabric Plogi */
3928 if (iport->fabric.retry_counter < FDLS_RETRY_COUNT)
3932 "SCR exhausted retries. Start fabric PLOGI %p",
3934 fnic_fdls_start_plogi(iport); /* go back to fabric Plogi */
3938 if (iport->fabric.retry_counter < FDLS_RETRY_COUNT)
3942 "RFT exhausted retries. Start fabric PLOGI %p",
3944 fnic_fdls_start_plogi(iport); /* go back to fabric Plogi */
3948 if (iport->fabric.retry_counter < FDLS_RETRY_COUNT)
3952 "RFF exhausted retries. Start fabric PLOGI %p",
3954 fnic_fdls_start_plogi(iport); /* go back to fabric Plogi */
3958 if (iport->fabric.retry_counter <= FDLS_RETRY_COUNT)
3962 "GPN FT exhausted retries. Start fabric PLOGI %p",
4229 "tport 0x%p Canceling fabric disc timer\n", tport);
4274 && (iport->fabric.state != FDLS_STATE_SEND_GPNFT)
4275 && (iport->fabric.state != FDLS_STATE_RSCN_GPN_FT)) {
4304 && (iport->fabric.state != FDLS_STATE_SEND_GPNFT)
4305 && (iport->fabric.state != FDLS_STATE_RSCN_GPN_FT)) {
4448 && (fdls_get_state(&iport->fabric) != FDLS_STATE_SEND_GPNFT)
4449 && (fdls_get_state(&iport->fabric) != FDLS_STATE_RSCN_GPN_FT)) {
4461 if ((fdls_get_state(&iport->fabric) != FDLS_STATE_SEND_GPNFT) &&
4462 (fdls_get_state(&iport->fabric) != FDLS_STATE_RSCN_GPN_FT)) {
4481 struct fnic_fdls_fabric_s *fdls = &iport->fabric;
4745 struct fnic_fdls_fabric_s *fabric = &iport->fabric;
4755 if (fdls_get_state(fabric) > FDLS_STATE_FABRIC_FLOGI) {
4773 if (!(iport->fabric.flags & FNIC_FDLS_FABRIC_ABORT_ISSUED)) {
4842 /* solicited response from fabric or target */
4963 if (iport->fabric.state == FDLS_STATE_FABRIC_LOGO &&
5060 fdls_set_state((&iport->fabric), FDLS_STATE_INIT);
5071 fdls_set_state((&iport->fabric), FDLS_STATE_LINKDOWN);
5072 iport->fabric.flags = 0;
5084 if (iport->fabric.fdmi_pending > 0) {
5085 timer_delete_sync(&iport->fabric.fdmi_timer);
5086 iport->fabric.fdmi_pending = 0;