Lines Matching refs:smc

31 static int smt_authorize(struct s_smc *smc, struct smt_header *sm);
32 static int smt_check_set_count(struct s_smc *smc, struct smt_header *sm);
34 static int smt_mib_phys(struct s_smc *smc);
35 static int smt_set_para(struct s_smc *smc, struct smt_para *pa, int index,
37 void smt_add_para(struct s_smc *smc, struct s_pcon *pcon, u_short para,
39 static SMbuf *smt_build_pmf_response(struct s_smc *smc, struct smt_header *req,
41 static int port_to_mib(struct s_smc *smc, int p);
277 void smt_pmf_received_pack(struct s_smc *smc, SMbuf *mb, int local) in smt_pmf_received_pack() argument
285 dump_smt(smc,sm,"PMF Received") ; in smt_pmf_received_pack()
291 smt_start_watchdog(smc) ; in smt_pmf_received_pack()
295 reply = smt_build_pmf_response(smc,sm, in smt_pmf_received_pack()
300 dump_smt(smc,sm,"PMF Reply") ; in smt_pmf_received_pack()
302 smt_send_frame(smc,reply,FC_SMT_INFO,local) ; in smt_pmf_received_pack()
307 static SMbuf *smt_build_pmf_response(struct s_smc *smc, struct smt_header *req, in smt_build_pmf_response() argument
326 if (!(mb = smt_get_mbuf(smc))) in smt_build_pmf_response()
351 if (!local && smt_authorize(smc,req)) in smt_build_pmf_response()
353 else if (smt_check_set_count(smc,req)) in smt_build_pmf_response()
360 smt_add_para(smc,&pcon,(u_short) SMT_P_REASON,0,0) ; in smt_build_pmf_response()
361 smt_add_para(smc,&pcon,(u_short) SMT_P1033,0,0) ; in smt_build_pmf_response()
364 smt_add_para(smc,&pcon,(u_short) SMT_P1035,0,0) ; in smt_build_pmf_response()
365 smt_add_para(smc,&pcon,(u_short) SMT_P1036,0,0) ; in smt_build_pmf_response()
404 if (smc->s.sas == SMT_SAS) in smt_build_pmf_response()
432 smt_add_para(smc,&pcon,pt->p_num, in smt_build_pmf_response()
446 smt_add_para(smc,&pcon,pa->p_type, in smt_build_pmf_response()
450 st = smt_set_para(smc,pa,index,local,1); in smt_build_pmf_response()
454 smt_add_para(smc,&pcon,pa->p_type, in smt_build_pmf_response()
463 smt_add_para(smc,&pcon,pa->p_type, in smt_build_pmf_response()
486 smc->mib.fddiSMTSetCount.count++ ; in smt_build_pmf_response()
487 smt_set_timestamp(smc,smc->mib.fddiSMTSetCount.timestamp) ; in smt_build_pmf_response()
488 smc->mib.fddiSMTLastSetStationId = req->smt_sid ; in smt_build_pmf_response()
489 smt_add_para(smc,&set_pcon,(u_short) SMT_P1035,0,0) ; in smt_build_pmf_response()
490 smt_add_para(smc,&set_pcon,(u_short) SMT_P1036,0,0) ; in smt_build_pmf_response()
495 static int smt_authorize(struct s_smc *smc, struct smt_header *sm) in smt_authorize() argument
504 p = (char *) &smc->mib.fddiPRPMFStation ; in smt_authorize()
509 (char *) &smc->mib.fddiPRPMFStation,8)) in smt_authorize()
515 p = (char *) smc->mib.fddiPRPMFPasswd ; in smt_authorize()
519 pa = (struct smt_para *) sm_to_para(smc,sm,SMT_P_AUTHOR) ; in smt_authorize()
524 if (memcmp((char *)(pa+1),(char *)smc->mib.fddiPRPMFPasswd,8)) in smt_authorize()
530 static int smt_check_set_count(struct s_smc *smc, struct smt_header *sm) in smt_check_set_count() argument
535 pa = (struct smt_para *) sm_to_para(smc,sm,SMT_P1035) ; in smt_check_set_count()
538 if ((smc->mib.fddiSMTSetCount.count != sc->count) || in smt_check_set_count()
539 memcmp((char *) smc->mib.fddiSMTSetCount.timestamp, in smt_check_set_count()
546 void smt_add_para(struct s_smc *smc, struct s_pcon *pcon, u_short para, in smt_add_para() argument
608 mib_addr = (char *) (&smc->mib) ; in smt_add_para()
615 mib_addr = (char *) (&smc->mib.m[mac]) ; in smt_add_para()
623 mib_addr = (char *) (&smc->mib.a[path]) ; in smt_add_para()
626 if (port < 0 || port >= smt_mib_phys(smc)) { in smt_add_para()
630 mib_addr = (char *) (&smc->mib.p[port_to_mib(smc,port)]) ; in smt_add_para()
665 mac_update_counter(smc) ; in smt_add_para()
669 sm_pm_get_ls(smc,port_to_mib(smc,port))) ; in smt_add_para()
676 smt_set_timestamp(smc,smc->mib.fddiSMTTimeStamp) ; in smt_add_para()
684 if (smc->s.sas == SMT_SAS) in smt_add_para()
699 sp_len = cem_build_path(smc,to,path) ; in smt_add_para()
706 sp->p1048_flag = smc->mib.fddiSMTPeerWrapFlag ; in smt_add_para()
707 sp->p1048_cf_state = smc->mib.fddiSMTCF_State ; in smt_add_para()
716 smc->mib.m[MAC0].fddiMACDuplicateAddressCond ; in smt_add_para()
1029 SMT_PANIC(smc,SMT_E0119, SMT_E0119_MSG) ; in smt_add_para()
1071 static int smt_set_para(struct s_smc *smc, struct smt_para *pa, int index, in smt_set_para() argument
1100 mib = &smc->mib ; in smt_set_para()
1110 mib_m = &smc->mib.m[mac] ; in smt_set_para()
1119 mib_a = &smc->mib.a[path] ; in smt_set_para()
1125 if (port < 0 || port >= smt_mib_phys(smc)) { in smt_set_para()
1128 mib_p = &smc->mib.p[port_to_mib(smc,port)] ; in smt_set_para()
1288 SMT_PANIC(smc,SMT_E0120, SMT_E0120_MSG) ; in smt_set_para()
1329 if (set && smc->mib.fddiESSPayload != long_val) { in smt_set_para()
1330 smc->ess.raf_act_timer_poll = TRUE ; in smt_set_para()
1331 smc->mib.fddiESSPayload = long_val ; in smt_set_para()
1337 if (set && smc->mib.fddiESSPayload && in smt_set_para()
1338 smc->mib.fddiESSOverhead != long_val) { in smt_set_para()
1339 smc->ess.raf_act_timer_poll = TRUE ; in smt_set_para()
1340 smc->mib.fddiESSOverhead = long_val ; in smt_set_para()
1395 queue_event(smc,EVENT_RMT,RM_ENABLE_FLAG) ; in smt_set_para()
1407 ess_para_change(smc) ; in smt_set_para()
1420 ess_para_change(smc) ; in smt_set_para()
1429 rtm_set_timer(smc) ; in smt_set_para()
1451 if (set && smt_set_mac_opvalues(smc)) { in smt_set_para()
1452 RS_SET(smc,RS_EVENT) ; in smt_set_para()
1453 smc->sm.please_reconnect = 1 ; in smt_set_para()
1454 queue_event(smc,EVENT_ECM,EC_DISCONNECT) ; in smt_set_para()
1487 if (smt_action(smc,SMT_STATION_ACTION, (int) word_val, 0)) in smt_set_para()
1491 if (smt_action(smc,SMT_PORT_ACTION, (int) word_val, in smt_set_para()
1492 port_to_mib(smc,port))) in smt_set_para()
1527 static int smt_mib_phys(struct s_smc *smc) in smt_mib_phys() argument
1530 SK_UNUSED(smc) ; in smt_mib_phys()
1534 if (smc->s.sas == SMT_SAS) in smt_mib_phys()
1540 static int port_to_mib(struct s_smc *smc, int p) in port_to_mib() argument
1543 SK_UNUSED(smc) ; in port_to_mib()
1547 if (smc->s.sas == SMT_SAS) in port_to_mib()
1556 void dump_smt(struct s_smc *smc, struct smt_header *sm, char *text) in dump_smt() argument
1567 SK_UNUSED(smc) ; in dump_smt()
1570 if (smc->debug.d_smtf < 2) in dump_smt()