Lines Matching +full:cmd +full:- +full:db
1 // SPDX-License-Identifier: GPL-2.0-or-later
27 * FDDI sub-system supporting the SBA application.
50 -------------------------------------------------------------
52 -------------------------------------------------------------
66 -------------------------------------------------------------
68 -------------------------------------------------------------
73 -------------------------------------------------------------
75 -------------------------------------------------------------
85 -------------------------------------------------------------
87 -------------------------------------------------------------
91 -------------------------------------------------------------
93 -------------------------------------------------------------
104 * --------------------------------------------------------------------------
106 * --------------------------------------------------------------------------
116 struct smt_p_0016 *cmd ; /* para: command for the ESS */ in ess_raf_received_pack() local
117 SMbuf *db ; in ess_raf_received_pack() local
135 msg_res_type = ((struct smt_p_0015 *)p)->res_type ; in ess_raf_received_pack()
140 if (!(cmd = (struct smt_p_0016 *) sm_to_para(smc,sm,SMT_P0016))) { in ess_raf_received_pack()
148 DB_ESSN(2, "fc %x ft %x", sm->smt_class, sm->smt_type); in ess_raf_received_pack()
149 DB_ESSN(2, "ver %x tran %x", sm->smt_version, sm->smt_tid); in ess_raf_received_pack()
150 DB_ESSN(2, "stn_id %pM", &sm->smt_source); in ess_raf_received_pack()
152 DB_ESSN(2, "infolen %x res %lx", sm->smt_len, msg_res_type); in ess_raf_received_pack()
153 DB_ESSN(2, "sbacmd %x", cmd->sba_cmd); in ess_raf_received_pack()
158 switch (cmd->sba_cmd) { in ess_raf_received_pack()
167 if (sm->smt_type == SMT_REQUEST) { in ess_raf_received_pack()
172 if (!local || smc->mib.fddiESSPayload) in ess_raf_received_pack()
177 if (((struct smt_p_0019 *)p)->alloc_addr.a[i]) { in ess_raf_received_pack()
186 smc->ess.alloc_trans_id = sm->smt_tid ; in ess_raf_received_pack()
187 DB_ESS("ESS: save Alloc Req Trans ID %x", sm->smt_tid); in ess_raf_received_pack()
189 ((struct smt_p_320f *)p)->mib_payload = in ess_raf_received_pack()
190 smc->mib.a[PATH0].fddiPATHSbaPayload ; in ess_raf_received_pack()
192 ((struct smt_p_3210 *)p)->mib_overhead = in ess_raf_received_pack()
193 smc->mib.a[PATH0].fddiPATHSbaOverhead ; in ess_raf_received_pack()
194 sm->smt_dest = smt_sba_da ; in ess_raf_received_pack()
196 if (smc->ess.local_sba_active) in ess_raf_received_pack()
199 if (!(db = smt_get_mbuf(smc))) in ess_raf_received_pack()
202 db->sm_len = mb->sm_len ; in ess_raf_received_pack()
203 db->sm_off = mb->sm_off ; in ess_raf_received_pack()
204 memcpy(((char *)(db->sm_data+db->sm_off)),(char *)sm, in ess_raf_received_pack()
205 (int)db->sm_len) ; in ess_raf_received_pack()
207 (struct smt_header *)(db->sm_data+db->sm_off), in ess_raf_received_pack()
209 smt_send_frame(smc,db,FC_SMT_INFO,0) ; in ess_raf_received_pack()
232 if ((((struct smt_p_320b *)sm_to_para(smc,sm,SMT_P320B))->path_index in ess_raf_received_pack()
235 (((struct smt_p_reason *)sm_to_para(smc,sm,SMT_P0012))->rdf_reason in ess_raf_received_pack()
237 (sm->smt_tid != smc->ess.alloc_trans_id)) { in ess_raf_received_pack()
251 payload = ((struct smt_p_320f *)p)->mib_payload ; in ess_raf_received_pack()
257 overhead = ((struct smt_p_3210 *)p)->mib_overhead ; in ess_raf_received_pack()
277 if (sm->smt_type != SMT_REQUEST) { in ess_raf_received_pack()
296 if ((((struct smt_p_320b *)sm_to_para(smc,sm,SMT_P320B))->path_index in ess_raf_received_pack()
306 payload = ((struct smt_p_320f *)p)->mib_payload ; in ess_raf_received_pack()
308 overhead = ((struct smt_p_3210 *)p)->mib_overhead ; in ess_raf_received_pack()
311 &sm->smt_source); in ess_raf_received_pack()
336 if (sm->smt_type != SMT_REQUEST) { in ess_raf_received_pack()
342 &sm->smt_source); in ess_raf_received_pack()
373 * mib variables SBAPayload, SBAOverhead and fddiMACT-NEG.
378 * determine the synchronous bandwidth (sync_bw) in bytes per T-NEG, in process_bw_alloc()
384 * SBAPayload = | 8000 ------ | in process_bw_alloc()
386 * - - in process_bw_alloc()
389 * SBAOverhead = | ------ | in process_bw_alloc()
390 * | T-NEG | in process_bw_alloc()
391 * - - in process_bw_alloc()
393 * T-NEG is described by the equation: in process_bw_alloc()
395 * (-) fddiMACT-NEG in process_bw_alloc()
396 * T-NEG = ------------------- in process_bw_alloc()
402 * bytes T-NEG SBAPayload 8000 bytes/s in process_bw_alloc()
403 * sync_bw = SBAOverhead ------ + ----------------------------- in process_bw_alloc()
404 * T-NEG T-NEG in process_bw_alloc()
408 * sync_bw = SBAOverhead + ---- (-)fddiMACT-NEG * SBAPayload in process_bw_alloc()
435 if (smc->mib.fddiESSPayload && in process_bw_alloc()
436 ((u_long)payload != smc->mib.fddiESSPayload || in process_bw_alloc()
437 (u_long)overhead != smc->mib.fddiESSOverhead)) { in process_bw_alloc()
438 smc->ess.raf_act_timer_poll = TRUE ; in process_bw_alloc()
439 smc->ess.timer_count = 0 ; in process_bw_alloc()
447 smc->ess.sync_bw_available = TRUE ; in process_bw_alloc()
449 smc->ess.sync_bw = overhead - in process_bw_alloc()
450 (long)smc->mib.m[MAC0].fddiMACT_Neg * in process_bw_alloc()
455 smc->ess.sync_bw_available = FALSE ; in process_bw_alloc()
456 smc->ess.sync_bw = 0 ; in process_bw_alloc()
460 smc->mib.a[PATH0].fddiPATHSbaPayload = payload ; in process_bw_alloc()
461 smc->mib.a[PATH0].fddiPATHSbaOverhead = overhead ; in process_bw_alloc()
464 DB_ESSN(2, "tsync = %lx", smc->ess.sync_bw); in process_bw_alloc()
467 set_formac_tsync(smc,smc->ess.sync_bw) ; in process_bw_alloc()
493 chg->smt.smt_tid = sm->smt_tid ; in ess_send_response()
494 chg->smt.smt_dest = sm->smt_source ; in ess_send_response()
497 chg->s_type.para.p_type = SMT_P0015 ; in ess_send_response()
498 chg->s_type.para.p_len = sizeof(struct smt_p_0015) - PARA_LEN ; in ess_send_response()
499 chg->s_type.res_type = SYNC_BW ; in ess_send_response()
502 chg->cmd.para.p_type = SMT_P0016 ; in ess_send_response()
503 chg->cmd.para.p_len = sizeof(struct smt_p_0016) - PARA_LEN ; in ess_send_response()
504 chg->cmd.sba_cmd = sba_cmd ; in ess_send_response()
507 chg->path.para.p_type = SMT_P320B ; in ess_send_response()
508 chg->path.para.p_len = sizeof(struct smt_p_320b) - PARA_LEN ; in ess_send_response()
509 chg->path.mib_index = SBAPATHINDEX ; in ess_send_response()
510 chg->path.path_pad = 0; in ess_send_response()
511 chg->path.path_index = PRIMARY_RING ; in ess_send_response()
514 chg->payload.para.p_type = SMT_P320F ; in ess_send_response()
515 chg->payload.para.p_len = sizeof(struct smt_p_320f) - PARA_LEN ; in ess_send_response()
516 chg->payload.mib_index = SBAPATHINDEX ; in ess_send_response()
517 chg->payload.mib_payload = smc->mib.a[PATH0].fddiPATHSbaPayload ; in ess_send_response()
520 chg->overhead.para.p_type = SMT_P3210 ; in ess_send_response()
521 chg->overhead.para.p_len = sizeof(struct smt_p_3210) - PARA_LEN ; in ess_send_response()
522 chg->overhead.mib_index = SBAPATHINDEX ; in ess_send_response()
523 chg->overhead.mib_overhead = smc->mib.a[PATH0].fddiPATHSbaOverhead ; in ess_send_response()
527 chg->cat.para.p_type = SMT_P001A ; in ess_send_response()
528 chg->cat.para.p_len = sizeof(struct smt_p_001a) - PARA_LEN ; in ess_send_response()
530 chg->cat.category = ((struct smt_p_001a *)p)->category ; in ess_send_response()
538 if (!smc->ess.raf_act_timer_poll) in ess_timer_poll()
543 smc->ess.timer_count++ ; in ess_timer_poll()
544 if (smc->ess.timer_count == 10) { in ess_timer_poll()
545 smc->ess.timer_count = 0 ; in ess_timer_poll()
560 if (!smc->mib.fddiESSPayload) { in ess_send_alc_req()
561 smc->mib.fddiESSOverhead = 0 ; in ess_send_alc_req()
564 if (!smc->mib.fddiESSOverhead) in ess_send_alc_req()
565 smc->mib.fddiESSOverhead = DEFAULT_OV ; in ess_send_alc_req()
568 if (smc->mib.fddiESSOverhead == in ess_send_alc_req()
569 smc->mib.a[PATH0].fddiPATHSbaOverhead && in ess_send_alc_req()
570 smc->mib.fddiESSPayload == in ess_send_alc_req()
571 smc->mib.a[PATH0].fddiPATHSbaPayload){ in ess_send_alc_req()
572 smc->ess.raf_act_timer_poll = FALSE ; in ess_send_alc_req()
573 smc->ess.timer_count = 7 ; /* next RAF alc req after 3 s */ in ess_send_alc_req()
584 req->smt.smt_tid = smc->ess.alloc_trans_id = smt_get_tid(smc) ; in ess_send_alc_req()
585 req->smt.smt_dest = smt_sba_da ; in ess_send_alc_req()
588 req->s_type.para.p_type = SMT_P0015 ; in ess_send_alc_req()
589 req->s_type.para.p_len = sizeof(struct smt_p_0015) - PARA_LEN ; in ess_send_alc_req()
590 req->s_type.res_type = SYNC_BW ; in ess_send_alc_req()
593 req->cmd.para.p_type = SMT_P0016 ; in ess_send_alc_req()
594 req->cmd.para.p_len = sizeof(struct smt_p_0016) - PARA_LEN ; in ess_send_alc_req()
595 req->cmd.sba_cmd = REQUEST_ALLOCATION ; in ess_send_alc_req()
603 req->path.para.p_type = SMT_P320B ; in ess_send_alc_req()
604 req->path.para.p_len = sizeof(struct smt_p_320b) - PARA_LEN ; in ess_send_alc_req()
605 req->path.mib_index = SBAPATHINDEX ; in ess_send_alc_req()
606 req->path.path_pad = 0; in ess_send_alc_req()
607 req->path.path_index = PRIMARY_RING ; in ess_send_alc_req()
610 req->pl_req.para.p_type = SMT_P0017 ; in ess_send_alc_req()
611 req->pl_req.para.p_len = sizeof(struct smt_p_0017) - PARA_LEN ; in ess_send_alc_req()
612 req->pl_req.sba_pl_req = smc->mib.fddiESSPayload - in ess_send_alc_req()
613 smc->mib.a[PATH0].fddiPATHSbaPayload ; in ess_send_alc_req()
616 req->ov_req.para.p_type = SMT_P0018 ; in ess_send_alc_req()
617 req->ov_req.para.p_len = sizeof(struct smt_p_0018) - PARA_LEN ; in ess_send_alc_req()
618 req->ov_req.sba_ov_req = smc->mib.fddiESSOverhead - in ess_send_alc_req()
619 smc->mib.a[PATH0].fddiPATHSbaOverhead ; in ess_send_alc_req()
622 req->payload.para.p_type = SMT_P320F ; in ess_send_alc_req()
623 req->payload.para.p_len = sizeof(struct smt_p_320f) - PARA_LEN ; in ess_send_alc_req()
624 req->payload.mib_index = SBAPATHINDEX ; in ess_send_alc_req()
625 req->payload.mib_payload = smc->mib.a[PATH0].fddiPATHSbaPayload ; in ess_send_alc_req()
628 req->overhead.para.p_type = SMT_P3210 ; in ess_send_alc_req()
629 req->overhead.para.p_len = sizeof(struct smt_p_3210) - PARA_LEN ; in ess_send_alc_req()
630 req->overhead.mib_index = SBAPATHINDEX ; in ess_send_alc_req()
631 req->overhead.mib_overhead = smc->mib.a[PATH0].fddiPATHSbaOverhead ; in ess_send_alc_req()
634 req->a_addr.para.p_type = SMT_P0019 ; in ess_send_alc_req()
635 req->a_addr.para.p_len = sizeof(struct smt_p_0019) - PARA_LEN ; in ess_send_alc_req()
636 req->a_addr.sba_pad = 0; in ess_send_alc_req()
637 req->a_addr.alloc_addr = null_addr ; in ess_send_alc_req()
640 req->cat.para.p_type = SMT_P001A ; in ess_send_alc_req()
641 req->cat.para.p_len = sizeof(struct smt_p_001a) - PARA_LEN ; in ess_send_alc_req()
642 req->cat.category = smc->mib.fddiESSCategory ; in ess_send_alc_req()
645 req->tneg.para.p_type = SMT_P001B ; in ess_send_alc_req()
646 req->tneg.para.p_len = sizeof(struct smt_p_001b) - PARA_LEN ; in ess_send_alc_req()
647 req->tneg.max_t_neg = smc->mib.fddiESSMaxTNeg ; in ess_send_alc_req()
650 req->segm.para.p_type = SMT_P001C ; in ess_send_alc_req()
651 req->segm.para.p_len = sizeof(struct smt_p_001c) - PARA_LEN ; in ess_send_alc_req()
652 req->segm.min_seg_siz = smc->mib.fddiESSMinSegmentSize ; in ess_send_alc_req()
663 if (smc->ess.local_sba_active) { in ess_send_frame()
668 if (!smc->ess.sba_reply_pend) in ess_send_frame()
669 smc->ess.sba_reply_pend = mb ; in ess_send_frame()
671 DB_ESS("Frame is lost - another frame was pending"); in ess_send_frame()
686 (void)process_bw_alloc(smc,(long)smc->mib.a[PATH0].fddiPATHSbaPayload, in ess_para_change()
687 (long)smc->mib.a[PATH0].fddiPATHSbaOverhead) ; in ess_para_change()
695 if (smc->mib.a[PATH0].fddiPATHSbaPayload) { in ess_config_fifo()
696 if (smc->hw.fp.fifo.fifo_config_mode & SYNC_TRAFFIC_ON && in ess_config_fifo()
697 (smc->hw.fp.fifo.fifo_config_mode&SEND_ASYNC_AS_SYNC) == in ess_config_fifo()
698 smc->mib.fddiESSSynchTxMode) { in ess_config_fifo()
703 if (!(smc->hw.fp.fifo.fifo_config_mode & SYNC_TRAFFIC_ON)) { in ess_config_fifo()