Lines Matching refs:st
73 struct PStack *st = fi->userdata; in l3m_debug() local
76 VHiSax_putstatus(st->l1.hardware, st->l3.debug_id, fmt, args); in l3m_debug()
156 l3_debug(pc->st, "newstate cr %d %d --> %d", in newl3state()
165 t->pc->st->lli.l4l3(t->pc->st, t->event, t->pc); in L3ExpireTimer()
218 no_l3_proto(struct PStack *st, int pr, void *arg) in no_l3_proto() argument
222 HiSax_putstatus(st->l1.hardware, "L3", "no D protocol"); in no_l3_proto()
229 no_l3_proto_spec(struct PStack *st, isdn_ctrl *ic) in no_l3_proto_spec() argument
236 *getl3proc(struct PStack *st, int cr) in getl3proc() argument
238 struct l3_process *p = st->l3.proc; in getl3proc()
249 *new_l3_process(struct PStack *st, int cr) in new_l3_process() argument
257 if (!st->l3.proc) in new_l3_process()
258 st->l3.proc = p; in new_l3_process()
260 np = st->l3.proc; in new_l3_process()
266 p->debug = st->l3.debug; in new_l3_process()
270 p->st = st; in new_l3_process()
271 p->N303 = st->l3.N303; in new_l3_process()
283 np = p->st->l3.proc; in release_l3_process()
289 else if (!(p->st->l3.proc = np->next) && in release_l3_process()
290 !test_bit(FLG_PTP, &p->st->l2.flag)) { in release_l3_process()
292 l3_debug(p->st, "release_l3_process: last process"); in release_l3_process()
293 if (skb_queue_empty(&p->st->l3.squeue)) { in release_l3_process()
295 l3_debug(p->st, "release_l3_process: release link"); in release_l3_process()
296 if (p->st->protocol != ISDN_PTYPE_NI1) in release_l3_process()
297 FsmEvent(&p->st->l3.l3m, EV_RELEASE_REQ, NULL); in release_l3_process()
299 FsmEvent(&p->st->l3.l3m, EV_RELEASE_IND, NULL); in release_l3_process()
302 l3_debug(p->st, "release_l3_process: not release link"); in release_l3_process()
312 l3_debug(p->st, "HiSax internal L3 error CR(%d) not in list", p->callref); in release_l3_process()
316 l3ml3p(struct PStack *st, int pr) in l3ml3p() argument
318 struct l3_process *p = st->l3.proc; in l3ml3p()
324 st->l3.l3ml3(st, pr, p); in l3ml3p()
330 setstack_l3dc(struct PStack *st, struct Channel *chanp) in setstack_l3dc() argument
334 st->l3.proc = NULL; in setstack_l3dc()
335 st->l3.global = NULL; in setstack_l3dc()
336 skb_queue_head_init(&st->l3.squeue); in setstack_l3dc()
337 st->l3.l3m.fsm = &l3fsm; in setstack_l3dc()
338 st->l3.l3m.state = ST_L3_LC_REL; in setstack_l3dc()
339 st->l3.l3m.debug = 1; in setstack_l3dc()
340 st->l3.l3m.userdata = st; in setstack_l3dc()
341 st->l3.l3m.userint = 0; in setstack_l3dc()
342 st->l3.l3m.printdebug = l3m_debug; in setstack_l3dc()
343 FsmInitTimer(&st->l3.l3m, &st->l3.l3m_timer); in setstack_l3dc()
344 strcpy(st->l3.debug_id, "L3DC "); in setstack_l3dc()
345 st->lli.l4l3_proto = no_l3_proto_spec; in setstack_l3dc()
348 if (st->protocol == ISDN_PTYPE_EURO) { in setstack_l3dc()
349 setstack_dss1(st); in setstack_l3dc()
353 if (st->protocol == ISDN_PTYPE_NI1) { in setstack_l3dc()
354 setstack_ni1(st); in setstack_l3dc()
358 if (st->protocol == ISDN_PTYPE_1TR6) { in setstack_l3dc()
359 setstack_1tr6(st); in setstack_l3dc()
362 if (st->protocol == ISDN_PTYPE_LEASED) { in setstack_l3dc()
363 st->lli.l4l3 = no_l3_proto; in setstack_l3dc()
364 st->l2.l2l3 = no_l3_proto; in setstack_l3dc()
365 st->l3.l3ml3 = no_l3_proto; in setstack_l3dc()
368 st->lli.l4l3 = no_l3_proto; in setstack_l3dc()
369 st->l2.l2l3 = no_l3_proto; in setstack_l3dc()
370 st->l3.l3ml3 = no_l3_proto; in setstack_l3dc()
372 (st->protocol == ISDN_PTYPE_1TR6) ? "1tr6" : in setstack_l3dc()
373 (st->protocol == ISDN_PTYPE_EURO) ? "euro" : in setstack_l3dc()
374 (st->protocol == ISDN_PTYPE_NI1) ? "ni1" : in setstack_l3dc()
377 st->protocol = -1; in setstack_l3dc()
382 isdnl3_trans(struct PStack *st, int pr, void *arg) { in isdnl3_trans() argument
383 st->l3.l3l2(st, pr, arg); in isdnl3_trans()
387 releasestack_isdnl3(struct PStack *st) in releasestack_isdnl3() argument
389 while (st->l3.proc) in releasestack_isdnl3()
390 release_l3_process(st->l3.proc); in releasestack_isdnl3()
391 if (st->l3.global) { in releasestack_isdnl3()
392 StopAllL3Timer(st->l3.global); in releasestack_isdnl3()
393 kfree(st->l3.global); in releasestack_isdnl3()
394 st->l3.global = NULL; in releasestack_isdnl3()
396 FsmDelTimer(&st->l3.l3m_timer, 54); in releasestack_isdnl3()
397 skb_queue_purge(&st->l3.squeue); in releasestack_isdnl3()
401 setstack_l3bc(struct PStack *st, struct Channel *chanp) in setstack_l3bc() argument
404 st->l3.proc = NULL; in setstack_l3bc()
405 st->l3.global = NULL; in setstack_l3bc()
406 skb_queue_head_init(&st->l3.squeue); in setstack_l3bc()
407 st->l3.l3m.fsm = &l3fsm; in setstack_l3bc()
408 st->l3.l3m.state = ST_L3_LC_REL; in setstack_l3bc()
409 st->l3.l3m.debug = 1; in setstack_l3bc()
410 st->l3.l3m.userdata = st; in setstack_l3bc()
411 st->l3.l3m.userint = 0; in setstack_l3bc()
412 st->l3.l3m.printdebug = l3m_debug; in setstack_l3bc()
413 strcpy(st->l3.debug_id, "L3BC "); in setstack_l3bc()
414 st->lli.l4l3 = isdnl3_trans; in setstack_l3bc()
422 struct PStack *st = fi->userdata; in lc_activate() local
425 st->l3.l3l2(st, DL_ESTABLISH | REQUEST, NULL); in lc_activate()
431 struct PStack *st = fi->userdata; in lc_connect() local
436 while ((skb = skb_dequeue(&st->l3.squeue))) { in lc_connect()
437 st->l3.l3l2(st, DL_DATA | REQUEST, skb); in lc_connect()
440 if ((!st->l3.proc) && dequeued) { in lc_connect()
441 if (st->l3.debug) in lc_connect()
442 l3_debug(st, "lc_connect: release link"); in lc_connect()
443 FsmEvent(&st->l3.l3m, EV_RELEASE_REQ, NULL); in lc_connect()
445 l3ml3p(st, DL_ESTABLISH | INDICATION); in lc_connect()
451 struct PStack *st = fi->userdata; in lc_connected() local
455 FsmDelTimer(&st->l3.l3m_timer, 51); in lc_connected()
457 while ((skb = skb_dequeue(&st->l3.squeue))) { in lc_connected()
458 st->l3.l3l2(st, DL_DATA | REQUEST, skb); in lc_connected()
461 if ((!st->l3.proc) && dequeued) { in lc_connected()
462 if (st->l3.debug) in lc_connected()
463 l3_debug(st, "lc_connected: release link"); in lc_connected()
464 FsmEvent(&st->l3.l3m, EV_RELEASE_REQ, NULL); in lc_connected()
466 l3ml3p(st, DL_ESTABLISH | CONFIRM); in lc_connected()
472 struct PStack *st = fi->userdata; in lc_start_delay() local
475 FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 50); in lc_start_delay()
482 struct PStack *st = fi->userdata; in lc_start_delay_check() local
486 if (st->protocol != ISDN_PTYPE_NI1) in lc_start_delay_check()
487 FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 50); in lc_start_delay_check()
493 struct PStack *st = fi->userdata; in lc_release_req() local
495 if (test_bit(FLG_L2BLOCK, &st->l2.flag)) { in lc_release_req()
496 if (st->l3.debug) in lc_release_req()
497 l3_debug(st, "lc_release_req: l2 blocked"); in lc_release_req()
499 FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 51); in lc_release_req()
502 st->l3.l3l2(st, DL_RELEASE | REQUEST, NULL); in lc_release_req()
509 struct PStack *st = fi->userdata; in lc_release_ind() local
511 FsmDelTimer(&st->l3.l3m_timer, 52); in lc_release_ind()
513 skb_queue_purge(&st->l3.squeue); in lc_release_ind()
514 l3ml3p(st, DL_RELEASE | INDICATION); in lc_release_ind()
520 struct PStack *st = fi->userdata; in lc_release_cnf() local
523 skb_queue_purge(&st->l3.squeue); in lc_release_cnf()
524 l3ml3p(st, DL_RELEASE | CONFIRM); in lc_release_cnf()
548 l3_msg(struct PStack *st, int pr, void *arg) in l3_msg() argument
552 if (st->l3.l3m.state == ST_L3_LC_ESTAB) { in l3_msg()
553 st->l3.l3l2(st, pr, arg); in l3_msg()
557 skb_queue_tail(&st->l3.squeue, skb); in l3_msg()
558 FsmEvent(&st->l3.l3m, EV_ESTABLISH_REQ, NULL); in l3_msg()
562 FsmEvent(&st->l3.l3m, EV_ESTABLISH_REQ, NULL); in l3_msg()
565 FsmEvent(&st->l3.l3m, EV_ESTABLISH_CNF, NULL); in l3_msg()
568 FsmEvent(&st->l3.l3m, EV_ESTABLISH_IND, NULL); in l3_msg()
571 FsmEvent(&st->l3.l3m, EV_RELEASE_IND, NULL); in l3_msg()
574 FsmEvent(&st->l3.l3m, EV_RELEASE_CNF, NULL); in l3_msg()
577 FsmEvent(&st->l3.l3m, EV_RELEASE_REQ, NULL); in l3_msg()