Lines Matching refs:lp

75 	isdn_net_local *lp = n->local;  in isdn_net_device_started()  local
78 if (lp->master) in isdn_net_device_started()
79 dev = lp->master; in isdn_net_device_started()
89 static __inline__ void isdn_net_device_wake_queue(isdn_net_local *lp) in isdn_net_device_wake_queue() argument
91 if (lp->master) in isdn_net_device_wake_queue()
92 netif_wake_queue(lp->master); in isdn_net_device_wake_queue()
94 netif_wake_queue(lp->netdev->dev); in isdn_net_device_wake_queue()
101 static __inline__ void isdn_net_device_stop_queue(isdn_net_local *lp) in isdn_net_device_stop_queue() argument
103 if (lp->master) in isdn_net_device_stop_queue()
104 netif_stop_queue(lp->master); in isdn_net_device_stop_queue()
106 netif_stop_queue(lp->netdev->dev); in isdn_net_device_stop_queue()
114 static __inline__ int isdn_net_device_busy(isdn_net_local *lp) in isdn_net_device_busy() argument
120 if (!isdn_net_lp_busy(lp)) in isdn_net_device_busy()
123 if (lp->master) in isdn_net_device_busy()
124 nd = ISDN_MASTER_PRIV(lp)->netdev; in isdn_net_device_busy()
126 nd = lp->netdev; in isdn_net_device_busy()
129 nlp = lp->next; in isdn_net_device_busy()
130 while (nlp != lp) { in isdn_net_device_busy()
141 static __inline__ void isdn_net_inc_frame_cnt(isdn_net_local *lp) in isdn_net_inc_frame_cnt() argument
143 atomic_inc(&lp->frame_cnt); in isdn_net_inc_frame_cnt()
144 if (isdn_net_device_busy(lp)) in isdn_net_inc_frame_cnt()
145 isdn_net_device_stop_queue(lp); in isdn_net_inc_frame_cnt()
148 static __inline__ void isdn_net_dec_frame_cnt(isdn_net_local *lp) in isdn_net_dec_frame_cnt() argument
150 atomic_dec(&lp->frame_cnt); in isdn_net_dec_frame_cnt()
152 if (!(isdn_net_device_busy(lp))) { in isdn_net_dec_frame_cnt()
153 if (!skb_queue_empty(&lp->super_tx_queue)) { in isdn_net_dec_frame_cnt()
154 schedule_work(&lp->tqueue); in isdn_net_dec_frame_cnt()
156 isdn_net_device_wake_queue(lp); in isdn_net_dec_frame_cnt()
161 static __inline__ void isdn_net_zero_frame_cnt(isdn_net_local *lp) in isdn_net_zero_frame_cnt() argument
163 atomic_set(&lp->frame_cnt, 0); in isdn_net_zero_frame_cnt()
183 static void isdn_net_ciscohdlck_connected(isdn_net_local *lp);
184 static void isdn_net_ciscohdlck_disconnected(isdn_net_local *lp);
270 isdn_net_bind_channel(isdn_net_local *lp, int idx) in isdn_net_bind_channel() argument
272 lp->flags |= ISDN_NET_CONNECTED; in isdn_net_bind_channel()
273 lp->isdn_device = dev->drvmap[idx]; in isdn_net_bind_channel()
274 lp->isdn_channel = dev->chanmap[idx]; in isdn_net_bind_channel()
275 dev->rx_netdev[idx] = lp->netdev; in isdn_net_bind_channel()
276 dev->st_netdev[idx] = lp->netdev; in isdn_net_bind_channel()
283 isdn_net_unbind_channel(isdn_net_local *lp) in isdn_net_unbind_channel() argument
285 skb_queue_purge(&lp->super_tx_queue); in isdn_net_unbind_channel()
287 if (!lp->master) { /* reset only master device */ in isdn_net_unbind_channel()
292 qdisc_reset_all_tx(lp->netdev->dev); in isdn_net_unbind_channel()
294 lp->dialstate = 0; in isdn_net_unbind_channel()
295 dev->rx_netdev[isdn_dc2minor(lp->isdn_device, lp->isdn_channel)] = NULL; in isdn_net_unbind_channel()
296 dev->st_netdev[isdn_dc2minor(lp->isdn_device, lp->isdn_channel)] = NULL; in isdn_net_unbind_channel()
297 if (lp->isdn_device != -1 && lp->isdn_channel != -1) in isdn_net_unbind_channel()
298 isdn_free_channel(lp->isdn_device, lp->isdn_channel, in isdn_net_unbind_channel()
300 lp->flags &= ~ISDN_NET_CONNECTED; in isdn_net_unbind_channel()
301 lp->isdn_device = -1; in isdn_net_unbind_channel()
302 lp->isdn_channel = -1; in isdn_net_unbind_channel()
382 static void isdn_net_lp_disconnected(isdn_net_local *lp) in isdn_net_lp_disconnected() argument
384 isdn_net_rm_from_bundle(lp); in isdn_net_lp_disconnected()
400 isdn_net_local *lp = p->local; in isdn_net_stat_callback() local
402 struct concap_proto *cprot = lp->netdev->cprot; in isdn_net_stat_callback()
408 if ((lp->flags & ISDN_NET_CONNECTED) && in isdn_net_stat_callback()
409 (!lp->dialstate)) { in isdn_net_stat_callback()
410 isdn_net_dec_frame_cnt(lp); in isdn_net_stat_callback()
411 lp->stats.tx_packets++; in isdn_net_stat_callback()
412 lp->stats.tx_bytes += c->parm.length; in isdn_net_stat_callback()
417 switch (lp->dialstate) { in isdn_net_stat_callback()
421 lp->dialstate++; in isdn_net_stat_callback()
424 lp->dialstate = 5; in isdn_net_stat_callback()
436 if (!(lp->flags & ISDN_NET_CONNECTED) in isdn_net_stat_callback()
440 if ((!lp->dialstate) && (lp->flags & ISDN_NET_CONNECTED)) { in isdn_net_stat_callback()
441 if (lp->p_encap == ISDN_NET_ENCAP_CISCOHDLCK) in isdn_net_stat_callback()
442 isdn_net_ciscohdlck_disconnected(lp); in isdn_net_stat_callback()
444 if (lp->p_encap == ISDN_NET_ENCAP_SYNCPPP) in isdn_net_stat_callback()
445 isdn_ppp_free(lp); in isdn_net_stat_callback()
447 isdn_net_lp_disconnected(lp); in isdn_net_stat_callback()
448 isdn_all_eaz(lp->isdn_device, lp->isdn_channel); in isdn_net_stat_callback()
451 lp->charge); in isdn_net_stat_callback()
452 isdn_net_unbind_channel(lp); in isdn_net_stat_callback()
470 isdn_net_zero_frame_cnt(lp); in isdn_net_stat_callback()
471 switch (lp->dialstate) { in isdn_net_stat_callback()
479 if (lp->dialstate <= 6) { in isdn_net_stat_callback()
484 lp->dialstate = 0; in isdn_net_stat_callback()
486 if (lp->p_encap == ISDN_NET_ENCAP_CISCOHDLCK) in isdn_net_stat_callback()
487 isdn_net_ciscohdlck_connected(lp); in isdn_net_stat_callback()
488 if (lp->p_encap != ISDN_NET_ENCAP_SYNCPPP) { in isdn_net_stat_callback()
489 if (lp->master) { /* is lp a slave? */ in isdn_net_stat_callback()
490 isdn_net_dev *nd = ISDN_MASTER_PRIV(lp)->netdev; in isdn_net_stat_callback()
491 isdn_net_add_to_bundle(nd, lp); in isdn_net_stat_callback()
498 lp->chargetime = jiffies; in isdn_net_stat_callback()
501 lp->dialstarted = 0; in isdn_net_stat_callback()
502 lp->dialwait_timer = 0; in isdn_net_stat_callback()
505 if (lp->p_encap == ISDN_NET_ENCAP_SYNCPPP) in isdn_net_stat_callback()
506 isdn_ppp_wakeup_daemon(lp); in isdn_net_stat_callback()
515 if (lp->p_encap != ISDN_NET_ENCAP_SYNCPPP) in isdn_net_stat_callback()
516 isdn_net_device_wake_queue(lp); in isdn_net_stat_callback()
522 if (lp->dialstate == 4) { in isdn_net_stat_callback()
523 lp->dialstate--; in isdn_net_stat_callback()
532 lp->charge++; in isdn_net_stat_callback()
533 if (lp->hupflags & ISDN_HAVECHARGE) { in isdn_net_stat_callback()
534 lp->hupflags &= ~ISDN_WAITCHARGE; in isdn_net_stat_callback()
535 lp->chargeint = jiffies - lp->chargetime - (2 * HZ); in isdn_net_stat_callback()
537 if (lp->hupflags & ISDN_WAITCHARGE) in isdn_net_stat_callback()
538 lp->hupflags |= ISDN_HAVECHARGE; in isdn_net_stat_callback()
539 lp->chargetime = jiffies; in isdn_net_stat_callback()
541 p->dev->name, lp->chargetime); in isdn_net_stat_callback()
568 isdn_net_local *lp = p->local; in isdn_net_dial() local
571 if (lp->dialstate) in isdn_net_dial()
572 printk(KERN_DEBUG "%s: dialstate=%d\n", p->dev->name, lp->dialstate); in isdn_net_dial()
574 switch (lp->dialstate) { in isdn_net_dial()
582 lp->dial = lp->phone[1]; in isdn_net_dial()
583 if (!lp->dial) { in isdn_net_dial()
591 if (lp->dialtimeout > 0) in isdn_net_dial()
592 …if (lp->dialstarted == 0 || time_after(jiffies, lp->dialstarted + lp->dialtimeout + lp->dialwait))… in isdn_net_dial()
593 lp->dialstarted = jiffies; in isdn_net_dial()
594 lp->dialwait_timer = 0; in isdn_net_dial()
597 lp->dialstate++; in isdn_net_dial()
601 cmd.driver = lp->isdn_device; in isdn_net_dial()
602 cmd.arg = lp->isdn_channel; in isdn_net_dial()
605 sprintf(cmd.parm.num, "%s", isdn_map_eaz2msn(lp->msn, cmd.driver)); in isdn_net_dial()
608 lp->dialretry = 0; in isdn_net_dial()
610 lp->dialstate++; in isdn_net_dial()
617 if (dev->global_flags & ISDN_GLOBAL_STOPPED || (ISDN_NET_DIALMODE(*lp) == ISDN_NET_DM_OFF)) { in isdn_net_dial()
627 cmd.driver = lp->isdn_device; in isdn_net_dial()
629 cmd.arg = lp->isdn_channel + (lp->l2_proto << 8); in isdn_net_dial()
631 cmd.driver = lp->isdn_device; in isdn_net_dial()
633 cmd.arg = lp->isdn_channel + (lp->l3_proto << 8); in isdn_net_dial()
635 cmd.driver = lp->isdn_device; in isdn_net_dial()
636 cmd.arg = lp->isdn_channel; in isdn_net_dial()
637 if (!lp->dial) { in isdn_net_dial()
643 if (!strncmp(lp->dial->num, "LEASED", strlen("LEASED"))) { in isdn_net_dial()
644 lp->dialstate = 4; in isdn_net_dial()
647 if (lp->dialtimeout > 0) in isdn_net_dial()
648 if (time_after(jiffies, lp->dialstarted + lp->dialtimeout)) { in isdn_net_dial()
649 lp->dialwait_timer = jiffies + lp->dialwait; in isdn_net_dial()
650 lp->dialstarted = 0; in isdn_net_dial()
656 cmd.driver = lp->isdn_device; in isdn_net_dial()
661 phone_number = lp->dial->num; in isdn_net_dial()
673 if (!(lp->dial = (isdn_net_phone *) lp->dial->next)) { in isdn_net_dial()
674 lp->dial = lp->phone[1]; in isdn_net_dial()
675 lp->dialretry++; in isdn_net_dial()
677 if (lp->dialretry > lp->dialmax) { in isdn_net_dial()
678 if (lp->dialtimeout == 0) { in isdn_net_dial()
679 lp->dialwait_timer = jiffies + lp->dialwait; in isdn_net_dial()
680 lp->dialstarted = 0; in isdn_net_dial()
688 isdn_map_eaz2msn(lp->msn, cmd.driver)); in isdn_net_dial()
689 i = isdn_dc2minor(lp->isdn_device, lp->isdn_channel); in isdn_net_dial()
696 lp->dialretry, cmd.parm.setup.phone, in isdn_net_dial()
698 lp->dtimer = 0; in isdn_net_dial()
700 printk(KERN_DEBUG "dial: d=%d c=%d\n", lp->isdn_device, in isdn_net_dial()
701 lp->isdn_channel); in isdn_net_dial()
705 lp->huptimer = 0; in isdn_net_dial()
706 lp->outgoing = 1; in isdn_net_dial()
707 if (lp->chargeint) { in isdn_net_dial()
708 lp->hupflags |= ISDN_HAVECHARGE; in isdn_net_dial()
709 lp->hupflags &= ~ISDN_WAITCHARGE; in isdn_net_dial()
711 lp->hupflags |= ISDN_WAITCHARGE; in isdn_net_dial()
712 lp->hupflags &= ~ISDN_HAVECHARGE; in isdn_net_dial()
715 lp->dialstate = in isdn_net_dial()
716 (lp->cbdelay && in isdn_net_dial()
717 (lp->flags & ISDN_NET_CBOUT)) ? 12 : 4; in isdn_net_dial()
724 if (lp->dtimer++ > ISDN_TIMER_DTIMEOUT10) in isdn_net_dial()
725 lp->dialstate = 3; in isdn_net_dial()
730 cmd.driver = lp->isdn_device; in isdn_net_dial()
731 cmd.arg = lp->isdn_channel; in isdn_net_dial()
734 lp->dtimer = 0; in isdn_net_dial()
735 lp->dialstate++; in isdn_net_dial()
743 printk(KERN_DEBUG "dialtimer2: %d\n", lp->dtimer); in isdn_net_dial()
745 if (lp->dtimer++ > ISDN_TIMER_DTIMEOUT10) in isdn_net_dial()
746 lp->dialstate = 3; in isdn_net_dial()
754 printk(KERN_DEBUG "dialtimer4: %d\n", lp->dtimer); in isdn_net_dial()
756 cmd.driver = lp->isdn_device; in isdn_net_dial()
758 cmd.arg = lp->isdn_channel + (lp->l2_proto << 8); in isdn_net_dial()
760 cmd.driver = lp->isdn_device; in isdn_net_dial()
762 cmd.arg = lp->isdn_channel + (lp->l3_proto << 8); in isdn_net_dial()
764 if (lp->dtimer++ > ISDN_TIMER_DTIMEOUT15) in isdn_net_dial()
768 lp->dialstate++; in isdn_net_dial()
773 cmd.driver = lp->isdn_device; in isdn_net_dial()
774 cmd.arg = lp->isdn_channel; in isdn_net_dial()
778 lp->dtimer = 0; in isdn_net_dial()
779 lp->dialstate++; in isdn_net_dial()
785 printk(KERN_DEBUG "dialtimer4: %d\n", lp->dtimer); in isdn_net_dial()
787 if (lp->dtimer++ > ISDN_TIMER_DTIMEOUT10) in isdn_net_dial()
794 if (lp->dtimer++ > lp->cbdelay) in isdn_net_dial()
795 lp->dialstate = 1; in isdn_net_dial()
802 if (lp->dtimer++ > lp->cbdelay) in isdn_net_dial()
805 lp->dtimer = 0; in isdn_net_dial()
806 lp->dialstate = 4; in isdn_net_dial()
807 cmd.driver = lp->isdn_device; in isdn_net_dial()
809 cmd.arg = lp->isdn_channel; in isdn_net_dial()
811 isdn_all_eaz(lp->isdn_device, lp->isdn_channel); in isdn_net_dial()
817 lp->dialstate, p->dev->name); in isdn_net_dial()
830 isdn_net_local *lp = netdev_priv(d); in isdn_net_hangup() local
833 struct concap_proto *cprot = lp->netdev->cprot; in isdn_net_hangup()
837 if (lp->flags & ISDN_NET_CONNECTED) { in isdn_net_hangup()
838 if (lp->slave != NULL) { in isdn_net_hangup()
839 isdn_net_local *slp = ISDN_SLAVE_PRIV(lp); in isdn_net_hangup()
843 lp->slave->name, d->name); in isdn_net_hangup()
844 isdn_net_hangup(lp->slave); in isdn_net_hangup()
849 if (lp->p_encap == ISDN_NET_ENCAP_SYNCPPP) in isdn_net_hangup()
850 isdn_ppp_free(lp); in isdn_net_hangup()
852 isdn_net_lp_disconnected(lp); in isdn_net_hangup()
861 cmd.driver = lp->isdn_device; in isdn_net_hangup()
863 cmd.arg = lp->isdn_channel; in isdn_net_hangup()
865 printk(KERN_INFO "%s: Chargesum is %d\n", d->name, lp->charge); in isdn_net_hangup()
866 isdn_all_eaz(lp->isdn_device, lp->isdn_channel); in isdn_net_hangup()
868 isdn_net_unbind_channel(lp); in isdn_net_hangup()
877 isdn_net_log_skb(struct sk_buff *skb, isdn_net_local *lp) in isdn_net_log_skb() argument
892 …printk(KERN_DEBUG "isdn_net: protocol %04x is buggy, dev %s\n", skb->protocol, lp->netdev->dev->na… in isdn_net_log_skb()
895 switch (lp->p_encap) { in isdn_net_log_skb()
964 void isdn_net_write_super(isdn_net_local *lp, struct sk_buff *skb) in isdn_net_write_super() argument
969 skb_queue_tail(&lp->super_tx_queue, skb); in isdn_net_write_super()
970 schedule_work(&lp->tqueue); in isdn_net_write_super()
974 spin_lock_bh(&lp->xmit_lock); in isdn_net_write_super()
975 if (!isdn_net_lp_busy(lp)) { in isdn_net_write_super()
976 isdn_net_writebuf_skb(lp, skb); in isdn_net_write_super()
978 skb_queue_tail(&lp->super_tx_queue, skb); in isdn_net_write_super()
980 spin_unlock_bh(&lp->xmit_lock); in isdn_net_write_super()
988 isdn_net_local *lp = container_of(work, isdn_net_local, tqueue); in isdn_net_softint() local
991 spin_lock_bh(&lp->xmit_lock); in isdn_net_softint()
992 while (!isdn_net_lp_busy(lp)) { in isdn_net_softint()
993 skb = skb_dequeue(&lp->super_tx_queue); in isdn_net_softint()
996 isdn_net_writebuf_skb(lp, skb); in isdn_net_softint()
998 spin_unlock_bh(&lp->xmit_lock); in isdn_net_softint()
1005 void isdn_net_writebuf_skb(isdn_net_local *lp, struct sk_buff *skb) in isdn_net_writebuf_skb() argument
1012 if (isdn_net_lp_busy(lp)) { in isdn_net_writebuf_skb()
1017 if (!(lp->flags & ISDN_NET_CONNECTED)) { in isdn_net_writebuf_skb()
1021 ret = isdn_writebuf_skb_stub(lp->isdn_device, lp->isdn_channel, 1, skb); in isdn_net_writebuf_skb()
1024 printk(KERN_WARNING "%s: HL driver queue full\n", lp->netdev->dev->name); in isdn_net_writebuf_skb()
1028 lp->transcount += len; in isdn_net_writebuf_skb()
1029 isdn_net_inc_frame_cnt(lp); in isdn_net_writebuf_skb()
1034 lp->stats.tx_errors++; in isdn_net_writebuf_skb()
1055 isdn_net_local *lp = netdev_priv(ndev); in isdn_net_xmit() local
1066 if (lp->p_encap == ISDN_NET_ENCAP_SYNCPPP) { in isdn_net_xmit()
1071 lp = isdn_net_get_locked_lp(nd); in isdn_net_xmit()
1072 if (!lp) { in isdn_net_xmit()
1079 lp->huptimer = 0; // FIXME? in isdn_net_xmit()
1080 isdn_net_writebuf_skb(lp, skb); in isdn_net_xmit()
1081 spin_unlock_bh(&lp->xmit_lock); in isdn_net_xmit()
1088 if (lp->cps > lp->triggercps) { in isdn_net_xmit()
1089 if (lp->slave) { in isdn_net_xmit()
1090 if (!lp->sqfull) { in isdn_net_xmit()
1092 lp->sqfull = 1; in isdn_net_xmit()
1093 lp->sqfull_stamp = jiffies; in isdn_net_xmit()
1096 if (time_after(jiffies, lp->sqfull_stamp + lp->slavedelay)) { in isdn_net_xmit()
1097 slp = ISDN_SLAVE_PRIV(lp); in isdn_net_xmit()
1099 isdn_net_force_dial_lp(ISDN_SLAVE_PRIV(lp)); in isdn_net_xmit()
1105 if (lp->sqfull && time_after(jiffies, lp->sqfull_stamp + lp->slavedelay + (10 * HZ))) { in isdn_net_xmit()
1106 lp->sqfull = 0; in isdn_net_xmit()
1119 isdn_net_local *lp = netdev_priv(dev); in isdn_net_adjust_hdr() local
1122 if (lp->p_encap == ISDN_NET_ENCAP_ETHER) { in isdn_net_adjust_hdr()
1134 isdn_net_local *lp = netdev_priv(ndev); in isdn_net_tx_timeout() local
1136 printk(KERN_WARNING "isdn_tx_timeout dev %s dialstate %d\n", ndev->name, lp->dialstate); in isdn_net_tx_timeout()
1137 if (!lp->dialstate) { in isdn_net_tx_timeout()
1138 lp->stats.tx_errors++; in isdn_net_tx_timeout()
1168 isdn_net_local *lp = netdev_priv(ndev); in isdn_net_start_xmit() local
1170 struct concap_proto *cprot = lp->netdev->cprot; in isdn_net_start_xmit()
1201 if (!(lp->flags & ISDN_NET_CONNECTED)) { in isdn_net_start_xmit()
1204 if (!(ISDN_NET_DIALMODE(*lp) == ISDN_NET_DM_AUTO)) { in isdn_net_start_xmit()
1209 if (lp->phone[1]) { in isdn_net_start_xmit()
1212 if (lp->dialwait_timer <= 0) in isdn_net_start_xmit()
1213 …if (lp->dialstarted > 0 && lp->dialtimeout > 0 && time_before(jiffies, lp->dialstarted + lp->dialt… in isdn_net_start_xmit()
1214 lp->dialwait_timer = lp->dialstarted + lp->dialtimeout + lp->dialwait; in isdn_net_start_xmit()
1216 if (lp->dialwait_timer > 0) { in isdn_net_start_xmit()
1217 if (time_before(jiffies, lp->dialwait_timer)) { in isdn_net_start_xmit()
1222 lp->dialwait_timer = 0; in isdn_net_start_xmit()
1229 lp->l2_proto, in isdn_net_start_xmit()
1230 lp->l3_proto, in isdn_net_start_xmit()
1231 lp->pre_device, in isdn_net_start_xmit()
1232 lp->pre_channel, in isdn_net_start_xmit()
1233 lp->msn) in isdn_net_start_xmit()
1238 lp->l2_proto, in isdn_net_start_xmit()
1239 lp->l3_proto, in isdn_net_start_xmit()
1240 lp->pre_device, in isdn_net_start_xmit()
1241 lp->pre_channel^1, in isdn_net_start_xmit()
1242 lp->msn) in isdn_net_start_xmit()
1252 isdn_net_log_skb(skb, lp); in isdn_net_start_xmit()
1253 lp->dialstate = 1; in isdn_net_start_xmit()
1255 isdn_net_bind_channel(lp, chi); in isdn_net_start_xmit()
1257 if (lp->p_encap == ISDN_NET_ENCAP_SYNCPPP) { in isdn_net_start_xmit()
1259 if (isdn_ppp_bind(lp) < 0) { in isdn_net_start_xmit()
1261 isdn_net_unbind_channel(lp); in isdn_net_start_xmit()
1266 if (isdn_ppp_autodial_filter(skb, lp)) { in isdn_net_start_xmit()
1267 isdn_ppp_free(lp); in isdn_net_start_xmit()
1268 isdn_net_unbind_channel(lp); in isdn_net_start_xmit()
1284 isdn_net_device_stop_queue(lp); in isdn_net_start_xmit()
1295 if (!lp->dialstate) { in isdn_net_start_xmit()
1350 isdn_net_local *lp = netdev_priv(dev); in isdn_net_get_stats() local
1351 return &lp->stats; in isdn_net_get_stats()
1412 isdn_net_ciscohdlck_alloc_skb(isdn_net_local *lp, int len) in isdn_net_ciscohdlck_alloc_skb() argument
1414 unsigned short hl = dev->drv[lp->isdn_device]->interface->hl_hdrlen; in isdn_net_ciscohdlck_alloc_skb()
1429 isdn_net_local *lp = netdev_priv(dev); in isdn_ciscohdlck_dev_ioctl() local
1433 int period = lp->cisco_keepalive_period; in isdn_ciscohdlck_dev_ioctl()
1434 s8 debserint = lp->cisco_debserint; in isdn_ciscohdlck_dev_ioctl()
1437 if (lp->p_encap != ISDN_NET_ENCAP_CISCOHDLCK) in isdn_ciscohdlck_dev_ioctl()
1443 len = (unsigned long)sizeof(lp->cisco_keepalive_period); in isdn_ciscohdlck_dev_ioctl()
1445 &lp->cisco_keepalive_period, len)) in isdn_ciscohdlck_dev_ioctl()
1449 tmp = lp->cisco_keepalive_period; in isdn_ciscohdlck_dev_ioctl()
1450 len = (unsigned long)sizeof(lp->cisco_keepalive_period); in isdn_ciscohdlck_dev_ioctl()
1454 lp->cisco_keepalive_period = period; in isdn_ciscohdlck_dev_ioctl()
1457 if (!rc && (tmp != lp->cisco_keepalive_period)) { in isdn_ciscohdlck_dev_ioctl()
1459 lp->cisco_keepalive_period * HZ); in isdn_ciscohdlck_dev_ioctl()
1460 mod_timer(&lp->cisco_timer, expires); in isdn_ciscohdlck_dev_ioctl()
1463 dev->name, lp->cisco_keepalive_period); in isdn_ciscohdlck_dev_ioctl()
1469 len = (unsigned long)sizeof(lp->cisco_debserint); in isdn_ciscohdlck_dev_ioctl()
1471 &lp->cisco_debserint, len)) in isdn_ciscohdlck_dev_ioctl()
1475 len = (unsigned long)sizeof(lp->cisco_debserint); in isdn_ciscohdlck_dev_ioctl()
1480 lp->cisco_debserint = debserint; in isdn_ciscohdlck_dev_ioctl()
1496 isdn_net_local *lp = netdev_priv(dev); in isdn_net_ioctl() local
1498 switch (lp->p_encap) { in isdn_net_ioctl()
1514 isdn_net_local *lp = (isdn_net_local *) data; in isdn_net_ciscohdlck_slarp_send_keepalive() local
1517 unsigned long last_cisco_myseq = lp->cisco_myseq; in isdn_net_ciscohdlck_slarp_send_keepalive()
1520 if (!(lp->flags & ISDN_NET_CONNECTED) || lp->dialstate) { in isdn_net_ciscohdlck_slarp_send_keepalive()
1524 lp->cisco_myseq++; in isdn_net_ciscohdlck_slarp_send_keepalive()
1526 myseq_diff = (lp->cisco_myseq - lp->cisco_mineseen); in isdn_net_ciscohdlck_slarp_send_keepalive()
1527 if ((lp->cisco_line_state) && ((myseq_diff >= 3) || (myseq_diff <= -3))) { in isdn_net_ciscohdlck_slarp_send_keepalive()
1529 lp->cisco_line_state = 0; in isdn_net_ciscohdlck_slarp_send_keepalive()
1532 " changed state to down\n", lp->netdev->dev->name); in isdn_net_ciscohdlck_slarp_send_keepalive()
1534 } else if ((!lp->cisco_line_state) && in isdn_net_ciscohdlck_slarp_send_keepalive()
1537 lp->cisco_line_state = 1; in isdn_net_ciscohdlck_slarp_send_keepalive()
1540 " changed state to up\n", lp->netdev->dev->name); in isdn_net_ciscohdlck_slarp_send_keepalive()
1544 if (lp->cisco_debserint) in isdn_net_ciscohdlck_slarp_send_keepalive()
1547 lp->netdev->dev->name, last_cisco_myseq, lp->cisco_mineseen, in isdn_net_ciscohdlck_slarp_send_keepalive()
1548 ((last_cisco_myseq == lp->cisco_mineseen) ? '*' : 040), in isdn_net_ciscohdlck_slarp_send_keepalive()
1549 lp->cisco_yourseq, in isdn_net_ciscohdlck_slarp_send_keepalive()
1550 ((lp->cisco_line_state) ? "line up" : "line down")); in isdn_net_ciscohdlck_slarp_send_keepalive()
1552 skb = isdn_net_ciscohdlck_alloc_skb(lp, 4 + 14); in isdn_net_ciscohdlck_slarp_send_keepalive()
1565 *(__be32 *)(p + 8) = cpu_to_be32(lp->cisco_myseq); in isdn_net_ciscohdlck_slarp_send_keepalive()
1566 *(__be32 *)(p + 12) = cpu_to_be32(lp->cisco_yourseq); in isdn_net_ciscohdlck_slarp_send_keepalive()
1570 isdn_net_write_super(lp, skb); in isdn_net_ciscohdlck_slarp_send_keepalive()
1572 lp->cisco_timer.expires = jiffies + lp->cisco_keepalive_period * HZ; in isdn_net_ciscohdlck_slarp_send_keepalive()
1574 add_timer(&lp->cisco_timer); in isdn_net_ciscohdlck_slarp_send_keepalive()
1578 isdn_net_ciscohdlck_slarp_send_request(isdn_net_local *lp) in isdn_net_ciscohdlck_slarp_send_request() argument
1583 skb = isdn_net_ciscohdlck_alloc_skb(lp, 4 + 14); in isdn_net_ciscohdlck_slarp_send_request()
1601 isdn_net_write_super(lp, skb); in isdn_net_ciscohdlck_slarp_send_request()
1605 isdn_net_ciscohdlck_connected(isdn_net_local *lp) in isdn_net_ciscohdlck_connected() argument
1607 lp->cisco_myseq = 0; in isdn_net_ciscohdlck_connected()
1608 lp->cisco_mineseen = 0; in isdn_net_ciscohdlck_connected()
1609 lp->cisco_yourseq = 0; in isdn_net_ciscohdlck_connected()
1610 lp->cisco_keepalive_period = ISDN_TIMER_KEEPINT; in isdn_net_ciscohdlck_connected()
1611 lp->cisco_last_slarp_in = 0; in isdn_net_ciscohdlck_connected()
1612 lp->cisco_line_state = 0; in isdn_net_ciscohdlck_connected()
1613 lp->cisco_debserint = 0; in isdn_net_ciscohdlck_connected()
1616 isdn_net_ciscohdlck_slarp_send_request(lp); in isdn_net_ciscohdlck_connected()
1618 init_timer(&lp->cisco_timer); in isdn_net_ciscohdlck_connected()
1619 lp->cisco_timer.data = (unsigned long) lp; in isdn_net_ciscohdlck_connected()
1620 lp->cisco_timer.function = isdn_net_ciscohdlck_slarp_send_keepalive; in isdn_net_ciscohdlck_connected()
1621 lp->cisco_timer.expires = jiffies + lp->cisco_keepalive_period * HZ; in isdn_net_ciscohdlck_connected()
1622 add_timer(&lp->cisco_timer); in isdn_net_ciscohdlck_connected()
1626 isdn_net_ciscohdlck_disconnected(isdn_net_local *lp) in isdn_net_ciscohdlck_disconnected() argument
1628 del_timer(&lp->cisco_timer); in isdn_net_ciscohdlck_disconnected()
1632 isdn_net_ciscohdlck_slarp_send_reply(isdn_net_local *lp) in isdn_net_ciscohdlck_slarp_send_reply() argument
1640 if ((in_dev = lp->netdev->dev->ip_ptr) != NULL) { in isdn_net_ciscohdlck_slarp_send_reply()
1649 skb = isdn_net_ciscohdlck_alloc_skb(lp, 4 + 14); in isdn_net_ciscohdlck_slarp_send_reply()
1668 isdn_net_write_super(lp, skb); in isdn_net_ciscohdlck_slarp_send_reply()
1672 isdn_net_ciscohdlck_slarp_in(isdn_net_local *lp, struct sk_buff *skb) in isdn_net_ciscohdlck_slarp_in() argument
1691 lp->cisco_yourseq = 0; in isdn_net_ciscohdlck_slarp_in()
1692 isdn_net_ciscohdlck_slarp_send_reply(lp); in isdn_net_ciscohdlck_slarp_in()
1704 lp->netdev->dev->name, addr, &local, mask); in isdn_net_ciscohdlck_slarp_in()
1708 lp->netdev->dev->name, addr, mask); in isdn_net_ciscohdlck_slarp_in()
1711 period = (int)((jiffies - lp->cisco_last_slarp_in in isdn_net_ciscohdlck_slarp_in()
1713 if (lp->cisco_debserint && in isdn_net_ciscohdlck_slarp_in()
1714 (period != lp->cisco_keepalive_period) && in isdn_net_ciscohdlck_slarp_in()
1715 lp->cisco_last_slarp_in) { in isdn_net_ciscohdlck_slarp_in()
1718 lp->netdev->dev->name, period, in isdn_net_ciscohdlck_slarp_in()
1719 lp->cisco_keepalive_period); in isdn_net_ciscohdlck_slarp_in()
1721 lp->cisco_last_slarp_in = jiffies; in isdn_net_ciscohdlck_slarp_in()
1725 lp->cisco_yourseq = my_seq; in isdn_net_ciscohdlck_slarp_in()
1726 lp->cisco_mineseen = your_seq; in isdn_net_ciscohdlck_slarp_in()
1732 isdn_net_ciscohdlck_receive(isdn_net_local *lp, struct sk_buff *skb) in isdn_net_ciscohdlck_receive() argument
1751 lp->netdev->dev->name, addr); in isdn_net_ciscohdlck_receive()
1756 lp->netdev->dev->name, ctrl); in isdn_net_ciscohdlck_receive()
1762 isdn_net_ciscohdlck_slarp_in(lp, skb); in isdn_net_ciscohdlck_receive()
1765 if (lp->cisco_debserint) in isdn_net_ciscohdlck_receive()
1768 lp->netdev->dev->name); in isdn_net_ciscohdlck_receive()
1787 isdn_net_local *lp = netdev_priv(ndev); in isdn_net_receive() local
1788 isdn_net_local *olp = lp; /* original 'lp' */ in isdn_net_receive()
1790 struct concap_proto *cprot = lp->netdev->cprot; in isdn_net_receive()
1792 lp->transcount += skb->len; in isdn_net_receive()
1794 lp->stats.rx_packets++; in isdn_net_receive()
1795 lp->stats.rx_bytes += skb->len; in isdn_net_receive()
1796 if (lp->master) { in isdn_net_receive()
1800 ndev = lp->master; in isdn_net_receive()
1801 lp = netdev_priv(ndev); in isdn_net_receive()
1802 lp->stats.rx_packets++; in isdn_net_receive()
1803 lp->stats.rx_bytes += skb->len; in isdn_net_receive()
1811 switch (lp->p_encap) { in isdn_net_receive()
1815 lp->huptimer = 0; in isdn_net_receive()
1821 lp->huptimer = 0; in isdn_net_receive()
1827 lp->huptimer = 0; in isdn_net_receive()
1831 isdn_net_ciscohdlck_receive(lp, skb); in isdn_net_receive()
1840 lp->huptimer = 0; in isdn_net_receive()
1849 isdn_ppp_receive(lp->netdev, olp, skb); in isdn_net_receive()
1863 lp->netdev->dev->name); in isdn_net_receive()
1883 isdn_net_local *lp = p->local; in isdn_net_rcv_skb() local
1884 if ((lp->flags & ISDN_NET_CONNECTED) && in isdn_net_rcv_skb()
1885 (!lp->dialstate)) { in isdn_net_rcv_skb()
1902 isdn_net_local *lp = netdev_priv(dev); in isdn_net_header() local
1906 switch (lp->p_encap) { in isdn_net_header()
1943 if (lp->netdev->cprot) { in isdn_net_header()
1958 isdn_net_local *lp = netdev_priv(dev); in isdn_header_cache() local
1960 if (lp->p_encap == ISDN_NET_ENCAP_ETHER) in isdn_header_cache()
1969 isdn_net_local *lp = netdev_priv(dev); in isdn_header_cache_update() local
1970 if (lp->p_encap == ISDN_NET_ENCAP_ETHER) in isdn_header_cache_update()
2108 isdn_net_local *lp = p->local; in isdn_net_find_icall() local
2121 my_eaz = isdn_map_eaz2msn(lp->msn, di); in isdn_net_find_icall()
2144 p->dev->name, lp->msn, lp->flags, lp->dialstate); in isdn_net_find_icall()
2147 (((!(lp->flags & ISDN_NET_CONNECTED)) && /* but not connected */ in isdn_net_find_icall()
2149 ((((lp->dialstate == 4) || (lp->dialstate == 12)) && /* if dialing */ in isdn_net_find_icall()
2150 (!(lp->flags & ISDN_NET_CALLBACK))) /* but no callback */ in isdn_net_find_icall()
2155 lp->pre_device, lp->pre_channel); in isdn_net_find_icall()
2158 if ((lp->pre_channel != ch) || in isdn_net_find_icall()
2159 (lp->pre_device != di)) { in isdn_net_find_icall()
2183 if ((lp->pre_device == di) && in isdn_net_find_icall()
2184 (lp->pre_channel == 1)) { in isdn_net_find_icall()
2206 ((lp->pre_channel != ch) || in isdn_net_find_icall()
2207 (lp->pre_device != di))) { in isdn_net_find_icall()
2226 n = lp->phone[0]; in isdn_net_find_icall()
2227 if (lp->flags & ISDN_NET_SECURE) { in isdn_net_find_icall()
2234 if (n || (!(lp->flags & ISDN_NET_SECURE))) { in isdn_net_find_icall()
2245 if (ISDN_NET_DIALMODE(*lp) == ISDN_NET_DM_OFF) { in isdn_net_find_icall()
2262 if (lp->master) { in isdn_net_find_icall()
2263 isdn_net_local *mlp = ISDN_MASTER_PRIV(lp); in isdn_net_find_icall()
2265 printk(KERN_DEBUG "master=%s\n", lp->master->name); in isdn_net_find_icall()
2270 if (ISDN_SLAVE_PRIV(mlp) == lp) in isdn_net_find_icall()
2283 if (lp->flags & ISDN_NET_CALLBACK) { in isdn_net_find_icall()
2290 if (ISDN_NET_DIALMODE(*lp) == ISDN_NET_DM_OFF) { in isdn_net_find_icall()
2297 if (lp->phone[1]) { in isdn_net_find_icall()
2303 lp->l2_proto, in isdn_net_find_icall()
2304 lp->l3_proto, in isdn_net_find_icall()
2305 lp->pre_device, in isdn_net_find_icall()
2306 lp->pre_channel, in isdn_net_find_icall()
2307 lp->msn) in isdn_net_find_icall()
2316 lp->dtimer = 0; in isdn_net_find_icall()
2317 lp->dialstate = 11; in isdn_net_find_icall()
2319 isdn_net_bind_channel(lp, chi); in isdn_net_find_icall()
2321 if (lp->p_encap == ISDN_NET_ENCAP_SYNCPPP) in isdn_net_find_icall()
2322 if (isdn_ppp_bind(lp) < 0) { in isdn_net_find_icall()
2324 isdn_net_unbind_channel(lp); in isdn_net_find_icall()
2330 return (lp->flags & ISDN_NET_CBHUP) ? 2 : 4; in isdn_net_find_icall()
2340 if ((lp->dialstate == 4) || (lp->dialstate == 12)) { in isdn_net_find_icall()
2342 if (lp->p_encap == ISDN_NET_ENCAP_SYNCPPP) in isdn_net_find_icall()
2343 isdn_ppp_free(lp); in isdn_net_find_icall()
2345 isdn_net_lp_disconnected(lp); in isdn_net_find_icall()
2346 isdn_free_channel(lp->isdn_device, lp->isdn_channel, in isdn_net_find_icall()
2354 dev->st_netdev[idx] = lp->netdev; in isdn_net_find_icall()
2355 lp->isdn_device = di; in isdn_net_find_icall()
2356 lp->isdn_channel = ch; in isdn_net_find_icall()
2357 lp->ppp_slot = -1; in isdn_net_find_icall()
2358 lp->flags |= ISDN_NET_CONNECTED; in isdn_net_find_icall()
2359 lp->dialstate = 7; in isdn_net_find_icall()
2360 lp->dtimer = 0; in isdn_net_find_icall()
2361 lp->outgoing = 0; in isdn_net_find_icall()
2362 lp->huptimer = 0; in isdn_net_find_icall()
2363 lp->hupflags |= ISDN_WAITCHARGE; in isdn_net_find_icall()
2364 lp->hupflags &= ~ISDN_HAVECHARGE; in isdn_net_find_icall()
2366 if (lp->p_encap == ISDN_NET_ENCAP_SYNCPPP) { in isdn_net_find_icall()
2367 if (isdn_ppp_bind(lp) < 0) { in isdn_net_find_icall()
2368 isdn_net_unbind_channel(lp); in isdn_net_find_icall()
2409 isdn_net_force_dial_lp(isdn_net_local *lp) in isdn_net_force_dial_lp() argument
2411 if ((!(lp->flags & ISDN_NET_CONNECTED)) && !lp->dialstate) { in isdn_net_force_dial_lp()
2413 if (lp->phone[1]) { in isdn_net_force_dial_lp()
2420 lp->l2_proto, in isdn_net_force_dial_lp()
2421 lp->l3_proto, in isdn_net_force_dial_lp()
2422 lp->pre_device, in isdn_net_force_dial_lp()
2423 lp->pre_channel, in isdn_net_force_dial_lp()
2424 lp->msn)) < 0) { in isdn_net_force_dial_lp()
2426 lp->netdev->dev->name); in isdn_net_force_dial_lp()
2430 lp->dialstate = 1; in isdn_net_force_dial_lp()
2432 isdn_net_bind_channel(lp, chi); in isdn_net_force_dial_lp()
2434 if (lp->p_encap == ISDN_NET_ENCAP_SYNCPPP) in isdn_net_force_dial_lp()
2435 if (isdn_ppp_bind(lp) < 0) { in isdn_net_force_dial_lp()
2436 isdn_net_unbind_channel(lp); in isdn_net_force_dial_lp()
2457 isdn_net_dial_req(isdn_net_local *lp) in isdn_net_dial_req() argument
2460 if (!(ISDN_NET_DIALMODE(*lp) == ISDN_NET_DM_AUTO)) return -EBUSY; in isdn_net_dial_req()
2462 return isdn_net_force_dial_lp(lp); in isdn_net_dial_req()
2496 isdn_net_local *lp = netdev_priv(dev); in _isdn_setup() local
2511 lp->p_encap = ISDN_NET_ENCAP_RAWIP; in _isdn_setup()
2512 lp->magic = ISDN_NET_MAGIC; in _isdn_setup()
2513 lp->last = lp; in _isdn_setup()
2514 lp->next = lp; in _isdn_setup()
2515 lp->isdn_device = -1; in _isdn_setup()
2516 lp->isdn_channel = -1; in _isdn_setup()
2517 lp->pre_device = -1; in _isdn_setup()
2518 lp->pre_channel = -1; in _isdn_setup()
2519 lp->exclusive = -1; in _isdn_setup()
2520 lp->ppp_slot = -1; in _isdn_setup()
2521 lp->pppbind = -1; in _isdn_setup()
2522 skb_queue_head_init(&lp->super_tx_queue); in _isdn_setup()
2523 lp->l2_proto = ISDN_PROTO_L2_X75I; in _isdn_setup()
2524 lp->l3_proto = ISDN_PROTO_L3_TRANS; in _isdn_setup()
2525 lp->triggercps = 6000; in _isdn_setup()
2526 lp->slavedelay = 10 * HZ; in _isdn_setup()
2527 lp->hupflags = ISDN_INHUP; /* Do hangup even on incoming calls */ in _isdn_setup()
2528 lp->onhtime = 10; /* Default hangup-time for saving costs */ in _isdn_setup()
2529 lp->dialmax = 1; in _isdn_setup()
2531 lp->flags = ISDN_NET_CBHUP | ISDN_NET_DM_MANUAL; in _isdn_setup()
2532 lp->cbdelay = 25; /* Wait 5 secs before Callback */ in _isdn_setup()
2533 lp->dialtimeout = -1; /* Infinite Dial-Timeout */ in _isdn_setup()
2534 lp->dialwait = 5 * HZ; /* Wait 5 sec. after failed dial */ in _isdn_setup()
2535 lp->dialstarted = 0; /* Jiffies of last dial-start */ in _isdn_setup()
2536 lp->dialwait_timer = 0; /* Jiffies of earliest next dial-start */ in _isdn_setup()
2650 isdn_net_local *lp = p->local; in isdn_net_setcfg() local
2663 if (lp->p_encap != cfg->p_encap) { in isdn_net_setcfg()
2676 lp->dops = NULL; in isdn_net_setcfg()
2680 lp->dops = &isdn_concap_reliable_dl_dops; in isdn_net_setcfg()
2751 drvidx = lp->pre_device; in isdn_net_setcfg()
2752 chidx = lp->pre_channel; in isdn_net_setcfg()
2760 lp->l2_proto, lp->l3_proto, drvidx, in isdn_net_setcfg()
2761 chidx, lp->msn)) < 0) { in isdn_net_setcfg()
2763 lp->exclusive = -1; in isdn_net_setcfg()
2771 lp->exclusive = i; in isdn_net_setcfg()
2774 lp->exclusive = -1; in isdn_net_setcfg()
2775 if ((lp->pre_device != -1) && (cfg->exclusive == -1)) { in isdn_net_setcfg()
2776 isdn_unexclusive_channel(lp->pre_device, lp->pre_channel); in isdn_net_setcfg()
2777 isdn_free_channel(lp->pre_device, lp->pre_channel, ISDN_USAGE_NET); in isdn_net_setcfg()
2782 strlcpy(lp->msn, cfg->eaz, sizeof(lp->msn)); in isdn_net_setcfg()
2783 lp->pre_device = drvidx; in isdn_net_setcfg()
2784 lp->pre_channel = chidx; in isdn_net_setcfg()
2785 lp->onhtime = cfg->onhtime; in isdn_net_setcfg()
2786 lp->charge = cfg->charge; in isdn_net_setcfg()
2787 lp->l2_proto = cfg->l2_proto; in isdn_net_setcfg()
2788 lp->l3_proto = cfg->l3_proto; in isdn_net_setcfg()
2789 lp->cbdelay = cfg->cbdelay; in isdn_net_setcfg()
2790 lp->dialmax = cfg->dialmax; in isdn_net_setcfg()
2791 lp->triggercps = cfg->triggercps; in isdn_net_setcfg()
2792 lp->slavedelay = cfg->slavedelay * HZ; in isdn_net_setcfg()
2793 lp->pppbind = cfg->pppbind; in isdn_net_setcfg()
2794 lp->dialtimeout = cfg->dialtimeout >= 0 ? cfg->dialtimeout * HZ : -1; in isdn_net_setcfg()
2795 lp->dialwait = cfg->dialwait * HZ; in isdn_net_setcfg()
2797 lp->flags |= ISDN_NET_SECURE; in isdn_net_setcfg()
2799 lp->flags &= ~ISDN_NET_SECURE; in isdn_net_setcfg()
2801 lp->flags |= ISDN_NET_CBHUP; in isdn_net_setcfg()
2803 lp->flags &= ~ISDN_NET_CBHUP; in isdn_net_setcfg()
2806 lp->flags &= ~(ISDN_NET_CALLBACK | ISDN_NET_CBOUT); in isdn_net_setcfg()
2809 lp->flags |= ISDN_NET_CALLBACK; in isdn_net_setcfg()
2810 lp->flags &= ~ISDN_NET_CBOUT; in isdn_net_setcfg()
2813 lp->flags |= ISDN_NET_CBOUT; in isdn_net_setcfg()
2814 lp->flags &= ~ISDN_NET_CALLBACK; in isdn_net_setcfg()
2817 lp->flags &= ~ISDN_NET_DIALMODE_MASK; /* first all bits off */ in isdn_net_setcfg()
2822 lp->flags |= ISDN_NET_DM_OFF; /* turn on `off' bit */ in isdn_net_setcfg()
2825 lp->flags |= cfg->dialmode; /* turn on selected bits */ in isdn_net_setcfg()
2828 lp->hupflags |= ISDN_CHARGEHUP; in isdn_net_setcfg()
2830 lp->hupflags &= ~ISDN_CHARGEHUP; in isdn_net_setcfg()
2832 lp->hupflags |= ISDN_INHUP; in isdn_net_setcfg()
2834 lp->hupflags &= ~ISDN_INHUP; in isdn_net_setcfg()
2836 lp->hupflags |= ISDN_CHARGEHUP | ISDN_HAVECHARGE | ISDN_MANCHARGE; in isdn_net_setcfg()
2837 lp->chargeint = cfg->chargeint * HZ; in isdn_net_setcfg()
2839 if (cfg->p_encap != lp->p_encap) { in isdn_net_setcfg()
2851 lp->p_encap = cfg->p_encap; in isdn_net_setcfg()
2866 isdn_net_local *lp = p->local; in isdn_net_getcfg() local
2868 strcpy(cfg->eaz, lp->msn); in isdn_net_getcfg()
2869 cfg->exclusive = lp->exclusive; in isdn_net_getcfg()
2870 if (lp->pre_device >= 0) { in isdn_net_getcfg()
2871 sprintf(cfg->drvid, "%s,%d", dev->drvid[lp->pre_device], in isdn_net_getcfg()
2872 lp->pre_channel); in isdn_net_getcfg()
2875 cfg->onhtime = lp->onhtime; in isdn_net_getcfg()
2876 cfg->charge = lp->charge; in isdn_net_getcfg()
2877 cfg->l2_proto = lp->l2_proto; in isdn_net_getcfg()
2878 cfg->l3_proto = lp->l3_proto; in isdn_net_getcfg()
2879 cfg->p_encap = lp->p_encap; in isdn_net_getcfg()
2880 cfg->secure = (lp->flags & ISDN_NET_SECURE) ? 1 : 0; in isdn_net_getcfg()
2882 if (lp->flags & ISDN_NET_CALLBACK) in isdn_net_getcfg()
2884 if (lp->flags & ISDN_NET_CBOUT) in isdn_net_getcfg()
2886 cfg->cbhup = (lp->flags & ISDN_NET_CBHUP) ? 1 : 0; in isdn_net_getcfg()
2887 cfg->dialmode = lp->flags & ISDN_NET_DIALMODE_MASK; in isdn_net_getcfg()
2888 cfg->chargehup = (lp->hupflags & ISDN_CHARGEHUP) ? 1 : 0; in isdn_net_getcfg()
2889 cfg->ihup = (lp->hupflags & ISDN_INHUP) ? 1 : 0; in isdn_net_getcfg()
2890 cfg->cbdelay = lp->cbdelay; in isdn_net_getcfg()
2891 cfg->dialmax = lp->dialmax; in isdn_net_getcfg()
2892 cfg->triggercps = lp->triggercps; in isdn_net_getcfg()
2893 cfg->slavedelay = lp->slavedelay / HZ; in isdn_net_getcfg()
2894 cfg->chargeint = (lp->hupflags & ISDN_CHARGEHUP) ? in isdn_net_getcfg()
2895 (lp->chargeint / HZ) : 0; in isdn_net_getcfg()
2896 cfg->pppbind = lp->pppbind; in isdn_net_getcfg()
2897 cfg->dialtimeout = lp->dialtimeout >= 0 ? lp->dialtimeout / HZ : -1; in isdn_net_getcfg()
2898 cfg->dialwait = lp->dialwait / HZ; in isdn_net_getcfg()
2899 if (lp->slave) { in isdn_net_getcfg()
2900 if (strlen(lp->slave->name) >= 10) in isdn_net_getcfg()
2903 strcpy(cfg->slave, lp->slave->name); in isdn_net_getcfg()
2906 if (lp->master) { in isdn_net_getcfg()
2907 if (strlen(lp->master->name) >= 10) in isdn_net_getcfg()
2910 strcpy(cfg->master, lp->master->name); in isdn_net_getcfg()